Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ac2

66 views

Published on

assasa

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Ac2

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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); } }

×