Module refinery.lib.scripts.ps1.deobfuscation.typenames

.NET type member database for PowerShell deobfuscation.

Generated by temp/convert_types.py from PowerShell 5.1 reflection data. Do not edit manually — except for utility functions at the end of the file.

Expand source code Browse git
"""
.NET type member database for PowerShell deobfuscation.

Generated by temp/convert_types.py from PowerShell 5.1 reflection data.
Do not edit manually — except for utility functions at the end of the file.
"""
from __future__ import annotations

from refinery.lib.scripts import Node, Transformer
from refinery.lib.scripts.ps1.deobfuscation._helpers import (
    _get_command_name,
    _make_string_literal,
    _string_value,
)
from refinery.lib.scripts.ps1.model import (
    Expression,
    Ps1AssignmentExpression,
    Ps1CastExpression,
    Ps1CommandArgument,
    Ps1CommandArgumentKind,
    Ps1CommandInvocation,
    Ps1ForEachLoop,
    Ps1IndexExpression,
    Ps1IntegerLiteral,
    Ps1MemberAccess,
    Ps1ParameterDeclaration,
    Ps1ParenExpression,
    Ps1Pipeline,
    Ps1PipelineElement,
    Ps1ScopeModifier,
    Ps1StringLiteral,
    Ps1TypeExpression,
    Ps1UnaryExpression,
    Ps1Variable,
)

_TYPE_MEMBERS: dict[str, list[str]] = {
    'system.array': [
        'AsReadOnly',
        'BinarySearch',
        'Clear',
        'Clone',
        'ConstrainedCopy',
        'ConvertAll',
        'Copy',
        'CopyTo',
        'CreateInstance',
        'Empty',
        'Equals',
        'Exists',
        'Find',
        'FindAll',
        'FindIndex',
        'FindLast',
        'FindLastIndex',
        'ForEach',
        'GetEnumerator',
        'GetHashCode',
        'GetLength',
        'GetLongLength',
        'GetLowerBound',
        'GetType',
        'GetUpperBound',
        'GetValue',
        'IndexOf',
        'Initialize',
        'IsFixedSize',
        'IsReadOnly',
        'IsSynchronized',
        'LastIndexOf',
        'Length',
        'LongLength',
        'Rank',
        'Resize',
        'Reverse',
        'SetValue',
        'Sort',
        'SyncRoot',
        'ToString',
        'TrueForAll',
    ],
    'system.bitconverter': [
        'DoubleToInt64Bits',
        'Equals',
        'GetBytes',
        'GetHashCode',
        'GetType',
        'Int64BitsToDouble',
        'ToBoolean',
        'ToChar',
        'ToDouble',
        'ToInt16',
        'ToInt32',
        'ToInt64',
        'ToSingle',
        'ToString',
        'ToUInt16',
        'ToUInt32',
        'ToUInt64',
    ],
    'system.boolean': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.byte': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.char': [
        'CompareTo',
        'ConvertFromUtf32',
        'ConvertToUtf32',
        'Equals',
        'GetHashCode',
        'GetNumericValue',
        'GetType',
        'GetTypeCode',
        'GetUnicodeCategory',
        'IsControl',
        'IsDigit',
        'IsHighSurrogate',
        'IsLetter',
        'IsLetterOrDigit',
        'IsLowSurrogate',
        'IsLower',
        'IsNumber',
        'IsPunctuation',
        'IsSeparator',
        'IsSurrogate',
        'IsSurrogatePair',
        'IsSymbol',
        'IsUpper',
        'IsWhiteSpace',
        'Parse',
        'ToLower',
        'ToLowerInvariant',
        'ToString',
        'ToUpper',
        'ToUpperInvariant',
        'TryParse',
    ],
    'system.collections.arraylist': [
        'Adapter',
        'Add',
        'AddRange',
        'BinarySearch',
        'Capacity',
        'Clear',
        'Clone',
        'Contains',
        'CopyTo',
        'Count',
        'Equals',
        'FixedSize',
        'GetEnumerator',
        'GetHashCode',
        'GetRange',
        'GetType',
        'IndexOf',
        'Insert',
        'InsertRange',
        'IsFixedSize',
        'IsReadOnly',
        'IsSynchronized',
        'Item',
        'LastIndexOf',
        'ReadOnly',
        'Remove',
        'RemoveAt',
        'RemoveRange',
        'Repeat',
        'Reverse',
        'SetRange',
        'Sort',
        'SyncRoot',
        'Synchronized',
        'ToArray',
        'ToString',
        'TrimToSize',
    ],
    'system.collections.hashtable': [
        'Add',
        'Clear',
        'Clone',
        'Contains',
        'ContainsKey',
        'ContainsValue',
        'CopyTo',
        'Count',
        'Equals',
        'GetEnumerator',
        'GetHashCode',
        'GetObjectData',
        'GetType',
        'IsFixedSize',
        'IsReadOnly',
        'IsSynchronized',
        'Item',
        'Keys',
        'OnDeserialization',
        'Remove',
        'SyncRoot',
        'Synchronized',
        'ToString',
        'Values',
    ],
    'system.collections.queue': [
        'Clear',
        'Clone',
        'Contains',
        'CopyTo',
        'Count',
        'Dequeue',
        'Enqueue',
        'Equals',
        'GetEnumerator',
        'GetHashCode',
        'GetType',
        'IsSynchronized',
        'Peek',
        'SyncRoot',
        'Synchronized',
        'ToArray',
        'ToString',
        'TrimToSize',
    ],
    'system.collections.sortedlist': [
        'Add',
        'Capacity',
        'Clear',
        'Clone',
        'Contains',
        'ContainsKey',
        'ContainsValue',
        'CopyTo',
        'Count',
        'Equals',
        'GetByIndex',
        'GetEnumerator',
        'GetHashCode',
        'GetKey',
        'GetKeyList',
        'GetType',
        'GetValueList',
        'IndexOfKey',
        'IndexOfValue',
        'IsFixedSize',
        'IsReadOnly',
        'IsSynchronized',
        'Item',
        'Keys',
        'Remove',
        'RemoveAt',
        'SetByIndex',
        'SyncRoot',
        'Synchronized',
        'ToString',
        'TrimToSize',
        'Values',
    ],
    'system.collections.specialized.ordereddictionary': [
        'Add',
        'AsReadOnly',
        'Clear',
        'Contains',
        'CopyTo',
        'Count',
        'Equals',
        'GetEnumerator',
        'GetHashCode',
        'GetObjectData',
        'GetType',
        'Insert',
        'IsReadOnly',
        'Item',
        'Keys',
        'Remove',
        'RemoveAt',
        'ToString',
        'Values',
    ],
    'system.collections.stack': [
        'Clear',
        'Clone',
        'Contains',
        'CopyTo',
        'Count',
        'Equals',
        'GetEnumerator',
        'GetHashCode',
        'GetType',
        'IsSynchronized',
        'Peek',
        'Pop',
        'Push',
        'SyncRoot',
        'Synchronized',
        'ToArray',
        'ToString',
    ],
    'system.componentmodel.win32exception': [
        'Data',
        'Equals',
        'ErrorCode',
        'GetBaseException',
        'GetHashCode',
        'GetObjectData',
        'GetType',
        'HResult',
        'HelpLink',
        'InnerException',
        'Message',
        'NativeErrorCode',
        'Source',
        'StackTrace',
        'TargetSite',
        'ToString',
    ],
    'system.console': [
        'BackgroundColor',
        'Beep',
        'BufferHeight',
        'BufferWidth',
        'CapsLock',
        'Clear',
        'CursorLeft',
        'CursorSize',
        'CursorTop',
        'CursorVisible',
        'Equals',
        'Error',
        'ForegroundColor',
        'GetHashCode',
        'GetType',
        'In',
        'InputEncoding',
        'IsErrorRedirected',
        'IsInputRedirected',
        'IsOutputRedirected',
        'KeyAvailable',
        'LargestWindowHeight',
        'LargestWindowWidth',
        'MoveBufferArea',
        'NumberLock',
        'OpenStandardError',
        'OpenStandardInput',
        'OpenStandardOutput',
        'Out',
        'OutputEncoding',
        'Read',
        'ReadKey',
        'ReadLine',
        'ResetColor',
        'SetBufferSize',
        'SetCursorPosition',
        'SetError',
        'SetIn',
        'SetOut',
        'SetWindowPosition',
        'SetWindowSize',
        'Title',
        'ToString',
        'TreatControlCAsInput',
        'WindowHeight',
        'WindowLeft',
        'WindowTop',
        'WindowWidth',
        'Write',
        'WriteLine',
    ],
    'system.convert': [
        'ChangeType',
        'Equals',
        'FromBase64CharArray',
        'FromBase64String',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'IsDBNull',
        'ToBase64CharArray',
        'ToBase64String',
        'ToBoolean',
        'ToByte',
        'ToChar',
        'ToDateTime',
        'ToDecimal',
        'ToDouble',
        'ToInt16',
        'ToInt32',
        'ToInt64',
        'ToSByte',
        'ToSingle',
        'ToString',
        'ToUInt16',
        'ToUInt32',
        'ToUInt64',
    ],
    'system.datetime': [
        'Add',
        'AddDays',
        'AddHours',
        'AddMilliseconds',
        'AddMinutes',
        'AddMonths',
        'AddSeconds',
        'AddTicks',
        'AddYears',
        'Compare',
        'CompareTo',
        'Date',
        'Day',
        'DayOfWeek',
        'DayOfYear',
        'DaysInMonth',
        'Equals',
        'FromBinary',
        'FromFileTime',
        'FromFileTimeUtc',
        'FromOADate',
        'GetDateTimeFormats',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Hour',
        'IsDaylightSavingTime',
        'IsLeapYear',
        'Kind',
        'Millisecond',
        'Minute',
        'Month',
        'Now',
        'Parse',
        'ParseExact',
        'Second',
        'SpecifyKind',
        'Subtract',
        'Ticks',
        'TimeOfDay',
        'ToBinary',
        'ToFileTime',
        'ToFileTimeUtc',
        'ToLocalTime',
        'ToLongDateString',
        'ToLongTimeString',
        'ToOADate',
        'ToShortDateString',
        'ToShortTimeString',
        'ToString',
        'ToUniversalTime',
        'Today',
        'TryParse',
        'TryParseExact',
        'UtcNow',
        'Year',
    ],
    'system.decimal': [
        'Add',
        'Ceiling',
        'Compare',
        'CompareTo',
        'Divide',
        'Equals',
        'Floor',
        'FromOACurrency',
        'GetBits',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Multiply',
        'Negate',
        'Parse',
        'Remainder',
        'Round',
        'Subtract',
        'ToByte',
        'ToDouble',
        'ToInt16',
        'ToInt32',
        'ToInt64',
        'ToOACurrency',
        'ToSByte',
        'ToSingle',
        'ToString',
        'ToUInt16',
        'ToUInt32',
        'ToUInt64',
        'Truncate',
        'TryParse',
    ],
    'system.diagnostics.process': [
        'BasePriority',
        'BeginErrorReadLine',
        'BeginOutputReadLine',
        'CancelErrorRead',
        'CancelOutputRead',
        'Close',
        'CloseMainWindow',
        'Container',
        'CreateObjRef',
        'Dispose',
        'EnableRaisingEvents',
        'EnterDebugMode',
        'Equals',
        'ExitCode',
        'ExitTime',
        'GetCurrentProcess',
        'GetHashCode',
        'GetLifetimeService',
        'GetProcessById',
        'GetProcesses',
        'GetProcessesByName',
        'GetType',
        'Handle',
        'HandleCount',
        'HasExited',
        'Id',
        'InitializeLifetimeService',
        'Kill',
        'LeaveDebugMode',
        'MachineName',
        'MainModule',
        'MainWindowHandle',
        'MainWindowTitle',
        'MaxWorkingSet',
        'MinWorkingSet',
        'Modules',
        'NonpagedSystemMemorySize',
        'NonpagedSystemMemorySize64',
        'PagedMemorySize',
        'PagedMemorySize64',
        'PagedSystemMemorySize',
        'PagedSystemMemorySize64',
        'PeakPagedMemorySize',
        'PeakPagedMemorySize64',
        'PeakVirtualMemorySize',
        'PeakVirtualMemorySize64',
        'PeakWorkingSet',
        'PeakWorkingSet64',
        'PriorityBoostEnabled',
        'PriorityClass',
        'PrivateMemorySize',
        'PrivateMemorySize64',
        'PrivilegedProcessorTime',
        'ProcessName',
        'ProcessorAffinity',
        'Refresh',
        'Responding',
        'SafeHandle',
        'SessionId',
        'Site',
        'StandardError',
        'StandardInput',
        'StandardOutput',
        'Start',
        'StartInfo',
        'StartTime',
        'SynchronizingObject',
        'Threads',
        'ToString',
        'TotalProcessorTime',
        'UserProcessorTime',
        'VirtualMemorySize',
        'VirtualMemorySize64',
        'WaitForExit',
        'WaitForInputIdle',
        'WorkingSet',
        'WorkingSet64',
    ],
    'system.diagnostics.processstartinfo': [
        'Arguments',
        'CreateNoWindow',
        'Domain',
        'Environment',
        'EnvironmentVariables',
        'Equals',
        'ErrorDialog',
        'ErrorDialogParentHandle',
        'FileName',
        'GetHashCode',
        'GetType',
        'LoadUserProfile',
        'Password',
        'PasswordInClearText',
        'RedirectStandardError',
        'RedirectStandardInput',
        'RedirectStandardOutput',
        'StandardErrorEncoding',
        'StandardOutputEncoding',
        'ToString',
        'UseShellExecute',
        'UserName',
        'Verb',
        'Verbs',
        'WindowStyle',
        'WorkingDirectory',
    ],
    'system.double': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'IsInfinity',
        'IsNaN',
        'IsNegativeInfinity',
        'IsPositiveInfinity',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.enum': [
        'CompareTo',
        'Equals',
        'Format',
        'GetHashCode',
        'GetName',
        'GetNames',
        'GetType',
        'GetTypeCode',
        'GetUnderlyingType',
        'GetValues',
        'HasFlag',
        'IsDefined',
        'Parse',
        'ToObject',
        'ToString',
        'TryParse',
    ],
    'system.environment': [
        'CommandLine',
        'CurrentDirectory',
        'CurrentManagedThreadId',
        'Equals',
        'Exit',
        'ExitCode',
        'ExpandEnvironmentVariables',
        'FailFast',
        'GetCommandLineArgs',
        'GetEnvironmentVariable',
        'GetEnvironmentVariables',
        'GetFolderPath',
        'GetHashCode',
        'GetLogicalDrives',
        'GetType',
        'HasShutdownStarted',
        'Is64BitOperatingSystem',
        'Is64BitProcess',
        'MachineName',
        'NewLine',
        'OSVersion',
        'ProcessorCount',
        'SetEnvironmentVariable',
        'StackTrace',
        'SystemDirectory',
        'SystemPageSize',
        'TickCount',
        'ToString',
        'UserDomainName',
        'UserInteractive',
        'UserName',
        'Version',
        'WorkingSet',
    ],
    'system.eventargs': [
        'Equals',
        'GetHashCode',
        'GetType',
        'ToString',
    ],
    'system.exception': [
        'Data',
        'Equals',
        'GetBaseException',
        'GetHashCode',
        'GetObjectData',
        'GetType',
        'HResult',
        'HelpLink',
        'InnerException',
        'Message',
        'Source',
        'StackTrace',
        'TargetSite',
        'ToString',
    ],
    'system.globalization.cultureinfo': [
        'Calendar',
        'ClearCachedData',
        'Clone',
        'CompareInfo',
        'CreateSpecificCulture',
        'CultureTypes',
        'CurrentCulture',
        'CurrentUICulture',
        'DateTimeFormat',
        'DefaultThreadCurrentCulture',
        'DefaultThreadCurrentUICulture',
        'DisplayName',
        'EnglishName',
        'Equals',
        'GetConsoleFallbackUICulture',
        'GetCultureInfo',
        'GetCultureInfoByIetfLanguageTag',
        'GetCultures',
        'GetFormat',
        'GetHashCode',
        'GetType',
        'IetfLanguageTag',
        'InstalledUICulture',
        'InvariantCulture',
        'IsNeutralCulture',
        'IsReadOnly',
        'KeyboardLayoutId',
        'LCID',
        'Name',
        'NativeName',
        'NumberFormat',
        'OptionalCalendars',
        'Parent',
        'ReadOnly',
        'TextInfo',
        'ThreeLetterISOLanguageName',
        'ThreeLetterWindowsLanguageName',
        'ToString',
        'TwoLetterISOLanguageName',
        'UseUserOverride',
    ],
    'system.guid': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'NewGuid',
        'Parse',
        'ParseExact',
        'ToByteArray',
        'ToString',
        'TryParse',
        'TryParseExact',
    ],
    'system.int16': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.int32': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.int64': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.intptr': [
        'Add',
        'Equals',
        'GetHashCode',
        'GetType',
        'Size',
        'Subtract',
        'ToInt32',
        'ToInt64',
        'ToPointer',
        'ToString',
    ],
    'system.io.binaryreader': [
        'BaseStream',
        'Close',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'PeekChar',
        'Read',
        'ReadBoolean',
        'ReadByte',
        'ReadBytes',
        'ReadChar',
        'ReadChars',
        'ReadDecimal',
        'ReadDouble',
        'ReadInt16',
        'ReadInt32',
        'ReadInt64',
        'ReadSByte',
        'ReadSingle',
        'ReadString',
        'ReadUInt16',
        'ReadUInt32',
        'ReadUInt64',
        'ToString',
    ],
    'system.io.binarywriter': [
        'BaseStream',
        'Close',
        'Dispose',
        'Equals',
        'Flush',
        'GetHashCode',
        'GetType',
        'Seek',
        'ToString',
        'Write',
    ],
    'system.io.compression.compressionmode': [
        'Compress',
        'Decompress',
    ],
    'system.io.compression.deflatestream': [
        'BaseStream',
        'BeginRead',
        'BeginWrite',
        'CanRead',
        'CanSeek',
        'CanTimeout',
        'CanWrite',
        'Close',
        'CopyTo',
        'CopyToAsync',
        'CreateObjRef',
        'Dispose',
        'EndRead',
        'EndWrite',
        'Equals',
        'Flush',
        'FlushAsync',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'Length',
        'Position',
        'Read',
        'ReadAsync',
        'ReadByte',
        'ReadTimeout',
        'Seek',
        'SetLength',
        'ToString',
        'Write',
        'WriteAsync',
        'WriteByte',
        'WriteTimeout',
    ],
    'system.io.compression.gzipstream': [
        'BaseStream',
        'BeginRead',
        'BeginWrite',
        'CanRead',
        'CanSeek',
        'CanTimeout',
        'CanWrite',
        'Close',
        'CopyTo',
        'CopyToAsync',
        'CreateObjRef',
        'Dispose',
        'EndRead',
        'EndWrite',
        'Equals',
        'Flush',
        'FlushAsync',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'Length',
        'Position',
        'Read',
        'ReadAsync',
        'ReadByte',
        'ReadTimeout',
        'Seek',
        'SetLength',
        'ToString',
        'Write',
        'WriteAsync',
        'WriteByte',
        'WriteTimeout',
    ],
    'system.io.directory': [
        'CreateDirectory',
        'Delete',
        'EnumerateDirectories',
        'EnumerateFileSystemEntries',
        'EnumerateFiles',
        'Equals',
        'Exists',
        'GetAccessControl',
        'GetCreationTime',
        'GetCreationTimeUtc',
        'GetCurrentDirectory',
        'GetDirectories',
        'GetDirectoryRoot',
        'GetFileSystemEntries',
        'GetFiles',
        'GetHashCode',
        'GetLastAccessTime',
        'GetLastAccessTimeUtc',
        'GetLastWriteTime',
        'GetLastWriteTimeUtc',
        'GetLogicalDrives',
        'GetParent',
        'GetType',
        'Move',
        'SetAccessControl',
        'SetCreationTime',
        'SetCreationTimeUtc',
        'SetCurrentDirectory',
        'SetLastAccessTime',
        'SetLastAccessTimeUtc',
        'SetLastWriteTime',
        'SetLastWriteTimeUtc',
        'ToString',
    ],
    'system.io.directoryinfo': [
        'Attributes',
        'Create',
        'CreateObjRef',
        'CreateSubdirectory',
        'CreationTime',
        'CreationTimeUtc',
        'Delete',
        'EnumerateDirectories',
        'EnumerateFileSystemInfos',
        'EnumerateFiles',
        'Equals',
        'Exists',
        'Extension',
        'FullName',
        'GetAccessControl',
        'GetDirectories',
        'GetFileSystemInfos',
        'GetFiles',
        'GetHashCode',
        'GetLifetimeService',
        'GetObjectData',
        'GetType',
        'InitializeLifetimeService',
        'LastAccessTime',
        'LastAccessTimeUtc',
        'LastWriteTime',
        'LastWriteTimeUtc',
        'MoveTo',
        'Name',
        'Parent',
        'Refresh',
        'Root',
        'SetAccessControl',
        'ToString',
    ],
    'system.io.file': [
        'AppendAllLines',
        'AppendAllText',
        'AppendText',
        'Copy',
        'Create',
        'CreateText',
        'Decrypt',
        'Delete',
        'Encrypt',
        'Equals',
        'Exists',
        'GetAccessControl',
        'GetAttributes',
        'GetCreationTime',
        'GetCreationTimeUtc',
        'GetHashCode',
        'GetLastAccessTime',
        'GetLastAccessTimeUtc',
        'GetLastWriteTime',
        'GetLastWriteTimeUtc',
        'GetType',
        'Move',
        'Open',
        'OpenRead',
        'OpenText',
        'OpenWrite',
        'ReadAllBytes',
        'ReadAllLines',
        'ReadAllText',
        'ReadLines',
        'Replace',
        'SetAccessControl',
        'SetAttributes',
        'SetCreationTime',
        'SetCreationTimeUtc',
        'SetLastAccessTime',
        'SetLastAccessTimeUtc',
        'SetLastWriteTime',
        'SetLastWriteTimeUtc',
        'ToString',
        'WriteAllBytes',
        'WriteAllLines',
        'WriteAllText',
    ],
    'system.io.fileinfo': [
        'AppendText',
        'Attributes',
        'CopyTo',
        'Create',
        'CreateObjRef',
        'CreateText',
        'CreationTime',
        'CreationTimeUtc',
        'Decrypt',
        'Delete',
        'Directory',
        'DirectoryName',
        'Encrypt',
        'Equals',
        'Exists',
        'Extension',
        'FullName',
        'GetAccessControl',
        'GetHashCode',
        'GetLifetimeService',
        'GetObjectData',
        'GetType',
        'InitializeLifetimeService',
        'IsReadOnly',
        'LastAccessTime',
        'LastAccessTimeUtc',
        'LastWriteTime',
        'LastWriteTimeUtc',
        'Length',
        'MoveTo',
        'Name',
        'Open',
        'OpenRead',
        'OpenText',
        'OpenWrite',
        'Refresh',
        'Replace',
        'SetAccessControl',
        'ToString',
    ],
    'system.io.filemode': [
        'Append',
        'Create',
        'CreateNew',
        'Open',
        'OpenOrCreate',
        'Truncate',
    ],
    'system.io.filestream': [
        'BeginRead',
        'BeginWrite',
        'CanRead',
        'CanSeek',
        'CanTimeout',
        'CanWrite',
        'Close',
        'CopyTo',
        'CopyToAsync',
        'CreateObjRef',
        'Dispose',
        'EndRead',
        'EndWrite',
        'Equals',
        'Flush',
        'FlushAsync',
        'GetAccessControl',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'Handle',
        'InitializeLifetimeService',
        'IsAsync',
        'Length',
        'Lock',
        'Name',
        'Position',
        'Read',
        'ReadAsync',
        'ReadByte',
        'ReadTimeout',
        'SafeFileHandle',
        'Seek',
        'SetAccessControl',
        'SetLength',
        'ToString',
        'Unlock',
        'Write',
        'WriteAsync',
        'WriteByte',
        'WriteTimeout',
    ],
    'system.io.memorystream': [
        'BeginRead',
        'BeginWrite',
        'CanRead',
        'CanSeek',
        'CanTimeout',
        'CanWrite',
        'Capacity',
        'Close',
        'CopyTo',
        'CopyToAsync',
        'CreateObjRef',
        'Dispose',
        'EndRead',
        'EndWrite',
        'Equals',
        'Flush',
        'FlushAsync',
        'GetBuffer',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'Length',
        'Position',
        'Read',
        'ReadAsync',
        'ReadByte',
        'ReadTimeout',
        'Seek',
        'SetLength',
        'ToArray',
        'ToString',
        'TryGetBuffer',
        'Write',
        'WriteAsync',
        'WriteByte',
        'WriteTimeout',
        'WriteTo',
    ],
    'system.io.path': [
        'ChangeExtension',
        'Combine',
        'Equals',
        'GetDirectoryName',
        'GetExtension',
        'GetFileName',
        'GetFileNameWithoutExtension',
        'GetFullPath',
        'GetHashCode',
        'GetInvalidFileNameChars',
        'GetInvalidPathChars',
        'GetPathRoot',
        'GetRandomFileName',
        'GetTempFileName',
        'GetTempPath',
        'GetType',
        'HasExtension',
        'IsPathRooted',
        'ToString',
    ],
    'system.io.stream': [
        'BeginRead',
        'BeginWrite',
        'CanRead',
        'CanSeek',
        'CanTimeout',
        'CanWrite',
        'Close',
        'CopyTo',
        'CopyToAsync',
        'CreateObjRef',
        'Dispose',
        'EndRead',
        'EndWrite',
        'Equals',
        'Flush',
        'FlushAsync',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'Length',
        'Position',
        'Read',
        'ReadAsync',
        'ReadByte',
        'ReadTimeout',
        'Seek',
        'SetLength',
        'Synchronized',
        'ToString',
        'Write',
        'WriteAsync',
        'WriteByte',
        'WriteTimeout',
    ],
    'system.io.streamreader': [
        'BaseStream',
        'Close',
        'CreateObjRef',
        'CurrentEncoding',
        'DiscardBufferedData',
        'Dispose',
        'EndOfStream',
        'Equals',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'Peek',
        'Read',
        'ReadAsync',
        'ReadBlock',
        'ReadBlockAsync',
        'ReadLine',
        'ReadLineAsync',
        'ReadToEnd',
        'ReadToEndAsync',
        'ToString',
    ],
    'system.io.streamwriter': [
        'AutoFlush',
        'BaseStream',
        'Close',
        'CreateObjRef',
        'Dispose',
        'Encoding',
        'Equals',
        'Flush',
        'FlushAsync',
        'FormatProvider',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'NewLine',
        'ToString',
        'Write',
        'WriteAsync',
        'WriteLine',
        'WriteLineAsync',
    ],
    'system.io.stringreader': [
        'Close',
        'CreateObjRef',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'Peek',
        'Read',
        'ReadAsync',
        'ReadBlock',
        'ReadBlockAsync',
        'ReadLine',
        'ReadLineAsync',
        'ReadToEnd',
        'ReadToEndAsync',
        'ToString',
    ],
    'system.io.stringwriter': [
        'Close',
        'CreateObjRef',
        'Dispose',
        'Encoding',
        'Equals',
        'Flush',
        'FlushAsync',
        'FormatProvider',
        'GetHashCode',
        'GetLifetimeService',
        'GetStringBuilder',
        'GetType',
        'InitializeLifetimeService',
        'NewLine',
        'ToString',
        'Write',
        'WriteAsync',
        'WriteLine',
        'WriteLineAsync',
    ],
    'system.management.automation.commandinvocationintrinsics': [
        'CommandNotFoundAction',
        'Equals',
        'ExpandString',
        'GetCmdlet',
        'GetCmdletByTypeName',
        'GetCmdlets',
        'GetCommand',
        'GetCommandName',
        'GetCommands',
        'GetHashCode',
        'GetType',
        'HasErrors',
        'InvokeScript',
        'NewScriptBlock',
        'PostCommandLookupAction',
        'PreCommandLookupAction',
        'ToString',
    ],
    'system.management.automation.engineintrinsics': [
        'Equals',
        'Events',
        'GetHashCode',
        'GetType',
        'Host',
        'InvokeCommand',
        'InvokeProvider',
        'SessionState',
        'ToString',
    ],
    'system.management.automation.host.pshost': [
        'CurrentCulture',
        'CurrentUICulture',
        'DebuggerEnabled',
        'EnterNestedPrompt',
        'Equals',
        'ExitNestedPrompt',
        'GetHashCode',
        'GetType',
        'InstanceId',
        'Name',
        'NotifyBeginApplication',
        'NotifyEndApplication',
        'PrivateData',
        'SetShouldExit',
        'ToString',
        'UI',
        'Version',
    ],
    'system.management.automation.pathintrinsics': [
        'Combine',
        'CurrentFileSystemLocation',
        'CurrentLocation',
        'CurrentProviderLocation',
        'Equals',
        'GetHashCode',
        'GetResolvedPSPathFromPSPath',
        'GetResolvedProviderPathFromPSPath',
        'GetResolvedProviderPathFromProviderPath',
        'GetType',
        'GetUnresolvedProviderPathFromPSPath',
        'IsPSAbsolute',
        'IsProviderQualified',
        'IsValid',
        'LocationStack',
        'NormalizeRelativePath',
        'ParseChildName',
        'ParseParent',
        'PopLocation',
        'PushCurrentLocation',
        'SetDefaultLocationStack',
        'SetLocation',
        'ToString',
    ],
    'system.management.automation.providerintrinsics': [
        'ChildItem',
        'Content',
        'Equals',
        'GetHashCode',
        'GetType',
        'Item',
        'Property',
        'SecurityDescriptor',
        'ToString',
    ],
    'system.management.automation.pscredential': [
        'Empty',
        'Equals',
        'GetHashCode',
        'GetNetworkCredential',
        'GetObjectData',
        'GetSymmetricEncryptionKeyDelegate',
        'GetType',
        'Password',
        'ToString',
        'UserName',
    ],
    'system.management.automation.psvariable': [
        'Attributes',
        'Description',
        'Equals',
        'GetHashCode',
        'GetType',
        'IsValidValue',
        'Module',
        'ModuleName',
        'Name',
        'Options',
        'ToString',
        'Value',
        'Visibility',
    ],
    'system.management.automation.psvariableintrinsics': [
        'Equals',
        'Get',
        'GetHashCode',
        'GetType',
        'GetValue',
        'Remove',
        'Set',
        'ToString',
    ],
    'system.management.automation.scriptblock': [
        'Ast',
        'Attributes',
        'CheckRestrictedLanguage',
        'Create',
        'DebuggerHidden',
        'Equals',
        'File',
        'GetHashCode',
        'GetNewClosure',
        'GetObjectData',
        'GetPowerShell',
        'GetSteppablePipeline',
        'GetType',
        'Id',
        'Invoke',
        'InvokeReturnAsIs',
        'InvokeWithContext',
        'IsConfiguration',
        'IsFilter',
        'Module',
        'StartPosition',
        'ToString',
    ],
    'system.management.automation.sessionstate': [
        'Applications',
        'Drive',
        'Equals',
        'GetHashCode',
        'GetType',
        'InvokeCommand',
        'InvokeProvider',
        'IsVisible',
        'LanguageMode',
        'Module',
        'PSVariable',
        'Path',
        'Provider',
        'Scripts',
        'ThrowIfNotVisible',
        'ToString',
        'UseFullLanguageModeInDebugger',
    ],
    'system.management.managementobject': [
        'ClassPath',
        'Clone',
        'CompareTo',
        'Container',
        'CopyTo',
        'CreateObjRef',
        'Delete',
        'Dispose',
        'Equals',
        'Get',
        'GetHashCode',
        'GetLifetimeService',
        'GetMethodParameters',
        'GetPropertyQualifierValue',
        'GetPropertyValue',
        'GetQualifierValue',
        'GetRelated',
        'GetRelationships',
        'GetText',
        'GetType',
        'InitializeLifetimeService',
        'InvokeMethod',
        'Item',
        'Options',
        'Path',
        'Properties',
        'Put',
        'Qualifiers',
        'Scope',
        'SetPropertyQualifierValue',
        'SetPropertyValue',
        'SetQualifierValue',
        'Site',
        'SystemProperties',
        'ToString',
    ],
    'system.management.managementobjectsearcher': [
        'Container',
        'CreateObjRef',
        'Dispose',
        'Equals',
        'Get',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'Options',
        'Query',
        'Scope',
        'Site',
        'ToString',
    ],
    'system.math': [
        'Abs',
        'Acos',
        'Asin',
        'Atan',
        'Atan2',
        'BigMul',
        'Ceiling',
        'Cos',
        'Cosh',
        'DivRem',
        'Equals',
        'Exp',
        'Floor',
        'GetHashCode',
        'GetType',
        'IEEERemainder',
        'Log',
        'Log10',
        'Max',
        'Min',
        'Pow',
        'Round',
        'Sign',
        'Sin',
        'Sinh',
        'Sqrt',
        'Tan',
        'Tanh',
        'ToString',
        'Truncate',
    ],
    'system.net.credentialcache': [
        'Add',
        'DefaultCredentials',
        'DefaultNetworkCredentials',
        'Equals',
        'GetCredential',
        'GetEnumerator',
        'GetHashCode',
        'GetType',
        'Remove',
        'ToString',
    ],
    'system.net.dns': [
        'BeginGetHostAddresses',
        'BeginGetHostByName',
        'BeginGetHostEntry',
        'BeginResolve',
        'EndGetHostAddresses',
        'EndGetHostByName',
        'EndGetHostEntry',
        'EndResolve',
        'Equals',
        'GetHashCode',
        'GetHostAddresses',
        'GetHostAddressesAsync',
        'GetHostByAddress',
        'GetHostByName',
        'GetHostEntry',
        'GetHostEntryAsync',
        'GetHostName',
        'GetType',
        'Resolve',
        'ToString',
    ],
    'system.net.httpwebrequest': [
        'Abort',
        'Accept',
        'AddRange',
        'Address',
        'AllowAutoRedirect',
        'AllowReadStreamBuffering',
        'AllowWriteStreamBuffering',
        'AuthenticationLevel',
        'AutomaticDecompression',
        'BeginGetRequestStream',
        'BeginGetResponse',
        'CachePolicy',
        'ClientCertificates',
        'Connection',
        'ConnectionGroupName',
        'ContentLength',
        'ContentType',
        'ContinueDelegate',
        'ContinueTimeout',
        'CookieContainer',
        'CreateObjRef',
        'CreatorInstance',
        'Credentials',
        'Date',
        'DefaultCachePolicy',
        'DefaultMaximumErrorResponseLength',
        'DefaultMaximumResponseHeadersLength',
        'EndGetRequestStream',
        'EndGetResponse',
        'Equals',
        'Expect',
        'GetHashCode',
        'GetLifetimeService',
        'GetRequestStream',
        'GetRequestStreamAsync',
        'GetResponse',
        'GetResponseAsync',
        'GetType',
        'HaveResponse',
        'Headers',
        'Host',
        'IfModifiedSince',
        'ImpersonationLevel',
        'InitializeLifetimeService',
        'KeepAlive',
        'MaximumAutomaticRedirections',
        'MaximumResponseHeadersLength',
        'MediaType',
        'Method',
        'Pipelined',
        'PreAuthenticate',
        'ProtocolVersion',
        'Proxy',
        'ReadWriteTimeout',
        'Referer',
        'RequestUri',
        'SendChunked',
        'ServerCertificateValidationCallback',
        'ServicePoint',
        'SupportsCookieContainer',
        'Timeout',
        'ToString',
        'TransferEncoding',
        'UnsafeAuthenticatedConnectionSharing',
        'UseDefaultCredentials',
        'UserAgent',
    ],
    'system.net.httpwebresponse': [
        'CharacterSet',
        'Close',
        'ContentEncoding',
        'ContentLength',
        'ContentType',
        'Cookies',
        'CreateObjRef',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetLifetimeService',
        'GetResponseHeader',
        'GetResponseStream',
        'GetType',
        'Headers',
        'InitializeLifetimeService',
        'IsFromCache',
        'IsMutuallyAuthenticated',
        'LastModified',
        'Method',
        'ProtocolVersion',
        'ResponseUri',
        'Server',
        'StatusCode',
        'StatusDescription',
        'SupportsHeaders',
        'ToString',
    ],
    'system.net.ipaddress': [
        'Address',
        'AddressFamily',
        'Equals',
        'GetAddressBytes',
        'GetHashCode',
        'GetType',
        'HostToNetworkOrder',
        'IsIPv4MappedToIPv6',
        'IsIPv6LinkLocal',
        'IsIPv6Multicast',
        'IsIPv6SiteLocal',
        'IsIPv6Teredo',
        'IsLoopback',
        'MapToIPv4',
        'MapToIPv6',
        'NetworkToHostOrder',
        'Parse',
        'ScopeId',
        'ToString',
        'TryParse',
    ],
    'system.net.ipendpoint': [
        'Address',
        'AddressFamily',
        'Create',
        'Equals',
        'GetHashCode',
        'GetType',
        'Port',
        'Serialize',
        'ToString',
    ],
    'system.net.mail.mailmessage': [
        'AlternateViews',
        'Attachments',
        'Bcc',
        'Body',
        'BodyEncoding',
        'BodyTransferEncoding',
        'CC',
        'DeliveryNotificationOptions',
        'Dispose',
        'Equals',
        'From',
        'GetHashCode',
        'GetType',
        'Headers',
        'HeadersEncoding',
        'IsBodyHtml',
        'Priority',
        'ReplyTo',
        'ReplyToList',
        'Sender',
        'Subject',
        'SubjectEncoding',
        'To',
        'ToString',
    ],
    'system.net.mail.smtpclient': [
        'ClientCertificates',
        'Credentials',
        'DeliveryFormat',
        'DeliveryMethod',
        'Dispose',
        'EnableSsl',
        'Equals',
        'GetHashCode',
        'GetType',
        'Host',
        'PickupDirectoryLocation',
        'Port',
        'Send',
        'SendAsync',
        'SendAsyncCancel',
        'SendMailAsync',
        'ServicePoint',
        'TargetName',
        'Timeout',
        'ToString',
        'UseDefaultCredentials',
    ],
    'system.net.networkcredential': [
        'Domain',
        'Equals',
        'GetCredential',
        'GetHashCode',
        'GetType',
        'Password',
        'SecurePassword',
        'ToString',
        'UserName',
    ],
    'system.net.security.sslstream': [
        'AuthenticateAsClient',
        'AuthenticateAsClientAsync',
        'AuthenticateAsServer',
        'AuthenticateAsServerAsync',
        'BeginAuthenticateAsClient',
        'BeginAuthenticateAsServer',
        'BeginRead',
        'BeginWrite',
        'CanRead',
        'CanSeek',
        'CanTimeout',
        'CanWrite',
        'CheckCertRevocationStatus',
        'CipherAlgorithm',
        'CipherStrength',
        'Close',
        'CopyTo',
        'CopyToAsync',
        'CreateObjRef',
        'Dispose',
        'EndAuthenticateAsClient',
        'EndAuthenticateAsServer',
        'EndRead',
        'EndWrite',
        'Equals',
        'Flush',
        'FlushAsync',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'HashAlgorithm',
        'HashStrength',
        'InitializeLifetimeService',
        'IsAuthenticated',
        'IsEncrypted',
        'IsMutuallyAuthenticated',
        'IsServer',
        'IsSigned',
        'KeyExchangeAlgorithm',
        'KeyExchangeStrength',
        'LeaveInnerStreamOpen',
        'Length',
        'LocalCertificate',
        'Position',
        'Read',
        'ReadAsync',
        'ReadByte',
        'ReadTimeout',
        'RemoteCertificate',
        'Seek',
        'SetLength',
        'ShutdownAsync',
        'SslProtocol',
        'ToString',
        'TransportContext',
        'Write',
        'WriteAsync',
        'WriteByte',
        'WriteTimeout',
    ],
    'system.net.securityprotocoltype': [
        'Ssl3',
        'SystemDefault',
        'Tls',
        'Tls11',
        'Tls12',
        'Tls13',
    ],
    'system.net.servicepointmanager': [
        'CertificatePolicy',
        'CheckCertificateRevocationList',
        'DefaultConnectionLimit',
        'DnsRefreshTimeout',
        'EnableDnsRoundRobin',
        'EncryptionPolicy',
        'Equals',
        'Expect100Continue',
        'FindServicePoint',
        'GetHashCode',
        'GetType',
        'MaxServicePointIdleTime',
        'MaxServicePoints',
        'ReusePort',
        'SecurityProtocol',
        'ServerCertificateValidationCallback',
        'SetTcpKeepAlive',
        'ToString',
        'UseNagleAlgorithm',
    ],
    'system.net.sockets.networkstream': [
        'BeginRead',
        'BeginWrite',
        'CanRead',
        'CanSeek',
        'CanTimeout',
        'CanWrite',
        'Close',
        'CopyTo',
        'CopyToAsync',
        'CreateObjRef',
        'DataAvailable',
        'Dispose',
        'EndRead',
        'EndWrite',
        'Equals',
        'Flush',
        'FlushAsync',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'Length',
        'Position',
        'Read',
        'ReadAsync',
        'ReadByte',
        'ReadTimeout',
        'Seek',
        'SetLength',
        'ToString',
        'Write',
        'WriteAsync',
        'WriteByte',
        'WriteTimeout',
    ],
    'system.net.sockets.tcpclient': [
        'Available',
        'BeginConnect',
        'Client',
        'Close',
        'Connect',
        'ConnectAsync',
        'Connected',
        'Dispose',
        'EndConnect',
        'Equals',
        'ExclusiveAddressUse',
        'GetHashCode',
        'GetStream',
        'GetType',
        'LingerState',
        'NoDelay',
        'ReceiveBufferSize',
        'ReceiveTimeout',
        'SendBufferSize',
        'SendTimeout',
        'ToString',
    ],
    'system.net.sockets.tcplistener': [
        'AcceptSocket',
        'AcceptSocketAsync',
        'AcceptTcpClient',
        'AcceptTcpClientAsync',
        'AllowNatTraversal',
        'BeginAcceptSocket',
        'BeginAcceptTcpClient',
        'Create',
        'EndAcceptSocket',
        'EndAcceptTcpClient',
        'Equals',
        'ExclusiveAddressUse',
        'GetHashCode',
        'GetType',
        'LocalEndpoint',
        'Pending',
        'Server',
        'Start',
        'Stop',
        'ToString',
    ],
    'system.net.sockets.udpclient': [
        'AllowNatTraversal',
        'Available',
        'BeginReceive',
        'BeginSend',
        'Client',
        'Close',
        'Connect',
        'Dispose',
        'DontFragment',
        'DropMulticastGroup',
        'EnableBroadcast',
        'EndReceive',
        'EndSend',
        'Equals',
        'ExclusiveAddressUse',
        'GetHashCode',
        'GetType',
        'JoinMulticastGroup',
        'MulticastLoopback',
        'Receive',
        'ReceiveAsync',
        'Send',
        'SendAsync',
        'ToString',
        'Ttl',
    ],
    'system.net.webclient': [
        'AllowReadStreamBuffering',
        'AllowWriteStreamBuffering',
        'BaseAddress',
        'CachePolicy',
        'CancelAsync',
        'Container',
        'CreateObjRef',
        'Credentials',
        'Dispose',
        'DownloadData',
        'DownloadDataAsync',
        'DownloadDataTaskAsync',
        'DownloadFile',
        'DownloadFileAsync',
        'DownloadFileTaskAsync',
        'DownloadString',
        'DownloadStringAsync',
        'DownloadStringTaskAsync',
        'Encoding',
        'Equals',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'Headers',
        'InitializeLifetimeService',
        'IsBusy',
        'OpenRead',
        'OpenReadAsync',
        'OpenReadTaskAsync',
        'OpenWrite',
        'OpenWriteAsync',
        'OpenWriteTaskAsync',
        'Proxy',
        'QueryString',
        'ResponseHeaders',
        'Site',
        'ToString',
        'UploadData',
        'UploadDataAsync',
        'UploadDataTaskAsync',
        'UploadFile',
        'UploadFileAsync',
        'UploadFileTaskAsync',
        'UploadString',
        'UploadStringAsync',
        'UploadStringTaskAsync',
        'UploadValues',
        'UploadValuesAsync',
        'UploadValuesTaskAsync',
        'UseDefaultCredentials',
    ],
    'system.net.webproxy': [
        'Address',
        'BypassArrayList',
        'BypassList',
        'BypassProxyOnLocal',
        'Credentials',
        'Equals',
        'GetDefaultProxy',
        'GetHashCode',
        'GetProxy',
        'GetType',
        'IsBypassed',
        'ToString',
        'UseDefaultCredentials',
    ],
    'system.net.webrequest': [
        'Abort',
        'AuthenticationLevel',
        'BeginGetRequestStream',
        'BeginGetResponse',
        'CachePolicy',
        'ConnectionGroupName',
        'ContentLength',
        'ContentType',
        'Create',
        'CreateDefault',
        'CreateHttp',
        'CreateObjRef',
        'CreatorInstance',
        'Credentials',
        'DefaultCachePolicy',
        'DefaultWebProxy',
        'EndGetRequestStream',
        'EndGetResponse',
        'Equals',
        'GetHashCode',
        'GetLifetimeService',
        'GetRequestStream',
        'GetRequestStreamAsync',
        'GetResponse',
        'GetResponseAsync',
        'GetSystemWebProxy',
        'GetType',
        'Headers',
        'ImpersonationLevel',
        'InitializeLifetimeService',
        'Method',
        'PreAuthenticate',
        'Proxy',
        'RegisterPortableWebRequestCreator',
        'RegisterPrefix',
        'RequestUri',
        'Timeout',
        'ToString',
        'UseDefaultCredentials',
    ],
    'system.object': [
        'Equals',
        'GetHashCode',
        'GetType',
        'ReferenceEquals',
        'ToString',
    ],
    'system.random': [
        'Equals',
        'GetHashCode',
        'GetType',
        'Next',
        'NextBytes',
        'NextDouble',
        'ToString',
    ],
    'system.reflection.assembly': [
        'CodeBase',
        'CreateInstance',
        'CreateQualifiedName',
        'CustomAttributes',
        'DefinedTypes',
        'EntryPoint',
        'Equals',
        'EscapedCodeBase',
        'Evidence',
        'ExportedTypes',
        'FullName',
        'GetAssembly',
        'GetCallingAssembly',
        'GetCustomAttributes',
        'GetCustomAttributesData',
        'GetEntryAssembly',
        'GetExecutingAssembly',
        'GetExportedTypes',
        'GetFile',
        'GetFiles',
        'GetHashCode',
        'GetLoadedModules',
        'GetManifestResourceInfo',
        'GetManifestResourceNames',
        'GetManifestResourceStream',
        'GetModule',
        'GetModules',
        'GetName',
        'GetObjectData',
        'GetReferencedAssemblies',
        'GetSatelliteAssembly',
        'GetType',
        'GetTypes',
        'GlobalAssemblyCache',
        'HostContext',
        'ImageRuntimeVersion',
        'IsDefined',
        'IsDynamic',
        'IsFullyTrusted',
        'Load',
        'LoadFile',
        'LoadFrom',
        'LoadModule',
        'LoadWithPartialName',
        'Location',
        'ManifestModule',
        'Modules',
        'PermissionSet',
        'ReflectionOnly',
        'ReflectionOnlyLoad',
        'ReflectionOnlyLoadFrom',
        'SecurityRuleSet',
        'ToString',
        'UnsafeLoadFrom',
    ],
    'system.reflection.assemblyname': [
        'Clone',
        'CodeBase',
        'ContentType',
        'CultureInfo',
        'CultureName',
        'Equals',
        'EscapedCodeBase',
        'Flags',
        'FullName',
        'GetAssemblyName',
        'GetHashCode',
        'GetObjectData',
        'GetPublicKey',
        'GetPublicKeyToken',
        'GetType',
        'HashAlgorithm',
        'KeyPair',
        'Name',
        'OnDeserialization',
        'ProcessorArchitecture',
        'ReferenceMatchesDefinition',
        'SetPublicKey',
        'SetPublicKeyToken',
        'ToString',
        'Version',
        'VersionCompatibility',
    ],
    'system.reflection.bindingflags': [
        'CreateInstance',
        'DeclaredOnly',
        'Default',
        'ExactBinding',
        'FlattenHierarchy',
        'GetField',
        'GetProperty',
        'IgnoreCase',
        'IgnoreReturn',
        'Instance',
        'InvokeMethod',
        'NonPublic',
        'OptionalParamBinding',
        'Public',
        'PutDispProperty',
        'PutRefDispProperty',
        'SetField',
        'SetProperty',
        'Static',
        'SuppressChangeType',
    ],
    'system.reflection.emit.assemblybuilderaccess': [
        'ReflectionOnly',
        'Run',
        'RunAndCollect',
        'RunAndSave',
        'Save',
    ],
    'system.runtime.interopservices.dllimportattribute': [
        'Equals',
        'GetHashCode',
        'GetType',
        'IsDefaultAttribute',
        'Match',
        'ToString',
        'TypeId',
        'Value',
    ],
    'system.runtime.interopservices.marshal': [
        'AddRef',
        'AllocCoTaskMem',
        'AllocHGlobal',
        'AreComObjectsAvailableForCleanup',
        'BindToMoniker',
        'ChangeWrapperHandleStrength',
        'CleanupUnusedObjectsInCurrentContext',
        'Copy',
        'CreateAggregatedObject',
        'CreateWrapperOfType',
        'DestroyStructure',
        'Equals',
        'FinalReleaseComObject',
        'FreeBSTR',
        'FreeCoTaskMem',
        'FreeHGlobal',
        'GenerateGuidForType',
        'GenerateProgIdForType',
        'GetActiveObject',
        'GetComInterfaceForObject',
        'GetComInterfaceForObjectInContext',
        'GetComObjectData',
        'GetComSlotForMethodInfo',
        'GetDelegateForFunctionPointer',
        'GetEndComSlot',
        'GetExceptionCode',
        'GetExceptionForHR',
        'GetExceptionPointers',
        'GetFunctionPointerForDelegate',
        'GetHINSTANCE',
        'GetHRForException',
        'GetHRForLastWin32Error',
        'GetHashCode',
        'GetIDispatchForObject',
        'GetIDispatchForObjectInContext',
        'GetITypeInfoForType',
        'GetIUnknownForObject',
        'GetIUnknownForObjectInContext',
        'GetLastWin32Error',
        'GetManagedThunkForUnmanagedMethodPtr',
        'GetMethodInfoForComSlot',
        'GetNativeVariantForObject',
        'GetObjectForIUnknown',
        'GetObjectForNativeVariant',
        'GetObjectsForNativeVariants',
        'GetStartComSlot',
        'GetThreadFromFiberCookie',
        'GetType',
        'GetTypeForITypeInfo',
        'GetTypeFromCLSID',
        'GetTypeInfoName',
        'GetTypeLibGuid',
        'GetTypeLibGuidForAssembly',
        'GetTypeLibLcid',
        'GetTypeLibName',
        'GetTypeLibVersionForAssembly',
        'GetTypedObjectForIUnknown',
        'GetUniqueObjectForIUnknown',
        'GetUnmanagedThunkForManagedMethodPtr',
        'IsComObject',
        'IsTypeVisibleFromCom',
        'NumParamBytes',
        'OffsetOf',
        'Prelink',
        'PrelinkAll',
        'PtrToStringAnsi',
        'PtrToStringAuto',
        'PtrToStringBSTR',
        'PtrToStringUni',
        'PtrToStructure',
        'QueryInterface',
        'ReAllocCoTaskMem',
        'ReAllocHGlobal',
        'ReadByte',
        'ReadInt16',
        'ReadInt32',
        'ReadInt64',
        'ReadIntPtr',
        'Release',
        'ReleaseComObject',
        'ReleaseThreadCache',
        'SecureStringToBSTR',
        'SecureStringToCoTaskMemAnsi',
        'SecureStringToCoTaskMemUnicode',
        'SecureStringToGlobalAllocAnsi',
        'SecureStringToGlobalAllocUnicode',
        'SetComObjectData',
        'SizeOf',
        'StringToBSTR',
        'StringToCoTaskMemAnsi',
        'StringToCoTaskMemAuto',
        'StringToCoTaskMemUni',
        'StringToHGlobalAnsi',
        'StringToHGlobalAuto',
        'StringToHGlobalUni',
        'StructureToPtr',
        'ThrowExceptionForHR',
        'ToString',
        'UnsafeAddrOfPinnedArrayElement',
        'WriteByte',
        'WriteInt16',
        'WriteInt32',
        'WriteInt64',
        'WriteIntPtr',
        'ZeroFreeBSTR',
        'ZeroFreeCoTaskMemAnsi',
        'ZeroFreeCoTaskMemUnicode',
        'ZeroFreeGlobalAllocAnsi',
        'ZeroFreeGlobalAllocUnicode',
    ],
    'system.runtime.interopservices.runtimeenvironment': [
        'Equals',
        'FromGlobalAccessCache',
        'GetHashCode',
        'GetRuntimeDirectory',
        'GetRuntimeInterfaceAsIntPtr',
        'GetRuntimeInterfaceAsObject',
        'GetSystemVersion',
        'GetType',
        'SystemConfigurationFile',
        'ToString',
    ],
    'system.sbyte': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.security.accesscontrol.filesystemaccessrule': [
        'AccessControlType',
        'Equals',
        'FileSystemRights',
        'GetHashCode',
        'GetType',
        'IdentityReference',
        'InheritanceFlags',
        'IsInherited',
        'PropagationFlags',
        'ToString',
    ],
    'system.security.cryptography.aescryptoserviceprovider': [
        'BlockSize',
        'Clear',
        'CreateDecryptor',
        'CreateEncryptor',
        'Dispose',
        'Equals',
        'FeedbackSize',
        'GenerateIV',
        'GenerateKey',
        'GetHashCode',
        'GetType',
        'IV',
        'Key',
        'KeySize',
        'LegalBlockSizes',
        'LegalKeySizes',
        'Mode',
        'Padding',
        'ToString',
        'ValidKeySize',
    ],
    'system.security.cryptography.aesmanaged': [
        'BlockSize',
        'Clear',
        'CreateDecryptor',
        'CreateEncryptor',
        'Dispose',
        'Equals',
        'FeedbackSize',
        'GenerateIV',
        'GenerateKey',
        'GetHashCode',
        'GetType',
        'IV',
        'Key',
        'KeySize',
        'LegalBlockSizes',
        'LegalKeySizes',
        'Mode',
        'Padding',
        'ToString',
        'ValidKeySize',
    ],
    'system.security.cryptography.ciphermode': [
        'CBC',
        'CFB',
        'CTS',
        'ECB',
        'OFB',
    ],
    'system.security.cryptography.cryptostream': [
        'BeginRead',
        'BeginWrite',
        'CanRead',
        'CanSeek',
        'CanTimeout',
        'CanWrite',
        'Clear',
        'Close',
        'CopyTo',
        'CopyToAsync',
        'CreateObjRef',
        'Dispose',
        'EndRead',
        'EndWrite',
        'Equals',
        'Flush',
        'FlushAsync',
        'FlushFinalBlock',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'HasFlushedFinalBlock',
        'InitializeLifetimeService',
        'Length',
        'Position',
        'Read',
        'ReadAsync',
        'ReadByte',
        'ReadTimeout',
        'Seek',
        'SetLength',
        'ToString',
        'Write',
        'WriteAsync',
        'WriteByte',
        'WriteTimeout',
    ],
    'system.security.cryptography.cryptostreammode': [
        'Read',
        'Write',
    ],
    'system.security.cryptography.descryptoserviceprovider': [
        'BlockSize',
        'Clear',
        'CreateDecryptor',
        'CreateEncryptor',
        'Dispose',
        'Equals',
        'FeedbackSize',
        'GenerateIV',
        'GenerateKey',
        'GetHashCode',
        'GetType',
        'IV',
        'Key',
        'KeySize',
        'LegalBlockSizes',
        'LegalKeySizes',
        'Mode',
        'Padding',
        'ToString',
        'ValidKeySize',
    ],
    'system.security.cryptography.hmacmd5': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashName',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'Key',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.hmacsha1': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashName',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'Key',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.hmacsha256': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashName',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'Key',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.icryptotransform': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'InputBlockSize',
        'OutputBlockSize',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.md5': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Create',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.md5cryptoserviceprovider': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.paddingmode': [
        'ANSIX923',
        'ISO10126',
        'None',
        'PKCS7',
        'Zeros',
    ],
    'system.security.cryptography.rijndaelmanaged': [
        'BlockSize',
        'Clear',
        'CreateDecryptor',
        'CreateEncryptor',
        'Dispose',
        'Equals',
        'FeedbackSize',
        'GenerateIV',
        'GenerateKey',
        'GetHashCode',
        'GetType',
        'IV',
        'Key',
        'KeySize',
        'LegalBlockSizes',
        'LegalKeySizes',
        'Mode',
        'Padding',
        'ToString',
        'ValidKeySize',
    ],
    'system.security.cryptography.rngcryptoserviceprovider': [
        'Dispose',
        'Equals',
        'GetBytes',
        'GetHashCode',
        'GetNonZeroBytes',
        'GetType',
        'ToString',
    ],
    'system.security.cryptography.rsa': [
        'Clear',
        'Create',
        'Decrypt',
        'DecryptValue',
        'Dispose',
        'Encrypt',
        'EncryptValue',
        'Equals',
        'ExportParameters',
        'FromXmlString',
        'GetHashCode',
        'GetType',
        'ImportParameters',
        'KeyExchangeAlgorithm',
        'KeySize',
        'LegalKeySizes',
        'SignData',
        'SignHash',
        'SignatureAlgorithm',
        'ToString',
        'ToXmlString',
        'VerifyData',
        'VerifyHash',
    ],
    'system.security.cryptography.rsacryptoserviceprovider': [
        'Clear',
        'CspKeyContainerInfo',
        'Decrypt',
        'DecryptValue',
        'Dispose',
        'Encrypt',
        'EncryptValue',
        'Equals',
        'ExportCspBlob',
        'ExportParameters',
        'FromXmlString',
        'GetHashCode',
        'GetType',
        'ImportCspBlob',
        'ImportParameters',
        'KeyExchangeAlgorithm',
        'KeySize',
        'LegalKeySizes',
        'PersistKeyInCsp',
        'PublicOnly',
        'SignData',
        'SignHash',
        'SignatureAlgorithm',
        'ToString',
        'ToXmlString',
        'UseMachineKeyStore',
        'VerifyData',
        'VerifyHash',
    ],
    'system.security.cryptography.sha1': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Create',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.sha1managed': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.sha256': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Create',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.sha256managed': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.sha384': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Create',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.sha512': [
        'CanReuseTransform',
        'CanTransformMultipleBlocks',
        'Clear',
        'ComputeHash',
        'Create',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'Hash',
        'HashSize',
        'Initialize',
        'InputBlockSize',
        'OutputBlockSize',
        'ToString',
        'TransformBlock',
        'TransformFinalBlock',
    ],
    'system.security.cryptography.symmetricalgorithm': [
        'BlockSize',
        'Clear',
        'Create',
        'CreateDecryptor',
        'CreateEncryptor',
        'Dispose',
        'Equals',
        'FeedbackSize',
        'GenerateIV',
        'GenerateKey',
        'GetHashCode',
        'GetType',
        'IV',
        'Key',
        'KeySize',
        'LegalBlockSizes',
        'LegalKeySizes',
        'Mode',
        'Padding',
        'ToString',
        'ValidKeySize',
    ],
    'system.security.cryptography.tripledescryptoserviceprovider': [
        'BlockSize',
        'Clear',
        'CreateDecryptor',
        'CreateEncryptor',
        'Dispose',
        'Equals',
        'FeedbackSize',
        'GenerateIV',
        'GenerateKey',
        'GetHashCode',
        'GetType',
        'IV',
        'Key',
        'KeySize',
        'LegalBlockSizes',
        'LegalKeySizes',
        'Mode',
        'Padding',
        'ToString',
        'ValidKeySize',
    ],
    'system.security.cryptography.x509certificates.x509certificate2': [
        'Archived',
        'Dispose',
        'Equals',
        'Export',
        'Extensions',
        'FriendlyName',
        'GetCertContentType',
        'GetCertHash',
        'GetCertHashString',
        'GetEffectiveDateString',
        'GetExpirationDateString',
        'GetFormat',
        'GetHashCode',
        'GetIssuerName',
        'GetKeyAlgorithm',
        'GetKeyAlgorithmParameters',
        'GetKeyAlgorithmParametersString',
        'GetName',
        'GetNameInfo',
        'GetPublicKey',
        'GetPublicKeyString',
        'GetRawCertData',
        'GetRawCertDataString',
        'GetSerialNumber',
        'GetSerialNumberString',
        'GetType',
        'Handle',
        'HasPrivateKey',
        'Import',
        'Issuer',
        'IssuerName',
        'NotAfter',
        'NotBefore',
        'PrivateKey',
        'PublicKey',
        'RawData',
        'Reset',
        'SerialNumber',
        'SignatureAlgorithm',
        'Subject',
        'SubjectName',
        'Thumbprint',
        'ToString',
        'Verify',
        'Version',
    ],
    'system.security.principal.windowsbuiltinrole': [
        'AccountOperator',
        'Administrator',
        'BackupOperator',
        'Guest',
        'PowerUser',
        'PrintOperator',
        'Replicator',
        'SystemOperator',
        'User',
    ],
    'system.security.principal.windowsidentity': [
        'AccessToken',
        'Actor',
        'AddClaim',
        'AddClaims',
        'AuthenticationType',
        'BootstrapContext',
        'Claims',
        'Clone',
        'DeviceClaims',
        'Dispose',
        'Equals',
        'FindAll',
        'FindFirst',
        'GetAnonymous',
        'GetCurrent',
        'GetHashCode',
        'GetType',
        'Groups',
        'HasClaim',
        'Impersonate',
        'ImpersonationLevel',
        'IsAnonymous',
        'IsAuthenticated',
        'IsGuest',
        'IsSystem',
        'Label',
        'Name',
        'NameClaimType',
        'Owner',
        'RemoveClaim',
        'RoleClaimType',
        'RunImpersonated',
        'ToString',
        'Token',
        'TryRemoveClaim',
        'User',
        'UserClaims',
        'WriteTo',
    ],
    'system.security.principal.windowsprincipal': [
        'AddIdentities',
        'AddIdentity',
        'Claims',
        'Clone',
        'DeviceClaims',
        'Equals',
        'FindAll',
        'FindFirst',
        'GetHashCode',
        'GetType',
        'HasClaim',
        'Identities',
        'Identity',
        'IsInRole',
        'ToString',
        'UserClaims',
        'WriteTo',
    ],
    'system.security.securestring': [
        'AppendChar',
        'Clear',
        'Copy',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetType',
        'InsertAt',
        'IsReadOnly',
        'Length',
        'MakeReadOnly',
        'RemoveAt',
        'SetAt',
        'ToString',
    ],
    'system.single': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'IsInfinity',
        'IsNaN',
        'IsNegativeInfinity',
        'IsPositiveInfinity',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.string': [
        'Chars',
        'Clone',
        'Compare',
        'CompareOrdinal',
        'CompareTo',
        'Concat',
        'Contains',
        'Copy',
        'CopyTo',
        'EndsWith',
        'Equals',
        'Format',
        'GetEnumerator',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'IndexOf',
        'IndexOfAny',
        'Insert',
        'Intern',
        'IsInterned',
        'IsNormalized',
        'IsNullOrEmpty',
        'IsNullOrWhiteSpace',
        'Join',
        'LastIndexOf',
        'LastIndexOfAny',
        'Length',
        'Normalize',
        'PadLeft',
        'PadRight',
        'Remove',
        'Replace',
        'Split',
        'StartsWith',
        'Substring',
        'ToCharArray',
        'ToLower',
        'ToLowerInvariant',
        'ToString',
        'ToUpper',
        'ToUpperInvariant',
        'Trim',
        'TrimEnd',
        'TrimStart',
    ],
    'system.text.asciiencoding': [
        'BodyName',
        'Clone',
        'CodePage',
        'DecoderFallback',
        'EncoderFallback',
        'EncodingName',
        'Equals',
        'GetByteCount',
        'GetBytes',
        'GetCharCount',
        'GetChars',
        'GetDecoder',
        'GetEncoder',
        'GetHashCode',
        'GetMaxByteCount',
        'GetMaxCharCount',
        'GetPreamble',
        'GetString',
        'GetType',
        'HeaderName',
        'IsAlwaysNormalized',
        'IsBrowserDisplay',
        'IsBrowserSave',
        'IsMailNewsDisplay',
        'IsMailNewsSave',
        'IsReadOnly',
        'IsSingleByte',
        'ToString',
        'WebName',
        'WindowsCodePage',
    ],
    'system.text.encoding': [
        'ASCII',
        'BigEndianUnicode',
        'BodyName',
        'Clone',
        'CodePage',
        'Convert',
        'DecoderFallback',
        'Default',
        'EncoderFallback',
        'EncodingName',
        'Equals',
        'GetByteCount',
        'GetBytes',
        'GetCharCount',
        'GetChars',
        'GetDecoder',
        'GetEncoder',
        'GetEncoding',
        'GetEncodings',
        'GetHashCode',
        'GetMaxByteCount',
        'GetMaxCharCount',
        'GetPreamble',
        'GetString',
        'GetType',
        'HeaderName',
        'IsAlwaysNormalized',
        'IsBrowserDisplay',
        'IsBrowserSave',
        'IsMailNewsDisplay',
        'IsMailNewsSave',
        'IsReadOnly',
        'IsSingleByte',
        'RegisterProvider',
        'ToString',
        'UTF32',
        'UTF7',
        'UTF8',
        'Unicode',
        'WebName',
        'WindowsCodePage',
    ],
    'system.text.regularexpressions.regex': [
        'CacheSize',
        'CompileToAssembly',
        'Equals',
        'Escape',
        'GetGroupNames',
        'GetGroupNumbers',
        'GetHashCode',
        'GetType',
        'GroupNameFromNumber',
        'GroupNumberFromName',
        'IsMatch',
        'Match',
        'MatchTimeout',
        'Matches',
        'Options',
        'Replace',
        'RightToLeft',
        'Split',
        'ToString',
        'Unescape',
    ],
    'system.text.regularexpressions.regexoptions': [
        'Compiled',
        'CultureInvariant',
        'ECMAScript',
        'ExplicitCapture',
        'IgnoreCase',
        'IgnorePatternWhitespace',
        'Multiline',
        'None',
        'RightToLeft',
        'Singleline',
    ],
    'system.text.stringbuilder': [
        'Append',
        'AppendFormat',
        'AppendLine',
        'Capacity',
        'Chars',
        'Clear',
        'CopyTo',
        'EnsureCapacity',
        'Equals',
        'GetHashCode',
        'GetType',
        'Insert',
        'Length',
        'MaxCapacity',
        'Remove',
        'Replace',
        'ToString',
    ],
    'system.text.utf8encoding': [
        'BodyName',
        'Clone',
        'CodePage',
        'DecoderFallback',
        'EncoderFallback',
        'EncodingName',
        'Equals',
        'GetByteCount',
        'GetBytes',
        'GetCharCount',
        'GetChars',
        'GetDecoder',
        'GetEncoder',
        'GetHashCode',
        'GetMaxByteCount',
        'GetMaxCharCount',
        'GetPreamble',
        'GetString',
        'GetType',
        'HeaderName',
        'IsAlwaysNormalized',
        'IsBrowserDisplay',
        'IsBrowserSave',
        'IsMailNewsDisplay',
        'IsMailNewsSave',
        'IsReadOnly',
        'IsSingleByte',
        'ToString',
        'WebName',
        'WindowsCodePage',
    ],
    'system.threading.mutex': [
        'Close',
        'CreateObjRef',
        'Dispose',
        'Equals',
        'GetAccessControl',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'Handle',
        'InitializeLifetimeService',
        'OpenExisting',
        'ReleaseMutex',
        'SafeWaitHandle',
        'SetAccessControl',
        'ToString',
        'TryOpenExisting',
        'WaitOne',
    ],
    'system.threading.thread': [
        'Abort',
        'AllocateDataSlot',
        'AllocateNamedDataSlot',
        'ApartmentState',
        'BeginCriticalRegion',
        'BeginThreadAffinity',
        'CurrentContext',
        'CurrentCulture',
        'CurrentPrincipal',
        'CurrentThread',
        'CurrentUICulture',
        'DisableComObjectEagerCleanup',
        'EndCriticalRegion',
        'EndThreadAffinity',
        'Equals',
        'ExecutionContext',
        'FreeNamedDataSlot',
        'GetApartmentState',
        'GetCompressedStack',
        'GetData',
        'GetDomain',
        'GetDomainID',
        'GetHashCode',
        'GetNamedDataSlot',
        'GetType',
        'Interrupt',
        'IsAlive',
        'IsBackground',
        'IsThreadPoolThread',
        'Join',
        'ManagedThreadId',
        'MemoryBarrier',
        'Name',
        'Priority',
        'ResetAbort',
        'Resume',
        'SetApartmentState',
        'SetCompressedStack',
        'SetData',
        'Sleep',
        'SpinWait',
        'Start',
        'Suspend',
        'ThreadState',
        'ToString',
        'TrySetApartmentState',
        'VolatileRead',
        'VolatileWrite',
        'Yield',
    ],
    'system.threading.timer': [
        'Change',
        'CreateObjRef',
        'Dispose',
        'Equals',
        'GetHashCode',
        'GetLifetimeService',
        'GetType',
        'InitializeLifetimeService',
        'ToString',
    ],
    'system.timespan': [
        'Add',
        'Compare',
        'CompareTo',
        'Days',
        'Duration',
        'Equals',
        'FromDays',
        'FromHours',
        'FromMilliseconds',
        'FromMinutes',
        'FromSeconds',
        'FromTicks',
        'GetHashCode',
        'GetType',
        'Hours',
        'Milliseconds',
        'Minutes',
        'Negate',
        'Parse',
        'ParseExact',
        'Seconds',
        'Subtract',
        'Ticks',
        'ToString',
        'TotalDays',
        'TotalHours',
        'TotalMilliseconds',
        'TotalMinutes',
        'TotalSeconds',
        'TryParse',
        'TryParseExact',
    ],
    'system.uint16': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.uint32': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.uint64': [
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'GetTypeCode',
        'Parse',
        'ToString',
        'TryParse',
    ],
    'system.uintptr': [
        'Add',
        'Equals',
        'GetHashCode',
        'GetType',
        'Size',
        'Subtract',
        'ToPointer',
        'ToString',
        'ToUInt32',
        'ToUInt64',
    ],
    'system.uri': [
        'AbsolutePath',
        'AbsoluteUri',
        'Authority',
        'CheckHostName',
        'CheckSchemeName',
        'Compare',
        'DnsSafeHost',
        'Equals',
        'EscapeDataString',
        'EscapeUriString',
        'Fragment',
        'FromHex',
        'GetComponents',
        'GetHashCode',
        'GetLeftPart',
        'GetType',
        'HexEscape',
        'HexUnescape',
        'Host',
        'HostNameType',
        'IdnHost',
        'IsAbsoluteUri',
        'IsBaseOf',
        'IsDefaultPort',
        'IsFile',
        'IsHexDigit',
        'IsHexEncoding',
        'IsLoopback',
        'IsUnc',
        'IsWellFormedOriginalString',
        'IsWellFormedUriString',
        'LocalPath',
        'MakeRelative',
        'MakeRelativeUri',
        'OriginalString',
        'PathAndQuery',
        'Port',
        'Query',
        'Scheme',
        'Segments',
        'ToString',
        'TryCreate',
        'UnescapeDataString',
        'UserEscaped',
        'UserInfo',
    ],
    'system.version': [
        'Build',
        'Clone',
        'CompareTo',
        'Equals',
        'GetHashCode',
        'GetType',
        'Major',
        'MajorRevision',
        'Minor',
        'MinorRevision',
        'Parse',
        'Revision',
        'ToString',
        'TryParse',
    ],
    'system.void': [
        'Equals',
        'GetHashCode',
        'GetType',
        'ToString',
    ],
    'system.xml.xmldocument': [
        'AppendChild',
        'Attributes',
        'BaseURI',
        'ChildNodes',
        'Clone',
        'CloneNode',
        'CreateAttribute',
        'CreateCDataSection',
        'CreateComment',
        'CreateDocumentFragment',
        'CreateDocumentType',
        'CreateElement',
        'CreateEntityReference',
        'CreateNavigator',
        'CreateNode',
        'CreateProcessingInstruction',
        'CreateSignificantWhitespace',
        'CreateTextNode',
        'CreateWhitespace',
        'CreateXmlDeclaration',
        'DocumentElement',
        'DocumentType',
        'Equals',
        'FirstChild',
        'GetElementById',
        'GetElementsByTagName',
        'GetEnumerator',
        'GetHashCode',
        'GetNamespaceOfPrefix',
        'GetPrefixOfNamespace',
        'GetType',
        'HasChildNodes',
        'Implementation',
        'ImportNode',
        'InnerText',
        'InnerXml',
        'InsertAfter',
        'InsertBefore',
        'IsReadOnly',
        'Item',
        'LastChild',
        'Load',
        'LoadXml',
        'LocalName',
        'Name',
        'NameTable',
        'NamespaceURI',
        'NextSibling',
        'NodeType',
        'Normalize',
        'OuterXml',
        'OwnerDocument',
        'ParentNode',
        'Prefix',
        'PrependChild',
        'PreserveWhitespace',
        'PreviousSibling',
        'PreviousText',
        'ReadNode',
        'RemoveAll',
        'RemoveChild',
        'ReplaceChild',
        'Save',
        'SchemaInfo',
        'Schemas',
        'SelectNodes',
        'SelectSingleNode',
        'Supports',
        'ToString',
        'Validate',
        'Value',
        'WriteContentTo',
        'WriteTo',
        'XmlResolver',
    ],
}


_PROPERTY_TYPES: dict[tuple[str, str], str] = {
    ('system.array', 'isfixedsize'): 'system.boolean',
    ('system.array', 'isreadonly'): 'system.boolean',
    ('system.array', 'issynchronized'): 'system.boolean',
    ('system.array', 'length'): 'system.int32',
    ('system.array', 'longlength'): 'system.int64',
    ('system.array', 'rank'): 'system.int32',
    ('system.array', 'syncroot'): 'system.object',
    ('system.collections.arraylist', 'capacity'): 'system.int32',
    ('system.collections.arraylist', 'count'): 'system.int32',
    ('system.collections.arraylist', 'isfixedsize'): 'system.boolean',
    ('system.collections.arraylist', 'isreadonly'): 'system.boolean',
    ('system.collections.arraylist', 'issynchronized'): 'system.boolean',
    ('system.collections.arraylist', 'item'): 'system.object',
    ('system.collections.arraylist', 'syncroot'): 'system.object',
    ('system.collections.hashtable', 'count'): 'system.int32',
    ('system.collections.hashtable', 'isfixedsize'): 'system.boolean',
    ('system.collections.hashtable', 'isreadonly'): 'system.boolean',
    ('system.collections.hashtable', 'issynchronized'): 'system.boolean',
    ('system.collections.hashtable', 'item'): 'system.object',
    ('system.collections.hashtable', 'keys'): 'system.collections.icollection',
    ('system.collections.hashtable', 'syncroot'): 'system.object',
    ('system.collections.hashtable', 'values'): 'system.collections.icollection',
    ('system.collections.queue', 'count'): 'system.int32',
    ('system.collections.queue', 'issynchronized'): 'system.boolean',
    ('system.collections.queue', 'syncroot'): 'system.object',
    ('system.collections.sortedlist', 'capacity'): 'system.int32',
    ('system.collections.sortedlist', 'count'): 'system.int32',
    ('system.collections.sortedlist', 'isfixedsize'): 'system.boolean',
    ('system.collections.sortedlist', 'isreadonly'): 'system.boolean',
    ('system.collections.sortedlist', 'issynchronized'): 'system.boolean',
    ('system.collections.sortedlist', 'item'): 'system.object',
    ('system.collections.sortedlist', 'keys'): 'system.collections.icollection',
    ('system.collections.sortedlist', 'syncroot'): 'system.object',
    ('system.collections.sortedlist', 'values'): 'system.collections.icollection',
    ('system.collections.specialized.ordereddictionary', 'count'): 'system.int32',
    ('system.collections.specialized.ordereddictionary', 'isreadonly'): 'system.boolean',
    ('system.collections.specialized.ordereddictionary', 'item'): 'system.object',
    ('system.collections.specialized.ordereddictionary', 'keys'): 'system.collections.icollection',
    ('system.collections.specialized.ordereddictionary', 'values'): 'system.collections.icollection',
    ('system.collections.stack', 'count'): 'system.int32',
    ('system.collections.stack', 'issynchronized'): 'system.boolean',
    ('system.collections.stack', 'syncroot'): 'system.object',
    ('system.componentmodel.win32exception', 'data'): 'system.collections.idictionary',
    ('system.componentmodel.win32exception', 'errorcode'): 'system.int32',
    ('system.componentmodel.win32exception', 'helplink'): 'system.string',
    ('system.componentmodel.win32exception', 'hresult'): 'system.int32',
    ('system.componentmodel.win32exception', 'innerexception'): 'system.exception',
    ('system.componentmodel.win32exception', 'message'): 'system.string',
    ('system.componentmodel.win32exception', 'nativeerrorcode'): 'system.int32',
    ('system.componentmodel.win32exception', 'source'): 'system.string',
    ('system.componentmodel.win32exception', 'stacktrace'): 'system.string',
    ('system.componentmodel.win32exception', 'targetsite'): 'system.reflection.methodbase',
    ('system.console', 'backgroundcolor'): 'system.consolecolor',
    ('system.console', 'bufferheight'): 'system.int32',
    ('system.console', 'bufferwidth'): 'system.int32',
    ('system.console', 'capslock'): 'system.boolean',
    ('system.console', 'cursorleft'): 'system.int32',
    ('system.console', 'cursorsize'): 'system.int32',
    ('system.console', 'cursortop'): 'system.int32',
    ('system.console', 'cursorvisible'): 'system.boolean',
    ('system.console', 'error'): 'system.io.textwriter',
    ('system.console', 'foregroundcolor'): 'system.consolecolor',
    ('system.console', 'in'): 'system.io.textreader',
    ('system.console', 'inputencoding'): 'system.text.encoding',
    ('system.console', 'iserrorredirected'): 'system.boolean',
    ('system.console', 'isinputredirected'): 'system.boolean',
    ('system.console', 'isoutputredirected'): 'system.boolean',
    ('system.console', 'keyavailable'): 'system.boolean',
    ('system.console', 'largestwindowheight'): 'system.int32',
    ('system.console', 'largestwindowwidth'): 'system.int32',
    ('system.console', 'numberlock'): 'system.boolean',
    ('system.console', 'out'): 'system.io.textwriter',
    ('system.console', 'outputencoding'): 'system.text.encoding',
    ('system.console', 'title'): 'system.string',
    ('system.console', 'treatcontrolcasinput'): 'system.boolean',
    ('system.console', 'windowheight'): 'system.int32',
    ('system.console', 'windowleft'): 'system.int32',
    ('system.console', 'windowtop'): 'system.int32',
    ('system.console', 'windowwidth'): 'system.int32',
    ('system.datetime', 'date'): 'system.datetime',
    ('system.datetime', 'day'): 'system.int32',
    ('system.datetime', 'dayofweek'): 'system.dayofweek',
    ('system.datetime', 'dayofyear'): 'system.int32',
    ('system.datetime', 'hour'): 'system.int32',
    ('system.datetime', 'kind'): 'system.datetimekind',
    ('system.datetime', 'millisecond'): 'system.int32',
    ('system.datetime', 'minute'): 'system.int32',
    ('system.datetime', 'month'): 'system.int32',
    ('system.datetime', 'now'): 'system.datetime',
    ('system.datetime', 'second'): 'system.int32',
    ('system.datetime', 'ticks'): 'system.int64',
    ('system.datetime', 'timeofday'): 'system.timespan',
    ('system.datetime', 'today'): 'system.datetime',
    ('system.datetime', 'utcnow'): 'system.datetime',
    ('system.datetime', 'year'): 'system.int32',
    ('system.diagnostics.process', 'basepriority'): 'system.int32',
    ('system.diagnostics.process', 'container'): 'system.componentmodel.icontainer',
    ('system.diagnostics.process', 'enableraisingevents'): 'system.boolean',
    ('system.diagnostics.process', 'exitcode'): 'system.int32',
    ('system.diagnostics.process', 'exittime'): 'system.datetime',
    ('system.diagnostics.process', 'handle'): 'system.intptr',
    ('system.diagnostics.process', 'handlecount'): 'system.int32',
    ('system.diagnostics.process', 'hasexited'): 'system.boolean',
    ('system.diagnostics.process', 'id'): 'system.int32',
    ('system.diagnostics.process', 'machinename'): 'system.string',
    ('system.diagnostics.process', 'mainmodule'): 'system.diagnostics.processmodule',
    ('system.diagnostics.process', 'mainwindowhandle'): 'system.intptr',
    ('system.diagnostics.process', 'mainwindowtitle'): 'system.string',
    ('system.diagnostics.process', 'maxworkingset'): 'system.intptr',
    ('system.diagnostics.process', 'minworkingset'): 'system.intptr',
    ('system.diagnostics.process', 'modules'): 'system.diagnostics.processmodulecollection',
    ('system.diagnostics.process', 'nonpagedsystemmemorysize'): 'system.int32',
    ('system.diagnostics.process', 'nonpagedsystemmemorysize64'): 'system.int64',
    ('system.diagnostics.process', 'pagedmemorysize'): 'system.int32',
    ('system.diagnostics.process', 'pagedmemorysize64'): 'system.int64',
    ('system.diagnostics.process', 'pagedsystemmemorysize'): 'system.int32',
    ('system.diagnostics.process', 'pagedsystemmemorysize64'): 'system.int64',
    ('system.diagnostics.process', 'peakpagedmemorysize'): 'system.int32',
    ('system.diagnostics.process', 'peakpagedmemorysize64'): 'system.int64',
    ('system.diagnostics.process', 'peakvirtualmemorysize'): 'system.int32',
    ('system.diagnostics.process', 'peakvirtualmemorysize64'): 'system.int64',
    ('system.diagnostics.process', 'peakworkingset'): 'system.int32',
    ('system.diagnostics.process', 'peakworkingset64'): 'system.int64',
    ('system.diagnostics.process', 'priorityboostenabled'): 'system.boolean',
    ('system.diagnostics.process', 'priorityclass'): 'system.diagnostics.processpriorityclass',
    ('system.diagnostics.process', 'privatememorysize'): 'system.int32',
    ('system.diagnostics.process', 'privatememorysize64'): 'system.int64',
    ('system.diagnostics.process', 'privilegedprocessortime'): 'system.timespan',
    ('system.diagnostics.process', 'processname'): 'system.string',
    ('system.diagnostics.process', 'processoraffinity'): 'system.intptr',
    ('system.diagnostics.process', 'responding'): 'system.boolean',
    ('system.diagnostics.process', 'safehandle'): 'microsoft.win32.safehandles.safeprocesshandle',
    ('system.diagnostics.process', 'sessionid'): 'system.int32',
    ('system.diagnostics.process', 'site'): 'system.componentmodel.isite',
    ('system.diagnostics.process', 'standarderror'): 'system.io.streamreader',
    ('system.diagnostics.process', 'standardinput'): 'system.io.streamwriter',
    ('system.diagnostics.process', 'standardoutput'): 'system.io.streamreader',
    ('system.diagnostics.process', 'startinfo'): 'system.diagnostics.processstartinfo',
    ('system.diagnostics.process', 'starttime'): 'system.datetime',
    ('system.diagnostics.process', 'synchronizingobject'): 'system.componentmodel.isynchronizeinvoke',
    ('system.diagnostics.process', 'threads'): 'system.diagnostics.processthreadcollection',
    ('system.diagnostics.process', 'totalprocessortime'): 'system.timespan',
    ('system.diagnostics.process', 'userprocessortime'): 'system.timespan',
    ('system.diagnostics.process', 'virtualmemorysize'): 'system.int32',
    ('system.diagnostics.process', 'virtualmemorysize64'): 'system.int64',
    ('system.diagnostics.process', 'workingset'): 'system.int32',
    ('system.diagnostics.process', 'workingset64'): 'system.int64',
    ('system.diagnostics.processstartinfo', 'arguments'): 'system.string',
    ('system.diagnostics.processstartinfo', 'createnowindow'): 'system.boolean',
    ('system.diagnostics.processstartinfo', 'domain'): 'system.string',
    ('system.diagnostics.processstartinfo', 'environment'): 'system.collections.generic.idictionary',
    ('system.diagnostics.processstartinfo', 'environmentvariables'): 'system.collections.specialized.stringdictionary',
    ('system.diagnostics.processstartinfo', 'errordialog'): 'system.boolean',
    ('system.diagnostics.processstartinfo', 'errordialogparenthandle'): 'system.intptr',
    ('system.diagnostics.processstartinfo', 'filename'): 'system.string',
    ('system.diagnostics.processstartinfo', 'loaduserprofile'): 'system.boolean',
    ('system.diagnostics.processstartinfo', 'password'): 'system.security.securestring',
    ('system.diagnostics.processstartinfo', 'passwordincleartext'): 'system.string',
    ('system.diagnostics.processstartinfo', 'redirectstandarderror'): 'system.boolean',
    ('system.diagnostics.processstartinfo', 'redirectstandardinput'): 'system.boolean',
    ('system.diagnostics.processstartinfo', 'redirectstandardoutput'): 'system.boolean',
    ('system.diagnostics.processstartinfo', 'standarderrorencoding'): 'system.text.encoding',
    ('system.diagnostics.processstartinfo', 'standardoutputencoding'): 'system.text.encoding',
    ('system.diagnostics.processstartinfo', 'username'): 'system.string',
    ('system.diagnostics.processstartinfo', 'useshellexecute'): 'system.boolean',
    ('system.diagnostics.processstartinfo', 'verb'): 'system.string',
    ('system.diagnostics.processstartinfo', 'verbs'): 'system.string',
    ('system.diagnostics.processstartinfo', 'windowstyle'): 'system.diagnostics.processwindowstyle',
    ('system.diagnostics.processstartinfo', 'workingdirectory'): 'system.string',
    ('system.environment', 'commandline'): 'system.string',
    ('system.environment', 'currentdirectory'): 'system.string',
    ('system.environment', 'currentmanagedthreadid'): 'system.int32',
    ('system.environment', 'exitcode'): 'system.int32',
    ('system.environment', 'hasshutdownstarted'): 'system.boolean',
    ('system.environment', 'is64bitoperatingsystem'): 'system.boolean',
    ('system.environment', 'is64bitprocess'): 'system.boolean',
    ('system.environment', 'machinename'): 'system.string',
    ('system.environment', 'newline'): 'system.string',
    ('system.environment', 'osversion'): 'system.operatingsystem',
    ('system.environment', 'processorcount'): 'system.int32',
    ('system.environment', 'stacktrace'): 'system.string',
    ('system.environment', 'systemdirectory'): 'system.string',
    ('system.environment', 'systempagesize'): 'system.int32',
    ('system.environment', 'tickcount'): 'system.int32',
    ('system.environment', 'userdomainname'): 'system.string',
    ('system.environment', 'userinteractive'): 'system.boolean',
    ('system.environment', 'username'): 'system.string',
    ('system.environment', 'version'): 'system.version',
    ('system.environment', 'workingset'): 'system.int64',
    ('system.exception', 'data'): 'system.collections.idictionary',
    ('system.exception', 'helplink'): 'system.string',
    ('system.exception', 'hresult'): 'system.int32',
    ('system.exception', 'innerexception'): 'system.exception',
    ('system.exception', 'message'): 'system.string',
    ('system.exception', 'source'): 'system.string',
    ('system.exception', 'stacktrace'): 'system.string',
    ('system.exception', 'targetsite'): 'system.reflection.methodbase',
    ('system.globalization.cultureinfo', 'calendar'): 'system.globalization.calendar',
    ('system.globalization.cultureinfo', 'compareinfo'): 'system.globalization.compareinfo',
    ('system.globalization.cultureinfo', 'culturetypes'): 'system.globalization.culturetypes',
    ('system.globalization.cultureinfo', 'currentculture'): 'system.globalization.cultureinfo',
    ('system.globalization.cultureinfo', 'currentuiculture'): 'system.globalization.cultureinfo',
    ('system.globalization.cultureinfo', 'datetimeformat'): 'system.globalization.datetimeformatinfo',
    ('system.globalization.cultureinfo', 'defaultthreadcurrentculture'): 'system.globalization.cultureinfo',
    ('system.globalization.cultureinfo', 'defaultthreadcurrentuiculture'): 'system.globalization.cultureinfo',
    ('system.globalization.cultureinfo', 'displayname'): 'system.string',
    ('system.globalization.cultureinfo', 'englishname'): 'system.string',
    ('system.globalization.cultureinfo', 'ietflanguagetag'): 'system.string',
    ('system.globalization.cultureinfo', 'installeduiculture'): 'system.globalization.cultureinfo',
    ('system.globalization.cultureinfo', 'invariantculture'): 'system.globalization.cultureinfo',
    ('system.globalization.cultureinfo', 'isneutralculture'): 'system.boolean',
    ('system.globalization.cultureinfo', 'isreadonly'): 'system.boolean',
    ('system.globalization.cultureinfo', 'keyboardlayoutid'): 'system.int32',
    ('system.globalization.cultureinfo', 'lcid'): 'system.int32',
    ('system.globalization.cultureinfo', 'name'): 'system.string',
    ('system.globalization.cultureinfo', 'nativename'): 'system.string',
    ('system.globalization.cultureinfo', 'numberformat'): 'system.globalization.numberformatinfo',
    ('system.globalization.cultureinfo', 'optionalcalendars'): 'system.globalization.calendar',
    ('system.globalization.cultureinfo', 'parent'): 'system.globalization.cultureinfo',
    ('system.globalization.cultureinfo', 'textinfo'): 'system.globalization.textinfo',
    ('system.globalization.cultureinfo', 'threeletterisolanguagename'): 'system.string',
    ('system.globalization.cultureinfo', 'threeletterwindowslanguagename'): 'system.string',
    ('system.globalization.cultureinfo', 'twoletterisolanguagename'): 'system.string',
    ('system.globalization.cultureinfo', 'useuseroverride'): 'system.boolean',
    ('system.intptr', 'size'): 'system.int32',
    ('system.io.binaryreader', 'basestream'): 'system.io.stream',
    ('system.io.binarywriter', 'basestream'): 'system.io.stream',
    ('system.io.compression.deflatestream', 'basestream'): 'system.io.stream',
    ('system.io.compression.deflatestream', 'canread'): 'system.boolean',
    ('system.io.compression.deflatestream', 'canseek'): 'system.boolean',
    ('system.io.compression.deflatestream', 'cantimeout'): 'system.boolean',
    ('system.io.compression.deflatestream', 'canwrite'): 'system.boolean',
    ('system.io.compression.deflatestream', 'length'): 'system.int64',
    ('system.io.compression.deflatestream', 'position'): 'system.int64',
    ('system.io.compression.deflatestream', 'readtimeout'): 'system.int32',
    ('system.io.compression.deflatestream', 'writetimeout'): 'system.int32',
    ('system.io.compression.gzipstream', 'basestream'): 'system.io.stream',
    ('system.io.compression.gzipstream', 'canread'): 'system.boolean',
    ('system.io.compression.gzipstream', 'canseek'): 'system.boolean',
    ('system.io.compression.gzipstream', 'cantimeout'): 'system.boolean',
    ('system.io.compression.gzipstream', 'canwrite'): 'system.boolean',
    ('system.io.compression.gzipstream', 'length'): 'system.int64',
    ('system.io.compression.gzipstream', 'position'): 'system.int64',
    ('system.io.compression.gzipstream', 'readtimeout'): 'system.int32',
    ('system.io.compression.gzipstream', 'writetimeout'): 'system.int32',
    ('system.io.directoryinfo', 'attributes'): 'system.io.fileattributes',
    ('system.io.directoryinfo', 'creationtime'): 'system.datetime',
    ('system.io.directoryinfo', 'creationtimeutc'): 'system.datetime',
    ('system.io.directoryinfo', 'exists'): 'system.boolean',
    ('system.io.directoryinfo', 'extension'): 'system.string',
    ('system.io.directoryinfo', 'fullname'): 'system.string',
    ('system.io.directoryinfo', 'lastaccesstime'): 'system.datetime',
    ('system.io.directoryinfo', 'lastaccesstimeutc'): 'system.datetime',
    ('system.io.directoryinfo', 'lastwritetime'): 'system.datetime',
    ('system.io.directoryinfo', 'lastwritetimeutc'): 'system.datetime',
    ('system.io.directoryinfo', 'name'): 'system.string',
    ('system.io.directoryinfo', 'parent'): 'system.io.directoryinfo',
    ('system.io.directoryinfo', 'root'): 'system.io.directoryinfo',
    ('system.io.fileinfo', 'attributes'): 'system.io.fileattributes',
    ('system.io.fileinfo', 'creationtime'): 'system.datetime',
    ('system.io.fileinfo', 'creationtimeutc'): 'system.datetime',
    ('system.io.fileinfo', 'directory'): 'system.io.directoryinfo',
    ('system.io.fileinfo', 'directoryname'): 'system.string',
    ('system.io.fileinfo', 'exists'): 'system.boolean',
    ('system.io.fileinfo', 'extension'): 'system.string',
    ('system.io.fileinfo', 'fullname'): 'system.string',
    ('system.io.fileinfo', 'isreadonly'): 'system.boolean',
    ('system.io.fileinfo', 'lastaccesstime'): 'system.datetime',
    ('system.io.fileinfo', 'lastaccesstimeutc'): 'system.datetime',
    ('system.io.fileinfo', 'lastwritetime'): 'system.datetime',
    ('system.io.fileinfo', 'lastwritetimeutc'): 'system.datetime',
    ('system.io.fileinfo', 'length'): 'system.int64',
    ('system.io.fileinfo', 'name'): 'system.string',
    ('system.io.filestream', 'canread'): 'system.boolean',
    ('system.io.filestream', 'canseek'): 'system.boolean',
    ('system.io.filestream', 'cantimeout'): 'system.boolean',
    ('system.io.filestream', 'canwrite'): 'system.boolean',
    ('system.io.filestream', 'handle'): 'system.intptr',
    ('system.io.filestream', 'isasync'): 'system.boolean',
    ('system.io.filestream', 'length'): 'system.int64',
    ('system.io.filestream', 'name'): 'system.string',
    ('system.io.filestream', 'position'): 'system.int64',
    ('system.io.filestream', 'readtimeout'): 'system.int32',
    ('system.io.filestream', 'safefilehandle'): 'microsoft.win32.safehandles.safefilehandle',
    ('system.io.filestream', 'writetimeout'): 'system.int32',
    ('system.io.memorystream', 'canread'): 'system.boolean',
    ('system.io.memorystream', 'canseek'): 'system.boolean',
    ('system.io.memorystream', 'cantimeout'): 'system.boolean',
    ('system.io.memorystream', 'canwrite'): 'system.boolean',
    ('system.io.memorystream', 'capacity'): 'system.int32',
    ('system.io.memorystream', 'length'): 'system.int64',
    ('system.io.memorystream', 'position'): 'system.int64',
    ('system.io.memorystream', 'readtimeout'): 'system.int32',
    ('system.io.memorystream', 'writetimeout'): 'system.int32',
    ('system.io.stream', 'canread'): 'system.boolean',
    ('system.io.stream', 'canseek'): 'system.boolean',
    ('system.io.stream', 'cantimeout'): 'system.boolean',
    ('system.io.stream', 'canwrite'): 'system.boolean',
    ('system.io.stream', 'length'): 'system.int64',
    ('system.io.stream', 'position'): 'system.int64',
    ('system.io.stream', 'readtimeout'): 'system.int32',
    ('system.io.stream', 'writetimeout'): 'system.int32',
    ('system.io.streamreader', 'basestream'): 'system.io.stream',
    ('system.io.streamreader', 'currentencoding'): 'system.text.encoding',
    ('system.io.streamreader', 'endofstream'): 'system.boolean',
    ('system.io.streamwriter', 'autoflush'): 'system.boolean',
    ('system.io.streamwriter', 'basestream'): 'system.io.stream',
    ('system.io.streamwriter', 'encoding'): 'system.text.encoding',
    ('system.io.streamwriter', 'formatprovider'): 'system.iformatprovider',
    ('system.io.streamwriter', 'newline'): 'system.string',
    ('system.io.stringwriter', 'encoding'): 'system.text.encoding',
    ('system.io.stringwriter', 'formatprovider'): 'system.iformatprovider',
    ('system.io.stringwriter', 'newline'): 'system.string',
    ('system.management.automation.commandinvocationintrinsics', 'commandnotfoundaction'): 'system.eventhandler',
    ('system.management.automation.commandinvocationintrinsics', 'haserrors'): 'system.boolean',
    ('system.management.automation.commandinvocationintrinsics', 'postcommandlookupaction'): 'system.eventhandler',
    ('system.management.automation.commandinvocationintrinsics', 'precommandlookupaction'): 'system.eventhandler',
    ('system.management.automation.engineintrinsics', 'events'): 'system.management.automation.pseventmanager',
    ('system.management.automation.engineintrinsics', 'host'): 'system.management.automation.host.pshost',
    ('system.management.automation.engineintrinsics', 'invokecommand'): 'system.management.automation.commandinvocationintrinsics',
    ('system.management.automation.engineintrinsics', 'invokeprovider'): 'system.management.automation.providerintrinsics',
    ('system.management.automation.engineintrinsics', 'sessionstate'): 'system.management.automation.sessionstate',
    ('system.management.automation.host.pshost', 'currentculture'): 'system.globalization.cultureinfo',
    ('system.management.automation.host.pshost', 'currentuiculture'): 'system.globalization.cultureinfo',
    ('system.management.automation.host.pshost', 'debuggerenabled'): 'system.boolean',
    ('system.management.automation.host.pshost', 'instanceid'): 'system.guid',
    ('system.management.automation.host.pshost', 'name'): 'system.string',
    ('system.management.automation.host.pshost', 'privatedata'): 'system.management.automation.psobject',
    ('system.management.automation.host.pshost', 'ui'): 'system.management.automation.host.pshostuserinterface',
    ('system.management.automation.host.pshost', 'version'): 'system.version',
    ('system.management.automation.pathintrinsics', 'currentfilesystemlocation'): 'system.management.automation.pathinfo',
    ('system.management.automation.pathintrinsics', 'currentlocation'): 'system.management.automation.pathinfo',
    ('system.management.automation.providerintrinsics', 'childitem'): 'system.management.automation.childitemcmdletproviderintrinsics',
    ('system.management.automation.providerintrinsics', 'content'): 'system.management.automation.contentcmdletproviderintrinsics',
    ('system.management.automation.providerintrinsics', 'item'): 'system.management.automation.itemcmdletproviderintrinsics',
    ('system.management.automation.providerintrinsics', 'property'): 'system.management.automation.propertycmdletproviderintrinsics',
    ('system.management.automation.providerintrinsics', 'securitydescriptor'):
        'system.management.automation.securitydescriptorcmdletproviderintrinsics',
    ('system.management.automation.pscredential', 'empty'): 'system.management.automation.pscredential',
    ('system.management.automation.pscredential', 'getsymmetricencryptionkeydelegate'):
        'system.management.automation.getsymmetricencryptionkey',
    ('system.management.automation.pscredential', 'password'): 'system.security.securestring',
    ('system.management.automation.pscredential', 'username'): 'system.string',
    ('system.management.automation.psvariable', 'attributes'): 'system.collections.objectmodel.collection',
    ('system.management.automation.psvariable', 'description'): 'system.string',
    ('system.management.automation.psvariable', 'module'): 'system.management.automation.psmoduleinfo',
    ('system.management.automation.psvariable', 'modulename'): 'system.string',
    ('system.management.automation.psvariable', 'name'): 'system.string',
    ('system.management.automation.psvariable', 'options'): 'system.management.automation.scopeditemoptions',
    ('system.management.automation.psvariable', 'value'): 'system.object',
    ('system.management.automation.psvariable', 'visibility'): 'system.management.automation.sessionstateentryvisibility',
    ('system.management.automation.scriptblock', 'ast'): 'system.management.automation.language.ast',
    ('system.management.automation.scriptblock', 'attributes'): 'system.collections.generic.list',
    ('system.management.automation.scriptblock', 'debuggerhidden'): 'system.boolean',
    ('system.management.automation.scriptblock', 'file'): 'system.string',
    ('system.management.automation.scriptblock', 'id'): 'system.guid',
    ('system.management.automation.scriptblock', 'isconfiguration'): 'system.boolean',
    ('system.management.automation.scriptblock', 'isfilter'): 'system.boolean',
    ('system.management.automation.scriptblock', 'module'): 'system.management.automation.psmoduleinfo',
    ('system.management.automation.scriptblock', 'startposition'): 'system.management.automation.pstoken',
    ('system.management.automation.sessionstate', 'applications'): 'system.collections.generic.list',
    ('system.management.automation.sessionstate', 'drive'): 'system.management.automation.drivemanagementintrinsics',
    ('system.management.automation.sessionstate', 'invokecommand'): 'system.management.automation.commandinvocationintrinsics',
    ('system.management.automation.sessionstate', 'invokeprovider'): 'system.management.automation.providerintrinsics',
    ('system.management.automation.sessionstate', 'languagemode'): 'system.management.automation.pslanguagemode',
    ('system.management.automation.sessionstate', 'module'): 'system.management.automation.psmoduleinfo',
    ('system.management.automation.sessionstate', 'path'): 'system.management.automation.pathintrinsics',
    ('system.management.automation.sessionstate', 'provider'): 'system.management.automation.cmdletprovidermanagementintrinsics',
    ('system.management.automation.sessionstate', 'psvariable'): 'system.management.automation.psvariableintrinsics',
    ('system.management.automation.sessionstate', 'scripts'): 'system.collections.generic.list',
    ('system.management.automation.sessionstate', 'usefulllanguagemodeindebugger'): 'system.boolean',
    ('system.management.managementobject', 'classpath'): 'system.management.managementpath',
    ('system.management.managementobject', 'container'): 'system.componentmodel.icontainer',
    ('system.management.managementobject', 'item'): 'system.object',
    ('system.management.managementobject', 'options'): 'system.management.objectgetoptions',
    ('system.management.managementobject', 'path'): 'system.management.managementpath',
    ('system.management.managementobject', 'properties'): 'system.management.propertydatacollection',
    ('system.management.managementobject', 'qualifiers'): 'system.management.qualifierdatacollection',
    ('system.management.managementobject', 'scope'): 'system.management.managementscope',
    ('system.management.managementobject', 'site'): 'system.componentmodel.isite',
    ('system.management.managementobject', 'systemproperties'): 'system.management.propertydatacollection',
    ('system.management.managementobjectsearcher', 'container'): 'system.componentmodel.icontainer',
    ('system.management.managementobjectsearcher', 'options'): 'system.management.enumerationoptions',
    ('system.management.managementobjectsearcher', 'query'): 'system.management.objectquery',
    ('system.management.managementobjectsearcher', 'scope'): 'system.management.managementscope',
    ('system.management.managementobjectsearcher', 'site'): 'system.componentmodel.isite',
    ('system.net.credentialcache', 'defaultcredentials'): 'system.net.icredentials',
    ('system.net.credentialcache', 'defaultnetworkcredentials'): 'system.net.networkcredential',
    ('system.net.httpwebrequest', 'accept'): 'system.string',
    ('system.net.httpwebrequest', 'address'): 'system.uri',
    ('system.net.httpwebrequest', 'allowautoredirect'): 'system.boolean',
    ('system.net.httpwebrequest', 'allowreadstreambuffering'): 'system.boolean',
    ('system.net.httpwebrequest', 'allowwritestreambuffering'): 'system.boolean',
    ('system.net.httpwebrequest', 'authenticationlevel'): 'system.net.security.authenticationlevel',
    ('system.net.httpwebrequest', 'automaticdecompression'): 'system.net.decompressionmethods',
    ('system.net.httpwebrequest', 'cachepolicy'): 'system.net.cache.requestcachepolicy',
    ('system.net.httpwebrequest', 'clientcertificates'): 'system.security.cryptography.x509certificates.x509certificatecollection',
    ('system.net.httpwebrequest', 'connection'): 'system.string',
    ('system.net.httpwebrequest', 'connectiongroupname'): 'system.string',
    ('system.net.httpwebrequest', 'contentlength'): 'system.int64',
    ('system.net.httpwebrequest', 'contenttype'): 'system.string',
    ('system.net.httpwebrequest', 'continuedelegate'): 'system.net.httpcontinuedelegate',
    ('system.net.httpwebrequest', 'continuetimeout'): 'system.int32',
    ('system.net.httpwebrequest', 'cookiecontainer'): 'system.net.cookiecontainer',
    ('system.net.httpwebrequest', 'creatorinstance'): 'system.net.iwebrequestcreate',
    ('system.net.httpwebrequest', 'credentials'): 'system.net.icredentials',
    ('system.net.httpwebrequest', 'date'): 'system.datetime',
    ('system.net.httpwebrequest', 'defaultcachepolicy'): 'system.net.cache.requestcachepolicy',
    ('system.net.httpwebrequest', 'defaultmaximumerrorresponselength'): 'system.int32',
    ('system.net.httpwebrequest', 'defaultmaximumresponseheaderslength'): 'system.int32',
    ('system.net.httpwebrequest', 'expect'): 'system.string',
    ('system.net.httpwebrequest', 'haveresponse'): 'system.boolean',
    ('system.net.httpwebrequest', 'headers'): 'system.net.webheadercollection',
    ('system.net.httpwebrequest', 'host'): 'system.string',
    ('system.net.httpwebrequest', 'ifmodifiedsince'): 'system.datetime',
    ('system.net.httpwebrequest', 'impersonationlevel'): 'system.security.principal.tokenimpersonationlevel',
    ('system.net.httpwebrequest', 'keepalive'): 'system.boolean',
    ('system.net.httpwebrequest', 'maximumautomaticredirections'): 'system.int32',
    ('system.net.httpwebrequest', 'maximumresponseheaderslength'): 'system.int32',
    ('system.net.httpwebrequest', 'mediatype'): 'system.string',
    ('system.net.httpwebrequest', 'method'): 'system.string',
    ('system.net.httpwebrequest', 'pipelined'): 'system.boolean',
    ('system.net.httpwebrequest', 'preauthenticate'): 'system.boolean',
    ('system.net.httpwebrequest', 'protocolversion'): 'system.version',
    ('system.net.httpwebrequest', 'proxy'): 'system.net.iwebproxy',
    ('system.net.httpwebrequest', 'readwritetimeout'): 'system.int32',
    ('system.net.httpwebrequest', 'referer'): 'system.string',
    ('system.net.httpwebrequest', 'requesturi'): 'system.uri',
    ('system.net.httpwebrequest', 'sendchunked'): 'system.boolean',
    ('system.net.httpwebrequest', 'servercertificatevalidationcallback'): 'system.net.security.remotecertificatevalidationcallback',
    ('system.net.httpwebrequest', 'servicepoint'): 'system.net.servicepoint',
    ('system.net.httpwebrequest', 'supportscookiecontainer'): 'system.boolean',
    ('system.net.httpwebrequest', 'timeout'): 'system.int32',
    ('system.net.httpwebrequest', 'transferencoding'): 'system.string',
    ('system.net.httpwebrequest', 'unsafeauthenticatedconnectionsharing'): 'system.boolean',
    ('system.net.httpwebrequest', 'usedefaultcredentials'): 'system.boolean',
    ('system.net.httpwebrequest', 'useragent'): 'system.string',
    ('system.net.httpwebresponse', 'characterset'): 'system.string',
    ('system.net.httpwebresponse', 'contentencoding'): 'system.string',
    ('system.net.httpwebresponse', 'contentlength'): 'system.int64',
    ('system.net.httpwebresponse', 'contenttype'): 'system.string',
    ('system.net.httpwebresponse', 'cookies'): 'system.net.cookiecollection',
    ('system.net.httpwebresponse', 'headers'): 'system.net.webheadercollection',
    ('system.net.httpwebresponse', 'isfromcache'): 'system.boolean',
    ('system.net.httpwebresponse', 'ismutuallyauthenticated'): 'system.boolean',
    ('system.net.httpwebresponse', 'lastmodified'): 'system.datetime',
    ('system.net.httpwebresponse', 'method'): 'system.string',
    ('system.net.httpwebresponse', 'protocolversion'): 'system.version',
    ('system.net.httpwebresponse', 'responseuri'): 'system.uri',
    ('system.net.httpwebresponse', 'server'): 'system.string',
    ('system.net.httpwebresponse', 'statuscode'): 'system.net.httpstatuscode',
    ('system.net.httpwebresponse', 'statusdescription'): 'system.string',
    ('system.net.httpwebresponse', 'supportsheaders'): 'system.boolean',
    ('system.net.ipaddress', 'address'): 'system.int64',
    ('system.net.ipaddress', 'addressfamily'): 'system.net.sockets.addressfamily',
    ('system.net.ipaddress', 'isipv4mappedtoipv6'): 'system.boolean',
    ('system.net.ipaddress', 'isipv6linklocal'): 'system.boolean',
    ('system.net.ipaddress', 'isipv6multicast'): 'system.boolean',
    ('system.net.ipaddress', 'isipv6sitelocal'): 'system.boolean',
    ('system.net.ipaddress', 'isipv6teredo'): 'system.boolean',
    ('system.net.ipaddress', 'scopeid'): 'system.int64',
    ('system.net.ipendpoint', 'address'): 'system.net.ipaddress',
    ('system.net.ipendpoint', 'addressfamily'): 'system.net.sockets.addressfamily',
    ('system.net.ipendpoint', 'port'): 'system.int32',
    ('system.net.mail.mailmessage', 'alternateviews'): 'system.net.mail.alternateviewcollection',
    ('system.net.mail.mailmessage', 'attachments'): 'system.net.mail.attachmentcollection',
    ('system.net.mail.mailmessage', 'bcc'): 'system.net.mail.mailaddresscollection',
    ('system.net.mail.mailmessage', 'body'): 'system.string',
    ('system.net.mail.mailmessage', 'bodyencoding'): 'system.text.encoding',
    ('system.net.mail.mailmessage', 'bodytransferencoding'): 'system.net.mime.transferencoding',
    ('system.net.mail.mailmessage', 'cc'): 'system.net.mail.mailaddresscollection',
    ('system.net.mail.mailmessage', 'deliverynotificationoptions'): 'system.net.mail.deliverynotificationoptions',
    ('system.net.mail.mailmessage', 'from'): 'system.net.mail.mailaddress',
    ('system.net.mail.mailmessage', 'headers'): 'system.collections.specialized.namevaluecollection',
    ('system.net.mail.mailmessage', 'headersencoding'): 'system.text.encoding',
    ('system.net.mail.mailmessage', 'isbodyhtml'): 'system.boolean',
    ('system.net.mail.mailmessage', 'priority'): 'system.net.mail.mailpriority',
    ('system.net.mail.mailmessage', 'replyto'): 'system.net.mail.mailaddress',
    ('system.net.mail.mailmessage', 'replytolist'): 'system.net.mail.mailaddresscollection',
    ('system.net.mail.mailmessage', 'sender'): 'system.net.mail.mailaddress',
    ('system.net.mail.mailmessage', 'subject'): 'system.string',
    ('system.net.mail.mailmessage', 'subjectencoding'): 'system.text.encoding',
    ('system.net.mail.mailmessage', 'to'): 'system.net.mail.mailaddresscollection',
    ('system.net.mail.smtpclient', 'clientcertificates'): 'system.security.cryptography.x509certificates.x509certificatecollection',
    ('system.net.mail.smtpclient', 'credentials'): 'system.net.icredentialsbyhost',
    ('system.net.mail.smtpclient', 'deliveryformat'): 'system.net.mail.smtpdeliveryformat',
    ('system.net.mail.smtpclient', 'deliverymethod'): 'system.net.mail.smtpdeliverymethod',
    ('system.net.mail.smtpclient', 'enablessl'): 'system.boolean',
    ('system.net.mail.smtpclient', 'host'): 'system.string',
    ('system.net.mail.smtpclient', 'pickupdirectorylocation'): 'system.string',
    ('system.net.mail.smtpclient', 'port'): 'system.int32',
    ('system.net.mail.smtpclient', 'servicepoint'): 'system.net.servicepoint',
    ('system.net.mail.smtpclient', 'targetname'): 'system.string',
    ('system.net.mail.smtpclient', 'timeout'): 'system.int32',
    ('system.net.mail.smtpclient', 'usedefaultcredentials'): 'system.boolean',
    ('system.net.networkcredential', 'domain'): 'system.string',
    ('system.net.networkcredential', 'password'): 'system.string',
    ('system.net.networkcredential', 'securepassword'): 'system.security.securestring',
    ('system.net.networkcredential', 'username'): 'system.string',
    ('system.net.security.sslstream', 'canread'): 'system.boolean',
    ('system.net.security.sslstream', 'canseek'): 'system.boolean',
    ('system.net.security.sslstream', 'cantimeout'): 'system.boolean',
    ('system.net.security.sslstream', 'canwrite'): 'system.boolean',
    ('system.net.security.sslstream', 'checkcertrevocationstatus'): 'system.boolean',
    ('system.net.security.sslstream', 'cipheralgorithm'): 'system.security.authentication.cipheralgorithmtype',
    ('system.net.security.sslstream', 'cipherstrength'): 'system.int32',
    ('system.net.security.sslstream', 'hashalgorithm'): 'system.security.authentication.hashalgorithmtype',
    ('system.net.security.sslstream', 'hashstrength'): 'system.int32',
    ('system.net.security.sslstream', 'isauthenticated'): 'system.boolean',
    ('system.net.security.sslstream', 'isencrypted'): 'system.boolean',
    ('system.net.security.sslstream', 'ismutuallyauthenticated'): 'system.boolean',
    ('system.net.security.sslstream', 'isserver'): 'system.boolean',
    ('system.net.security.sslstream', 'issigned'): 'system.boolean',
    ('system.net.security.sslstream', 'keyexchangealgorithm'): 'system.security.authentication.exchangealgorithmtype',
    ('system.net.security.sslstream', 'keyexchangestrength'): 'system.int32',
    ('system.net.security.sslstream', 'leaveinnerstreamopen'): 'system.boolean',
    ('system.net.security.sslstream', 'length'): 'system.int64',
    ('system.net.security.sslstream', 'localcertificate'): 'system.security.cryptography.x509certificates.x509certificate',
    ('system.net.security.sslstream', 'position'): 'system.int64',
    ('system.net.security.sslstream', 'readtimeout'): 'system.int32',
    ('system.net.security.sslstream', 'remotecertificate'): 'system.security.cryptography.x509certificates.x509certificate',
    ('system.net.security.sslstream', 'sslprotocol'): 'system.security.authentication.sslprotocols',
    ('system.net.security.sslstream', 'transportcontext'): 'system.net.transportcontext',
    ('system.net.security.sslstream', 'writetimeout'): 'system.int32',
    ('system.net.servicepointmanager', 'certificatepolicy'): 'system.net.icertificatepolicy',
    ('system.net.servicepointmanager', 'checkcertificaterevocationlist'): 'system.boolean',
    ('system.net.servicepointmanager', 'defaultconnectionlimit'): 'system.int32',
    ('system.net.servicepointmanager', 'dnsrefreshtimeout'): 'system.int32',
    ('system.net.servicepointmanager', 'enablednsroundrobin'): 'system.boolean',
    ('system.net.servicepointmanager', 'encryptionpolicy'): 'system.net.security.encryptionpolicy',
    ('system.net.servicepointmanager', 'expect100continue'): 'system.boolean',
    ('system.net.servicepointmanager', 'maxservicepointidletime'): 'system.int32',
    ('system.net.servicepointmanager', 'maxservicepoints'): 'system.int32',
    ('system.net.servicepointmanager', 'reuseport'): 'system.boolean',
    ('system.net.servicepointmanager', 'securityprotocol'): 'system.net.securityprotocoltype',
    ('system.net.servicepointmanager', 'servercertificatevalidationcallback'): 'system.net.security.remotecertificatevalidationcallback',
    ('system.net.servicepointmanager', 'usenaglealgorithm'): 'system.boolean',
    ('system.net.sockets.networkstream', 'canread'): 'system.boolean',
    ('system.net.sockets.networkstream', 'canseek'): 'system.boolean',
    ('system.net.sockets.networkstream', 'cantimeout'): 'system.boolean',
    ('system.net.sockets.networkstream', 'canwrite'): 'system.boolean',
    ('system.net.sockets.networkstream', 'dataavailable'): 'system.boolean',
    ('system.net.sockets.networkstream', 'length'): 'system.int64',
    ('system.net.sockets.networkstream', 'position'): 'system.int64',
    ('system.net.sockets.networkstream', 'readtimeout'): 'system.int32',
    ('system.net.sockets.networkstream', 'writetimeout'): 'system.int32',
    ('system.net.sockets.tcpclient', 'available'): 'system.int32',
    ('system.net.sockets.tcpclient', 'client'): 'system.net.sockets.socket',
    ('system.net.sockets.tcpclient', 'connected'): 'system.boolean',
    ('system.net.sockets.tcpclient', 'exclusiveaddressuse'): 'system.boolean',
    ('system.net.sockets.tcpclient', 'lingerstate'): 'system.net.sockets.lingeroption',
    ('system.net.sockets.tcpclient', 'nodelay'): 'system.boolean',
    ('system.net.sockets.tcpclient', 'receivebuffersize'): 'system.int32',
    ('system.net.sockets.tcpclient', 'receivetimeout'): 'system.int32',
    ('system.net.sockets.tcpclient', 'sendbuffersize'): 'system.int32',
    ('system.net.sockets.tcpclient', 'sendtimeout'): 'system.int32',
    ('system.net.sockets.tcplistener', 'exclusiveaddressuse'): 'system.boolean',
    ('system.net.sockets.tcplistener', 'localendpoint'): 'system.net.endpoint',
    ('system.net.sockets.tcplistener', 'server'): 'system.net.sockets.socket',
    ('system.net.sockets.udpclient', 'available'): 'system.int32',
    ('system.net.sockets.udpclient', 'client'): 'system.net.sockets.socket',
    ('system.net.sockets.udpclient', 'dontfragment'): 'system.boolean',
    ('system.net.sockets.udpclient', 'enablebroadcast'): 'system.boolean',
    ('system.net.sockets.udpclient', 'exclusiveaddressuse'): 'system.boolean',
    ('system.net.sockets.udpclient', 'multicastloopback'): 'system.boolean',
    ('system.net.sockets.udpclient', 'ttl'): 'system.int16',
    ('system.net.webclient', 'allowreadstreambuffering'): 'system.boolean',
    ('system.net.webclient', 'allowwritestreambuffering'): 'system.boolean',
    ('system.net.webclient', 'baseaddress'): 'system.string',
    ('system.net.webclient', 'cachepolicy'): 'system.net.cache.requestcachepolicy',
    ('system.net.webclient', 'container'): 'system.componentmodel.icontainer',
    ('system.net.webclient', 'credentials'): 'system.net.icredentials',
    ('system.net.webclient', 'encoding'): 'system.text.encoding',
    ('system.net.webclient', 'headers'): 'system.net.webheadercollection',
    ('system.net.webclient', 'isbusy'): 'system.boolean',
    ('system.net.webclient', 'proxy'): 'system.net.iwebproxy',
    ('system.net.webclient', 'querystring'): 'system.collections.specialized.namevaluecollection',
    ('system.net.webclient', 'responseheaders'): 'system.net.webheadercollection',
    ('system.net.webclient', 'site'): 'system.componentmodel.isite',
    ('system.net.webclient', 'usedefaultcredentials'): 'system.boolean',
    ('system.net.webproxy', 'address'): 'system.uri',
    ('system.net.webproxy', 'bypassarraylist'): 'system.collections.arraylist',
    ('system.net.webproxy', 'bypasslist'): 'system.string',
    ('system.net.webproxy', 'bypassproxyonlocal'): 'system.boolean',
    ('system.net.webproxy', 'credentials'): 'system.net.icredentials',
    ('system.net.webproxy', 'usedefaultcredentials'): 'system.boolean',
    ('system.net.webrequest', 'authenticationlevel'): 'system.net.security.authenticationlevel',
    ('system.net.webrequest', 'cachepolicy'): 'system.net.cache.requestcachepolicy',
    ('system.net.webrequest', 'connectiongroupname'): 'system.string',
    ('system.net.webrequest', 'contentlength'): 'system.int64',
    ('system.net.webrequest', 'contenttype'): 'system.string',
    ('system.net.webrequest', 'creatorinstance'): 'system.net.iwebrequestcreate',
    ('system.net.webrequest', 'credentials'): 'system.net.icredentials',
    ('system.net.webrequest', 'defaultcachepolicy'): 'system.net.cache.requestcachepolicy',
    ('system.net.webrequest', 'defaultwebproxy'): 'system.net.iwebproxy',
    ('system.net.webrequest', 'headers'): 'system.net.webheadercollection',
    ('system.net.webrequest', 'impersonationlevel'): 'system.security.principal.tokenimpersonationlevel',
    ('system.net.webrequest', 'method'): 'system.string',
    ('system.net.webrequest', 'preauthenticate'): 'system.boolean',
    ('system.net.webrequest', 'proxy'): 'system.net.iwebproxy',
    ('system.net.webrequest', 'requesturi'): 'system.uri',
    ('system.net.webrequest', 'timeout'): 'system.int32',
    ('system.net.webrequest', 'usedefaultcredentials'): 'system.boolean',
    ('system.reflection.assembly', 'codebase'): 'system.string',
    ('system.reflection.assembly', 'customattributes'): 'system.collections.generic.ienumerable',
    ('system.reflection.assembly', 'definedtypes'): 'system.collections.generic.ienumerable',
    ('system.reflection.assembly', 'entrypoint'): 'system.reflection.methodinfo',
    ('system.reflection.assembly', 'escapedcodebase'): 'system.string',
    ('system.reflection.assembly', 'evidence'): 'system.security.policy.evidence',
    ('system.reflection.assembly', 'exportedtypes'): 'system.collections.generic.ienumerable',
    ('system.reflection.assembly', 'fullname'): 'system.string',
    ('system.reflection.assembly', 'globalassemblycache'): 'system.boolean',
    ('system.reflection.assembly', 'hostcontext'): 'system.int64',
    ('system.reflection.assembly', 'imageruntimeversion'): 'system.string',
    ('system.reflection.assembly', 'isdynamic'): 'system.boolean',
    ('system.reflection.assembly', 'isfullytrusted'): 'system.boolean',
    ('system.reflection.assembly', 'location'): 'system.string',
    ('system.reflection.assembly', 'manifestmodule'): 'system.reflection.module',
    ('system.reflection.assembly', 'modules'): 'system.collections.generic.ienumerable',
    ('system.reflection.assembly', 'permissionset'): 'system.security.permissionset',
    ('system.reflection.assembly', 'reflectiononly'): 'system.boolean',
    ('system.reflection.assembly', 'securityruleset'): 'system.security.securityruleset',
    ('system.reflection.assemblyname', 'codebase'): 'system.string',
    ('system.reflection.assemblyname', 'contenttype'): 'system.reflection.assemblycontenttype',
    ('system.reflection.assemblyname', 'cultureinfo'): 'system.globalization.cultureinfo',
    ('system.reflection.assemblyname', 'culturename'): 'system.string',
    ('system.reflection.assemblyname', 'escapedcodebase'): 'system.string',
    ('system.reflection.assemblyname', 'flags'): 'system.reflection.assemblynameflags',
    ('system.reflection.assemblyname', 'fullname'): 'system.string',
    ('system.reflection.assemblyname', 'hashalgorithm'): 'system.configuration.assemblies.assemblyhashalgorithm',
    ('system.reflection.assemblyname', 'keypair'): 'system.reflection.strongnamekeypair',
    ('system.reflection.assemblyname', 'name'): 'system.string',
    ('system.reflection.assemblyname', 'processorarchitecture'): 'system.reflection.processorarchitecture',
    ('system.reflection.assemblyname', 'version'): 'system.version',
    ('system.reflection.assemblyname', 'versioncompatibility'): 'system.configuration.assemblies.assemblyversioncompatibility',
    ('system.runtime.interopservices.dllimportattribute', 'typeid'): 'system.object',
    ('system.runtime.interopservices.dllimportattribute', 'value'): 'system.string',
    ('system.runtime.interopservices.runtimeenvironment', 'systemconfigurationfile'): 'system.string',
    ('system.security.accesscontrol.filesystemaccessrule', 'accesscontroltype'): 'system.security.accesscontrol.accesscontroltype',
    ('system.security.accesscontrol.filesystemaccessrule', 'filesystemrights'): 'system.security.accesscontrol.filesystemrights',
    ('system.security.accesscontrol.filesystemaccessrule', 'identityreference'): 'system.security.principal.identityreference',
    ('system.security.accesscontrol.filesystemaccessrule', 'inheritanceflags'): 'system.security.accesscontrol.inheritanceflags',
    ('system.security.accesscontrol.filesystemaccessrule', 'isinherited'): 'system.boolean',
    ('system.security.accesscontrol.filesystemaccessrule', 'propagationflags'): 'system.security.accesscontrol.propagationflags',
    ('system.security.cryptography.aescryptoserviceprovider', 'blocksize'): 'system.int32',
    ('system.security.cryptography.aescryptoserviceprovider', 'feedbacksize'): 'system.int32',
    ('system.security.cryptography.aescryptoserviceprovider', 'iv'): 'system.byte',
    ('system.security.cryptography.aescryptoserviceprovider', 'key'): 'system.byte',
    ('system.security.cryptography.aescryptoserviceprovider', 'keysize'): 'system.int32',
    ('system.security.cryptography.aescryptoserviceprovider', 'legalblocksizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.aescryptoserviceprovider', 'legalkeysizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.aescryptoserviceprovider', 'mode'): 'system.security.cryptography.ciphermode',
    ('system.security.cryptography.aescryptoserviceprovider', 'padding'): 'system.security.cryptography.paddingmode',
    ('system.security.cryptography.aesmanaged', 'blocksize'): 'system.int32',
    ('system.security.cryptography.aesmanaged', 'feedbacksize'): 'system.int32',
    ('system.security.cryptography.aesmanaged', 'iv'): 'system.byte',
    ('system.security.cryptography.aesmanaged', 'key'): 'system.byte',
    ('system.security.cryptography.aesmanaged', 'keysize'): 'system.int32',
    ('system.security.cryptography.aesmanaged', 'legalblocksizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.aesmanaged', 'legalkeysizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.aesmanaged', 'mode'): 'system.security.cryptography.ciphermode',
    ('system.security.cryptography.aesmanaged', 'padding'): 'system.security.cryptography.paddingmode',
    ('system.security.cryptography.cryptostream', 'canread'): 'system.boolean',
    ('system.security.cryptography.cryptostream', 'canseek'): 'system.boolean',
    ('system.security.cryptography.cryptostream', 'cantimeout'): 'system.boolean',
    ('system.security.cryptography.cryptostream', 'canwrite'): 'system.boolean',
    ('system.security.cryptography.cryptostream', 'hasflushedfinalblock'): 'system.boolean',
    ('system.security.cryptography.cryptostream', 'length'): 'system.int64',
    ('system.security.cryptography.cryptostream', 'position'): 'system.int64',
    ('system.security.cryptography.cryptostream', 'readtimeout'): 'system.int32',
    ('system.security.cryptography.cryptostream', 'writetimeout'): 'system.int32',
    ('system.security.cryptography.descryptoserviceprovider', 'blocksize'): 'system.int32',
    ('system.security.cryptography.descryptoserviceprovider', 'feedbacksize'): 'system.int32',
    ('system.security.cryptography.descryptoserviceprovider', 'iv'): 'system.byte',
    ('system.security.cryptography.descryptoserviceprovider', 'key'): 'system.byte',
    ('system.security.cryptography.descryptoserviceprovider', 'keysize'): 'system.int32',
    ('system.security.cryptography.descryptoserviceprovider', 'legalblocksizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.descryptoserviceprovider', 'legalkeysizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.descryptoserviceprovider', 'mode'): 'system.security.cryptography.ciphermode',
    ('system.security.cryptography.descryptoserviceprovider', 'padding'): 'system.security.cryptography.paddingmode',
    ('system.security.cryptography.hmacmd5', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.hmacmd5', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.hmacmd5', 'hash'): 'system.byte',
    ('system.security.cryptography.hmacmd5', 'hashname'): 'system.string',
    ('system.security.cryptography.hmacmd5', 'hashsize'): 'system.int32',
    ('system.security.cryptography.hmacmd5', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.hmacmd5', 'key'): 'system.byte',
    ('system.security.cryptography.hmacmd5', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.hmacsha1', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.hmacsha1', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.hmacsha1', 'hash'): 'system.byte',
    ('system.security.cryptography.hmacsha1', 'hashname'): 'system.string',
    ('system.security.cryptography.hmacsha1', 'hashsize'): 'system.int32',
    ('system.security.cryptography.hmacsha1', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.hmacsha1', 'key'): 'system.byte',
    ('system.security.cryptography.hmacsha1', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.hmacsha256', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.hmacsha256', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.hmacsha256', 'hash'): 'system.byte',
    ('system.security.cryptography.hmacsha256', 'hashname'): 'system.string',
    ('system.security.cryptography.hmacsha256', 'hashsize'): 'system.int32',
    ('system.security.cryptography.hmacsha256', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.hmacsha256', 'key'): 'system.byte',
    ('system.security.cryptography.hmacsha256', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.icryptotransform', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.icryptotransform', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.icryptotransform', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.icryptotransform', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.md5', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.md5', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.md5', 'hash'): 'system.byte',
    ('system.security.cryptography.md5', 'hashsize'): 'system.int32',
    ('system.security.cryptography.md5', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.md5', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.md5cryptoserviceprovider', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.md5cryptoserviceprovider', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.md5cryptoserviceprovider', 'hash'): 'system.byte',
    ('system.security.cryptography.md5cryptoserviceprovider', 'hashsize'): 'system.int32',
    ('system.security.cryptography.md5cryptoserviceprovider', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.md5cryptoserviceprovider', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.rijndaelmanaged', 'blocksize'): 'system.int32',
    ('system.security.cryptography.rijndaelmanaged', 'feedbacksize'): 'system.int32',
    ('system.security.cryptography.rijndaelmanaged', 'iv'): 'system.byte',
    ('system.security.cryptography.rijndaelmanaged', 'key'): 'system.byte',
    ('system.security.cryptography.rijndaelmanaged', 'keysize'): 'system.int32',
    ('system.security.cryptography.rijndaelmanaged', 'legalblocksizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.rijndaelmanaged', 'legalkeysizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.rijndaelmanaged', 'mode'): 'system.security.cryptography.ciphermode',
    ('system.security.cryptography.rijndaelmanaged', 'padding'): 'system.security.cryptography.paddingmode',
    ('system.security.cryptography.rsa', 'keyexchangealgorithm'): 'system.string',
    ('system.security.cryptography.rsa', 'keysize'): 'system.int32',
    ('system.security.cryptography.rsa', 'legalkeysizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.rsa', 'signaturealgorithm'): 'system.string',
    ('system.security.cryptography.rsacryptoserviceprovider', 'cspkeycontainerinfo'): 'system.security.cryptography.cspkeycontainerinfo',
    ('system.security.cryptography.rsacryptoserviceprovider', 'keyexchangealgorithm'): 'system.string',
    ('system.security.cryptography.rsacryptoserviceprovider', 'keysize'): 'system.int32',
    ('system.security.cryptography.rsacryptoserviceprovider', 'legalkeysizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.rsacryptoserviceprovider', 'persistkeyincsp'): 'system.boolean',
    ('system.security.cryptography.rsacryptoserviceprovider', 'publiconly'): 'system.boolean',
    ('system.security.cryptography.rsacryptoserviceprovider', 'signaturealgorithm'): 'system.string',
    ('system.security.cryptography.rsacryptoserviceprovider', 'usemachinekeystore'): 'system.boolean',
    ('system.security.cryptography.sha1', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.sha1', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.sha1', 'hash'): 'system.byte',
    ('system.security.cryptography.sha1', 'hashsize'): 'system.int32',
    ('system.security.cryptography.sha1', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.sha1', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.sha1managed', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.sha1managed', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.sha1managed', 'hash'): 'system.byte',
    ('system.security.cryptography.sha1managed', 'hashsize'): 'system.int32',
    ('system.security.cryptography.sha1managed', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.sha1managed', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.sha256', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.sha256', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.sha256', 'hash'): 'system.byte',
    ('system.security.cryptography.sha256', 'hashsize'): 'system.int32',
    ('system.security.cryptography.sha256', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.sha256', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.sha256managed', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.sha256managed', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.sha256managed', 'hash'): 'system.byte',
    ('system.security.cryptography.sha256managed', 'hashsize'): 'system.int32',
    ('system.security.cryptography.sha256managed', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.sha256managed', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.sha384', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.sha384', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.sha384', 'hash'): 'system.byte',
    ('system.security.cryptography.sha384', 'hashsize'): 'system.int32',
    ('system.security.cryptography.sha384', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.sha384', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.sha512', 'canreusetransform'): 'system.boolean',
    ('system.security.cryptography.sha512', 'cantransformmultipleblocks'): 'system.boolean',
    ('system.security.cryptography.sha512', 'hash'): 'system.byte',
    ('system.security.cryptography.sha512', 'hashsize'): 'system.int32',
    ('system.security.cryptography.sha512', 'inputblocksize'): 'system.int32',
    ('system.security.cryptography.sha512', 'outputblocksize'): 'system.int32',
    ('system.security.cryptography.symmetricalgorithm', 'blocksize'): 'system.int32',
    ('system.security.cryptography.symmetricalgorithm', 'feedbacksize'): 'system.int32',
    ('system.security.cryptography.symmetricalgorithm', 'iv'): 'system.byte',
    ('system.security.cryptography.symmetricalgorithm', 'key'): 'system.byte',
    ('system.security.cryptography.symmetricalgorithm', 'keysize'): 'system.int32',
    ('system.security.cryptography.symmetricalgorithm', 'legalblocksizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.symmetricalgorithm', 'legalkeysizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.symmetricalgorithm', 'mode'): 'system.security.cryptography.ciphermode',
    ('system.security.cryptography.symmetricalgorithm', 'padding'): 'system.security.cryptography.paddingmode',
    ('system.security.cryptography.tripledescryptoserviceprovider', 'blocksize'): 'system.int32',
    ('system.security.cryptography.tripledescryptoserviceprovider', 'feedbacksize'): 'system.int32',
    ('system.security.cryptography.tripledescryptoserviceprovider', 'iv'): 'system.byte',
    ('system.security.cryptography.tripledescryptoserviceprovider', 'key'): 'system.byte',
    ('system.security.cryptography.tripledescryptoserviceprovider', 'keysize'): 'system.int32',
    ('system.security.cryptography.tripledescryptoserviceprovider', 'legalblocksizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.tripledescryptoserviceprovider', 'legalkeysizes'): 'system.security.cryptography.keysizes',
    ('system.security.cryptography.tripledescryptoserviceprovider', 'mode'): 'system.security.cryptography.ciphermode',
    ('system.security.cryptography.tripledescryptoserviceprovider', 'padding'): 'system.security.cryptography.paddingmode',
    ('system.security.cryptography.x509certificates.x509certificate2', 'archived'): 'system.boolean',
    ('system.security.cryptography.x509certificates.x509certificate2', 'extensions'):
        'system.security.cryptography.x509certificates.x509extensioncollection',
    ('system.security.cryptography.x509certificates.x509certificate2', 'friendlyname'): 'system.string',
    ('system.security.cryptography.x509certificates.x509certificate2', 'handle'): 'system.intptr',
    ('system.security.cryptography.x509certificates.x509certificate2', 'hasprivatekey'): 'system.boolean',
    ('system.security.cryptography.x509certificates.x509certificate2', 'issuer'): 'system.string',
    ('system.security.cryptography.x509certificates.x509certificate2', 'issuername'):
        'system.security.cryptography.x509certificates.x500distinguishedname',
    ('system.security.cryptography.x509certificates.x509certificate2', 'notafter'): 'system.datetime',
    ('system.security.cryptography.x509certificates.x509certificate2', 'notbefore'): 'system.datetime',
    ('system.security.cryptography.x509certificates.x509certificate2', 'privatekey'): 'system.security.cryptography.asymmetricalgorithm',
    ('system.security.cryptography.x509certificates.x509certificate2', 'publickey'):
        'system.security.cryptography.x509certificates.publickey',
    ('system.security.cryptography.x509certificates.x509certificate2', 'rawdata'): 'system.byte',
    ('system.security.cryptography.x509certificates.x509certificate2', 'serialnumber'): 'system.string',
    ('system.security.cryptography.x509certificates.x509certificate2', 'signaturealgorithm'): 'system.security.cryptography.oid',
    ('system.security.cryptography.x509certificates.x509certificate2', 'subject'): 'system.string',
    ('system.security.cryptography.x509certificates.x509certificate2', 'subjectname'):
        'system.security.cryptography.x509certificates.x500distinguishedname',
    ('system.security.cryptography.x509certificates.x509certificate2', 'thumbprint'): 'system.string',
    ('system.security.cryptography.x509certificates.x509certificate2', 'version'): 'system.int32',
    ('system.security.principal.windowsidentity', 'accesstoken'): 'microsoft.win32.safehandles.safeaccesstokenhandle',
    ('system.security.principal.windowsidentity', 'actor'): 'system.security.claims.claimsidentity',
    ('system.security.principal.windowsidentity', 'authenticationtype'): 'system.string',
    ('system.security.principal.windowsidentity', 'bootstrapcontext'): 'system.object',
    ('system.security.principal.windowsidentity', 'claims'): 'system.collections.generic.ienumerable',
    ('system.security.principal.windowsidentity', 'deviceclaims'): 'system.collections.generic.ienumerable',
    ('system.security.principal.windowsidentity', 'groups'): 'system.security.principal.identityreferencecollection',
    ('system.security.principal.windowsidentity', 'impersonationlevel'): 'system.security.principal.tokenimpersonationlevel',
    ('system.security.principal.windowsidentity', 'isanonymous'): 'system.boolean',
    ('system.security.principal.windowsidentity', 'isauthenticated'): 'system.boolean',
    ('system.security.principal.windowsidentity', 'isguest'): 'system.boolean',
    ('system.security.principal.windowsidentity', 'issystem'): 'system.boolean',
    ('system.security.principal.windowsidentity', 'label'): 'system.string',
    ('system.security.principal.windowsidentity', 'name'): 'system.string',
    ('system.security.principal.windowsidentity', 'nameclaimtype'): 'system.string',
    ('system.security.principal.windowsidentity', 'owner'): 'system.security.principal.securityidentifier',
    ('system.security.principal.windowsidentity', 'roleclaimtype'): 'system.string',
    ('system.security.principal.windowsidentity', 'token'): 'system.intptr',
    ('system.security.principal.windowsidentity', 'user'): 'system.security.principal.securityidentifier',
    ('system.security.principal.windowsidentity', 'userclaims'): 'system.collections.generic.ienumerable',
    ('system.security.principal.windowsprincipal', 'claims'): 'system.collections.generic.ienumerable',
    ('system.security.principal.windowsprincipal', 'deviceclaims'): 'system.collections.generic.ienumerable',
    ('system.security.principal.windowsprincipal', 'identities'): 'system.collections.generic.ienumerable',
    ('system.security.principal.windowsprincipal', 'identity'): 'system.security.principal.iidentity',
    ('system.security.principal.windowsprincipal', 'userclaims'): 'system.collections.generic.ienumerable',
    ('system.security.securestring', 'length'): 'system.int32',
    ('system.string', 'chars'): 'system.char',
    ('system.string', 'length'): 'system.int32',
    ('system.text.asciiencoding', 'bodyname'): 'system.string',
    ('system.text.asciiencoding', 'codepage'): 'system.int32',
    ('system.text.asciiencoding', 'decoderfallback'): 'system.text.decoderfallback',
    ('system.text.asciiencoding', 'encoderfallback'): 'system.text.encoderfallback',
    ('system.text.asciiencoding', 'encodingname'): 'system.string',
    ('system.text.asciiencoding', 'headername'): 'system.string',
    ('system.text.asciiencoding', 'isbrowserdisplay'): 'system.boolean',
    ('system.text.asciiencoding', 'isbrowsersave'): 'system.boolean',
    ('system.text.asciiencoding', 'ismailnewsdisplay'): 'system.boolean',
    ('system.text.asciiencoding', 'ismailnewssave'): 'system.boolean',
    ('system.text.asciiencoding', 'isreadonly'): 'system.boolean',
    ('system.text.asciiencoding', 'issinglebyte'): 'system.boolean',
    ('system.text.asciiencoding', 'webname'): 'system.string',
    ('system.text.asciiencoding', 'windowscodepage'): 'system.int32',
    ('system.text.encoding', 'ascii'): 'system.text.encoding',
    ('system.text.encoding', 'bigendianunicode'): 'system.text.encoding',
    ('system.text.encoding', 'bodyname'): 'system.string',
    ('system.text.encoding', 'codepage'): 'system.int32',
    ('system.text.encoding', 'decoderfallback'): 'system.text.decoderfallback',
    ('system.text.encoding', 'default'): 'system.text.encoding',
    ('system.text.encoding', 'encoderfallback'): 'system.text.encoderfallback',
    ('system.text.encoding', 'encodingname'): 'system.string',
    ('system.text.encoding', 'headername'): 'system.string',
    ('system.text.encoding', 'isbrowserdisplay'): 'system.boolean',
    ('system.text.encoding', 'isbrowsersave'): 'system.boolean',
    ('system.text.encoding', 'ismailnewsdisplay'): 'system.boolean',
    ('system.text.encoding', 'ismailnewssave'): 'system.boolean',
    ('system.text.encoding', 'isreadonly'): 'system.boolean',
    ('system.text.encoding', 'issinglebyte'): 'system.boolean',
    ('system.text.encoding', 'unicode'): 'system.text.encoding',
    ('system.text.encoding', 'utf32'): 'system.text.encoding',
    ('system.text.encoding', 'utf7'): 'system.text.encoding',
    ('system.text.encoding', 'utf8'): 'system.text.encoding',
    ('system.text.encoding', 'webname'): 'system.string',
    ('system.text.encoding', 'windowscodepage'): 'system.int32',
    ('system.text.regularexpressions.regex', 'cachesize'): 'system.int32',
    ('system.text.regularexpressions.regex', 'matchtimeout'): 'system.timespan',
    ('system.text.regularexpressions.regex', 'options'): 'system.text.regularexpressions.regexoptions',
    ('system.text.regularexpressions.regex', 'righttoleft'): 'system.boolean',
    ('system.text.stringbuilder', 'capacity'): 'system.int32',
    ('system.text.stringbuilder', 'chars'): 'system.char',
    ('system.text.stringbuilder', 'length'): 'system.int32',
    ('system.text.stringbuilder', 'maxcapacity'): 'system.int32',
    ('system.text.utf8encoding', 'bodyname'): 'system.string',
    ('system.text.utf8encoding', 'codepage'): 'system.int32',
    ('system.text.utf8encoding', 'decoderfallback'): 'system.text.decoderfallback',
    ('system.text.utf8encoding', 'encoderfallback'): 'system.text.encoderfallback',
    ('system.text.utf8encoding', 'encodingname'): 'system.string',
    ('system.text.utf8encoding', 'headername'): 'system.string',
    ('system.text.utf8encoding', 'isbrowserdisplay'): 'system.boolean',
    ('system.text.utf8encoding', 'isbrowsersave'): 'system.boolean',
    ('system.text.utf8encoding', 'ismailnewsdisplay'): 'system.boolean',
    ('system.text.utf8encoding', 'ismailnewssave'): 'system.boolean',
    ('system.text.utf8encoding', 'isreadonly'): 'system.boolean',
    ('system.text.utf8encoding', 'issinglebyte'): 'system.boolean',
    ('system.text.utf8encoding', 'webname'): 'system.string',
    ('system.text.utf8encoding', 'windowscodepage'): 'system.int32',
    ('system.threading.mutex', 'handle'): 'system.intptr',
    ('system.threading.mutex', 'safewaithandle'): 'microsoft.win32.safehandles.safewaithandle',
    ('system.threading.thread', 'apartmentstate'): 'system.threading.apartmentstate',
    ('system.threading.thread', 'currentcontext'): 'system.runtime.remoting.contexts.context',
    ('system.threading.thread', 'currentculture'): 'system.globalization.cultureinfo',
    ('system.threading.thread', 'currentprincipal'): 'system.security.principal.iprincipal',
    ('system.threading.thread', 'currentthread'): 'system.threading.thread',
    ('system.threading.thread', 'currentuiculture'): 'system.globalization.cultureinfo',
    ('system.threading.thread', 'executioncontext'): 'system.threading.executioncontext',
    ('system.threading.thread', 'isalive'): 'system.boolean',
    ('system.threading.thread', 'isbackground'): 'system.boolean',
    ('system.threading.thread', 'isthreadpoolthread'): 'system.boolean',
    ('system.threading.thread', 'managedthreadid'): 'system.int32',
    ('system.threading.thread', 'name'): 'system.string',
    ('system.threading.thread', 'priority'): 'system.threading.threadpriority',
    ('system.threading.thread', 'threadstate'): 'system.threading.threadstate',
    ('system.timespan', 'days'): 'system.int32',
    ('system.timespan', 'hours'): 'system.int32',
    ('system.timespan', 'milliseconds'): 'system.int32',
    ('system.timespan', 'minutes'): 'system.int32',
    ('system.timespan', 'seconds'): 'system.int32',
    ('system.timespan', 'ticks'): 'system.int64',
    ('system.timespan', 'totaldays'): 'system.double',
    ('system.timespan', 'totalhours'): 'system.double',
    ('system.timespan', 'totalmilliseconds'): 'system.double',
    ('system.timespan', 'totalminutes'): 'system.double',
    ('system.timespan', 'totalseconds'): 'system.double',
    ('system.uintptr', 'size'): 'system.int32',
    ('system.uri', 'absolutepath'): 'system.string',
    ('system.uri', 'absoluteuri'): 'system.string',
    ('system.uri', 'authority'): 'system.string',
    ('system.uri', 'dnssafehost'): 'system.string',
    ('system.uri', 'fragment'): 'system.string',
    ('system.uri', 'host'): 'system.string',
    ('system.uri', 'hostnametype'): 'system.urihostnametype',
    ('system.uri', 'idnhost'): 'system.string',
    ('system.uri', 'isabsoluteuri'): 'system.boolean',
    ('system.uri', 'isdefaultport'): 'system.boolean',
    ('system.uri', 'isfile'): 'system.boolean',
    ('system.uri', 'isloopback'): 'system.boolean',
    ('system.uri', 'isunc'): 'system.boolean',
    ('system.uri', 'localpath'): 'system.string',
    ('system.uri', 'originalstring'): 'system.string',
    ('system.uri', 'pathandquery'): 'system.string',
    ('system.uri', 'port'): 'system.int32',
    ('system.uri', 'query'): 'system.string',
    ('system.uri', 'scheme'): 'system.string',
    ('system.uri', 'segments'): 'system.string',
    ('system.uri', 'userescaped'): 'system.boolean',
    ('system.uri', 'userinfo'): 'system.string',
    ('system.version', 'build'): 'system.int32',
    ('system.version', 'major'): 'system.int32',
    ('system.version', 'majorrevision'): 'system.int16',
    ('system.version', 'minor'): 'system.int32',
    ('system.version', 'minorrevision'): 'system.int16',
    ('system.version', 'revision'): 'system.int32',
    ('system.xml.xmldocument', 'attributes'): 'system.xml.xmlattributecollection',
    ('system.xml.xmldocument', 'baseuri'): 'system.string',
    ('system.xml.xmldocument', 'childnodes'): 'system.xml.xmlnodelist',
    ('system.xml.xmldocument', 'documentelement'): 'system.xml.xmlelement',
    ('system.xml.xmldocument', 'documenttype'): 'system.xml.xmldocumenttype',
    ('system.xml.xmldocument', 'firstchild'): 'system.xml.xmlnode',
    ('system.xml.xmldocument', 'haschildnodes'): 'system.boolean',
    ('system.xml.xmldocument', 'implementation'): 'system.xml.xmlimplementation',
    ('system.xml.xmldocument', 'innertext'): 'system.string',
    ('system.xml.xmldocument', 'innerxml'): 'system.string',
    ('system.xml.xmldocument', 'isreadonly'): 'system.boolean',
    ('system.xml.xmldocument', 'item'): 'system.xml.xmlelement',
    ('system.xml.xmldocument', 'lastchild'): 'system.xml.xmlnode',
    ('system.xml.xmldocument', 'localname'): 'system.string',
    ('system.xml.xmldocument', 'name'): 'system.string',
    ('system.xml.xmldocument', 'namespaceuri'): 'system.string',
    ('system.xml.xmldocument', 'nametable'): 'system.xml.xmlnametable',
    ('system.xml.xmldocument', 'nextsibling'): 'system.xml.xmlnode',
    ('system.xml.xmldocument', 'nodetype'): 'system.xml.xmlnodetype',
    ('system.xml.xmldocument', 'outerxml'): 'system.string',
    ('system.xml.xmldocument', 'ownerdocument'): 'system.xml.xmldocument',
    ('system.xml.xmldocument', 'parentnode'): 'system.xml.xmlnode',
    ('system.xml.xmldocument', 'prefix'): 'system.string',
    ('system.xml.xmldocument', 'preservewhitespace'): 'system.boolean',
    ('system.xml.xmldocument', 'previoussibling'): 'system.xml.xmlnode',
    ('system.xml.xmldocument', 'previoustext'): 'system.xml.xmlnode',
    ('system.xml.xmldocument', 'schemainfo'): 'system.xml.schema.ixmlschemainfo',
    ('system.xml.xmldocument', 'schemas'): 'system.xml.schema.xmlschemaset',
    ('system.xml.xmldocument', 'value'): 'system.string',
    ('system.xml.xmldocument', 'xmlresolver'): 'system.xml.xmlresolver',
}


_VARIABLE_TYPES: dict[str, str] = {
    'error': 'system.collections.arraylist',
    'executioncontext': 'system.management.automation.engineintrinsics',
    'host': 'system.management.automation.internal.host.internalhost',
    'myinvocation': 'system.management.automation.invocationinfo',
    'pid': 'system.int32',
    'pscmdlet': 'system.management.automation.psscriptcmdlet',
    'psversiontable': 'system.collections.hashtable',
    'pwd': 'system.management.automation.pathinfo',
    'shellid': 'system.string',
}


_TYPE_ALIASES: dict[str, str] = {
    'array': 'system.array',
    'bitconverter': 'system.bitconverter',
    'boolean': 'system.boolean',
    'byte': 'system.byte',
    'char': 'system.char',
    'collections.arraylist': 'system.collections.arraylist',
    'collections.hashtable': 'system.collections.hashtable',
    'collections.queue': 'system.collections.queue',
    'collections.sortedlist': 'system.collections.sortedlist',
    'collections.specialized.ordereddictionary': 'system.collections.specialized.ordereddictionary',
    'collections.stack': 'system.collections.stack',
    'componentmodel.win32exception': 'system.componentmodel.win32exception',
    'console': 'system.console',
    'convert': 'system.convert',
    'datetime': 'system.datetime',
    'decimal': 'system.decimal',
    'diagnostics.process': 'system.diagnostics.process',
    'diagnostics.processstartinfo': 'system.diagnostics.processstartinfo',
    'double': 'system.double',
    'enum': 'system.enum',
    'environment': 'system.environment',
    'eventargs': 'system.eventargs',
    'exception': 'system.exception',
    'globalization.cultureinfo': 'system.globalization.cultureinfo',
    'guid': 'system.guid',
    'hashtable': 'system.collections.hashtable',
    'int16': 'system.int16',
    'int32': 'system.int32',
    'int64': 'system.int64',
    'intptr': 'system.intptr',
    'io.binaryreader': 'system.io.binaryreader',
    'io.binarywriter': 'system.io.binarywriter',
    'io.compression.compressionmode': 'system.io.compression.compressionmode',
    'io.compression.deflatestream': 'system.io.compression.deflatestream',
    'io.compression.gzipstream': 'system.io.compression.gzipstream',
    'io.directory': 'system.io.directory',
    'io.directoryinfo': 'system.io.directoryinfo',
    'io.file': 'system.io.file',
    'io.fileinfo': 'system.io.fileinfo',
    'io.filemode': 'system.io.filemode',
    'io.filestream': 'system.io.filestream',
    'io.memorystream': 'system.io.memorystream',
    'io.path': 'system.io.path',
    'io.stream': 'system.io.stream',
    'io.streamreader': 'system.io.streamreader',
    'io.streamwriter': 'system.io.streamwriter',
    'io.stringreader': 'system.io.stringreader',
    'io.stringwriter': 'system.io.stringwriter',
    'management.automation.pscredential': 'system.management.automation.pscredential',
    'management.automation.scriptblock': 'system.management.automation.scriptblock',
    'management.managementobject': 'system.management.managementobject',
    'management.managementobjectsearcher': 'system.management.managementobjectsearcher',
    'math': 'system.math',
    'net.credentialcache': 'system.net.credentialcache',
    'net.dns': 'system.net.dns',
    'net.httpwebrequest': 'system.net.httpwebrequest',
    'net.httpwebresponse': 'system.net.httpwebresponse',
    'net.ipaddress': 'system.net.ipaddress',
    'net.ipendpoint': 'system.net.ipendpoint',
    'net.mail.mailmessage': 'system.net.mail.mailmessage',
    'net.mail.smtpclient': 'system.net.mail.smtpclient',
    'net.networkcredential': 'system.net.networkcredential',
    'net.security.sslstream': 'system.net.security.sslstream',
    'net.securityprotocoltype': 'system.net.securityprotocoltype',
    'net.servicepointmanager': 'system.net.servicepointmanager',
    'net.sockets.networkstream': 'system.net.sockets.networkstream',
    'net.sockets.tcpclient': 'system.net.sockets.tcpclient',
    'net.sockets.tcplistener': 'system.net.sockets.tcplistener',
    'net.sockets.udpclient': 'system.net.sockets.udpclient',
    'net.webclient': 'system.net.webclient',
    'net.webproxy': 'system.net.webproxy',
    'net.webrequest': 'system.net.webrequest',
    'object': 'system.object',
    'random': 'system.random',
    'reflection.assembly': 'system.reflection.assembly',
    'reflection.assemblyname': 'system.reflection.assemblyname',
    'reflection.bindingflags': 'system.reflection.bindingflags',
    'reflection.emit.assemblybuilderaccess': 'system.reflection.emit.assemblybuilderaccess',
    'regex': 'system.text.regularexpressions.regex',
    'runtime.interopservices.dllimportattribute': 'system.runtime.interopservices.dllimportattribute',
    'runtime.interopservices.marshal': 'system.runtime.interopservices.marshal',
    'runtime.interopservices.runtimeenvironment': 'system.runtime.interopservices.runtimeenvironment',
    'sbyte': 'system.sbyte',
    'security.accesscontrol.filesystemaccessrule': 'system.security.accesscontrol.filesystemaccessrule',
    'security.cryptography.aescryptoserviceprovider': 'system.security.cryptography.aescryptoserviceprovider',
    'security.cryptography.aesmanaged': 'system.security.cryptography.aesmanaged',
    'security.cryptography.ciphermode': 'system.security.cryptography.ciphermode',
    'security.cryptography.cryptostream': 'system.security.cryptography.cryptostream',
    'security.cryptography.cryptostreammode': 'system.security.cryptography.cryptostreammode',
    'security.cryptography.descryptoserviceprovider': 'system.security.cryptography.descryptoserviceprovider',
    'security.cryptography.hmacmd5': 'system.security.cryptography.hmacmd5',
    'security.cryptography.hmacsha1': 'system.security.cryptography.hmacsha1',
    'security.cryptography.hmacsha256': 'system.security.cryptography.hmacsha256',
    'security.cryptography.icryptotransform': 'system.security.cryptography.icryptotransform',
    'security.cryptography.md5': 'system.security.cryptography.md5',
    'security.cryptography.md5cryptoserviceprovider': 'system.security.cryptography.md5cryptoserviceprovider',
    'security.cryptography.paddingmode': 'system.security.cryptography.paddingmode',
    'security.cryptography.rijndaelmanaged': 'system.security.cryptography.rijndaelmanaged',
    'security.cryptography.rngcryptoserviceprovider': 'system.security.cryptography.rngcryptoserviceprovider',
    'security.cryptography.rsa': 'system.security.cryptography.rsa',
    'security.cryptography.rsacryptoserviceprovider': 'system.security.cryptography.rsacryptoserviceprovider',
    'security.cryptography.sha1': 'system.security.cryptography.sha1',
    'security.cryptography.sha1managed': 'system.security.cryptography.sha1managed',
    'security.cryptography.sha256': 'system.security.cryptography.sha256',
    'security.cryptography.sha256managed': 'system.security.cryptography.sha256managed',
    'security.cryptography.sha384': 'system.security.cryptography.sha384',
    'security.cryptography.sha512': 'system.security.cryptography.sha512',
    'security.cryptography.symmetricalgorithm': 'system.security.cryptography.symmetricalgorithm',
    'security.cryptography.tripledescryptoserviceprovider': 'system.security.cryptography.tripledescryptoserviceprovider',
    'security.cryptography.x509certificates.x509certificate2': 'system.security.cryptography.x509certificates.x509certificate2',
    'security.principal.windowsbuiltinrole': 'system.security.principal.windowsbuiltinrole',
    'security.principal.windowsidentity': 'system.security.principal.windowsidentity',
    'security.principal.windowsprincipal': 'system.security.principal.windowsprincipal',
    'security.securestring': 'system.security.securestring',
    'single': 'system.single',
    'string': 'system.string',
    'text.asciiencoding': 'system.text.asciiencoding',
    'text.encoding': 'system.text.encoding',
    'text.regularexpressions.regex': 'system.text.regularexpressions.regex',
    'text.regularexpressions.regexoptions': 'system.text.regularexpressions.regexoptions',
    'text.stringbuilder': 'system.text.stringbuilder',
    'text.utf8encoding': 'system.text.utf8encoding',
    'threading.mutex': 'system.threading.mutex',
    'threading.thread': 'system.threading.thread',
    'threading.timer': 'system.threading.timer',
    'timespan': 'system.timespan',
    'uint16': 'system.uint16',
    'uint32': 'system.uint32',
    'uint64': 'system.uint64',
    'uintptr': 'system.uintptr',
    'uri': 'system.uri',
    'version': 'system.version',
    'void': 'system.void',
    'xml.xmldocument': 'system.xml.xmldocument',
}


def _resolve_type_name(name: str) -> str | None:
    """
    Resolve a type name (as written in PowerShell) to its canonical lowercase
    full .NET name. Handles short names like 'String', qualified names like
    'Net.WebClient', and full names like 'System.Net.WebClient'.
    """
    lower = name.lower()
    if lower in _TYPE_MEMBERS:
        return lower
    if lower in _TYPE_ALIASES:
        return _TYPE_ALIASES[lower]
    prefixed = F'system.{lower}'
    if prefixed in _TYPE_MEMBERS:
        return prefixed
    return None


def _get_member_name(member: str | Expression) -> str | None:
    """
    Extract a plain member name string from a member that may be a string
    or a string literal expression.
    """
    if isinstance(member, str):
        return member
    if isinstance(member, Ps1StringLiteral):
        return member.value
    return None


def resolve_expression_type(
    expr: Expression,
    variable_types: dict[str, str] | None = None,
) -> str | None:
    """
    Trace the .NET type of a PowerShell expression by walking member access
    chains. Returns the lowercase full .NET type name, or None if the type
    cannot be determined.
    """
    while isinstance(expr, Ps1ParenExpression) and expr.expression is not None:
        expr = expr.expression
    if isinstance(expr, Ps1Variable):
        key = expr.name.lower()
        if variable_types and key in variable_types:
            return variable_types[key]
        return _VARIABLE_TYPES.get(key)
    if isinstance(expr, Ps1TypeExpression):
        return _resolve_type_name(expr.name)
    if isinstance(expr, Ps1CastExpression):
        return _resolve_type_name(expr.type_name)
    if isinstance(expr, Ps1CommandInvocation):
        cmd_name = _get_command_name(expr)
        if cmd_name is not None and cmd_name.lower() == 'new-object':
            type_str = _extract_first_positional_type(expr)
            if type_str is not None:
                return _resolve_type_name(type_str)
    if isinstance(expr, Ps1MemberAccess):
        if expr.object is None:
            return None
        obj_type = resolve_expression_type(expr.object, variable_types)
        if obj_type is None:
            return None
        member_name = _get_member_name(expr.member)
        if member_name is None:
            return None
        return _PROPERTY_TYPES.get((obj_type, member_name.lower()))
    return None


def _extract_first_positional_type(cmd: Ps1CommandInvocation) -> str | None:
    """
    Extract the first positional argument from a New-Object command as a
    type name string.
    """
    for arg in cmd.arguments:
        if isinstance(arg, Ps1CommandArgument):
            if arg.kind == Ps1CommandArgumentKind.POSITIONAL:
                return _string_value(arg.value) if arg.value else None
        elif isinstance(arg, Expression):
            return _string_value(arg)
    return None


_GET_MEMBER_ALIASES = frozenset({'get-member', 'gm'})


def get_member_order(type_name: str) -> list[str] | None:
    """
    Return the members of a .NET type in PowerShell Get-Member display order:
    methods sorted alphabetically, then properties sorted alphabetically.
    """
    members = _TYPE_MEMBERS.get(type_name)
    if members is None:
        return None
    methods = sorted(
        (m for m in members if (type_name, m.lower()) not in _PROPERTY_TYPES),
        key=str.lower,
    )
    properties = sorted(
        (m for m in members if (type_name, m.lower()) in _PROPERTY_TYPES),
        key=str.lower,
    )
    return methods + properties


def _unwrap_parens(expr: Expression) -> Expression:
    """
    Unwrap nested `Ps1ParenExpression` wrappers.
    """
    while isinstance(expr, Ps1ParenExpression) and expr.expression is not None:
        expr = expr.expression
    return expr


def _pipeline_pipes_to_get_member(pipeline: Ps1Pipeline) -> bool:
    """
    Check if the last element in a pipeline is a `Get-Member` command.
    """
    if not pipeline.elements:
        return False
    last = pipeline.elements[-1]
    if not isinstance(last, Ps1PipelineElement):
        return False
    cmd = last.expression
    if not isinstance(cmd, Ps1CommandInvocation):
        return False
    name = _get_command_name(cmd)
    return name is not None and name.lower() in _GET_MEMBER_ALIASES


def _pipeline_source_type(
    pipeline: Ps1Pipeline,
    variable_types: dict[str, str] | None = None,
) -> str | None:
    """
    Determine the .NET type of the expression piped into `Get-Member`.
    Assumes `Get-Member` is the last pipeline element.
    """
    if len(pipeline.elements) < 2:
        return None
    source = pipeline.elements[-2]
    if not isinstance(source, Ps1PipelineElement):
        return None
    if source.expression is None:
        return None
    return resolve_expression_type(source.expression, variable_types)


def collect_variable_types(root: Node) -> dict[str, str]:
    """
    Scan the AST for single-assignment variables whose RHS has a resolvable
    .NET type (e.g. `$x = New-Object Net.WebClient`). Returns a mapping from
    lowercase variable name to canonical .NET type string.
    """
    assign_counts: dict[str, int] = {}
    typed_assigns: dict[str, str] = {}
    for node in root.walk():
        if isinstance(node, Ps1AssignmentExpression):
            target = node.target
            if isinstance(target, Ps1Variable) and target.scope == Ps1ScopeModifier.NONE:
                key = target.name.lower()
                assign_counts[key] = assign_counts.get(key, 0) + 1
                if node.operator == '=' and node.value is not None:
                    resolved = resolve_expression_type(node.value)
                    if resolved is not None:
                        typed_assigns[key] = resolved
        elif isinstance(node, Ps1ForEachLoop):
            if isinstance(node.variable, Ps1Variable) and node.variable.scope == Ps1ScopeModifier.NONE:
                key = node.variable.name.lower()
                assign_counts[key] = assign_counts.get(key, 0) + 1
        elif isinstance(node, Ps1UnaryExpression):
            if node.operator in ('++', '--'):
                operand = node.operand
                if isinstance(operand, Ps1Variable) and operand.scope == Ps1ScopeModifier.NONE:
                    key = operand.name.lower()
                    assign_counts[key] = assign_counts.get(key, 0) + 1
        elif isinstance(node, Ps1ParameterDeclaration):
            if isinstance(node.variable, Ps1Variable) and node.variable.scope == Ps1ScopeModifier.NONE:
                key = node.variable.name.lower()
                assign_counts[key] = assign_counts.get(key, 0) + 1
    return {
        key: type_name
        for key, type_name in typed_assigns.items()
        if assign_counts.get(key, 0) == 1
    }


class Ps1TypeSystemSimplifications(Transformer):
    """
    Resolve type-aware patterns:
    - `($X | Get-Member)[N].Name` resolves to the Nth member name string.
    """

    def __init__(self):
        super().__init__()
        self._variable_types: dict[str, str] | None = None

    def visit(self, node: Node):
        if self._variable_types is None:
            self._variable_types = collect_variable_types(node)
        return super().visit(node)

    def visit_Ps1MemberAccess(self, node: Ps1MemberAccess):
        self.generic_visit(node)
        result = self._try_resolve_get_member_index_name(node)
        if result is not None:
            return result
        result = self._try_strip_name_on_string(node)
        if result is not None:
            return result
        return None

    def _try_strip_name_on_string(
        self,
        node: Ps1MemberAccess,
    ) -> Expression | None:
        """
        Strip .Name access on a string literal.

        After Where-Object wildcard resolution or Get-Member index resolution,
        a MemberInfo .Name access can be left dangling on the resolved string.
        'GetCmdlets'.Name -> 'GetCmdlets'
        """
        member_name = _get_member_name(node.member)
        if member_name is None or member_name.lower() != 'name':
            return None
        if not isinstance(node.object, Ps1StringLiteral):
            return None
        return node.object

    def _try_resolve_get_member_index_name(
        self,
        node: Ps1MemberAccess,
    ) -> Expression | None:
        """
        Resolve ($X | Get-Member)[N].Name to the Nth member name string.
        """
        member_name = _get_member_name(node.member)
        if member_name is None or member_name.lower() != 'name':
            return None
        obj = node.object
        if not isinstance(obj, Ps1IndexExpression):
            return None
        if not isinstance(obj.index, Ps1IntegerLiteral):
            return None
        index = obj.index.value
        inner = _unwrap_parens(obj.object) if obj.object is not None else None
        if not isinstance(inner, Ps1Pipeline):
            return None
        if not _pipeline_pipes_to_get_member(inner):
            return None
        type_name = _pipeline_source_type(inner, self._variable_types)
        if type_name is None:
            return None
        ordered = get_member_order(type_name)
        if ordered is None or index < 0 or index >= len(ordered):
            return None
        return _make_string_literal(ordered[index])

Functions

def resolve_expression_type(expr, variable_types=None)

Trace the .NET type of a PowerShell expression by walking member access chains. Returns the lowercase full .NET type name, or None if the type cannot be determined.

Expand source code Browse git
def resolve_expression_type(
    expr: Expression,
    variable_types: dict[str, str] | None = None,
) -> str | None:
    """
    Trace the .NET type of a PowerShell expression by walking member access
    chains. Returns the lowercase full .NET type name, or None if the type
    cannot be determined.
    """
    while isinstance(expr, Ps1ParenExpression) and expr.expression is not None:
        expr = expr.expression
    if isinstance(expr, Ps1Variable):
        key = expr.name.lower()
        if variable_types and key in variable_types:
            return variable_types[key]
        return _VARIABLE_TYPES.get(key)
    if isinstance(expr, Ps1TypeExpression):
        return _resolve_type_name(expr.name)
    if isinstance(expr, Ps1CastExpression):
        return _resolve_type_name(expr.type_name)
    if isinstance(expr, Ps1CommandInvocation):
        cmd_name = _get_command_name(expr)
        if cmd_name is not None and cmd_name.lower() == 'new-object':
            type_str = _extract_first_positional_type(expr)
            if type_str is not None:
                return _resolve_type_name(type_str)
    if isinstance(expr, Ps1MemberAccess):
        if expr.object is None:
            return None
        obj_type = resolve_expression_type(expr.object, variable_types)
        if obj_type is None:
            return None
        member_name = _get_member_name(expr.member)
        if member_name is None:
            return None
        return _PROPERTY_TYPES.get((obj_type, member_name.lower()))
    return None
def get_member_order(type_name)

Return the members of a .NET type in PowerShell Get-Member display order: methods sorted alphabetically, then properties sorted alphabetically.

Expand source code Browse git
def get_member_order(type_name: str) -> list[str] | None:
    """
    Return the members of a .NET type in PowerShell Get-Member display order:
    methods sorted alphabetically, then properties sorted alphabetically.
    """
    members = _TYPE_MEMBERS.get(type_name)
    if members is None:
        return None
    methods = sorted(
        (m for m in members if (type_name, m.lower()) not in _PROPERTY_TYPES),
        key=str.lower,
    )
    properties = sorted(
        (m for m in members if (type_name, m.lower()) in _PROPERTY_TYPES),
        key=str.lower,
    )
    return methods + properties
def collect_variable_types(root)

Scan the AST for single-assignment variables whose RHS has a resolvable .NET type (e.g. $x = New-Object Net.WebClient). Returns a mapping from lowercase variable name to canonical .NET type string.

Expand source code Browse git
def collect_variable_types(root: Node) -> dict[str, str]:
    """
    Scan the AST for single-assignment variables whose RHS has a resolvable
    .NET type (e.g. `$x = New-Object Net.WebClient`). Returns a mapping from
    lowercase variable name to canonical .NET type string.
    """
    assign_counts: dict[str, int] = {}
    typed_assigns: dict[str, str] = {}
    for node in root.walk():
        if isinstance(node, Ps1AssignmentExpression):
            target = node.target
            if isinstance(target, Ps1Variable) and target.scope == Ps1ScopeModifier.NONE:
                key = target.name.lower()
                assign_counts[key] = assign_counts.get(key, 0) + 1
                if node.operator == '=' and node.value is not None:
                    resolved = resolve_expression_type(node.value)
                    if resolved is not None:
                        typed_assigns[key] = resolved
        elif isinstance(node, Ps1ForEachLoop):
            if isinstance(node.variable, Ps1Variable) and node.variable.scope == Ps1ScopeModifier.NONE:
                key = node.variable.name.lower()
                assign_counts[key] = assign_counts.get(key, 0) + 1
        elif isinstance(node, Ps1UnaryExpression):
            if node.operator in ('++', '--'):
                operand = node.operand
                if isinstance(operand, Ps1Variable) and operand.scope == Ps1ScopeModifier.NONE:
                    key = operand.name.lower()
                    assign_counts[key] = assign_counts.get(key, 0) + 1
        elif isinstance(node, Ps1ParameterDeclaration):
            if isinstance(node.variable, Ps1Variable) and node.variable.scope == Ps1ScopeModifier.NONE:
                key = node.variable.name.lower()
                assign_counts[key] = assign_counts.get(key, 0) + 1
    return {
        key: type_name
        for key, type_name in typed_assigns.items()
        if assign_counts.get(key, 0) == 1
    }

Classes

class Ps1TypeSystemSimplifications

Resolve type-aware patterns: - ($X | Get-Member)[N].Name resolves to the Nth member name string.

Expand source code Browse git
class Ps1TypeSystemSimplifications(Transformer):
    """
    Resolve type-aware patterns:
    - `($X | Get-Member)[N].Name` resolves to the Nth member name string.
    """

    def __init__(self):
        super().__init__()
        self._variable_types: dict[str, str] | None = None

    def visit(self, node: Node):
        if self._variable_types is None:
            self._variable_types = collect_variable_types(node)
        return super().visit(node)

    def visit_Ps1MemberAccess(self, node: Ps1MemberAccess):
        self.generic_visit(node)
        result = self._try_resolve_get_member_index_name(node)
        if result is not None:
            return result
        result = self._try_strip_name_on_string(node)
        if result is not None:
            return result
        return None

    def _try_strip_name_on_string(
        self,
        node: Ps1MemberAccess,
    ) -> Expression | None:
        """
        Strip .Name access on a string literal.

        After Where-Object wildcard resolution or Get-Member index resolution,
        a MemberInfo .Name access can be left dangling on the resolved string.
        'GetCmdlets'.Name -> 'GetCmdlets'
        """
        member_name = _get_member_name(node.member)
        if member_name is None or member_name.lower() != 'name':
            return None
        if not isinstance(node.object, Ps1StringLiteral):
            return None
        return node.object

    def _try_resolve_get_member_index_name(
        self,
        node: Ps1MemberAccess,
    ) -> Expression | None:
        """
        Resolve ($X | Get-Member)[N].Name to the Nth member name string.
        """
        member_name = _get_member_name(node.member)
        if member_name is None or member_name.lower() != 'name':
            return None
        obj = node.object
        if not isinstance(obj, Ps1IndexExpression):
            return None
        if not isinstance(obj.index, Ps1IntegerLiteral):
            return None
        index = obj.index.value
        inner = _unwrap_parens(obj.object) if obj.object is not None else None
        if not isinstance(inner, Ps1Pipeline):
            return None
        if not _pipeline_pipes_to_get_member(inner):
            return None
        type_name = _pipeline_source_type(inner, self._variable_types)
        if type_name is None:
            return None
        ordered = get_member_order(type_name)
        if ordered is None or index < 0 or index >= len(ordered):
            return None
        return _make_string_literal(ordered[index])

Ancestors

Methods

def visit(self, node)
Expand source code Browse git
def visit(self, node: Node):
    if self._variable_types is None:
        self._variable_types = collect_variable_types(node)
    return super().visit(node)
def visit_Ps1MemberAccess(self, node)
Expand source code Browse git
def visit_Ps1MemberAccess(self, node: Ps1MemberAccess):
    self.generic_visit(node)
    result = self._try_resolve_get_member_index_name(node)
    if result is not None:
        return result
    result = self._try_strip_name_on_string(node)
    if result is not None:
        return result
    return None