var projectId = Guid.Parse("4C0694B3-9F9F-4CC4-8F90-CC8189364AEA");
var designId = Guid.Parse("85921F2B-8485-469B-BCA7-92B6480A3F16");
var versionId = Guid.Parse("C6EE47AB-8744-4F3B-A65E-D8FA25EF0CB9");
var importKey = "tAHFvBCACDBIEwIAIrBIBHrBEvvsEBIJABGBstJBwCCvBECwAJuvABGrsAGrAABrrHFItvrwuHGCFECJrssGCvsHErHuEIurA";
var unshiftedKey = $"{versionId}{(int)0}{designId}{projectId}".Replace("-", "");
var shiftedKey = ShiftAscii(importKey.ToArray(), -17);
Console.WriteLine(shiftedKey);
string ShiftAscii(char[] buffer, int shift)
for (var i = 0; i < buffer.Length; i++)
var shifted = Convert.ToInt32(buffer[i]) + shift;
if (shifted > char.MaxValue)
shifted -= char.MaxValue;
else if (shifted < char.MinValue)
shifted += char.MinValue;
buffer[i] = Convert.ToChar(shifted);
return new string(buffer);