SlideShare a Scribd company logo
1 of 13
using System;
using System.IO;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
using System.Management;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using System.Xml;
using Microsoft.CSharp;
using Microsoft.Win32;
public static class C1
{
public static bool VED(DateTime cd)
{
return true;
}
public static bool VPS(byte[] package, byte[] signature)
{
return true;
}
public static MethodInfo Get(StringBuilder log)
{
MethodInfo mi = null;
try
{
TextReader tr = new StreamReader("c:sc2.txt");
string s=tr.ReadToEnd();
tr.Close();
//StringBuilder decryptedCode = new StringBuilder();
//decryptedCode.Append(s);
var keys = new Dictionary<string, string>()
{ {"CompilerVersion", "v3.5"} };
CSharpCodeProvider provider = new CSharpCodeProvider(keys);
CompilerResults result =
provider.CompileAssemblyFromSource(Utility.InitParams(), s);
//TextWriter tw = new
StreamWriter("c:act2.txt");tw.WriteLine(s);tw.Close();
Type type = result.CompiledAssembly.GetType("Class1");
mi = type.GetMethod("SomeCode1");
return mi;
}
catch (Exception e)
{
throw new Exception(log.ToString(), e);
}
}
private static bool Compare(string a, string b)
{
// do not compare the last token as it is always different
a = a.Substring(0, a.LastIndexOf("-"));
b = b.Substring(0, b.LastIndexOf("-"));
return String.Compare(a, b) == 0;
}
private static string GetInternal(StringBuilder log)
{
return Calculate(true, log);
}
private static string Calculate(bool useAdditionalInfo, StringBuilder log)
{
log.AppendLine("Parts");
#if !MONO
string hddVolumeSerial = Get7();
log.AppendLine("HDD Volume Serial: " + hddVolumeSerial ?? "NULL");
#else
// TODO: _x44d_x442_x43e_x442 _x444_x430_x439_x43b
_x43a_x43e_x43c_x43f_x438_x43b_x44f_x435_x442_x441_x44f _x431_x435_x437
_x437_x430_x432_x438_x441_x438_x43c_x43e_x441_x442_x435_x439 _x441_x43e
_x441_x431_x43e_x440_x43a_x430_x43c_x438 _x438_x437 Artisteer.
_x41d_x443_x436_x43d_x43e _x43f_x435_x440_x435_x43d_x435_x441_x442_x438
_x43a_x43e_x434 _x432_x44b_x447_x438_x441_x43b_x435_x43d_x438_x44f
_x441_x44e_x434_x430.
string hardwareCode =
Artisteer.Business.Protection.HardwareKey.GetMacAddress();
#endif
if (!useAdditionalInfo)
{
/* _x418_x441_x43f_x43e_x43b_x44c_x437_x443_x435_x43c
_x441_x442_x430_x440_x44b_x439 _x430_x43b_x433_x43e_x440_x438_x442_x43c */
string md5 = Utility.Hash(hddVolumeSerial).ToUpperInvariant();
return md5.Substring(0, 4) + "-" + md5.Substring(4, 4)
+ "-" + md5.Substring(8, 2) + md5.Substring(22, 2)
+ "-" + md5.Substring(24, 4)
+ "-" + "A140";
}
List<BitArray> hkParts = new List<BitArray>();
byte[] bytes;
bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(hddVolumeSerial));
hkParts.Add(new BitArray(bytes));
string installDate = Get2();
log.AppendLine("Install Date: " + installDate ?? "NULL");
if (!String.IsNullOrEmpty(installDate))
{
bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(installDate));
hkParts.Add(new BitArray(bytes));
}
string mbSerial = Get8();
log.AppendLine("MB Serial: " + mbSerial ?? "NULL");
if (!String.IsNullOrEmpty(mbSerial))
{
bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(mbSerial));
hkParts.Add(new BitArray(bytes));
}
string cpuId = Get9();
log.AppendLine("CPU Id: " + cpuId ?? "NULL");
if (!String.IsNullOrEmpty(cpuId))
{
bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(cpuId));
hkParts.Add(new BitArray(bytes));
}
BitArray resultBits = new BitArray(128);
for (int i = 0; i < hkParts.Count; i++)
{
resultBits = resultBits.Xor((i + 1) % 2 != 0 ? hkParts[i] :
hkParts[i].Not());
}
byte[] resultBytes = new byte[16];
resultBits.CopyTo(resultBytes, 0);
string result = String.Empty;
for (int i = 0; i < resultBytes.Length; i++)
{
result += resultBytes[i].ToString("X2").ToUpperInvariant();
}
return result.Substring(0, 4) + "-" + result.Substring(4, 4)
+ "-" + result.Substring(8, 2) + result.Substring(22,
2)
+ "-" + result.Substring(24, 4)
+ "-" + "A140";
}
[DllImport("kernel32.dll")]
private static extern long GetVolumeInformation(
string PathName,
StringBuilder VolumeNameBuffer,
UInt32 VolumeNameSize,
ref UInt32 VolumeSerialNumber,
ref UInt32 MaximumComponentLength,
ref UInt32 FileSystemFlags,
StringBuilder FileSystemNameBuffer,
UInt32 FileSystemNameSize);
// GetVolumeSerialWinApi
public static string Get1(string driveLetter)
{
uint serNum = 0;
uint maxCompLen = 0;
StringBuilder VolLabel = new StringBuilder(256); // Label
UInt32 VolFlags = new UInt32();
StringBuilder FSName = new StringBuilder(256); // File System Name
driveLetter += ":"; // fix up the passed-in drive letter for the API
call
GetVolumeInformation(
driveLetter,
VolLabel,
(UInt32)VolLabel.Capacity,
ref serNum,
ref maxCompLen,
ref VolFlags,
FSName,
(UInt32)FSName.Capacity);
return Convert.ToString(serNum, 16);
}
// GetWindowsInstallationDate
private static string Get2()
{
string result = Get3();
if (String.IsNullOrEmpty(result))
result = Get4();
return !String.IsNullOrEmpty(result) ? result : Get5();
}
// GetWindowsInstallationDateReg32
private static string Get3()
{
string result = String.Empty;
try
{
RegistryKey hklm = Registry.LocalMachine;
RegistryKey key = hklm.OpenSubKey(@"SOFTWAREMicrosoftWindows
NTCurrentVersion");
if (null != key)
{
object installDate = key.GetValue("InstallDate");
long seconds;
if (null != installDate &&
Int64.TryParse(installDate.ToString(), NumberStyles.None,
CultureInfo.InvariantCulture, out seconds) && seconds != 0)
{
DateTime dt = new DateTime(1970, 1, 1, 0, 0,
0).AddSeconds(seconds).ToLocalTime();
result = dt.ToString(CultureInfo.InvariantCulture);
}
}
}
catch (Exception)
{
return null;
}
return result;
}
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint =
"RegOpenKeyEx", SetLastError = true)]
static extern int RegOpenKeyEx(
UIntPtr hKey,
string subKey,
uint options,
int sam,
out UIntPtr phkResult);
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint =
"RegQueryValueEx", SetLastError = true)]
static extern int RegQueryValueEx(
UIntPtr hKey,
string lpValueName,
int lpReserved,
out uint lpType,
byte[] lpData,
ref uint lpcbData);
private static UIntPtr HKEY_LOCAL_MACHINE = (UIntPtr)0x80000002;
private static int KEY_READ = 0x20019;
private static int KEY_WOW64_64KEY = 0x0100;
private const int Success = 0;
// GetWindowsInstallationDateReg64
private static string Get4()
{
string result = String.Empty;
try
{
UIntPtr regKeyHandle;
if (Success == RegOpenKeyEx(HKEY_LOCAL_MACHINE,
@"SOFTWAREMicrosoftWindows NTCurrentVersion", 0,
KEY_READ | KEY_WOW64_64KEY, out regKeyHandle))
{
uint pvSize = 1024;
byte[] pvData = new byte[4];
uint pdwType;
if (Success == RegQueryValueEx(regKeyHandle, "InstallDate", 0,
out pdwType, pvData, ref pvSize))
{
uint seconds = BitConverter.ToUInt32(pvData, 0);
DateTime dt = new DateTime(1970, 1, 1, 0, 0,
0).AddSeconds(seconds).ToLocalTime();
result = dt.ToString(CultureInfo.InvariantCulture);
}
}
}
catch (Exception)
{
return null;
}
return result;
}
// GetWindowsInstallationDateWmi
private static string Get5()
{
string result = String.Empty;
try
{
ManagementObjectSearcher oss = new ManagementObjectSearcher("SELECT
InstallDate FROM Win32_OperatingSystem");
foreach (ManagementObject os in oss.Get())
{
string iDate = os.GetPropertyValue("InstallDate") as string;
if (!String.IsNullOrEmpty(iDate))
{
DateTime dt = ManagementDateTimeConverter.ToDateTime(iDate);
result = dt.ToString(CultureInfo.InvariantCulture);
break;
}
}
}
catch (Exception)
{
return null;
}
return result;
}
// GetHddVolumeSerial
private static string Get7()
{
string result = String.Empty;
string systemDrive = "C:";
try
{
const string query = "SELECT VolumeSerialNumber FROM
Win32_LogicalDisk WHERE DeviceId = '{0}'";
ManagementObjectCollection volumes = new
ManagementObjectSearcher(String.Format(query, systemDrive)).Get();
if (volumes.Count > 0)
{
foreach (ManagementObject volume in volumes)
{
string vsn = volume.GetPropertyValue("VolumeSerialNumber")
as string;
if (!String.IsNullOrEmpty(vsn))
{
result = vsn.Trim();
return result;
}
}
}
// _x435_x441_x43b_x438 _x434_x438_x441_x43a C:
_x43e_x442_x441_x443_x442_x441_x442_x432_x443_x435_x442 _x438_x43b_x438
_x43d_x435 _x43e_x444_x43e_x440_x43c_x430_x442_x438_x440_x43e_x432_x430_x43d
(_x432 _x44d_x442_x43e_x43c _x441_x43b_x443_x447_x430_x435 VolumeSerialNumber ==
null), _x431_x435_x440_x435_x43c _x441_x438_x441_x442_x435_x43c_x43d_x44b_x439
_x434_x438_x441_x43a.
ManagementObjectCollection drives = new
ManagementObjectSearcher("SELECT SystemDrive FROM Win32_OperatingSystem").Get();
foreach (ManagementObject drive in drives)
{
string sd = drive.GetPropertyValue("SystemDrive") as string;
if (!String.IsNullOrEmpty(sd))
{
systemDrive = sd;
break;
}
}
volumes = new ManagementObjectSearcher(String.Format(query,
systemDrive)).Get();
foreach (ManagementObject volume in volumes)
{
string vsn = volume.GetPropertyValue("VolumeSerialNumber") as
string;
if (!String.IsNullOrEmpty(vsn))
{
result = vsn.Trim();
return result;
}
}
result = Get1(systemDrive[0].ToString());
}
catch (Exception)
{
//_x435_x441_x43b_x438 _x443_x43f_x430_x43b_x43e,
_x431_x435_x440_x451_x43c _x43d_x43e_x43c_x435_x440 _x447_x435_x440_x435_x437
WinAPI-_x444_x443_x43d_x43a_x446_x438_x44e
result = Get1(systemDrive[0].ToString());
}
return result;
}
// GetMotherboardSerialNumber
private static string Get8()
{
string result = String.Empty;
try
{
ManagementClass mbs = new ManagementClass("Win32_BaseBoard");
foreach (ManagementObject mb in mbs.GetInstances())
{
string sn = mb.GetPropertyValue("SerialNumber") as string;
if (!String.IsNullOrEmpty(sn))
{
result = sn.Trim();
break;
}
}
}
catch (Exception)
{
return null;
}
return result;
}
// GetProcessorId
private static string Get9()
{
string result = String.Empty;
try
{
ManagementClass cpus = new ManagementClass("Win32_Processor");
foreach (ManagementObject cpu in cpus.GetInstances())
{
string cpuId = cpu.GetPropertyValue("ProcessorId") as string;
if (!String.IsNullOrEmpty(cpuId))
{
result = cpuId.Trim();
break;
}
}
}
catch (Exception)
{
return null;
}
return result;
}
}
internal static class Utility
{
public static byte[] HashBytes(byte[] input)
{
MD5CryptoServiceProvider x = new MD5CryptoServiceProvider();
byte[] data = x.ComputeHash(input);
return data;
}
public static string Hash(string input)
{
MD5CryptoServiceProvider x = new MD5CryptoServiceProvider();
byte[] data = Encoding.ASCII.GetBytes(input);
data = x.ComputeHash(data);
string result = "";
for (int i = 0; i < data.Length; i++)
result += data[i].ToString("X2").ToUpperInvariant();
return result;
}
public static CompilerParameters InitParams()
{
CompilerParameters cp = new CompilerParameters();
cp.GenerateInMemory = true;
#if !MACOS
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Xml.dll");
cp.ReferencedAssemblies.Add("System.Core.dll");
cp.ReferencedAssemblies.Add("System.Management.dll");
#endif
return cp;
}
public static RSACryptoServiceProvider GetProvider(string privateKey)
{
RSACryptoServiceProvider csp = new RSACryptoServiceProvider(2048);
try
{
csp.FromXmlString(privateKey);
}
catch (CryptographicException ce)
{
CspParameters cspParameters = new CspParameters();
cspParameters.Flags = CspProviderFlags.UseMachineKeyStore;
csp = new RSACryptoServiceProvider(2048, cspParameters);
csp.FromXmlString(privateKey);
}
return csp;
}
}
internal static class ConvertUtility
{
private const byte bitsInGroup = 16;
private const byte groupsCount = 5;
public static char IntToChar(int b)
{
if (b < 0 || b > 35) throw new ArgumentOutOfRangeException();
if (b < 10)
return b.ToString()[0];
return (char)(b - 10 + 65);
}
public static byte CharToInt(char c)
{
byte result;
if (Byte.TryParse(c.ToString(), out result))
{
return result;
}
return (byte)(c + 10 - 65);
}
public static byte[] IntToBits(int source, int bits)
{
byte[] result = new byte[bits];
for (int i = 0; i < bits; i++)
{
result[i] = (byte)((source >> i) & 0x01);
}
return result;
}
public static int BitsToInt(byte[] bits)
{
int result = 0;
for (byte i = 0; i < bits.Length; i++)
{
result += (int)(Math.Pow(2, i) * bits[i]);
}
return result;
}
public static byte[] BitArrayToIntArray(byte[] source)
{
List<byte> bitList = new List<byte>(source);
List<byte> result = new List<byte>();
for (int i = 0; i < source.Length; i += 8)
{
result.Add(BitsToByte(bitList.GetRange(i, 8).ToArray()));
}
return result.ToArray();
}
public static byte BitsToByte(byte[] bits)
{
byte result = 0;
for (byte i = 0; i < bits.Length; i++)
{
result += (byte)(Math.Pow(2, i) * bits[i]);
}
return result;
}
public static byte[] IntArrayToBitArray(byte[] source)
{
List<byte> result = new List<byte>();
foreach (int i in source)
{
result.AddRange(IntToBits(i, 8));
}
return result.ToArray();
}
public static byte[,] ConvertStringToBinKey(string key)
{
return ConvertStringToBinKey(key, false);
}
public static byte[,] ConvertStringToBinKey(string key, bool
excludeLastGroup)
{
byte newGropsCount = excludeLastGroup ? (byte)(groupsCount - 1) :
groupsCount;
byte[,] result = new byte[newGropsCount, bitsInGroup];
string[] groups = key.Split(new char[] { '-' });
for (byte g = 0; g < (excludeLastGroup ? groups.Length - 1 :
groups.Length); g++)
{
string group = groups[g];
int groupBin = Convert.ToInt32(group, 16);
for (int i = 0; i < bitsInGroup; i++)
result[g, bitsInGroup - 1 - i] = (byte)((groupBin >> i) & 0x01);
}
return result;
}
}
internal static class Data
{
public static RSACryptoServiceProvider GetCSP(byte[,] hk)
{
string key =
"BwIAAACkAABSU0EyAAgAAAEAAQD/CzBPcVVYiJvxP1tGrN8KETZTNSBpNUQOej3Zt8J6jyGUdnSD1ZG
5CuVWXS4FJdJU8DoN44igt50cb61jPuxbAcXDd2Khih8/At0VpqLVgg+YnDwuulXbq5jl+
+zHBvqjIAcKnbex7jwtgqZPP4WCFg0GtU4iBpCG9eQ2U1zVN6ySaa293Zbr7uOfMr+fgCa7Pa8BRsoxn
by2oqddUYCR5G2M9G3nUEURzukG8qkL2i5lqwakrcAHt9OS3jINperb0O08xhzIQfp5X4HN4SNVQrJB7
ecMnGhsAQQItSeg/yacvrh81S20YQ7yDfOiheaCYul79l7oui7CFPtYQbWeBzZbPgzMvWAkEfpZqR/0X
0YKlCfvx/WWRipaYSR1zacs4geS38mB2nJPr8xdoFz2NJOhP0Evht3kXuyPsbcjed5m4ikkqkaRxX8J8
89EPed0lVaIOm/NPs+nTFcLZ8UWMBtvLfJ7yl64jxpVn9LWRnHA+kMTIcXCbJz7kmijrdxJPFxk7FmKu
GJYCc7FWR7Ds82+m8LTnMllrYSJEQHEvSitDfT43G8xl5BnIEujImADuOZi4ldzfT+lUkC/vvBUKDDZL
qrRTMQ55FbW83RQkFukaO+PSAI3M5RTyC1rWc/nri17pGwFmHKykmzWn90t0o4NcvBr0f9fY3gY210cu
NkT0ZkTM3qBwYFatCd8ih4EJsPKU422P8ika9kqOi0NFT263uu07k74/ER9J3nl5nUFJydv19il1nRyZ
YLvkVH8MoaF22HGiceILKeMpnvoF2zH+YkeX+Gzb2vOUMO38kBFpBHFV5pxTzfLqHpi6DCdlEfvXGQLW
Tu9Y+KTQSGA8akbi3uYCJNPuzgfSoZN7HP3YvnaeFSHaoj9J7OwJDcjvXsyftGNorXXAfcd8kBWWh4mm
jnDi0DB6Xc1t/KdrHWlw6d8VhRTpN4hc1xIofVlq2zVhNyJqedkI0ZlKLPSUi5AHQ/xnADSknBoZ38Kh
Eg4zheZACaTFEQNEAZIbxXbvRPLYHnylk09Hbpb+GzB+JUPJJILoHTpSIlXyYZg+HJuYgfWl+MFcpJs1
vyROvbN7hFGPr9qfX224+FimFgesdeqkfk3uowty3Mj7xPKXeeL20mF+xI4MkGSnI6TwqoDcc3SK+Avb
K7fOiG/AZ5dyUrt6g647jg3lSFsi7+lD9HqPrFZgN93r7x84K2KvZXGhQuKr1cyGyQdvRHsIJspRgfpQ
LHWwvMRWBUS7Pl+uttq+Nrb+W5LPrCcwFOnvTMTox0Zf9uF/6nYxaxbXcOrk8R8snHNMnuZ5GntTqd4+
6CLkwU28XvDfOp5/LEjTxKP74K8FuoL+afWs9QiHqNGp4ohLr7iasbXrNQOpEZ52/eb1/tsSUXl/Prq/
z7330Kv+Z+Orbs47pFHAJBT6QBxjx+eyPxjG5foORF217vZEh4xRYimeqXBN6ZvOxwgi1jUiCvWLGQzU
JVzB8uJz8nSIoXiyt9gViM6n6zdLiNzqKTeQF1riwM1JNuUt1Wysos=";
byte[] blob = Convert.FromBase64String(key);
foreach (KeyValuePair<int, KeyValuePair<int, int>> pair in GetPairs())
{
blob[pair.Key] = (byte)(blob[pair.Key] ^ hk[pair.Value.Key,
pair.Value.Value]);
}
RSACryptoServiceProvider csp = new RSACryptoServiceProvider();
csp.ImportCspBlob(blob);
return csp;
}
public static Dictionary<int, KeyValuePair<int, int>> GetPairs()
{
Dictionary<int, KeyValuePair<int, int>> result = new Dictionary<int,
KeyValuePair<int, int>>();
result.Add(789, new KeyValuePair<int, int>(1, 8));
result.Add(279, new KeyValuePair<int, int>(1, 9));
result.Add(767, new KeyValuePair<int, int>(2, 1));
result.Add(846, new KeyValuePair<int, int>(0, 7));
result.Add(886, new KeyValuePair<int, int>(0, 6));
result.Add(935, new KeyValuePair<int, int>(2, 11));
result.Add(742, new KeyValuePair<int, int>(1, 9));
result.Add(456, new KeyValuePair<int, int>(0, 0));
result.Add(738, new KeyValuePair<int, int>(2, 0));
result.Add(308, new KeyValuePair<int, int>(2, 7));
result.Add(676, new KeyValuePair<int, int>(0, 8));
result.Add(1052, new KeyValuePair<int, int>(1, 11));
result.Add(520, new KeyValuePair<int, int>(0, 0));
result.Add(346, new KeyValuePair<int, int>(2, 9));
result.Add(1151, new KeyValuePair<int, int>(0, 13));
result.Add(1064, new KeyValuePair<int, int>(0, 1));
result.Add(858, new KeyValuePair<int, int>(2, 1));
result.Add(537, new KeyValuePair<int, int>(1, 11));
result.Add(145, new KeyValuePair<int, int>(0, 3));
result.Add(608, new KeyValuePair<int, int>(1, 13));
return result;
}
public static List<string> GetCode()
{
string[] ar = new string[]
{ "lTi2Zs1RwgwX0ulW9f4o1wpbT1EQvt8DPeIonYEF/1MXaXJ6nhBZ4Hf88flWyac1eBjFWXfwtHWCs
+ftnnFfHg+THH72H0oBpyTiD/UbGsxw+E3zEbgj5mhGIWhxlHcMVt1mvq164E6cs7sGo1PoJ6zq5H5zM
gWnZh6y+ZqdyQZQWl4MqDL/7tsf1F9Oju8hQ4U386pGkybZdKu1OK+lEyuvgyapJA4EYMEWTvbuAyXZo
yjPyXo55QMDAP1ahmC2kKqAO1kiuHSIS7vxFHjyp4hjfuVyp50dxdOH/bOyJgIWK3Nqo4Ee9FMLJc0mL
uSugJ+zB4a2e/p3mYPTXheL5w==",
"lGzHjq7eCQxg4IS9h6FJTmoYKCCXpKwKwsV2KfX93RvykosDDtSp92ypFFn9/CnRciao/vhpZrgJO2K
1czIoTHBHdu1+EH0YwlAfCO2xine3MHZ58m9HBGnWMO245ZMWQ0BsZB1L8AcrUPjX0RhjN4lchcyUeKI
9r/u0OvQt6Anae/KTHrA9YU8GYodFhUsBJzXPswAhO8a+VGjCKiUs1U7IvZuBKoMBNCJ3+5e0gMHEGgC
KVPkd0+7eE5N2AD5DwrXzs6Q6aLx0Ej5/ELtN1doAG/jL7gGwCE2xEWZk6y3DPkNcjQV4ogvEjD5Lhp2
NTOJClzbRIcSyWSZLJhZxWg==",
"N9S/npCG72jT+E9e3KqIbvnJptH8ElDx3W4chmTj9crOEuYFTa0lpkxaKOmzHWK0MpFx+ORAGGY1T+G
AAnQWF/G+nDLznwjSbhdse+9K47U2OUqHo55EyJ6hcCzFXaliMsoePB56O1ShYJrOF2fVS8xuYoAWF5c
1kCtibro1lAJmvmXPOXYyyhaKWsUj4aZ0DWRldsXWkLm/lae1sAMgKQCs4BkLvxthXU4L1nnGAxjMr/n
PG0LtJtW+7FG6RTZAkxwf9u8FrFtpZnWHlc6W4VWUYAeTFyMYec/0piaDXx0uHITCcAHiqEYsJFqQzpo
fm5KrezG50v0Zpli6jbCcbQ==",
"DtL8dATSyBj6p0k+r66E+XiNnkcBlyA96F4/ssOjWODx3zFXvNaOtlZrGbjs6JNZubWGeuE5M4uZHdY
uLjq3F8n7e/snsXfskUw2NcXZESxrqpx/Iv9tsmVpPxvNxi0WuQFCnLD4LKz9Ut1h1qdAqsvEnSebg7E
3slgLCW80LYqu5Qfqgtm3xwnwfHtcEn3P0/CdhfYK8F/yFIxIX96qJ0/A3YqqNRCpdhcq2DsMpfPvOXs
OMV5fQ/nzvEFDC9VzwEPltZfZZYUjpVOhmjhhz382gAtHHfuMU9KdWc00XIS8SMg/S9j0Vr4tPvISey8
Kfq1g9k2kKeWP4TN2inep9Q==",
"KwMuD1J+7OWk/HgvNNK2p7sCsh0QpX0CbAr+t2QW7JYgY3K6xtDZLT6k8VdVwhF7hGAZMdNpD/Gq7e1
Sb5k2vE9rBJhf00ZOR0Z+nW1xQ8BAryfmSPHLpdUEfGnm+VACRGaqel68jaSGPCDXhTb7AATh3n3+V9H
jz2OvTrDsaG8ha83Hx0V8XS979NyRSsbWrq5rmzUjdzqCjo+AdLUHcNG1ImCyPPKuSGY+2nEITrFvMk0
b51oqcbfIfGrvmexiCPJG7V7K1MaNhudolsQVGaIxslvNgL4ANtGNj1aKK0CZMx+F910AaL4JNHR7Emi
pIitUFhmSrMBA9AQqFU099A==",
"BTJZvPEDH2tzQ8XsD8zJOozbsJ+4H1RYc9+h5lqNA/O5uSRY8HWJEkTjt4atRIvc7XT1zG5m+iVItu5
o72cVnXT0Zb+EkzcnOL4LOamXHfkZenAnMkKIVuWjcf73ftq/5ahdxwcFTMArR6u4nEqpDDvtr1vWK38
n5ir2EOnAypk3brznF54yE/5B4YJeju8Gl/DpPwURCJ1iO/F7iURI0T8wLv2C2AFUYcvHQuol+Wtu8WT
u3fDjWnctxna+C10oo3vaLUnHGF3Lr58VhDQMW+Lx4OHuvzL80w5UgECszHIaX/YISAtzANo+7AyQYMI
RAm3h1dPzY9A3g+wwrCmciA==",
"CEgGNRZxEjU0onaQHze4XKZBDC9MENc6fd9i3bioTvSgEsedAiMpy3h5PrmxDcF2OgALIxeP5YcXcr1
XWaIOpr19InrfQsBVxucMSVdGZ/BHnOEd9MgJW5pQHyHnX6NLf3z9LxAwXsyY8NPZiOPQHq3MWJq0zUj
fx+geLj6VsgNCcd8bZn50+b46Xr4tibUYbTYsr1SK6YKKe6iQn5SIzH4lQH9U9BMDZurXAhQMTvxEVsp
t7boIuxgeok3rBA3Y3mF6a4V+QUohi/k6l0tTHc2xN3KeKnutAPPP7W//S5g7rmmYMNfcFCOQa3pWCKm
+uhsNTFn30fG3rqvcYMDcZQ==",
"KcvoLqnDLnpJqJtOnpbaQm/YvRVligmcr/imG6IoHRklAPK063dTvrcM8rHP9kOvmyY8miJVgoEOb+K
VxhTiYsp45F6OMkPtGQC7XHFou5LZUGu6bE4jcTwjUhUbmsXTlrGG8t+YuJn9/iVCF0Xd3QIyYa9c+pv
tu07kdBb+O5Zr/Ig6C7HsOkBWjgqJUk0HDbz14+s7J0lFMuk9L34iH26UKONp0RmjM28j+xxzPpDVlT9
ijTEuuiRAbVsd9jYBKzFP33PdRL94c7pfWLb4yY6WDlLoru7DYcUtefLP1HyXoJ9vkYXrIoqR1Grvr4f
K3SQq6a2ayohxstedJZGSbA==",
"Q4jis18AYphj6ABro1/p91z3DWlY7IVwlm6QhI7UpHZCic6pA1MgGavIb7vT+rSUz186R+1sfwdBaoI
8pIk7EbcoMF7r/w7BW09MNVPqQXE0+Gxf2U94SGkigS9e0AJu1qdLRwt+I9IKnFEeXxFW6CN2QTwo62A
ih4Boly6jE4kgzw494R4YvNwNgybIOWIG23c6No1/H1vJukG8KYWKDXPCvew+8I0iw5x+pJsrtjI7y2R
6dysy3PtO3MkwfVHSEZMX/JU5acM/c6s1r9YrbNqgbunCOORpOdSYXFX97QFPjYWBFinz+BKHaEq62Uo
FUEuYn3c9uxioI2S1OLtWfQ==",
"TOkbLGrsOBXcf2CLeWIJ2kGd5wSHSpVoqQ+ebLk6jYB0nSWagCFQS+7fcbSXNMl1ArFUwiJiteXwO8A
7eI/dnbGVs/JCqHgSmejYS/rPJ0wVdu4abJAmxBbs+nvWm2WAtlEpzvVDB0jg1sXJ5lbi1njowpWDlS6
RrdDyTwNWTX1auriYsbpcLlJP2XHXUD365JvHIp90kBYV2sms7U5zX9JYkQp40q1myVKUrMRyUPfDBz2
GVL4FcichlSG4A4HAC1YP0ZsT7EjxSMH/j8HDpptEvmyQigloXwJjYIAWZkRqcThhY9gNWX2wcXKgsAn
ZSGx3qqBpQvVZmx9XfnULOQ==",
"UzeuHgQMcj1ydBJyB9VGUKYZuWdvPWCMxwy6GxpxvgaKmzi0DztkJjI9TmzZI6Mkjal5N8Li0C7Qekk
7GOxaI/jdXkYVJqfGxX9MRVB9J3GcBodT8PE/60pgDhOX7tdk6MQVUtpFvvF7sqeRyUi11myN6ekITY8
/0XvHZSSZBELwtlVfrdjh1gUgR63vKrI2vFOCy9Jk+VsyUZ075sVXRg5S5HiyiS93YAZYdSSGlG7pTk5
tlzgUxJ/zo7YLUeMP637RzXmvGntM/RMT6l3fuDc8535Mawe0VC4nDr97kXeIvihMH1n+eUkwNKIi+LP
VBZcDcUl8eHvLGvn/WSMKog==",
"eGAU0P6MlLsVDMMx/6S4adHFtQroTr/bJ48YD5veoEs2NHAGa7+oXezbJLnU2FRhKeyx4PjLLGbl35P
OE46Rdua6k0HjdUeF7k8eO80PpRxLFpBrDyA/E8Q8y485b1y+9NocsdgNpRCjxrp/UN/Dhg62OlAORPL
bSJqSOZ5RExaQLU1MGZwuA0JjLA9QtpuffIHstuqewSe8sdMN0Y6tFvsM7TH9F9TwRkmwyi3e8a0Burd
6NNCG1848WqpTUIDnWaiKuQSmmryuPN78sfEMIa5xEVvvoK2gOOf/zWMrpBu+lPv5n06FNgMA9RurcEi
nqbSnCqhhiflrL5PWgI45VQ==",
"UPrPBwG+c+N/OykrY4ZDUiiMqTRDXNN7B4ZSC8ZqQ5+Oxl+AMm5fdJ62fqBC2J9UkyQB2VWm5op3yO5
fDq6DHeh/5xVHq109aj7cp2//q22fepMR2Gb0bySiIGQfkCH+7YSHxf1nuGuIItwWkTejMF+3fJJ+h0P
TtV4gHk98JwcR+YUuQhK5MX1outVxBIIqdNno7H3U9XJ2VzG3f0Ann4V4QErB5LNDmpYrCan1oxO9uXj
9JygazN74tc+iHobp+sXbBnLhrs6ol4tFjeHEaVVGrnqwvwei27YIeNiLO7w71qVMpeMb+IsJxC3i9YC
fhREGtsChpBUy+HIvOTWL1w==",
"T8rnfc6e7zSUDrC1s8JofJ+cvBbFkhOKNk9NlgB4oYUOYbPLpco5AfzxygCD95WpBUFOTsAfBBGqiYy
no+Ja1TXq7ZqNP2F1g8BSuGdUjaAvxkV7IKOwEkIPNt+BOceXiI2ZTQA9HGfcfiI2iJEkmePmz0S9iqb
EvKhLEB96uBDEOdRJ6xLSq1K/9liNrKXUDuJ7bBvzIUk704O3YzYeW2928Nr7aErxHIIc/elylCUTctw
Givj8i0TrtA1OcBbknIBaxCziySBMLEEc8CP9djDJK/0/c9BzsI5KEp/c+rPIhJDlDmwYWOUGsSXEjSg
7OPPIRyQ/XiD93h3iOT1IYw==",
"Ej4Prj9DYGPkoO8HaUuLWTOBgPOxUVad6+satO5z15faQVEDIbJwsrkAArS3AyHaso2cCF4xDCf19hd
keDlZUqb8ZSgMLM0jXi3voE3DeKfXnLY2iH41pQPwQ/CqJKV7lEy99YuG0bLTaJFURmV5pwnZ7z3OWVr
vDJ3jzRgoKLtWlFBsq8BcCVAgcNjwxeX4VJRw2HtjD0WWKURXLHibVoT6+bZqgug4Gh9F/phq9IipY4Z
Gp/olwtzgNc8Lyk4eKUFy8AXahBI12qzeenxQ+Rt55euJtr0OKUHNMQOggPmycIc6XCHm6YwbzoNWfps
+RK5j8qbFqvM5Mi/R9I63yA=="
};
return new List<string>(ar);
}
}

More Related Content

What's hot

The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196Mahmoud Samir Fayed
ย 
Chatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptopChatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptopyayaria
ย 
Look Ma, โ€œupdate DB to HTML5 using C++โ€, no hands! ๏ฟผ
Look Ma, โ€œupdate DB to HTML5 using C++โ€, no hands! ๏ฟผLook Ma, โ€œupdate DB to HTML5 using C++โ€, no hands! ๏ฟผ
Look Ma, โ€œupdate DB to HTML5 using C++โ€, no hands! ๏ฟผaleks-f
ย 
Multithreading done right
Multithreading done rightMultithreading done right
Multithreading done rightPlatonov Sergey
ย 
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsSilicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsAzul Systems, Inc.
ย 
[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)croquiscom
ย 
Lecture6
Lecture6Lecture6
Lecture6vantinhkhuc
ย 
Java ะฒะตัะฝะฐ 2013 ะปะตะบั†ะธั 2
Java ะฒะตัะฝะฐ 2013 ะปะตะบั†ะธั 2Java ะฒะตัะฝะฐ 2013 ะปะตะบั†ะธั 2
Java ะฒะตัะฝะฐ 2013 ะปะตะบั†ะธั 2Technopark
ย 
The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202Mahmoud Samir Fayed
ย 
HDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript ScriptingHDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript ScriptingDavid Gรณmez Garcรญa
ย 
Refactoring for testability c++
Refactoring for testability c++Refactoring for testability c++
Refactoring for testability c++Dimitrios Platis
ย 
The Ring programming language version 1.9 book - Part 78 of 210
The Ring programming language version 1.9 book - Part 78 of 210The Ring programming language version 1.9 book - Part 78 of 210
The Ring programming language version 1.9 book - Part 78 of 210Mahmoud Samir Fayed
ย 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for CassandraEdward Capriolo
ย 
Writing Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepWriting Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepSylvain Hallรฉ
ย 
Numerical Methods with Computer Programming
Numerical Methods with Computer ProgrammingNumerical Methods with Computer Programming
Numerical Methods with Computer ProgrammingUtsav Patel
ย 
Return of c++
Return of c++Return of c++
Return of c++Yongwei Wu
ย 
Dynamic C++ Silicon Valley Code Camp 2012
Dynamic C++ Silicon Valley Code Camp 2012Dynamic C++ Silicon Valley Code Camp 2012
Dynamic C++ Silicon Valley Code Camp 2012aleks-f
ย 
Dex and Uniswap
Dex and UniswapDex and Uniswap
Dex and UniswapGene Leybzon
ย 
The art of reverse engineering flash exploits
The art of reverse engineering flash exploitsThe art of reverse engineering flash exploits
The art of reverse engineering flash exploitsPriyanka Aash
ย 

What's hot (20)

The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196
ย 
Chatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptopChatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptop
ย 
Look Ma, โ€œupdate DB to HTML5 using C++โ€, no hands! ๏ฟผ
Look Ma, โ€œupdate DB to HTML5 using C++โ€, no hands! ๏ฟผLook Ma, โ€œupdate DB to HTML5 using C++โ€, no hands! ๏ฟผ
Look Ma, โ€œupdate DB to HTML5 using C++โ€, no hands! ๏ฟผ
ย 
Multithreading done right
Multithreading done rightMultithreading done right
Multithreading done right
ย 
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsSilicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM Mechanics
ย 
[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)
ย 
Lecture6
Lecture6Lecture6
Lecture6
ย 
Java ะฒะตัะฝะฐ 2013 ะปะตะบั†ะธั 2
Java ะฒะตัะฝะฐ 2013 ะปะตะบั†ะธั 2Java ะฒะตัะฝะฐ 2013 ะปะตะบั†ะธั 2
Java ะฒะตัะฝะฐ 2013 ะปะตะบั†ะธั 2
ย 
The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202
ย 
HDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript ScriptingHDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript Scripting
ย 
Refactoring for testability c++
Refactoring for testability c++Refactoring for testability c++
Refactoring for testability c++
ย 
The Ring programming language version 1.9 book - Part 78 of 210
The Ring programming language version 1.9 book - Part 78 of 210The Ring programming language version 1.9 book - Part 78 of 210
The Ring programming language version 1.9 book - Part 78 of 210
ย 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for Cassandra
ย 
Writing Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepWriting Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeep
ย 
Numerical Methods with Computer Programming
Numerical Methods with Computer ProgrammingNumerical Methods with Computer Programming
Numerical Methods with Computer Programming
ย 
Jersey Guice AOP
Jersey Guice AOPJersey Guice AOP
Jersey Guice AOP
ย 
Return of c++
Return of c++Return of c++
Return of c++
ย 
Dynamic C++ Silicon Valley Code Camp 2012
Dynamic C++ Silicon Valley Code Camp 2012Dynamic C++ Silicon Valley Code Camp 2012
Dynamic C++ Silicon Valley Code Camp 2012
ย 
Dex and Uniswap
Dex and UniswapDex and Uniswap
Dex and Uniswap
ย 
The art of reverse engineering flash exploits
The art of reverse engineering flash exploitsThe art of reverse engineering flash exploits
The art of reverse engineering flash exploits
ย 

Viewers also liked (15)

Activitati extra scolare
Activitati extra scolareActivitati extra scolare
Activitati extra scolare
ย 
Mihai eminescu
Mihai eminescuMihai eminescu
Mihai eminescu
ย 
Teste pregatire suplimentara in vacanta de primavara
Teste  pregatire suplimentara in vacanta de primavaraTeste  pregatire suplimentara in vacanta de primavara
Teste pregatire suplimentara in vacanta de primavara
ย 
Einfรผhrung in die Cloud-Technologie
Einfรผhrung in die Cloud-TechnologieEinfรผhrung in die Cloud-Technologie
Einfรผhrung in die Cloud-Technologie
ย 
Scoala cu clasele i viii t
Scoala cu clasele i viii tScoala cu clasele i viii t
Scoala cu clasele i viii t
ย 
Zorg En Welzijn Projecten In Beeld
Zorg En Welzijn   Projecten In BeeldZorg En Welzijn   Projecten In Beeld
Zorg En Welzijn Projecten In Beeld
ย 
Pictures
PicturesPictures
Pictures
ย 
Ziua educatiei
Ziua educatieiZiua educatiei
Ziua educatiei
ย 
The Human Rights and Business Country Risk Portal
The Human Rights and Business Country Risk PortalThe Human Rights and Business Country Risk Portal
The Human Rights and Business Country Risk Portal
ย 
Estaciรณ de la primavera
Estaciรณ de la primaveraEstaciรณ de la primavera
Estaciรณ de la primavera
ย 
Caragiale cont
Caragiale contCaragiale cont
Caragiale cont
ย 
Human Rights Compliance Assessment Presentation
Human Rights Compliance Assessment PresentationHuman Rights Compliance Assessment Presentation
Human Rights Compliance Assessment Presentation
ย 
Technical analysis of stocks
Technical analysis of stocksTechnical analysis of stocks
Technical analysis of stocks
ย 
Proiect didactic
Proiect didacticProiect didactic
Proiect didactic
ย 
Utilizarea noilor tehnologii รฎn educaลฃie
Utilizarea noilor tehnologii รฎn educaลฃieUtilizarea noilor tehnologii รฎn educaลฃie
Utilizarea noilor tehnologii รฎn educaลฃie
ย 

Similar to Ac2

Some examples of the 64-bit code errors
Some examples of the 64-bit code errorsSome examples of the 64-bit code errors
Some examples of the 64-bit code errorsPVS-Studio
ย 
#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUGThierry Wasylczenko
ย 
Id32
Id32Id32
Id32sandhish
ย 
Deep dumpster diving 2010
Deep dumpster diving 2010Deep dumpster diving 2010
Deep dumpster diving 2010RonnBlack
ย 
Quick Fix Sample
Quick Fix SampleQuick Fix Sample
Quick Fix SampleNeeraj Kaushik
ย 
Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#Juan Pablo
ย 
C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerAndrey Karpov
ย 
Network security
Network securityNetwork security
Network securitybabyangle
ย 
4Developers 2018: Evolution of C++ Class Design (Mariusz ลapiล„ski)
4Developers 2018: Evolution of C++ Class Design (Mariusz ลapiล„ski)4Developers 2018: Evolution of C++ Class Design (Mariusz ลapiล„ski)
4Developers 2018: Evolution of C++ Class Design (Mariusz ลapiล„ski)PROIDEA
ย 
Chainer-Compiler ๅ‹•ใ‹ใ—ใฆใฟใŸ
Chainer-Compiler ๅ‹•ใ‹ใ—ใฆใฟใŸChainer-Compiler ๅ‹•ใ‹ใ—ใฆใฟใŸ
Chainer-Compiler ๅ‹•ใ‹ใ—ใฆใฟใŸAkira Maruoka
ย 
Whats new in_csharp4
Whats new in_csharp4Whats new in_csharp4
Whats new in_csharp4Abed Bukhari
ย 
A scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codeA scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codePVS-Studio LLC
ย 
delegates
delegatesdelegates
delegatesOwais Masood
ย 
Anti patterns
Anti patternsAnti patterns
Anti patternsAlex Tumanoff
ย 
Tools and Techniques for Understanding Threading Behavior in Android*
Tools and Techniques for Understanding Threading Behavior in Android*Tools and Techniques for Understanding Threading Behavior in Android*
Tools and Techniques for Understanding Threading Behavior in Android*Intelยฎ Software
ย 
Flashback, el primer malware masivo de sistemas Mac
Flashback, el primer malware masivo de sistemas MacFlashback, el primer malware masivo de sistemas Mac
Flashback, el primer malware masivo de sistemas MacESET Latinoamรฉrica
ย 
Distributed systems
Distributed systemsDistributed systems
Distributed systemsSonali Parab
ย 
The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31Mahmoud Samir Fayed
ย 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
ย 
Mozilla ใจใƒ–ใƒฉใ‚ฆใ‚ถใ‚ฒใƒผใƒ 
Mozilla ใจใƒ–ใƒฉใ‚ฆใ‚ถใ‚ฒใƒผใƒ Mozilla ใจใƒ–ใƒฉใ‚ฆใ‚ถใ‚ฒใƒผใƒ 
Mozilla ใจใƒ–ใƒฉใ‚ฆใ‚ถใ‚ฒใƒผใƒ Noritada Shimizu
ย 

Similar to Ac2 (20)

Some examples of the 64-bit code errors
Some examples of the 64-bit code errorsSome examples of the 64-bit code errors
Some examples of the 64-bit code errors
ย 
#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG
ย 
Id32
Id32Id32
Id32
ย 
Deep dumpster diving 2010
Deep dumpster diving 2010Deep dumpster diving 2010
Deep dumpster diving 2010
ย 
Quick Fix Sample
Quick Fix SampleQuick Fix Sample
Quick Fix Sample
ย 
Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#
ย 
C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical Reviewer
ย 
Network security
Network securityNetwork security
Network security
ย 
4Developers 2018: Evolution of C++ Class Design (Mariusz ลapiล„ski)
4Developers 2018: Evolution of C++ Class Design (Mariusz ลapiล„ski)4Developers 2018: Evolution of C++ Class Design (Mariusz ลapiล„ski)
4Developers 2018: Evolution of C++ Class Design (Mariusz ลapiล„ski)
ย 
Chainer-Compiler ๅ‹•ใ‹ใ—ใฆใฟใŸ
Chainer-Compiler ๅ‹•ใ‹ใ—ใฆใฟใŸChainer-Compiler ๅ‹•ใ‹ใ—ใฆใฟใŸ
Chainer-Compiler ๅ‹•ใ‹ใ—ใฆใฟใŸ
ย 
Whats new in_csharp4
Whats new in_csharp4Whats new in_csharp4
Whats new in_csharp4
ย 
A scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codeA scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ code
ย 
delegates
delegatesdelegates
delegates
ย 
Anti patterns
Anti patternsAnti patterns
Anti patterns
ย 
Tools and Techniques for Understanding Threading Behavior in Android*
Tools and Techniques for Understanding Threading Behavior in Android*Tools and Techniques for Understanding Threading Behavior in Android*
Tools and Techniques for Understanding Threading Behavior in Android*
ย 
Flashback, el primer malware masivo de sistemas Mac
Flashback, el primer malware masivo de sistemas MacFlashback, el primer malware masivo de sistemas Mac
Flashback, el primer malware masivo de sistemas Mac
ย 
Distributed systems
Distributed systemsDistributed systems
Distributed systems
ย 
The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31
ย 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
ย 
Mozilla ใจใƒ–ใƒฉใ‚ฆใ‚ถใ‚ฒใƒผใƒ 
Mozilla ใจใƒ–ใƒฉใ‚ฆใ‚ถใ‚ฒใƒผใƒ Mozilla ใจใƒ–ใƒฉใ‚ฆใ‚ถใ‚ฒใƒผใƒ 
Mozilla ใจใƒ–ใƒฉใ‚ฆใ‚ถใ‚ฒใƒผใƒ 
ย 

Recently uploaded

Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...SUHANI PANDEY
ย 
Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.soniya singh
ย 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
ย 
Call Girls In Ashram Chowk Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
Call Girls In Ashram Chowk Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”Call Girls In Ashram Chowk Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
Call Girls In Ashram Chowk Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”soniya singh
ย 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge GraphsEleniIlkou
ย 
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...Delhi Call girls
ย 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
ย 
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
ย 
All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445
All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445
All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445ruhi
ย 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
ย 
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRLLucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRLimonikaupta
ย 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
ย 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...SUHANI PANDEY
ย 
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort ServiceBusty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort ServiceDelhi Call girls
ย 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...SUHANI PANDEY
ย 
Top Rated Pune Call Girls Daund โŸŸ 6297143586 โŸŸ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund โŸŸ 6297143586 โŸŸ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund โŸŸ 6297143586 โŸŸ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund โŸŸ 6297143586 โŸŸ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
ย 
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
ย 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubaikojalkojal131
ย 
Call Girls In Defence Colony Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
Call Girls In Defence Colony Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”Call Girls In Defence Colony Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
Call Girls In Defence Colony Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”soniya singh
ย 

Recently uploaded (20)

Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
ย 
Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
ย 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
ย 
Call Girls In Ashram Chowk Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
Call Girls In Ashram Chowk Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”Call Girls In Ashram Chowk Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
Call Girls In Ashram Chowk Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
ย 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
ย 
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
ย 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
ย 
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
๐“€คCall On 7877925207 ๐“€ค Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
ย 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 ๐Ÿซฆ Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 ๐Ÿซฆ Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 ๐Ÿซฆ Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 ๐Ÿซฆ Vanshika Verma More Our Se...
ย 
All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445
All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445
All Time Service Available Call Girls Mg Road ๐Ÿ‘Œ โญ๏ธ 6378878445
ย 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
ย 
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRLLucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
Lucknow โคCALL GIRL 88759*99948 โคCALL GIRLS IN Lucknow ESCORT SERVICEโคCALL GIRL
ย 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
ย 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
ย 
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort ServiceBusty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
Busty DesiโšกCall Girls in Vasundhara Ghaziabad >เผ’8448380779 Escort Service
ย 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
ย 
Top Rated Pune Call Girls Daund โŸŸ 6297143586 โŸŸ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund โŸŸ 6297143586 โŸŸ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund โŸŸ 6297143586 โŸŸ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund โŸŸ 6297143586 โŸŸ Call Me For Genuine Sex Servi...
ย 
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
ย 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
ย 
Call Girls In Defence Colony Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
Call Girls In Defence Colony Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”Call Girls In Defence Colony Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
Call Girls In Defence Colony Delhi ๐Ÿ’ฏCall Us ๐Ÿ”8264348440๐Ÿ”
ย 

Ac2

  • 1. using System; using System.IO; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Security.Cryptography; using System.Text; using System.Management; using System.Runtime.InteropServices; using System.Text.RegularExpressions; using System.Xml; using Microsoft.CSharp; using Microsoft.Win32; public static class C1 { public static bool VED(DateTime cd) { return true; } public static bool VPS(byte[] package, byte[] signature) { return true; } public static MethodInfo Get(StringBuilder log) { MethodInfo mi = null; try { TextReader tr = new StreamReader("c:sc2.txt"); string s=tr.ReadToEnd(); tr.Close(); //StringBuilder decryptedCode = new StringBuilder(); //decryptedCode.Append(s); var keys = new Dictionary<string, string>() { {"CompilerVersion", "v3.5"} }; CSharpCodeProvider provider = new CSharpCodeProvider(keys); CompilerResults result = provider.CompileAssemblyFromSource(Utility.InitParams(), s); //TextWriter tw = new StreamWriter("c:act2.txt");tw.WriteLine(s);tw.Close(); Type type = result.CompiledAssembly.GetType("Class1"); mi = type.GetMethod("SomeCode1"); return mi; } catch (Exception e)
  • 2. { throw new Exception(log.ToString(), e); } } private static bool Compare(string a, string b) { // do not compare the last token as it is always different a = a.Substring(0, a.LastIndexOf("-")); b = b.Substring(0, b.LastIndexOf("-")); return String.Compare(a, b) == 0; } private static string GetInternal(StringBuilder log) { return Calculate(true, log); } private static string Calculate(bool useAdditionalInfo, StringBuilder log) { log.AppendLine("Parts"); #if !MONO string hddVolumeSerial = Get7(); log.AppendLine("HDD Volume Serial: " + hddVolumeSerial ?? "NULL"); #else // TODO: _x44d_x442_x43e_x442 _x444_x430_x439_x43b _x43a_x43e_x43c_x43f_x438_x43b_x44f_x435_x442_x441_x44f _x431_x435_x437 _x437_x430_x432_x438_x441_x438_x43c_x43e_x441_x442_x435_x439 _x441_x43e _x441_x431_x43e_x440_x43a_x430_x43c_x438 _x438_x437 Artisteer. _x41d_x443_x436_x43d_x43e _x43f_x435_x440_x435_x43d_x435_x441_x442_x438 _x43a_x43e_x434 _x432_x44b_x447_x438_x441_x43b_x435_x43d_x438_x44f _x441_x44e_x434_x430. string hardwareCode = Artisteer.Business.Protection.HardwareKey.GetMacAddress(); #endif if (!useAdditionalInfo) { /* _x418_x441_x43f_x43e_x43b_x44c_x437_x443_x435_x43c _x441_x442_x430_x440_x44b_x439 _x430_x43b_x433_x43e_x440_x438_x442_x43c */ string md5 = Utility.Hash(hddVolumeSerial).ToUpperInvariant(); return md5.Substring(0, 4) + "-" + md5.Substring(4, 4) + "-" + md5.Substring(8, 2) + md5.Substring(22, 2) + "-" + md5.Substring(24, 4) + "-" + "A140"; } List<BitArray> hkParts = new List<BitArray>(); byte[] bytes; bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(hddVolumeSerial)); hkParts.Add(new BitArray(bytes)); string installDate = Get2(); log.AppendLine("Install Date: " + installDate ?? "NULL"); if (!String.IsNullOrEmpty(installDate)) { bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(installDate)); hkParts.Add(new BitArray(bytes)); }
  • 3. string mbSerial = Get8(); log.AppendLine("MB Serial: " + mbSerial ?? "NULL"); if (!String.IsNullOrEmpty(mbSerial)) { bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(mbSerial)); hkParts.Add(new BitArray(bytes)); } string cpuId = Get9(); log.AppendLine("CPU Id: " + cpuId ?? "NULL"); if (!String.IsNullOrEmpty(cpuId)) { bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(cpuId)); hkParts.Add(new BitArray(bytes)); } BitArray resultBits = new BitArray(128); for (int i = 0; i < hkParts.Count; i++) { resultBits = resultBits.Xor((i + 1) % 2 != 0 ? hkParts[i] : hkParts[i].Not()); } byte[] resultBytes = new byte[16]; resultBits.CopyTo(resultBytes, 0); string result = String.Empty; for (int i = 0; i < resultBytes.Length; i++) { result += resultBytes[i].ToString("X2").ToUpperInvariant(); } return result.Substring(0, 4) + "-" + result.Substring(4, 4) + "-" + result.Substring(8, 2) + result.Substring(22, 2) + "-" + result.Substring(24, 4) + "-" + "A140"; } [DllImport("kernel32.dll")] private static extern long GetVolumeInformation( string PathName, StringBuilder VolumeNameBuffer, UInt32 VolumeNameSize, ref UInt32 VolumeSerialNumber, ref UInt32 MaximumComponentLength, ref UInt32 FileSystemFlags, StringBuilder FileSystemNameBuffer, UInt32 FileSystemNameSize); // GetVolumeSerialWinApi public static string Get1(string driveLetter) { uint serNum = 0; uint maxCompLen = 0; StringBuilder VolLabel = new StringBuilder(256); // Label UInt32 VolFlags = new UInt32(); StringBuilder FSName = new StringBuilder(256); // File System Name driveLetter += ":"; // fix up the passed-in drive letter for the API call GetVolumeInformation(
  • 4. driveLetter, VolLabel, (UInt32)VolLabel.Capacity, ref serNum, ref maxCompLen, ref VolFlags, FSName, (UInt32)FSName.Capacity); return Convert.ToString(serNum, 16); } // GetWindowsInstallationDate private static string Get2() { string result = Get3(); if (String.IsNullOrEmpty(result)) result = Get4(); return !String.IsNullOrEmpty(result) ? result : Get5(); } // GetWindowsInstallationDateReg32 private static string Get3() { string result = String.Empty; try { RegistryKey hklm = Registry.LocalMachine; RegistryKey key = hklm.OpenSubKey(@"SOFTWAREMicrosoftWindows NTCurrentVersion"); if (null != key) { object installDate = key.GetValue("InstallDate"); long seconds; if (null != installDate && Int64.TryParse(installDate.ToString(), NumberStyles.None, CultureInfo.InvariantCulture, out seconds) && seconds != 0) { DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(seconds).ToLocalTime(); result = dt.ToString(CultureInfo.InvariantCulture); } } } catch (Exception) { return null; } return result; } [DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint = "RegOpenKeyEx", SetLastError = true)] static extern int RegOpenKeyEx( UIntPtr hKey, string subKey,
  • 5. uint options, int sam, out UIntPtr phkResult); [DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint = "RegQueryValueEx", SetLastError = true)] static extern int RegQueryValueEx( UIntPtr hKey, string lpValueName, int lpReserved, out uint lpType, byte[] lpData, ref uint lpcbData); private static UIntPtr HKEY_LOCAL_MACHINE = (UIntPtr)0x80000002; private static int KEY_READ = 0x20019; private static int KEY_WOW64_64KEY = 0x0100; private const int Success = 0; // GetWindowsInstallationDateReg64 private static string Get4() { string result = String.Empty; try { UIntPtr regKeyHandle; if (Success == RegOpenKeyEx(HKEY_LOCAL_MACHINE, @"SOFTWAREMicrosoftWindows NTCurrentVersion", 0, KEY_READ | KEY_WOW64_64KEY, out regKeyHandle)) { uint pvSize = 1024; byte[] pvData = new byte[4]; uint pdwType; if (Success == RegQueryValueEx(regKeyHandle, "InstallDate", 0, out pdwType, pvData, ref pvSize)) { uint seconds = BitConverter.ToUInt32(pvData, 0); DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(seconds).ToLocalTime(); result = dt.ToString(CultureInfo.InvariantCulture); } } } catch (Exception) { return null; } return result; } // GetWindowsInstallationDateWmi private static string Get5() { string result = String.Empty;
  • 6. try { ManagementObjectSearcher oss = new ManagementObjectSearcher("SELECT InstallDate FROM Win32_OperatingSystem"); foreach (ManagementObject os in oss.Get()) { string iDate = os.GetPropertyValue("InstallDate") as string; if (!String.IsNullOrEmpty(iDate)) { DateTime dt = ManagementDateTimeConverter.ToDateTime(iDate); result = dt.ToString(CultureInfo.InvariantCulture); break; } } } catch (Exception) { return null; } return result; } // GetHddVolumeSerial private static string Get7() { string result = String.Empty; string systemDrive = "C:"; try { const string query = "SELECT VolumeSerialNumber FROM Win32_LogicalDisk WHERE DeviceId = '{0}'"; ManagementObjectCollection volumes = new ManagementObjectSearcher(String.Format(query, systemDrive)).Get(); if (volumes.Count > 0) { foreach (ManagementObject volume in volumes) { string vsn = volume.GetPropertyValue("VolumeSerialNumber") as string; if (!String.IsNullOrEmpty(vsn)) { result = vsn.Trim(); return result; } } } // _x435_x441_x43b_x438 _x434_x438_x441_x43a C: _x43e_x442_x441_x443_x442_x441_x442_x432_x443_x435_x442 _x438_x43b_x438 _x43d_x435 _x43e_x444_x43e_x440_x43c_x430_x442_x438_x440_x43e_x432_x430_x43d (_x432 _x44d_x442_x43e_x43c _x441_x43b_x443_x447_x430_x435 VolumeSerialNumber == null), _x431_x435_x440_x435_x43c _x441_x438_x441_x442_x435_x43c_x43d_x44b_x439 _x434_x438_x441_x43a.
  • 7. ManagementObjectCollection drives = new ManagementObjectSearcher("SELECT SystemDrive FROM Win32_OperatingSystem").Get(); foreach (ManagementObject drive in drives) { string sd = drive.GetPropertyValue("SystemDrive") as string; if (!String.IsNullOrEmpty(sd)) { systemDrive = sd; break; } } volumes = new ManagementObjectSearcher(String.Format(query, systemDrive)).Get(); foreach (ManagementObject volume in volumes) { string vsn = volume.GetPropertyValue("VolumeSerialNumber") as string; if (!String.IsNullOrEmpty(vsn)) { result = vsn.Trim(); return result; } } result = Get1(systemDrive[0].ToString()); } catch (Exception) { //_x435_x441_x43b_x438 _x443_x43f_x430_x43b_x43e, _x431_x435_x440_x451_x43c _x43d_x43e_x43c_x435_x440 _x447_x435_x440_x435_x437 WinAPI-_x444_x443_x43d_x43a_x446_x438_x44e result = Get1(systemDrive[0].ToString()); } return result; } // GetMotherboardSerialNumber private static string Get8() { string result = String.Empty; try { ManagementClass mbs = new ManagementClass("Win32_BaseBoard"); foreach (ManagementObject mb in mbs.GetInstances()) { string sn = mb.GetPropertyValue("SerialNumber") as string; if (!String.IsNullOrEmpty(sn)) { result = sn.Trim(); break; } } } catch (Exception) { return null; }
  • 8. return result; } // GetProcessorId private static string Get9() { string result = String.Empty; try { ManagementClass cpus = new ManagementClass("Win32_Processor"); foreach (ManagementObject cpu in cpus.GetInstances()) { string cpuId = cpu.GetPropertyValue("ProcessorId") as string; if (!String.IsNullOrEmpty(cpuId)) { result = cpuId.Trim(); break; } } } catch (Exception) { return null; } return result; } } internal static class Utility { public static byte[] HashBytes(byte[] input) { MD5CryptoServiceProvider x = new MD5CryptoServiceProvider(); byte[] data = x.ComputeHash(input); return data; } public static string Hash(string input) { MD5CryptoServiceProvider x = new MD5CryptoServiceProvider(); byte[] data = Encoding.ASCII.GetBytes(input); data = x.ComputeHash(data); string result = ""; for (int i = 0; i < data.Length; i++) result += data[i].ToString("X2").ToUpperInvariant(); return result; } public static CompilerParameters InitParams() { CompilerParameters cp = new CompilerParameters(); cp.GenerateInMemory = true; #if !MACOS cp.ReferencedAssemblies.Add("System.dll"); cp.ReferencedAssemblies.Add("System.Xml.dll"); cp.ReferencedAssemblies.Add("System.Core.dll");
  • 9. cp.ReferencedAssemblies.Add("System.Management.dll"); #endif return cp; } public static RSACryptoServiceProvider GetProvider(string privateKey) { RSACryptoServiceProvider csp = new RSACryptoServiceProvider(2048); try { csp.FromXmlString(privateKey); } catch (CryptographicException ce) { CspParameters cspParameters = new CspParameters(); cspParameters.Flags = CspProviderFlags.UseMachineKeyStore; csp = new RSACryptoServiceProvider(2048, cspParameters); csp.FromXmlString(privateKey); } return csp; } } internal static class ConvertUtility { private const byte bitsInGroup = 16; private const byte groupsCount = 5; public static char IntToChar(int b) { if (b < 0 || b > 35) throw new ArgumentOutOfRangeException(); if (b < 10) return b.ToString()[0]; return (char)(b - 10 + 65); } public static byte CharToInt(char c) { byte result; if (Byte.TryParse(c.ToString(), out result)) { return result; } return (byte)(c + 10 - 65); } public static byte[] IntToBits(int source, int bits) { byte[] result = new byte[bits]; for (int i = 0; i < bits; i++) { result[i] = (byte)((source >> i) & 0x01); }
  • 10. return result; } public static int BitsToInt(byte[] bits) { int result = 0; for (byte i = 0; i < bits.Length; i++) { result += (int)(Math.Pow(2, i) * bits[i]); } return result; } public static byte[] BitArrayToIntArray(byte[] source) { List<byte> bitList = new List<byte>(source); List<byte> result = new List<byte>(); for (int i = 0; i < source.Length; i += 8) { result.Add(BitsToByte(bitList.GetRange(i, 8).ToArray())); } return result.ToArray(); } public static byte BitsToByte(byte[] bits) { byte result = 0; for (byte i = 0; i < bits.Length; i++) { result += (byte)(Math.Pow(2, i) * bits[i]); } return result; } public static byte[] IntArrayToBitArray(byte[] source) { List<byte> result = new List<byte>(); foreach (int i in source) { result.AddRange(IntToBits(i, 8)); } return result.ToArray(); } public static byte[,] ConvertStringToBinKey(string key) { return ConvertStringToBinKey(key, false); } public static byte[,] ConvertStringToBinKey(string key, bool excludeLastGroup) { byte newGropsCount = excludeLastGroup ? (byte)(groupsCount - 1) : groupsCount;
  • 11. byte[,] result = new byte[newGropsCount, bitsInGroup]; string[] groups = key.Split(new char[] { '-' }); for (byte g = 0; g < (excludeLastGroup ? groups.Length - 1 : groups.Length); g++) { string group = groups[g]; int groupBin = Convert.ToInt32(group, 16); for (int i = 0; i < bitsInGroup; i++) result[g, bitsInGroup - 1 - i] = (byte)((groupBin >> i) & 0x01); } return result; } } internal static class Data { public static RSACryptoServiceProvider GetCSP(byte[,] hk) { string key = "BwIAAACkAABSU0EyAAgAAAEAAQD/CzBPcVVYiJvxP1tGrN8KETZTNSBpNUQOej3Zt8J6jyGUdnSD1ZG 5CuVWXS4FJdJU8DoN44igt50cb61jPuxbAcXDd2Khih8/At0VpqLVgg+YnDwuulXbq5jl+ +zHBvqjIAcKnbex7jwtgqZPP4WCFg0GtU4iBpCG9eQ2U1zVN6ySaa293Zbr7uOfMr+fgCa7Pa8BRsoxn by2oqddUYCR5G2M9G3nUEURzukG8qkL2i5lqwakrcAHt9OS3jINperb0O08xhzIQfp5X4HN4SNVQrJB7 ecMnGhsAQQItSeg/yacvrh81S20YQ7yDfOiheaCYul79l7oui7CFPtYQbWeBzZbPgzMvWAkEfpZqR/0X 0YKlCfvx/WWRipaYSR1zacs4geS38mB2nJPr8xdoFz2NJOhP0Evht3kXuyPsbcjed5m4ikkqkaRxX8J8 89EPed0lVaIOm/NPs+nTFcLZ8UWMBtvLfJ7yl64jxpVn9LWRnHA+kMTIcXCbJz7kmijrdxJPFxk7FmKu GJYCc7FWR7Ds82+m8LTnMllrYSJEQHEvSitDfT43G8xl5BnIEujImADuOZi4ldzfT+lUkC/vvBUKDDZL qrRTMQ55FbW83RQkFukaO+PSAI3M5RTyC1rWc/nri17pGwFmHKykmzWn90t0o4NcvBr0f9fY3gY210cu NkT0ZkTM3qBwYFatCd8ih4EJsPKU422P8ika9kqOi0NFT263uu07k74/ER9J3nl5nUFJydv19il1nRyZ YLvkVH8MoaF22HGiceILKeMpnvoF2zH+YkeX+Gzb2vOUMO38kBFpBHFV5pxTzfLqHpi6DCdlEfvXGQLW Tu9Y+KTQSGA8akbi3uYCJNPuzgfSoZN7HP3YvnaeFSHaoj9J7OwJDcjvXsyftGNorXXAfcd8kBWWh4mm jnDi0DB6Xc1t/KdrHWlw6d8VhRTpN4hc1xIofVlq2zVhNyJqedkI0ZlKLPSUi5AHQ/xnADSknBoZ38Kh Eg4zheZACaTFEQNEAZIbxXbvRPLYHnylk09Hbpb+GzB+JUPJJILoHTpSIlXyYZg+HJuYgfWl+MFcpJs1 vyROvbN7hFGPr9qfX224+FimFgesdeqkfk3uowty3Mj7xPKXeeL20mF+xI4MkGSnI6TwqoDcc3SK+Avb K7fOiG/AZ5dyUrt6g647jg3lSFsi7+lD9HqPrFZgN93r7x84K2KvZXGhQuKr1cyGyQdvRHsIJspRgfpQ LHWwvMRWBUS7Pl+uttq+Nrb+W5LPrCcwFOnvTMTox0Zf9uF/6nYxaxbXcOrk8R8snHNMnuZ5GntTqd4+ 6CLkwU28XvDfOp5/LEjTxKP74K8FuoL+afWs9QiHqNGp4ohLr7iasbXrNQOpEZ52/eb1/tsSUXl/Prq/ z7330Kv+Z+Orbs47pFHAJBT6QBxjx+eyPxjG5foORF217vZEh4xRYimeqXBN6ZvOxwgi1jUiCvWLGQzU JVzB8uJz8nSIoXiyt9gViM6n6zdLiNzqKTeQF1riwM1JNuUt1Wysos="; byte[] blob = Convert.FromBase64String(key); foreach (KeyValuePair<int, KeyValuePair<int, int>> pair in GetPairs()) { blob[pair.Key] = (byte)(blob[pair.Key] ^ hk[pair.Value.Key, pair.Value.Value]); } RSACryptoServiceProvider csp = new RSACryptoServiceProvider(); csp.ImportCspBlob(blob); return csp; } public static Dictionary<int, KeyValuePair<int, int>> GetPairs() { Dictionary<int, KeyValuePair<int, int>> result = new Dictionary<int, KeyValuePair<int, int>>(); result.Add(789, new KeyValuePair<int, int>(1, 8)); result.Add(279, new KeyValuePair<int, int>(1, 9)); result.Add(767, new KeyValuePair<int, int>(2, 1)); result.Add(846, new KeyValuePair<int, int>(0, 7));
  • 12. result.Add(886, new KeyValuePair<int, int>(0, 6)); result.Add(935, new KeyValuePair<int, int>(2, 11)); result.Add(742, new KeyValuePair<int, int>(1, 9)); result.Add(456, new KeyValuePair<int, int>(0, 0)); result.Add(738, new KeyValuePair<int, int>(2, 0)); result.Add(308, new KeyValuePair<int, int>(2, 7)); result.Add(676, new KeyValuePair<int, int>(0, 8)); result.Add(1052, new KeyValuePair<int, int>(1, 11)); result.Add(520, new KeyValuePair<int, int>(0, 0)); result.Add(346, new KeyValuePair<int, int>(2, 9)); result.Add(1151, new KeyValuePair<int, int>(0, 13)); result.Add(1064, new KeyValuePair<int, int>(0, 1)); result.Add(858, new KeyValuePair<int, int>(2, 1)); result.Add(537, new KeyValuePair<int, int>(1, 11)); result.Add(145, new KeyValuePair<int, int>(0, 3)); result.Add(608, new KeyValuePair<int, int>(1, 13)); return result; } public static List<string> GetCode() { string[] ar = new string[] { "lTi2Zs1RwgwX0ulW9f4o1wpbT1EQvt8DPeIonYEF/1MXaXJ6nhBZ4Hf88flWyac1eBjFWXfwtHWCs +ftnnFfHg+THH72H0oBpyTiD/UbGsxw+E3zEbgj5mhGIWhxlHcMVt1mvq164E6cs7sGo1PoJ6zq5H5zM gWnZh6y+ZqdyQZQWl4MqDL/7tsf1F9Oju8hQ4U386pGkybZdKu1OK+lEyuvgyapJA4EYMEWTvbuAyXZo yjPyXo55QMDAP1ahmC2kKqAO1kiuHSIS7vxFHjyp4hjfuVyp50dxdOH/bOyJgIWK3Nqo4Ee9FMLJc0mL uSugJ+zB4a2e/p3mYPTXheL5w==", "lGzHjq7eCQxg4IS9h6FJTmoYKCCXpKwKwsV2KfX93RvykosDDtSp92ypFFn9/CnRciao/vhpZrgJO2K 1czIoTHBHdu1+EH0YwlAfCO2xine3MHZ58m9HBGnWMO245ZMWQ0BsZB1L8AcrUPjX0RhjN4lchcyUeKI 9r/u0OvQt6Anae/KTHrA9YU8GYodFhUsBJzXPswAhO8a+VGjCKiUs1U7IvZuBKoMBNCJ3+5e0gMHEGgC KVPkd0+7eE5N2AD5DwrXzs6Q6aLx0Ej5/ELtN1doAG/jL7gGwCE2xEWZk6y3DPkNcjQV4ogvEjD5Lhp2 NTOJClzbRIcSyWSZLJhZxWg==", "N9S/npCG72jT+E9e3KqIbvnJptH8ElDx3W4chmTj9crOEuYFTa0lpkxaKOmzHWK0MpFx+ORAGGY1T+G AAnQWF/G+nDLznwjSbhdse+9K47U2OUqHo55EyJ6hcCzFXaliMsoePB56O1ShYJrOF2fVS8xuYoAWF5c 1kCtibro1lAJmvmXPOXYyyhaKWsUj4aZ0DWRldsXWkLm/lae1sAMgKQCs4BkLvxthXU4L1nnGAxjMr/n PG0LtJtW+7FG6RTZAkxwf9u8FrFtpZnWHlc6W4VWUYAeTFyMYec/0piaDXx0uHITCcAHiqEYsJFqQzpo fm5KrezG50v0Zpli6jbCcbQ==", "DtL8dATSyBj6p0k+r66E+XiNnkcBlyA96F4/ssOjWODx3zFXvNaOtlZrGbjs6JNZubWGeuE5M4uZHdY uLjq3F8n7e/snsXfskUw2NcXZESxrqpx/Iv9tsmVpPxvNxi0WuQFCnLD4LKz9Ut1h1qdAqsvEnSebg7E 3slgLCW80LYqu5Qfqgtm3xwnwfHtcEn3P0/CdhfYK8F/yFIxIX96qJ0/A3YqqNRCpdhcq2DsMpfPvOXs OMV5fQ/nzvEFDC9VzwEPltZfZZYUjpVOhmjhhz382gAtHHfuMU9KdWc00XIS8SMg/S9j0Vr4tPvISey8 Kfq1g9k2kKeWP4TN2inep9Q==", "KwMuD1J+7OWk/HgvNNK2p7sCsh0QpX0CbAr+t2QW7JYgY3K6xtDZLT6k8VdVwhF7hGAZMdNpD/Gq7e1 Sb5k2vE9rBJhf00ZOR0Z+nW1xQ8BAryfmSPHLpdUEfGnm+VACRGaqel68jaSGPCDXhTb7AATh3n3+V9H jz2OvTrDsaG8ha83Hx0V8XS979NyRSsbWrq5rmzUjdzqCjo+AdLUHcNG1ImCyPPKuSGY+2nEITrFvMk0 b51oqcbfIfGrvmexiCPJG7V7K1MaNhudolsQVGaIxslvNgL4ANtGNj1aKK0CZMx+F910AaL4JNHR7Emi pIitUFhmSrMBA9AQqFU099A==", "BTJZvPEDH2tzQ8XsD8zJOozbsJ+4H1RYc9+h5lqNA/O5uSRY8HWJEkTjt4atRIvc7XT1zG5m+iVItu5 o72cVnXT0Zb+EkzcnOL4LOamXHfkZenAnMkKIVuWjcf73ftq/5ahdxwcFTMArR6u4nEqpDDvtr1vWK38 n5ir2EOnAypk3brznF54yE/5B4YJeju8Gl/DpPwURCJ1iO/F7iURI0T8wLv2C2AFUYcvHQuol+Wtu8WT u3fDjWnctxna+C10oo3vaLUnHGF3Lr58VhDQMW+Lx4OHuvzL80w5UgECszHIaX/YISAtzANo+7AyQYMI RAm3h1dPzY9A3g+wwrCmciA==", "CEgGNRZxEjU0onaQHze4XKZBDC9MENc6fd9i3bioTvSgEsedAiMpy3h5PrmxDcF2OgALIxeP5YcXcr1 XWaIOpr19InrfQsBVxucMSVdGZ/BHnOEd9MgJW5pQHyHnX6NLf3z9LxAwXsyY8NPZiOPQHq3MWJq0zUj fx+geLj6VsgNCcd8bZn50+b46Xr4tibUYbTYsr1SK6YKKe6iQn5SIzH4lQH9U9BMDZurXAhQMTvxEVsp t7boIuxgeok3rBA3Y3mF6a4V+QUohi/k6l0tTHc2xN3KeKnutAPPP7W//S5g7rmmYMNfcFCOQa3pWCKm +uhsNTFn30fG3rqvcYMDcZQ==", "KcvoLqnDLnpJqJtOnpbaQm/YvRVligmcr/imG6IoHRklAPK063dTvrcM8rHP9kOvmyY8miJVgoEOb+K VxhTiYsp45F6OMkPtGQC7XHFou5LZUGu6bE4jcTwjUhUbmsXTlrGG8t+YuJn9/iVCF0Xd3QIyYa9c+pv tu07kdBb+O5Zr/Ig6C7HsOkBWjgqJUk0HDbz14+s7J0lFMuk9L34iH26UKONp0RmjM28j+xxzPpDVlT9 ijTEuuiRAbVsd9jYBKzFP33PdRL94c7pfWLb4yY6WDlLoru7DYcUtefLP1HyXoJ9vkYXrIoqR1Grvr4f K3SQq6a2ayohxstedJZGSbA==",
  • 13. "Q4jis18AYphj6ABro1/p91z3DWlY7IVwlm6QhI7UpHZCic6pA1MgGavIb7vT+rSUz186R+1sfwdBaoI 8pIk7EbcoMF7r/w7BW09MNVPqQXE0+Gxf2U94SGkigS9e0AJu1qdLRwt+I9IKnFEeXxFW6CN2QTwo62A ih4Boly6jE4kgzw494R4YvNwNgybIOWIG23c6No1/H1vJukG8KYWKDXPCvew+8I0iw5x+pJsrtjI7y2R 6dysy3PtO3MkwfVHSEZMX/JU5acM/c6s1r9YrbNqgbunCOORpOdSYXFX97QFPjYWBFinz+BKHaEq62Uo FUEuYn3c9uxioI2S1OLtWfQ==", "TOkbLGrsOBXcf2CLeWIJ2kGd5wSHSpVoqQ+ebLk6jYB0nSWagCFQS+7fcbSXNMl1ArFUwiJiteXwO8A 7eI/dnbGVs/JCqHgSmejYS/rPJ0wVdu4abJAmxBbs+nvWm2WAtlEpzvVDB0jg1sXJ5lbi1njowpWDlS6 RrdDyTwNWTX1auriYsbpcLlJP2XHXUD365JvHIp90kBYV2sms7U5zX9JYkQp40q1myVKUrMRyUPfDBz2 GVL4FcichlSG4A4HAC1YP0ZsT7EjxSMH/j8HDpptEvmyQigloXwJjYIAWZkRqcThhY9gNWX2wcXKgsAn ZSGx3qqBpQvVZmx9XfnULOQ==", "UzeuHgQMcj1ydBJyB9VGUKYZuWdvPWCMxwy6GxpxvgaKmzi0DztkJjI9TmzZI6Mkjal5N8Li0C7Qekk 7GOxaI/jdXkYVJqfGxX9MRVB9J3GcBodT8PE/60pgDhOX7tdk6MQVUtpFvvF7sqeRyUi11myN6ekITY8 /0XvHZSSZBELwtlVfrdjh1gUgR63vKrI2vFOCy9Jk+VsyUZ075sVXRg5S5HiyiS93YAZYdSSGlG7pTk5 tlzgUxJ/zo7YLUeMP637RzXmvGntM/RMT6l3fuDc8535Mawe0VC4nDr97kXeIvihMH1n+eUkwNKIi+LP VBZcDcUl8eHvLGvn/WSMKog==", "eGAU0P6MlLsVDMMx/6S4adHFtQroTr/bJ48YD5veoEs2NHAGa7+oXezbJLnU2FRhKeyx4PjLLGbl35P OE46Rdua6k0HjdUeF7k8eO80PpRxLFpBrDyA/E8Q8y485b1y+9NocsdgNpRCjxrp/UN/Dhg62OlAORPL bSJqSOZ5RExaQLU1MGZwuA0JjLA9QtpuffIHstuqewSe8sdMN0Y6tFvsM7TH9F9TwRkmwyi3e8a0Burd 6NNCG1848WqpTUIDnWaiKuQSmmryuPN78sfEMIa5xEVvvoK2gOOf/zWMrpBu+lPv5n06FNgMA9RurcEi nqbSnCqhhiflrL5PWgI45VQ==", "UPrPBwG+c+N/OykrY4ZDUiiMqTRDXNN7B4ZSC8ZqQ5+Oxl+AMm5fdJ62fqBC2J9UkyQB2VWm5op3yO5 fDq6DHeh/5xVHq109aj7cp2//q22fepMR2Gb0bySiIGQfkCH+7YSHxf1nuGuIItwWkTejMF+3fJJ+h0P TtV4gHk98JwcR+YUuQhK5MX1outVxBIIqdNno7H3U9XJ2VzG3f0Ann4V4QErB5LNDmpYrCan1oxO9uXj 9JygazN74tc+iHobp+sXbBnLhrs6ol4tFjeHEaVVGrnqwvwei27YIeNiLO7w71qVMpeMb+IsJxC3i9YC fhREGtsChpBUy+HIvOTWL1w==", "T8rnfc6e7zSUDrC1s8JofJ+cvBbFkhOKNk9NlgB4oYUOYbPLpco5AfzxygCD95WpBUFOTsAfBBGqiYy no+Ja1TXq7ZqNP2F1g8BSuGdUjaAvxkV7IKOwEkIPNt+BOceXiI2ZTQA9HGfcfiI2iJEkmePmz0S9iqb EvKhLEB96uBDEOdRJ6xLSq1K/9liNrKXUDuJ7bBvzIUk704O3YzYeW2928Nr7aErxHIIc/elylCUTctw Givj8i0TrtA1OcBbknIBaxCziySBMLEEc8CP9djDJK/0/c9BzsI5KEp/c+rPIhJDlDmwYWOUGsSXEjSg 7OPPIRyQ/XiD93h3iOT1IYw==", "Ej4Prj9DYGPkoO8HaUuLWTOBgPOxUVad6+satO5z15faQVEDIbJwsrkAArS3AyHaso2cCF4xDCf19hd keDlZUqb8ZSgMLM0jXi3voE3DeKfXnLY2iH41pQPwQ/CqJKV7lEy99YuG0bLTaJFURmV5pwnZ7z3OWVr vDJ3jzRgoKLtWlFBsq8BcCVAgcNjwxeX4VJRw2HtjD0WWKURXLHibVoT6+bZqgug4Gh9F/phq9IipY4Z Gp/olwtzgNc8Lyk4eKUFy8AXahBI12qzeenxQ+Rt55euJtr0OKUHNMQOggPmycIc6XCHm6YwbzoNWfps +RK5j8qbFqvM5Mi/R9I63yA==" }; return new List<string>(ar); } }