C# implementation of ua-parser