master 63c173024495 cached
761 files
5.4 MB
1.5M tokens
3142 symbols
1 requests
Download .txt
Showing preview only (5,827K chars total). Download the full file or copy to clipboard to get everything.
Repository: BartoszCichecki/LenovoLegionToolkit
Branch: master
Commit: 63c173024495
Files: 761
Total size: 5.4 MB

Directory structure:
gitextract_7y507dhv/

├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1_feature_request.yml
│   │   ├── 2_bug_report.yml
│   │   ├── 3_compatibility_request.yml
│   │   └── config.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── build.yml
│       └── release.yml
├── .gitignore
├── CONTRIBUTING.md
├── CONTRIBUTING_ja-JP.md
├── CONTRIBUTING_zh-hans.md
├── InnoDependencies/
│   ├── Arabic.isl
│   ├── ChineseSimplified.isl
│   ├── ChineseTraditional.isl
│   ├── Greek.isl
│   ├── Latvian.isl
│   ├── Romanian.isl
│   ├── Vietnamese.isl
│   └── install_dotnet.iss
├── LICENSE
├── LenovoLegionToolkit.CLI/
│   ├── Flags.cs
│   ├── IpcClient.cs
│   ├── LenovoLegionToolkit.CLI.csproj
│   └── Program.cs
├── LenovoLegionToolkit.CLI.Lib/
│   ├── Constants.cs
│   ├── Extensions/
│   │   └── PipeStreamExtensions.cs
│   ├── IpcConnectException.cs
│   ├── IpcException.cs
│   ├── IpcRequest.cs
│   ├── IpcResponse.cs
│   └── LenovoLegionToolkit.CLI.Lib.csproj
├── LenovoLegionToolkit.Lib/
│   ├── AutoListeners/
│   │   ├── AbstractAutoListener.cs
│   │   ├── GameAutoListener.cs
│   │   ├── IAutoListener.cs
│   │   ├── InstanceStartedEventAutoAutoListener.cs
│   │   ├── InstanceStoppedEventAutoAutoListener.cs
│   │   ├── ProcessAutoListener.cs
│   │   ├── TimeAutoListener.cs
│   │   ├── UserInactivityAutoListener.cs
│   │   └── WiFiAutoListener.cs
│   ├── Controllers/
│   │   ├── AIController.cs
│   │   ├── DisplayBrightnessController.cs
│   │   ├── GPUController.cs
│   │   ├── GPUOverclockController.cs
│   │   ├── GodMode/
│   │   │   ├── AbstractGodModeController.cs
│   │   │   ├── GodModeController.cs
│   │   │   ├── GodModeControllerV1.cs
│   │   │   ├── GodModeControllerV2.cs
│   │   │   └── IGodModeController.cs
│   │   ├── RGBKeyboardBacklightController.cs
│   │   ├── Sensors/
│   │   │   ├── AbstractSensorsController.cs
│   │   │   ├── ISensorsController.cs
│   │   │   ├── SensorsController.cs
│   │   │   ├── SensorsControllerV1.cs
│   │   │   ├── SensorsControllerV2.cs
│   │   │   └── SensorsControllerV3.cs
│   │   ├── SmartFnLockController.cs
│   │   ├── SpectrumKeyboardBacklightController.cs
│   │   ├── WindowsPowerModeController.cs
│   │   └── WindowsPowerPlanController.cs
│   ├── Enums.cs
│   ├── Extensions/
│   │   ├── AssemblyExtensions.cs
│   │   ├── ContainerBuilderExtensions.cs
│   │   ├── DateTimeExtensions.cs
│   │   ├── DictionaryExtensions.cs
│   │   ├── DisplayExtensions.cs
│   │   ├── DisplayPossibleSettingExtensions.cs
│   │   ├── DisplaySettingExtensions.cs
│   │   ├── EnumExtensions.cs
│   │   ├── EnumerableExtensions.cs
│   │   ├── HttpClientExtensions.cs
│   │   ├── IntExtensions.cs
│   │   ├── ListExtensions.cs
│   │   ├── LogoInfoFormatExtensions.cs
│   │   ├── ManagementObjectSearcherExtensions.cs
│   │   ├── MathExtensions.cs
│   │   ├── OSExtensions.cs
│   │   ├── PInvokeExtensions.cs
│   │   ├── PhyscialGPUExtensions.cs
│   │   ├── ProcessExtensions.cs
│   │   ├── PropertyDataCollectionExtensions.cs
│   │   ├── RGBKeyboardBacklightPresetExtensions.cs
│   │   ├── RegistrationBuilderExtensions.cs
│   │   ├── ServiceControllerExtension.cs
│   │   ├── SpectrumKeyboardBacklightEffectTypeExtensions.cs
│   │   ├── StreamExtensions.cs
│   │   ├── StringExtensions.cs
│   │   ├── TaskExtensions.cs
│   │   ├── TimeExtensions.cs
│   │   ├── UintExtensions.cs
│   │   └── VersionExtensions.cs
│   ├── Features/
│   │   ├── AbstractCapabilityFeature.cs
│   │   ├── AbstractCompositeFeature.cs
│   │   ├── AbstractDriverFeature.cs
│   │   ├── AbstractLenovoLightingFeature.cs
│   │   ├── AbstractUEFIFeature.cs
│   │   ├── AbstractWmiFeature.cs
│   │   ├── AlwaysOnUsbFeature.cs
│   │   ├── BatteryFeature.cs
│   │   ├── BatteryNightChargeFeature.cs
│   │   ├── DpiScaleFeature.cs
│   │   ├── FlipToStart/
│   │   │   ├── FlipToStartCapabilityFeature.cs
│   │   │   ├── FlipToStartFeature.cs
│   │   │   └── FlipToStartUEFIFeature.cs
│   │   ├── FnLockFeature.cs
│   │   ├── HDRFeature.cs
│   │   ├── Hybrid/
│   │   │   ├── GSyncFeature.cs
│   │   │   ├── HybridModeFeature.cs
│   │   │   ├── IGPUModeCapabilityFeature.cs
│   │   │   ├── IGPUModeChangeException.cs
│   │   │   ├── IGPUModeFeature.cs
│   │   │   ├── IGPUModeFeatureFlagsFeature.cs
│   │   │   ├── IGPUModeGamezoneFeature.cs
│   │   │   └── Notify/
│   │   │       ├── AbstractDGPUNotify.cs
│   │   │       ├── DGPUCapabilityNotify.cs
│   │   │       ├── DGPUFeatureFlagsNotify.cs
│   │   │       ├── DGPUGamezoneNotify.cs
│   │   │       ├── DGPUNotify.cs
│   │   │       └── IDGPUNotify.cs
│   │   ├── IFeature.cs
│   │   ├── InstantBoot/
│   │   │   ├── InstantBootCapabilityFeature.cs
│   │   │   ├── InstantBootFeature.cs
│   │   │   └── InstantBootFeatureFlagsFeature.cs
│   │   ├── MicrophoneFeature.cs
│   │   ├── OneLevelWhiteKeyboardBacklightFeature.cs
│   │   ├── OverDrive/
│   │   │   ├── OverDriveCapabilityFeature.cs
│   │   │   ├── OverDriveFeature.cs
│   │   │   └── OverDriveGameZoneFeature.cs
│   │   ├── PanelLogo/
│   │   │   ├── PanelLogoBacklightFeature.cs
│   │   │   ├── PanelLogoLenovoLightingBacklightFeature.cs
│   │   │   └── PanelLogoSpectrumBacklightFeature.cs
│   │   ├── PortsBacklightFeature.cs
│   │   ├── PowerModeFeature.cs
│   │   ├── RefreshRateFeature.cs
│   │   ├── ResolutionFeature.cs
│   │   ├── SpeakerFeature.cs
│   │   ├── TouchpadLockFeature.cs
│   │   ├── WhiteKeyboardBacklight/
│   │   │   ├── WhiteKeyboardBacklightFeature.cs
│   │   │   ├── WhiteKeyboardDriverBacklightFeature.cs
│   │   │   └── WhiteKeyboardLenovoLightingBacklightFeature.cs
│   │   └── WinKeyFeature.cs
│   ├── GameDetection/
│   │   ├── EffectiveGameModeDetector.cs
│   │   └── GameConfigStoreDetector.cs
│   ├── GlobalSuppressions.cs
│   ├── HttpClientFactory.cs
│   ├── Integrations/
│   │   └── HWiNFOIntegration.cs
│   ├── Interfaces.cs
│   ├── IoCContainer.cs
│   ├── IoCModule.cs
│   ├── LenovoLegionToolkit.Lib.csproj
│   ├── LenovoLegionToolkit.Lib.csproj.DotSettings
│   ├── Listeners/
│   │   ├── AbstractEventLogListener.cs
│   │   ├── AbstractWMIListener.cs
│   │   ├── DisplayBrightnessListener.cs
│   │   ├── DisplayConfigurationListener.cs
│   │   ├── DriverKeyListener.cs
│   │   ├── IListener.cs
│   │   ├── INotifyingListener.cs
│   │   ├── LightingChangeListener.cs
│   │   ├── NativeWindowsMessageListener.cs
│   │   ├── PowerModeListener.cs
│   │   ├── PowerStateListener.cs
│   │   ├── RGBKeyboardBacklightListener.cs
│   │   ├── SessionLockUnlockListener.cs
│   │   ├── SpecialKeyListener.cs
│   │   ├── SystemThemeListener.cs
│   │   ├── ThermalModeListener.cs
│   │   └── WinKeyListener.cs
│   ├── Messaging/
│   │   ├── Messages/
│   │   │   ├── FeatureStateMessage.cs
│   │   │   ├── IMessage.cs
│   │   │   ├── NotificationMessage.cs
│   │   │   ├── RGBKeyboardBacklightChangedMessage.cs
│   │   │   └── SpectrumBacklightChangedMessage.cs
│   │   └── MessagingCenter.cs
│   ├── Native.cs
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   ├── PackageDownloader/
│   │   ├── AbstractPackageDownloader.cs
│   │   ├── Detectors/
│   │   │   ├── Rules/
│   │   │   │   ├── AndPackageRule.cs
│   │   │   │   ├── BiosPackageRule.cs
│   │   │   │   ├── CpuAddressWidthPackageRule.cs
│   │   │   │   ├── DriverPackageRule.cs
│   │   │   │   ├── ExternalDetectionRule.cs
│   │   │   │   ├── IPackageRule.cs
│   │   │   │   ├── NotPackageRule.cs
│   │   │   │   ├── OrPackageRule.cs
│   │   │   │   ├── OsPackageRule.cs
│   │   │   │   ├── PnPIdPackageRule.cs
│   │   │   │   ├── RegistryKeyPackageRule.cs
│   │   │   │   ├── RegistryKeyValuePackageRule.cs
│   │   │   │   └── WindowsBuildVersionPackageRule.cs
│   │   │   └── VantagePackageUpdateDetector.cs
│   │   ├── IPackageDownloader.cs
│   │   ├── PCSupportPackageDownloader.cs
│   │   ├── PackageDownloaderFactory.cs
│   │   ├── UpdateCatalogNotFoundException.cs
│   │   └── VantagePackageDownloader.cs
│   ├── Resources/
│   │   ├── Resource.Designer.cs
│   │   ├── Resource.ar.resx
│   │   ├── Resource.bg.resx
│   │   ├── Resource.bs.resx
│   │   ├── Resource.ca.resx
│   │   ├── Resource.cs.resx
│   │   ├── Resource.de.resx
│   │   ├── Resource.el.resx
│   │   ├── Resource.es.resx
│   │   ├── Resource.fr.resx
│   │   ├── Resource.hu.resx
│   │   ├── Resource.it.resx
│   │   ├── Resource.ja.resx
│   │   ├── Resource.ko.resx
│   │   ├── Resource.lv.resx
│   │   ├── Resource.nl-nl.resx
│   │   ├── Resource.pl.resx
│   │   ├── Resource.pt-br.resx
│   │   ├── Resource.pt.resx
│   │   ├── Resource.resx
│   │   ├── Resource.ro.resx
│   │   ├── Resource.ru.resx
│   │   ├── Resource.sk.resx
│   │   ├── Resource.tr.resx
│   │   ├── Resource.uk.resx
│   │   ├── Resource.uz-latn-uz.resx
│   │   ├── Resource.vi.resx
│   │   ├── Resource.zh-hans.resx
│   │   └── Resource.zh-hant.resx
│   ├── Services/
│   │   └── BatteryDischargeRateMonitorService.cs
│   ├── Settings/
│   │   ├── AbstractSettings.cs
│   │   ├── ApplicationSettings.cs
│   │   ├── BalanceModeSettings.cs
│   │   ├── GPUOverclockSettings.cs
│   │   ├── GodModeSettings.cs
│   │   ├── IntegrationsSettings.cs
│   │   ├── PackageDownloaderSettings.cs
│   │   ├── RGBKeyboardSettings.cs
│   │   ├── SpectrumKeyboardSettings.cs
│   │   ├── SunriseSunsetSettings.cs
│   │   └── UpdateCheckSettings.cs
│   ├── SoftwareDisabler/
│   │   ├── AbstractSoftwareDisabler.cs
│   │   ├── FnKeysDisabler.cs
│   │   ├── LegionZoneDisabler.cs
│   │   └── VantageDisabler.cs
│   ├── Structs.cs
│   ├── System/
│   │   ├── AirplaneMode.cs
│   │   ├── Autorun.cs
│   │   ├── Battery.cs
│   │   ├── BootLogo.cs
│   │   ├── CMD.cs
│   │   ├── Devices.cs
│   │   ├── Displays.cs
│   │   ├── Drivers.cs
│   │   ├── ExternalDisplays.cs
│   │   ├── InternalDisplay.cs
│   │   ├── KnownFolders.cs
│   │   ├── Management/
│   │   │   ├── WMI.LenovoCapabilityData00.cs
│   │   │   ├── WMI.LenovoCapabilityData01.cs
│   │   │   ├── WMI.LenovoCpuMethod.cs
│   │   │   ├── WMI.LenovoDefaultValueInDifferentModeData.cs
│   │   │   ├── WMI.LenovoDiscreteData.cs
│   │   │   ├── WMI.LenovoFanMethod.cs
│   │   │   ├── WMI.LenovoFanTableData.cs
│   │   │   ├── WMI.LenovoGameZoneData.cs
│   │   │   ├── WMI.LenovoGameZoneKeyLockStatusEvent.cs
│   │   │   ├── WMI.LenovoGameZoneLightProfileChangeEvent.cs
│   │   │   ├── WMI.LenovoGameZoneSmartFanModeEvent.cs
│   │   │   ├── WMI.LenovoGameZoneThermalModeEvent.cs
│   │   │   ├── WMI.LenovoGpuMethod.cs
│   │   │   ├── WMI.LenovoIntelligentOPList.cs
│   │   │   ├── WMI.LenovoLightingData.cs
│   │   │   ├── WMI.LenovoLightingEvent.cs
│   │   │   ├── WMI.LenovoLightingMethod.cs
│   │   │   ├── WMI.LenovoOtherMethod.cs
│   │   │   ├── WMI.LenovoUtilityEvent.cs
│   │   │   ├── WMI.Win32.cs
│   │   │   ├── WMI.WmiMonitorBrightnessEvent.cs
│   │   │   ├── WMI.WmiMonitorBrightnessMethods.cs
│   │   │   └── WMI.cs
│   │   ├── NVAPI.cs
│   │   ├── Power.cs
│   │   ├── Registry.cs
│   │   ├── SystemPath.cs
│   │   ├── SystemTheme.cs
│   │   └── WiFi.cs
│   └── Utils/
│       ├── Compatibility.cs
│       ├── Crc32Adler.cs
│       ├── Folders.cs
│       ├── IMainThreadDispatcher.cs
│       ├── LambdaAsyncDisposable.cs
│       ├── LambdaDisposable.cs
│       ├── Log.cs
│       ├── NullSafeHandle.cs
│       ├── RetryHelper.cs
│       ├── SafePerformanceCounter.cs
│       ├── StructSafeHandle.cs
│       ├── SunriseSunset.cs
│       ├── ThreadSafeBool.cs
│       ├── ThreadSafeCounter.cs
│       ├── ThrottleFirstDispatcher.cs
│       ├── ThrottleLastDispatcher.cs
│       ├── TokenManipulator.cs
│       ├── UpdateChecker.cs
│       └── WarrantyChecker.cs
├── LenovoLegionToolkit.Lib.Automation/
│   ├── AutomationContext.cs
│   ├── AutomationEnvironment.cs
│   ├── AutomationProcessor.cs
│   ├── Enums.cs
│   ├── GlobalSuppressions.cs
│   ├── IAutomationEvent.cs
│   ├── IoCModule.cs
│   ├── LenovoLegionToolkit.Lib.Automation.csproj
│   ├── LenovoLegionToolkit.Lib.Automation.csproj.DotSettings
│   ├── Pipeline/
│   │   ├── AutomationPipeline.cs
│   │   └── Triggers/
│   │       ├── ACAdapterConnectedAutomationPipelineTrigger.cs
│   │       ├── ACAdapterDisconnectedAutomationPipelineTrigger.cs
│   │       ├── AndAutomationPipelineTrigger.cs
│   │       ├── DeviceConnectedAutomationPipelineTrigger.cs
│   │       ├── DeviceDisconnectedAutomationPipelineTrigger.cs
│   │       ├── DisplayOffAutomationPipelineTrigger.cs
│   │       ├── DisplayOnAutomationPipelineTrigger.cs
│   │       ├── ExternalDisplayConnectedAutomationPipelineTrigger.cs
│   │       ├── ExternalDisplayDisconnectedAutomationPipelineTrigger.cs
│   │       ├── GamesAreRunningAutomationPipelineTrigger.cs
│   │       ├── GamesStopAutomationPipelineTrigger.cs
│   │       ├── GodModePresetChangedAutomationPipelineTrigger.cs
│   │       ├── HDROffAutomationPipelineTrigger.cs
│   │       ├── HDROnAutomationPipelineTrigger.cs
│   │       ├── IAutomationPipelineTrigger.cs
│   │       ├── LidClosedAutomationPipelineTrigger.cs
│   │       ├── LidOpenedAutomationPipelineTrigger.cs
│   │       ├── LowWattageACAdapterConnectedAutomationPipelineTrigger.cs
│   │       ├── OnResumeAutomationPipelineTrigger.cs
│   │       ├── OnStartupAutomationPipelineTrigger.cs
│   │       ├── PeriodicAutomationPipelineTrigger.cs
│   │       ├── PowerModeAutomationPipelineTrigger.cs
│   │       ├── ProcessesAreRunningAutomationPipelineTrigger.cs
│   │       ├── ProcessesStopRunningAutomationPipelineTrigger.cs
│   │       ├── SessionLockAutomationPipelineTrigger.cs
│   │       ├── SessionUnlockAutomationPipelineTrigger.cs
│   │       ├── TimeAutomationPipelineTrigger.cs
│   │       ├── UserInactivityAutomationPipelineTrigger.cs
│   │       ├── WiFiConnectedAutomationPipelineTrigger.cs
│   │       └── WiFiDisconnectedAutomationPipelineTrigger.cs
│   ├── Resources/
│   │   ├── Resource.Designer.cs
│   │   ├── Resource.ar.resx
│   │   ├── Resource.bg.resx
│   │   ├── Resource.bs.resx
│   │   ├── Resource.ca.resx
│   │   ├── Resource.cs.resx
│   │   ├── Resource.de.resx
│   │   ├── Resource.el.resx
│   │   ├── Resource.es.resx
│   │   ├── Resource.fr.resx
│   │   ├── Resource.hu.resx
│   │   ├── Resource.it.resx
│   │   ├── Resource.ja.resx
│   │   ├── Resource.ko.resx
│   │   ├── Resource.lv.resx
│   │   ├── Resource.nl-nl.resx
│   │   ├── Resource.pl.resx
│   │   ├── Resource.pt-br.resx
│   │   ├── Resource.pt.resx
│   │   ├── Resource.resx
│   │   ├── Resource.ro.resx
│   │   ├── Resource.ru.resx
│   │   ├── Resource.sk.resx
│   │   ├── Resource.tr.resx
│   │   ├── Resource.uk.resx
│   │   ├── Resource.uz-latn-uz.resx
│   │   ├── Resource.vi.resx
│   │   ├── Resource.zh-hans.resx
│   │   └── Resource.zh-hant.resx
│   ├── Steps/
│   │   ├── AbstractFeatureAutomationStep.cs
│   │   ├── AlwaysOnUsbAutomationStep.cs
│   │   ├── BatteryAutomationStep.cs
│   │   ├── BatteryNightChargeAutomationStep.cs
│   │   ├── DeactivateGPUAutomationStep.cs
│   │   ├── DelayAutomationStep.cs
│   │   ├── DisplayBrightnessAutomationStep.cs
│   │   ├── DpiScaleAutomationStep.cs
│   │   ├── FlipToStartAutomationStep.cs
│   │   ├── FnLockAutomationStep.cs
│   │   ├── GodModePresetAutomationStep.cs
│   │   ├── HDRAutomationStep.cs
│   │   ├── HybridModeAutomationStep.cs
│   │   ├── IAutomationStep.cs
│   │   ├── InstantBootAutomationStep.cs
│   │   ├── MacroAutomationStep.cs
│   │   ├── MicrophoneAutomationStep.cs
│   │   ├── NotificationAutomationStep.cs
│   │   ├── OneLevelWhiteKeyboardBacklightAutomationStep.cs
│   │   ├── OverDriveAutomationStep.cs
│   │   ├── OverclockDiscreteGPUAutomationStep.cs
│   │   ├── PanelLogoBacklightAutomationStep.cs
│   │   ├── PlaySoundAutomationStep.cs
│   │   ├── PortsBacklightAutomationStep.cs
│   │   ├── PowerModeAutomationStep.cs
│   │   ├── QuickActionAutomationStep.cs
│   │   ├── RGBKeyboardBacklightAutomationStep.cs
│   │   ├── RefreshRateAutomationStep.cs
│   │   ├── ResolutionAutomationStep.cs
│   │   ├── RunAutomationStep.cs
│   │   ├── SpeakerAutomationStep.cs
│   │   ├── SpectrumKeyboardBacklightBrightnessAutomationStep.cs
│   │   ├── SpectrumKeyboardBacklightImportProfileAutomationStep.cs
│   │   ├── SpectrumKeyboardBacklightProfileAutomationStep.cs
│   │   ├── TouchpadLockAutomationStep.cs
│   │   ├── TurnOffMonitorsAutomationStep.cs
│   │   ├── TurnOffWiFiAutomationStep.cs
│   │   ├── TurnOnWiFiAutomationStep.cs
│   │   ├── WhiteKeyboardBacklightAutomationStep.cs
│   │   └── WinKeyAutomationStep.cs
│   ├── Structs.cs
│   └── Utils/
│       └── AutomationSettings.cs
├── LenovoLegionToolkit.Lib.Macro/
│   ├── Enums.cs
│   ├── IoCModule.cs
│   ├── LenovoLegionToolkit.Lib.Macro.csproj
│   ├── MacroController.cs
│   ├── Resources/
│   │   ├── Resource.Designer.cs
│   │   ├── Resource.ar.resx
│   │   ├── Resource.bg.resx
│   │   ├── Resource.bs.resx
│   │   ├── Resource.cs.resx
│   │   ├── Resource.de.resx
│   │   ├── Resource.el.resx
│   │   ├── Resource.es.resx
│   │   ├── Resource.fr.resx
│   │   ├── Resource.hu.resx
│   │   ├── Resource.it.resx
│   │   ├── Resource.ja.resx
│   │   ├── Resource.ko.resx
│   │   ├── Resource.lv.resx
│   │   ├── Resource.nl-nl.resx
│   │   ├── Resource.pl.resx
│   │   ├── Resource.pt-br.resx
│   │   ├── Resource.pt.resx
│   │   ├── Resource.resx
│   │   ├── Resource.ro.resx
│   │   ├── Resource.ru.resx
│   │   ├── Resource.sk.resx
│   │   ├── Resource.tr.resx
│   │   ├── Resource.uk.resx
│   │   ├── Resource.uz-latn-uz.resx
│   │   ├── Resource.vi.resx
│   │   ├── Resource.zh-hans.resx
│   │   └── Resource.zh-hant.resx
│   ├── Structs.cs
│   └── Utils/
│       ├── MacroPlayer.cs
│       ├── MacroRecorder.cs
│       ├── MacroSettings.cs
│       └── TypeConverters/
│           └── MacroIdentifierTypeConverter.cs
├── LenovoLegionToolkit.SpectrumTester/
│   ├── LenovoLegionToolkit.SpectrumTester.csproj
│   └── Program.cs
├── LenovoLegionToolkit.WPF/
│   ├── App.xaml
│   ├── App.xaml.cs
│   ├── Assets/
│   │   ├── AssetResources.Designer.cs
│   │   └── AssetResources.resx
│   ├── Behaviors/
│   │   └── ProgressBarAnimateBehavior.cs
│   ├── CLI/
│   │   ├── Features/
│   │   │   ├── FeatureRegistration.cs
│   │   │   ├── FeatureRegistry.cs
│   │   │   └── IFeatureRegistration.cs
│   │   └── IpcServer.cs
│   ├── Constants.cs
│   ├── Controls/
│   │   ├── AbstractComboBoxFeatureCardControl.cs
│   │   ├── AbstractRefreshingControl.cs
│   │   ├── AbstractToggleFeatureCardControl.cs
│   │   ├── Automation/
│   │   │   ├── AbstractAutomationStepControl.cs
│   │   │   ├── AbstractComboBoxAutomationStepControl.cs
│   │   │   ├── AutomationPipelineControl.cs
│   │   │   └── Steps/
│   │   │       ├── AlwaysOnUsbAutomationStepControl.cs
│   │   │       ├── BatteryAutomationStepControl.cs
│   │   │       ├── BatteryNightChargeAutomationStepControl.cs
│   │   │       ├── DeactivateGPUAutomationStepControl.cs
│   │   │       ├── DelayAutomationStepControl.cs
│   │   │       ├── DisplayBrightnessAutomationStepControl.cs
│   │   │       ├── DpiScaleAutomationStepControl.cs
│   │   │       ├── FlipToStartAutomationStepControl.cs
│   │   │       ├── FnLockAutomationStepControl.cs
│   │   │       ├── GodModePresetAutomationStepControl.cs
│   │   │       ├── HDRAutomationStepControl.cs
│   │   │       ├── HybridModeAutomationStepControl.cs
│   │   │       ├── InstantBootAutomationStepControl.cs
│   │   │       ├── MacroAutomationStepControl.cs
│   │   │       ├── MicrophoneAutomationStepControl.cs
│   │   │       ├── NotificationAutomationStepControl.cs
│   │   │       ├── OneLevelWhiteKeyboardBacklightAutomationStepControl.cs
│   │   │       ├── OverDriveAutomationStepControl.cs
│   │   │       ├── OverclockDiscreteGPUAutomationStepControl.cs
│   │   │       ├── PanelLogoBacklightAutomationStepControl.cs
│   │   │       ├── PlaySoundAutomationStepControl.cs
│   │   │       ├── PortsBacklightAutomationStepControl.cs
│   │   │       ├── PowerModeAutomationStepControl.cs
│   │   │       ├── QuickActionAutomationStepControl.cs
│   │   │       ├── RGBKeyboardBacklightAutomationStepControl.cs
│   │   │       ├── RefreshRateAutomationStepControl.cs
│   │   │       ├── ResolutionAutomationStepControl.cs
│   │   │       ├── RunAutomationStepControl.cs
│   │   │       ├── SpeakerAutomationStepControl.cs
│   │   │       ├── SpectrumKeyboardBacklightBrightnessAutomationStepControl.cs
│   │   │       ├── SpectrumKeyboardBacklightImportProfileAutomationStepControl.cs
│   │   │       ├── SpectrumKeyboardBacklightProfileAutomationStepControl.cs
│   │   │       ├── TouchpadLockAutomationStepControl.cs
│   │   │       ├── TurnOffMonitorsAutomationStepControl.cs
│   │   │       ├── TurnOffWiFiAutomationStepControl.cs
│   │   │       ├── TurnOnWiFiAutomationStepControl.cs
│   │   │       ├── WhiteKeyboardBacklightAutomationStepControl.cs
│   │   │       └── WinKeyAutomationStepControl.cs
│   │   ├── CardHeaderControl.cs
│   │   ├── ColorPickerControl.xaml
│   │   ├── ColorPickerControl.xaml.cs
│   │   ├── Custom/
│   │   │   ├── Badge.cs
│   │   │   ├── CardAction.cs
│   │   │   ├── CardControl.cs
│   │   │   ├── CardExpander.cs
│   │   │   ├── InfoBar.cs
│   │   │   └── NavigationItem.cs
│   │   ├── Dashboard/
│   │   │   ├── AlwaysOnUSBControl.cs
│   │   │   ├── BatteryModeControl.cs
│   │   │   ├── BatteryNightChargeModeControl.cs
│   │   │   ├── DashboardGroupControl.cs
│   │   │   ├── DiscreteGPUControl.xaml
│   │   │   ├── DiscreteGPUControl.xaml.cs
│   │   │   ├── DpiScaleControl.cs
│   │   │   ├── Edit/
│   │   │   │   ├── EditDashboardGroupControl.cs
│   │   │   │   └── EditDashboardItemControl.cs
│   │   │   ├── FlipToStartControl.cs
│   │   │   ├── FnLockControl.cs
│   │   │   ├── GodMode/
│   │   │   │   ├── GodModeValueControl.xaml
│   │   │   │   └── GodModeValueControl.xaml.cs
│   │   │   ├── HDRControl.cs
│   │   │   ├── HybridModeControlFactory.cs
│   │   │   ├── InstantBootControl.cs
│   │   │   ├── MicrophoneControl.cs
│   │   │   ├── OneLevelWhiteKeyboardBacklightControl.cs
│   │   │   ├── OverDriveControl.cs
│   │   │   ├── OverclockDiscreteGPUControl.cs
│   │   │   ├── PanelLogoBacklightControl.cs
│   │   │   ├── PortsBacklightControl.cs
│   │   │   ├── PowerModeControl.cs
│   │   │   ├── RefreshRateControl.cs
│   │   │   ├── ResolutionControl.cs
│   │   │   ├── SensorsControl.xaml
│   │   │   ├── SensorsControl.xaml.cs
│   │   │   ├── TouchpadLockControl.cs
│   │   │   ├── TurnOffMonitorsControl.xaml
│   │   │   ├── TurnOffMonitorsControl.xaml.cs
│   │   │   ├── WhiteKeyboardBacklightControl.cs
│   │   │   └── WinKeyControl.cs
│   │   ├── FanCurveControl.xaml
│   │   ├── FanCurveControl.xaml.cs
│   │   ├── KeyboardBacklight/
│   │   │   ├── RGB/
│   │   │   │   ├── AbstractComboBoxRGBKeyboardCardControl.cs
│   │   │   │   ├── RGBKeyboardBacklightBrightnessCardControl.cs
│   │   │   │   ├── RGBKeyboardBacklightControl.xaml
│   │   │   │   ├── RGBKeyboardBacklightControl.xaml.cs
│   │   │   │   ├── RGBKeyboardBacklightEffectCardControl.cs
│   │   │   │   └── RGBKeyboardBacklightSpeedCardControl.cs
│   │   │   └── Spectrum/
│   │   │       ├── Device/
│   │   │       │   ├── SpectrumDeviceControl.cs
│   │   │       │   ├── SpectrumDeviceFullAlternativeControl.xaml
│   │   │       │   ├── SpectrumDeviceFullAlternativeControl.xaml.cs
│   │   │       │   ├── SpectrumDeviceFullControl.xaml
│   │   │       │   ├── SpectrumDeviceFullControl.xaml.cs
│   │   │       │   ├── SpectrumDeviceKeyboardAndFrontControl.xaml
│   │   │       │   ├── SpectrumDeviceKeyboardAndFrontControl.xaml.cs
│   │   │       │   ├── SpectrumDeviceKeyboardOnlyControl.xaml
│   │   │       │   ├── SpectrumDeviceKeyboardOnlyControl.xaml.cs
│   │   │       │   ├── SpectrumKeyboardANSIControl.xaml
│   │   │       │   ├── SpectrumKeyboardANSIControl.xaml.cs
│   │   │       │   ├── SpectrumKeyboardControl.cs
│   │   │       │   ├── SpectrumKeyboardISOControl.xaml
│   │   │       │   ├── SpectrumKeyboardISOControl.xaml.cs
│   │   │       │   ├── SpectrumKeyboardJisControl.xaml
│   │   │       │   ├── SpectrumKeyboardJisControl.xaml.cs
│   │   │       │   ├── SpectrumZoneControl.xaml
│   │   │       │   └── SpectrumZoneControl.xaml.cs
│   │   │       ├── SpectrumKeyboardBacklightControl.xaml
│   │   │       ├── SpectrumKeyboardBacklightControl.xaml.cs
│   │   │       ├── SpectrumKeyboardEffectControl.xaml
│   │   │       └── SpectrumKeyboardEffectControl.xaml.cs
│   │   ├── LoadableControl.cs
│   │   ├── Macro/
│   │   │   ├── AbstractMacroEventControl.xaml
│   │   │   ├── AbstractMacroEventControl.xaml.cs
│   │   │   ├── MacroSequenceControl.xaml
│   │   │   ├── MacroSequenceControl.xaml.cs
│   │   │   ├── MultiAbstractMacroEventControl.cs
│   │   │   └── SingleAbstractMacroEventControl.cs
│   │   ├── MultiColorPickerControl.xaml
│   │   ├── MultiColorPickerControl.xaml.cs
│   │   ├── MultiColorPickerItemControl.xaml
│   │   ├── MultiColorPickerItemControl.xaml.cs
│   │   ├── Packages/
│   │   │   ├── PackageControl.xaml
│   │   │   └── PackageControl.xaml.cs
│   │   └── SelectableControl.cs
│   ├── Enums.cs
│   ├── Extensions/
│   │   ├── AutomationPipelineTriggerExtensions.cs
│   │   ├── ClipboardExtensions.cs
│   │   ├── ColorExtensions.cs
│   │   ├── ComboBoxExtensions.cs
│   │   ├── DashboardItemExtensions.cs
│   │   ├── DispatcherExtensions.cs
│   │   ├── ImageSourceExtensions.cs
│   │   ├── ItemCollectionExtensions.cs
│   │   ├── NavigationStoreExtensions.cs
│   │   ├── PowerModeStateExtensions.cs
│   │   ├── RGBColorExtensions.cs
│   │   ├── UIElementExtensions.cs
│   │   ├── UriExtensions.cs
│   │   └── WindowExtensions.cs
│   ├── Flags.cs
│   ├── GlobalSuppressions.cs
│   ├── IoCModule.cs
│   ├── LenovoLegionToolkit.WPF.csproj
│   ├── LenovoLegionToolkit.WPF.csproj.DotSettings
│   ├── Pages/
│   │   ├── AboutPage.xaml
│   │   ├── AboutPage.xaml.cs
│   │   ├── AutomationPage.xaml
│   │   ├── AutomationPage.xaml.cs
│   │   ├── BatteryPage.xaml
│   │   ├── BatteryPage.xaml.cs
│   │   ├── DashboardPage.xaml
│   │   ├── DashboardPage.xaml.cs
│   │   ├── DonatePage.xaml
│   │   ├── DonatePage.xaml.cs
│   │   ├── KeyboardBacklightPage.xaml
│   │   ├── KeyboardBacklightPage.xaml.cs
│   │   ├── MacroPage.xaml
│   │   ├── MacroPage.xaml.cs
│   │   ├── PackagesPage.xaml
│   │   ├── PackagesPage.xaml.cs
│   │   ├── SettingsPage.xaml
│   │   └── SettingsPage.xaml.cs
│   ├── Properties/
│   │   └── launchSettings.json
│   ├── Resources/
│   │   ├── Resource.Designer.cs
│   │   ├── Resource.ar.resx
│   │   ├── Resource.bg.resx
│   │   ├── Resource.bs.resx
│   │   ├── Resource.ca.resx
│   │   ├── Resource.cs.resx
│   │   ├── Resource.de.resx
│   │   ├── Resource.el.resx
│   │   ├── Resource.es.resx
│   │   ├── Resource.fr.resx
│   │   ├── Resource.hu.resx
│   │   ├── Resource.it.resx
│   │   ├── Resource.ja.resx
│   │   ├── Resource.ko.resx
│   │   ├── Resource.lv.resx
│   │   ├── Resource.nl-nl.resx
│   │   ├── Resource.pl.resx
│   │   ├── Resource.pt-br.resx
│   │   ├── Resource.pt.resx
│   │   ├── Resource.resx
│   │   ├── Resource.ro.resx
│   │   ├── Resource.ru.resx
│   │   ├── Resource.sk.resx
│   │   ├── Resource.tr.resx
│   │   ├── Resource.uk.resx
│   │   ├── Resource.uz-latn-uz.resx
│   │   ├── Resource.vi.resx
│   │   ├── Resource.zh-hans.resx
│   │   └── Resource.zh-hant.resx
│   ├── Settings/
│   │   └── DashboardSettings.cs
│   ├── Structs.cs
│   ├── Styles/
│   │   ├── Badge.xaml
│   │   ├── CardAction.xaml
│   │   ├── CardControl.xaml
│   │   ├── CardExpander.xaml
│   │   ├── DynamicScrollBar.xaml
│   │   ├── InfoBar.xaml
│   │   └── NavigationStore.xaml
│   ├── Utils/
│   │   ├── FullscreenHelper.cs
│   │   ├── LocalizationHelper.cs
│   │   ├── MainThreadDispatcher.cs
│   │   ├── MesageBoxHelper.cs
│   │   ├── NotificationsManager.cs
│   │   ├── NotifyIcon.cs
│   │   ├── ScreenHelper.cs
│   │   ├── SmartKeyHelper.cs
│   │   ├── SnackbarHelper.cs
│   │   ├── SpectrumScreenCapture.cs
│   │   ├── ThemeManager.cs
│   │   └── TrayHelper.cs
│   ├── Windows/
│   │   ├── Automation/
│   │   │   ├── AddAutomationStepWindow.xaml
│   │   │   ├── AddAutomationStepWindow.xaml.cs
│   │   │   ├── AutomationPipelineTriggerConfigurationWindow.xaml
│   │   │   ├── AutomationPipelineTriggerConfigurationWindow.xaml.cs
│   │   │   ├── CreateAutomationPipelineWindow.xaml
│   │   │   ├── CreateAutomationPipelineWindow.xaml.cs
│   │   │   └── TabItemContent/
│   │   │       ├── DeviceAutomationPipelineTriggerTabItemContent.xaml
│   │   │       ├── DeviceAutomationPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── GodModePresetPipelineTriggerTabItemContent.xaml
│   │   │       ├── GodModePresetPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── IAutomationPipelineTriggerTabItemContent.cs
│   │   │       ├── PeriodicActionPipelineTriggerTabItemContent.xaml
│   │   │       ├── PeriodicActionPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── PowerModeAutomationPipelineTriggerTabItemContent.xaml
│   │   │       ├── PowerModeAutomationPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── ProcessAutomationPipelineTriggerTabItemControl.xaml
│   │   │       ├── ProcessAutomationPipelineTriggerTabItemControl.xaml.cs
│   │   │       ├── TimeAutomationPipelineTriggerTabItemContent.xaml
│   │   │       ├── TimeAutomationPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── UserInactivityPipelineTriggerTabItemContent.xaml
│   │   │       ├── UserInactivityPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── WiFiConnectedPipelineTriggerTabItemContent.xaml
│   │   │       └── WiFiConnectedPipelineTriggerTabItemContent.xaml.cs
│   │   ├── BaseWindow.cs
│   │   ├── Dashboard/
│   │   │   ├── AddDashboardItemWindow.xaml
│   │   │   ├── AddDashboardItemWindow.xaml.cs
│   │   │   ├── BalanceModeSettingsWindow.xaml
│   │   │   ├── BalanceModeSettingsWindow.xaml.cs
│   │   │   ├── EditDashboardWindow.xaml
│   │   │   ├── EditDashboardWindow.xaml.cs
│   │   │   ├── ExtendedHybridModeInfoWindow.xaml
│   │   │   ├── ExtendedHybridModeInfoWindow.xaml.cs
│   │   │   ├── GodModeSettingsWindow.xaml
│   │   │   ├── GodModeSettingsWindow.xaml.cs
│   │   │   ├── OverclockDiscreteGPUSettingsWindow.xaml
│   │   │   └── OverclockDiscreteGPUSettingsWindow.xaml.cs
│   │   ├── KeyboardBacklight/
│   │   │   └── Spectrum/
│   │   │       ├── SpectrumKeyboardBacklightEditEffectWindow.xaml
│   │   │       └── SpectrumKeyboardBacklightEditEffectWindow.xaml.cs
│   │   ├── Macro/
│   │   │   └── MacroRecordingWindow.cs
│   │   ├── MainWindow.xaml
│   │   ├── MainWindow.xaml.cs
│   │   ├── Settings/
│   │   │   ├── BootLogoWindow.xaml
│   │   │   ├── BootLogoWindow.xaml.cs
│   │   │   ├── ExcludeRefreshRatesWindow.xaml
│   │   │   ├── ExcludeRefreshRatesWindow.xaml.cs
│   │   │   ├── NotificationsSettingsWindow.xaml
│   │   │   ├── NotificationsSettingsWindow.xaml.cs
│   │   │   ├── SelectSmartKeyPipelinesWindow.xaml
│   │   │   ├── SelectSmartKeyPipelinesWindow.xaml.cs
│   │   │   ├── WindowsPowerModesWindow.xaml
│   │   │   ├── WindowsPowerModesWindow.xaml.cs
│   │   │   ├── WindowsPowerPlansWindow.xaml
│   │   │   └── WindowsPowerPlansWindow.xaml.cs
│   │   └── Utils/
│   │       ├── DeviceInformationWindow.xaml
│   │       ├── DeviceInformationWindow.xaml.cs
│   │       ├── INotificationWindow.cs
│   │       ├── LanguageSelectorWindow.xaml
│   │       ├── LanguageSelectorWindow.xaml.cs
│   │       ├── NativeLayeredWindow.cs
│   │       ├── NotificationAoTWindow.cs
│   │       ├── NotificationWindow.cs
│   │       ├── StatusWindow.xaml
│   │       ├── StatusWindow.xaml.cs
│   │       ├── SymbolRegularPicker.xaml
│   │       ├── SymbolRegularPicker.xaml.cs
│   │       ├── UnsupportedWindow.xaml
│   │       ├── UnsupportedWindow.xaml.cs
│   │       ├── UpdateWindow.xaml
│   │       └── UpdateWindow.xaml.cs
│   └── app.manifest
├── LenovoLegionToolkit.sln
├── LenovoLegionToolkit.sln.DotSettings
├── README.md
├── README_ja-JP.md
├── README_zh-hans.md
├── clean.bat
├── crowdin.yml
├── make.bat
└── make_installer.iss

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs     diff=csharp

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following 
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln       merge=binary
#*.csproj    merge=binary
#*.vbproj    merge=binary
#*.vcxproj   merge=binary
#*.vcproj    merge=binary
#*.dbproj    merge=binary
#*.fsproj    merge=binary
#*.lsproj    merge=binary
#*.wixproj   merge=binary
#*.modelproj merge=binary
#*.sqlproj   merge=binary
#*.wwaproj   merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg   binary
#*.png   binary
#*.gif   binary

###############################################################################
# diff behavior for common document formats
# 
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the 
# entries below.
###############################################################################
#*.doc   diff=astextplain
#*.DOC   diff=astextplain
#*.docx  diff=astextplain
#*.DOCX  diff=astextplain
#*.dot   diff=astextplain
#*.DOT   diff=astextplain
#*.pdf   diff=astextplain
#*.PDF   diff=astextplain
#*.rtf   diff=astextplain
#*.RTF   diff=astextplain


================================================
FILE: .github/FUNDING.yml
================================================
github: [BartoszCichecki]
custom: ["https://paypal.me/bartoszcichecki"]


================================================
FILE: .github/ISSUE_TEMPLATE/1_feature_request.yml
================================================
name: Feature Request
description: Suggest an idea for this project
labels: ["feature"]
body:
  - type: markdown
    attributes:
      value: |
        > [!IMPORTANT]
        > Before you start, read [the rules](https://github.com/BartoszCichecki/LenovoLegionToolkit/blob/master/CONTRIBUTING.md) for contributing.
  
  - type: input
    id: version
    attributes:
      label: Version
      description: Which Lenovo Legion Toolkit version do you use?
      placeholder: e.g. 2.14.0
    validations:
      required: true
  - type: input
    id: os
    attributes:
      label: OS
      description: Which operating system do you use?
      placeholder: e.g. Windows 11 21H2 build 22000
    validations:
      required: true
  - type: input
    id: device
    attributes:
      label: Device
      description: Which laptop do you use?
      placeholder: e.g. Legion 5 Pro 16ACH6
    validations:
      required: true
  - type: textarea
    id: problem
    attributes:
      label: Is your feature request related to a problem?
      description: A clear and concise description of what the problem is.
      placeholder: A clear and concise description of what the problem is.
    validations:
      required: true
  - type: textarea
    id: solution
    attributes:
      label: How would you like the problem to be solved?
      description: A clear and concise description of what you would like to happen.
      placeholder: A clear and concise description of what you would like to happen.
    validations:
      required: true
  - type: textarea
    id: alternatives
    attributes:
      label: What alternatives have you considered?
      description: A clear and concise description of any alternative solutions or features you have considered.
      placeholder: A clear and concise description of any alternative solutions or features you have considered.
    validations:
      required: true
  - type: textarea
    id: additional
    attributes:
      label: Additional information
      description: If applicable, add screenshots or other relevant information to help explain your problem.


================================================
FILE: .github/ISSUE_TEMPLATE/2_bug_report.yml
================================================
name: Bug Report
description: Something isn't working correctly
labels: ["bug"]
body:
  - type: markdown
    attributes:
      value: |
        > [!IMPORTANT]
        > Before you start, read [the rules](https://github.com/BartoszCichecki/LenovoLegionToolkit/blob/master/CONTRIBUTING.md) for contributing.
  
  - type: input
    id: version
    attributes:
      label: Version
      description: Which Lenovo Legion Toolkit version do you use?
      placeholder: e.g. 2.14.0
    validations:
      required: true
  - type: input
    id: os
    attributes:
      label: OS
      description: Which operating system do you use?
      placeholder: e.g. Windows 11 21H2 build 22000
    validations:
      required: true
  - type: input
    id: device
    attributes:
      label: Device
      description: Which laptop do you use?
      placeholder: e.g. Legion 5 Pro 16ACH6
    validations:
      required: true
  - type: input
    id: bios
    attributes:
      label: BIOS version
      description: Which BIOS version do you have?
      placeholder: e.g. GKCN57WW
    validations:
      required: true
  - type: textarea
    id: troubleshoot
    attributes:
      label: What is wrong?
      description: Provide detailed description of what is wrong or does not work as expected.
      placeholder: Provide detailed description of what is wrong or does not work as expected.
    validations:
      required: true
  - type: textarea
    id: description
    attributes:
      label: What did you try already?
      description: Provide detailed description of how did you troubleshoot the issue and what have you tried already.
      placeholder: Provide detailed description of how did you troubleshoot the issue and what have you tried already.
    validations:
      required: true
  - type: textarea
    id: reproduce
    attributes:
      label: How to reproduce the bug?
      description: Describe how to reproduce the behavior. Be as specific as possible and provide as many details as possible.
      placeholder: |
        1. Go to '...'
        2. Click on '....'
        3. Scroll down to '....'
        4. See error
    validations:
      required: true
  - type: textarea
    id: expected-behaviour
    attributes:
      label: What is the behavior that you expected?
      description: Describe what did you expect would happen.
      placeholder: Describe what did you expect would happen.
    validations:
      required: true
  - type: textarea
    id: logs
    attributes:
      label: Logs
      placeholder: Please drag and drop log files here. You can check README for instructions on how to collect logs.
      description: Please drag and drop log files here. You can check README for instructions on how to collect logs.
    validations:
      required: true
  - type: textarea
    id: additional
    attributes:
      label: Additional information
      description: If applicable, add screenshots or other relevant information to help explain your problem.


================================================
FILE: .github/ISSUE_TEMPLATE/3_compatibility_request.yml
================================================
name: Compatibility Request
description: Request support for a device that is not supported
labels: ["compatibility"]
body:
  - type: markdown
    attributes:
      value: |
        > [!IMPORTANT]
        > Before you start, read [the rules](https://github.com/BartoszCichecki/LenovoLegionToolkit/blob/master/CONTRIBUTING.md) for contributing.
  
  - type: input
    id: version
    attributes:
      label: Version
      description: Which Lenovo Legion Toolkit version do you use?
      placeholder: e.g. 2.14.0
    validations:
      required: true
  - type: input
    id: os
    attributes:
      label: OS
      description: Which operating system do you use?
      placeholder: e.g. Windows 11 21H2 build 22000
    validations:
      required: true
  - type: input
    id: device
    attributes:
      label: Device
      description: Which laptop do you use?
      placeholder: e.g. Legion 5 Pro 16ACH6
    validations:
      required: true
  - type: input
    id: bios
    attributes:
      label: BIOS version
      description: Which BIOS version do you have?
      placeholder: e.g. GKCN57WW
    validations:
      required: true
  - type: textarea
    id: what-was-test
    attributes:
      label: Which features of the application did you test?
      description: A clear and concise description of features that were tested.
      placeholder: Type here...
    validations:
      required: true
  - type: textarea
    id: what-is-broken
    attributes:
      label: Which features of the application do not work as expected?
      description: A clear and concise description of features that do not work as expected.
      placeholder: Type here...
    validations:
      required: true
  - type: textarea
    id: logs
    attributes:
      label: Logs
      description: If you encountered problems, please drag and drop log files here. You can check README for instructions on how to collect logs.
  - type: textarea
    id: additional
    attributes:
      label: Additional information
      description: If applicable, add screenshots or other relevant information to help explain your problem.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: General questions
    url: https://github.com/BartoszCichecki/LenovoLegionToolkit/discussions/new?category=q-a
    about: Please ask questions here.


================================================
FILE: .github/pull_request_template.md
================================================
<!---
Important!

Please make yourself familiar with Contribution section in the README and CONTRIBUTING.md file to make sure that your pull request is compliant.
-->


================================================
FILE: .github/workflows/build.yml
================================================
name: Build

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: windows-2022

    steps:
    - name: Checkout
      uses: actions/checkout@v4
    - name: Setup .NET
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: 8.0.x
    - name: Restore
      run: dotnet restore
    - name: Build
      run: .\make.bat
    - name: Upload artifact
      uses: actions/upload-artifact@v4
      with:
        name: installer
        path: build_installer\LenovoLegionToolkitSetup.exe


================================================
FILE: .github/workflows/release.yml
================================================
name: Release

on:
  push:
    tags:
      - "[0-9]*.[0-9]*.[0-9]*"

jobs:
  build:

    runs-on: windows-2022

    steps:
    - name: Checkout
      uses: actions/checkout@v4
    - name: Setup .NET
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: 8.0.x
    - name: Restore
      run: dotnet restore
    - name: Build
      run: .\make.bat ${{ github.ref_name }}
    - name: Release
      uses: softprops/action-gh-release@v0.1.13
      with:
        draft: true
        files: build_installer/LenovoLegionToolkitSetup.exe
        fail_on_unmatched_files: true
    - name: Upload artifact
      uses: actions/upload-artifact@v4
      with:
        name: installer
        path: build_installer/LenovoLegionToolkitSetup.exe


================================================
FILE: .gitignore
================================================

# Created by https://www.toptal.com/developers/gitignore/api/visualstudio,dotnetcore,csharp
# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudio,dotnetcore,csharp

### Csharp ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Mono auto generated files
mono_crash.*

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
build/

# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# Visual Studio 2017 auto generated files
Generated\ Files/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# Benchmark Results
BenchmarkDotNet.Artifacts/

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/

# ASP.NET Scaffolding
ScaffoldingReadMe.txt

# StyleCop
StyleCopReport.xml

# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.tlog
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# Visual Studio Trace Files
*.e2e

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json

# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info

# Visual Studio code coverage results
*.coverage
*.coveragexml

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets

# Nuget personal access tokens and Credentials
nuget.config

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs

# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak

# SQL Server files
*.mdf
*.ldf
*.ndf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# CodeRush personal settings
.cr/personal

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Tabs Studio
*.tss

# Telerik's JustMock configuration file
*.jmconfig

# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs

# OpenCover UI analysis results
OpenCover/

# Azure Stream Analytics local run output
ASALocalRun/

# MSBuild Binary and Structured Log
*.binlog

# NVidia Nsight GPU debugger configuration file
*.nvuser

# MFractors (Xamarin productivity tool) working folder
.mfractor/

# Local History for Visual Studio
.localhistory/

# BeatPulse healthcheck temp database
healthchecksdb

# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/

# Ionide (cross platform F# VS Code tools) working folder
.ionide/

# Fody - auto-generated XML schema
FodyWeavers.xsd

# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace

# Local History for Visual Studio Code
.history/

# Windows Installer files from build outputs
*.cab
*.msi
*.msix
*.msm
*.msp

# JetBrains Rider
.idea/
*.sln.iml

### DotnetCore ###
# .NET Core build folders
bin/
obj/

# Common node modules locations
/node_modules
/wwwroot/node_modules

### VisualStudio ###

# User-specific files

# User-specific files (MonoDevelop/Xamarin Studio)

# Mono auto generated files

# Build results

# Visual Studio 2015/2017 cache/options directory
# Uncomment if you have tasks that create the project's static files in wwwroot

# Visual Studio 2017 auto generated files

# MSTest test Results

# NUnit

# Build Results of an ATL Project

# Benchmark Results

# .NET Core

# ASP.NET Scaffolding

# StyleCop

# Files built by Visual Studio

# Chutzpah Test files

# Visual C++ cache files

# Visual Studio profiler

# Visual Studio Trace Files

# TFS 2012 Local Workspace

# Guidance Automation Toolkit

# ReSharper is a .NET coding add-in

# TeamCity is a build add-in

# DotCover is a Code Coverage Tool

# AxoCover is a Code Coverage Tool

# Coverlet is a free, cross platform Code Coverage Tool

# Visual Studio code coverage results

# NCrunch

# MightyMoose

# Web workbench (sass)

# Installshield output folder

# DocProject is a documentation generator add-in

# Click-Once directory

# Publish Web Output
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted

# NuGet Packages
# NuGet Symbol Packages
# The packages folder can be ignored because of Package Restore
# except build/, which is used as an MSBuild target.
# Uncomment if necessary however generally it will be regenerated when needed
# NuGet v3's project.json files produces more ignorable files

# Nuget personal access tokens and Credentials

# Microsoft Azure Build Output

# Microsoft Azure Emulator

# Windows Store app package directories and files

# Visual Studio cache files
# files ending in .cache can be ignored
# but keep track of directories ending in .cache

# Others

# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)

# RIA/Silverlight projects

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)

# SQL Server files

# Business Intelligence projects

# Microsoft Fakes

# GhostDoc plugin setting file

# Node.js Tools for Visual Studio

# Visual Studio 6 build log

# Visual Studio 6 workspace options file

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)

# Visual Studio LightSwitch build output

# Paket dependency manager

# FAKE - F# Make

# CodeRush personal settings

# Python Tools for Visual Studio (PTVS)

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Tabs Studio

# Telerik's JustMock configuration file

# BizTalk build output

# OpenCover UI analysis results

# Azure Stream Analytics local run output

# MSBuild Binary and Structured Log

# NVidia Nsight GPU debugger configuration file

# MFractors (Xamarin productivity tool) working folder

# Local History for Visual Studio

# BeatPulse healthcheck temp database

# Backup folder for Package Reference Convert tool in Visual Studio 2017

# Ionide (cross platform F# VS Code tools) working folder

# Fody - auto-generated XML schema

# VS Code files for those working on multiple tools

# Local History for Visual Studio Code

# Windows Installer files from build outputs

# JetBrains Rider

### VisualStudio Patch ###
# Additional files built by Visual Studio

# End of https://www.toptal.com/developers/gitignore/api/visualstudio,dotnetcore,csharp

build_installer


================================================
FILE: CONTRIBUTING.md
================================================
## Welcome to Lenvo Legion Toolkit contributing guide!

### Other language versions of this contributing guide:
* [简体中文版开发者指南](CONTRIBUTING_zh-hans.md)
* [日本語版の貢献ガイド](CONTRIBUTING_ja-JP.md)

Thanks for investing your time in contributing to this project! Giving the growing popularity of LLT, here are a few rules to follow to ensure that your contribution goes smoothly.

<br/>

_Due to large number of issues created, those that do not meet the criteria will be deleted without warning. Repeating offenders will be banned._

<br/>

**1. Before reporting an issue make yourself familiar with the README**

[README](https://github.com/BartoszCichecki/LenovoLegionToolkit/blob/master/README.md) is regularly updated to include answers to frequently asked questions as well as information about most common issues. Take your time to go through what is there before creating an issue or starting a discussion.

**2. Check already reported issues**

Go through [issues](https://github.com/BartoszCichecki/LenovoLegionToolkit/issues?q=is%3Aissue) that were already reported, as well as [discussions](https://github.com/BartoszCichecki/LenovoLegionToolkit/discussions?discussions_q=). Do not create duplicate issues or discussions. Even if the issue is marked as closed, you can still leave a comment there.

**3. Use English**

This makes it easier for everyone to follow the conversation.

**4. Respect scope of the project**

This is not meant to be a do-it-all type of application. The vision for the project is clear: provide a replacement of Vantage for Legion laptops. Do not request support for other types/models/etc devices.

**5. Verify your problem before creating an issue**

Make sure that a bug is really a bug in LLT - this isn't a free system troubleshooting forum. If you use modified version of Windows or your Windows is acting funny, that's on you.

**6. Describe your problem as best as you can**

Providing good description is key. Fill out all the fields of the form when creating an issue, including logs. The better the description, the higher the chance that we will understand each other correctly.

**7. Give a good title to issues and discussions**

It is a lot easier to browse the list and follow issues and discussions. "Error when using LLT" is not a good title.

**8. Stay on topic**

Do not leave unnecessary comments or spam.

**9. One problem per issue**

Do not report many problems or request many features withing one issue. Make one issue or discussion per problem/topic/idea. This makes it easier to follow.

**10. Translations**

Translation contributions are done using [Crowdin](https://crowdin.com/project/llt), so please request access to the project there if you want to contribute.

**11. Pull requests**

Pull requests are welcome (of course). Unless you create a very simple and understandable PR, make an issue first and describe the problem you are solving. It doesn't make sense to spend time working on an idea that will be rejected, because it doesn't fit the project vision. Follow the code style and architecture of the project.

<br/>

Once again, thanks for investing your time in helping LLT get better!


================================================
FILE: CONTRIBUTING_ja-JP.md
================================================
## Lenovo Legion Toolkit への貢献ガイドへようこそ!

### この貢献ガイドの他の言語バージョン:
* [英語版の貢献ガイド](CONTRIBUTING.md)
* [簡体字中国語版の貢献ガイド](CONTRIBUTING_zh-hans.md)

このプロジェクトに貢献するために時間を割いていただきありがとうございます! LLTの人気が高まっているため、貢献がスムーズに進むようにするために、いくつかのルールに従ってください。

<br/>

_作成された問題の数が多いため、基準を満たさないものは警告なしに削除されます。繰り返し違反する者は禁止されます。_

<br/>

**1. 問題を報告する前にREADMEをよく読んでください**

[README](https://github.com/BartoszCichecki/LenovoLegionToolkit/blob/master/README.md)は、よくある質問への回答や最も一般的な問題に関する情報を���むように定期的に更新されます。問題を作成する前に、そこにある内容を確認してください。

**2. 既に報告されている問題を確認してください**

既に報告されている[問題](https://github.com/BartoszCichecki/LenovoLegionToolkit/issues?q=is%3Aissue)や[ディスカッション](https://github.com/BartoszCichecki/LenovoLegionToolkit/discussions?discussions_q=)を確認してください。重複する問題やディスカッションを作成しないでください。問題がクローズされていても、コメントを残すことができます。

**3. 英語を使用してください**

これにより、すべての人が会話を追跡しやすくなります。

**4. プロジェクトの範囲を尊重してください**

これは万能のアプリケーションを目指しているわけではありません。プロジェクトのビジョンは明確です:LegionノートパソコンのためのVantageの代替品を提供すること。他のタイプ/モデル/デバイスのサポートを要求しないでください。

**5. 問題を作成する前に問題を確認してください**

バグが本当にLLTのバグであることを確認してください - これは無料のシステムトラブルシューティングフォーラムではありません。Windowsの改造版を使用している場合や、Windowsが正常に動作していない場合、それはあなたの責任です。

**6. 問題をできるだけ詳しく説明してください**

良い説明を提供することが重要です。問題を作成する際には、フォームのすべてのフィールドを記入し、ログを含めてください。説明が良ければ良いほど、私たちが正しく理解する可能性が高くなります。

**7. 問題やディスカッションに良いタイトルを付けてください**

リストを閲覧し、問題やディスカッションを追跡するのがはるかに簡単です。「LLTを使用中にエラーが発生しました」は良いタイトルではありません。

**8. トピックに集中してください**

不要なコメントやスパムを残さないでください。

**9. 1つの問題につき1つの問題**

1つの問題で多くの問題を報告したり、多くの機能を要求したりしないでください。問題/トピック/アイデアごとに1つの問題やディスカッションを作成してください。これにより、追跡が容易になります。

**10. 翻訳**

翻訳の貢献は[Crowdin](https://crowdin.com/project/llt)を使用して行われるため、貢献したい場合はそこでプロジェクトへのアクセスをリクエストしてください。

**11. プルリクエスト**

プルリクエストは歓迎されます(もちろんです)。非常にシンプルで理解しやすいPRを作成しない限り、最初に問題を作成し、解決している問題を説明してください。プロジェクトのビジョンに合わないアイデアに時間を費やすのは意味がありません。プロジェクトのコードスタイルとアーキテクチャに従ってください。

<br/>

もう一度、LLTをより良くするために時間を割いていただきありがとうございます!


================================================
FILE: CONTRIBUTING_zh-hans.md
================================================
## 欢迎来到拯救者工具箱开发者指南

首先感谢你花时间为此项目做出贡献!随着拯救者工具箱的热度越来越高,为了确保你的贡献能够被迅速采纳,你应该遵守一定的格式和规则。

<br/>

_由于 Issues 总量的增加,不符合标准的 Issue 会在无预先警告的情况下被关闭或删除。屡次违反者将被本项目封禁。_

<br/>

**1. 在报告 Issue 前请仔细阅读 README**

绝大多数常见问题的解决方法和重要信息都已在 [README](https://github.com/BartoszCichecki/LenovoLegionToolkit/blob/master/README_zh-hans.md) 内阐明。请务必在报告 Issue 或发起讨论前通读其中的内容。

**2. 检查已被报告的 Issues**

请检查项目仓库下的 [Issues](https://github.com/BartoszCichecki/LenovoLegionToolkit/issues?q=is%3Aissue) 和 [Discussions](https://github.com/BartoszCichecki/LenovoLegionToolkit/discussions?discussions_q=) 栏目。请不要报告重复的 Issue 或发起重复的讨论。即使你找到的 Issue 已经被关闭,你一样可以在那里留言。

**3. 使用英语**

这会让所有人之间的交流都更加便利。

译者提示:若你无法流畅地使用英语表达,你可以在使用中文完成草稿后使用百度翻译或 [DeepL](https://www.deepl.com/zh/translator) 等翻译网站或软件将草稿翻译为英语后提交。

**4. 尊重项目目标**

这不是一个万能的应用。项目的愿景很明确:为拯救者笔记本提供一个 Legion Zone(海外版则为 Vantage)的替代品。请勿要求支持其它类型或型号的设备。

**5. 在新建 Issue 前审查你的问题**

请确保 Bug 确实是 LLT 的 Bug。这不是一个免费的系统故障排除论坛,如果你在使用被修改过的 Windows 版本或你的系统本身已经出现问题,请自行解决。

**6. 尽所能详细描述你的问题**

详细的描述是解决问题的关键所在。请在新建 Issue 时填写表单内的所有项目并提供日志文件。只有提供良好的描述我们才能更快地解决问题。

**7. 为你的 Issue 或条论起一个好的标题**

这样可以极大方便浏览 Issue 和讨论列表。“使用 LLT 时出现问题”并不是一个好的标题。

**8. 围绕主题**

不要发表与主题无关或无意义的留言。

**9. 一个 Issue 一个问题**

请不要在一个 Issue 内同时报告多个问题或请求添加多个功能。请为每一个问题、主题或想法新建一个单独的 Issue 或讨论,这会让后期跟进更加容易。

**10. 翻译**

我们使用 [Crowdin](https://crowdin.com/project/llt) 作为软件翻译平台。如果你想为翻译做出贡献,请在那里申请访问项目的权限。

**11. Pull requests**

我们欢迎你提交 PR(当然了)。除非你提交了一个非常简单易懂的 PR,请先创建一个 Issue 并描述你正在解决的问题。为一个会被拒绝的点子花时间并没有什么意义,因为这不符合本项目的愿景。同时请遵循现有的代码风格和项目组织。

<br/>

再次感谢你花时间帮助 LLT 变得更好!


================================================
FILE: InnoDependencies/Arabic.isl
================================================
; *** Inno Setup version 6.1.0+ arabic messages ***
;
; Translated by nacer baaziz (nacerstile@gmail.com)
;   http://www.jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).

[LangOptions]
; The following three entries are very important. Be sure to read and 
; understand the '[LangOptions] section' topic in the help file.
LanguageName=arabic
LanguageID=$0401
LanguageCodePage=0
RightToLeft=yes
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8

[Messages]

; *** Application titles
SetupAppTitle=إعداد
SetupWindowTitle=إعداد - %1
UninstallAppTitle=إزالة التثبيت
UninstallAppFullTitle=إزالة تثبيت %1

; *** Misc. common
InformationTitle=معلومات
ConfirmTitle=تأكيد
ErrorTitle=خطأ

; *** SetupLdr messages
SetupLdrStartupMessage=هذا المعالج سيقوم بتثبيت %1. هل تريد المتابعة?
LdrCannotCreateTemp=تعذر إنشاء الملفات المؤقتة, تم فشل معالج التثبيت.
LdrCannotExecTemp=تعذر تشغيل الملفات من المجلد المؤقت. فشل معالج التثبيت.
HelpTextNote=

; *** Startup error messages
LastErrorMessage=%1.%n%n خطأ %2: %3
SetupFileMissing=الملف %1 مفقود من دليل التثبيت. الرجاء تصحيح المشكلة أو الحصول على نسخة جديدة من البرنامج.
SetupFileCorrupt=ملفات الإعداد تالفة. الرجاء الحصول على نسخة جديدة من البرنامج.
SetupFileCorruptOrWrongVer=ملفات الإعداد تالفة أو غير متوافقة مع هذا الإصدار من برنامج الإعداد. الرجاء تصحيح المشكلة أو الحصول على نسخة جديدة من البرنامج.
InvalidParameter=تم تمرير أوامر غير صالحة على سطر الأوامر : %n%n%1
SetupAlreadyRunning=برنامج الإعداد قيد التشغيل بالفعل.
WindowsVersionNotSupported=لا يدعم هذا البرنامج إصدار Windows الذي يعمل به الكمبيوتر.
WindowsServicePackRequired=هذا البرنامج يتطلب %1 حزمة الخدمة %2 أو أعلى.
NotOnThisPlatform=لن يتم تشغيل هذا البرنامج على %1.
OnlyOnThisPlatform=يجب تشغيل هذا البرنامج على %1.
OnlyOnTheseArchitectures=يمكن تثبيت هذا البرنامج فقط على إصدارات Windows المصممة لهندسة المعالج التالية : %n%n%1
WinVersionTooLowError=هذا البرنامج يتطلب %1 الإصدار %2 أو أعلى.
WinVersionTooHighError=لا يمكن تثبيت هذا البرنامج على %1 الإصدار %2 أو أعلى.
AdminPrivilegesRequired=يجب أن يتم تسجيل دخولك كمسؤول عند تثبيت هذا البرنامج.
PowerUserPrivilegesRequired=يجب أن يتم تسجيل دخولك كمسؤول أو كعضو في مجموعة Power Users عند تثبيت هذا البرنامج.
SetupAppRunningError=لقد كشف معالج الإعداد أن  %1 يعمل بالفعل. %n%n يرجى إغلاق كل أجزائه الآن , ثم إضغط حسنا للمتابعة أو إلغاء الأمر للخروج.
UninstallAppRunningError=كشف معالج إلغاء التثبيت بأن %1 يعمل بالفعل.%n%n يرجى إغلاق كل أجزائه الآن , ثم إضغط حسنا للمتابعة أو إلغاء الأمر للخروج.

; *** Startup questions
PrivilegesRequiredOverrideTitle=تحديد وضع تثبيت الإعداد
PrivilegesRequiredOverrideInstruction=تحديد وضع التثبيت
PrivilegesRequiredOverrideText1=يمكن ل %1 أن يُثَبَّت على جميع المستخدمين (يتطلب إمتيازات المسؤول), أو لك فقط..
PrivilegesRequiredOverrideText2=.يمكن ل %1  أن يُثَبَّت لك فقط, أو أن يُثَبَّت على جميع المستخدمين (يتطلب إمتيازات المسؤول).
PrivilegesRequiredOverrideAllUsers=التثبيت ل&كافة المستخدمين
PrivilegesRequiredOverrideAllUsersRecommended=تثبيت ل&كافة المستخدمين (مستحسن)
PrivilegesRequiredOverrideCurrentUser=تثبيت لي &فقط
PrivilegesRequiredOverrideCurrentUserRecommended=تثبيت بالنسبة لي &فقط (مستحسن)

; *** Misc. errors
ErrorCreatingDir=تعذر على برنامج الإعداد إنشاء الدليل "%1"
ErrorTooManyFilesInDir=تعذر إنشاء ملف في الدليل  "%1" لأنه يحتوي على ملفات كثيرة جداً

; *** Setup common messages
ExitSetupTitle=الخروج من معالج التثبيت
ExitSetupMessage=لم يكتمل الإعداد. إذا قمت بالخروج الآن، لن يتم تثبيت البرنامج.%n%nYou يمكنك تشغيل برنامج الإعداد مرة أخرى في وقت آخر لإكمال التثبيت.%n%n إنهاء الإعداد؟
AboutSetupMenuItem=&حول الإعداد...
AboutSetupTitle=حول برنامج الإعداد
AboutSetupMessage=%1 الإصدار %2%n%3%n%n%1 صفحة الأنترنت:%n%4
AboutSetupNote=
TranslatorNote=تم ترجمة المعالج إلى اللغة العربية بواسطة ناصر بعزيز

; *** Buttons
ButtonBack=< ال&سابق
ButtonNext=ال&تالي >
ButtonInstall=&تثبيت
ButtonOK=&حسنا
ButtonCancel=إل&غاء الأمر
ButtonYes=&نعم
ButtonYesToAll=نعم لل&كل
ButtonNo=&لا
ButtonNoToAll=لا &للكل
ButtonFinish=إ&نهاء
ButtonBrowse=اس&تعراض...
ButtonWizardBrowse=اس&تعراض...
ButtonNewFolder=إن&شاء مجلد جديد

; *** "Select Language" dialog messages
SelectLanguageTitle=إختر لغة معالج الإعداد
SelectLanguageLabel=حدد اللغة التي يجب استخدامها أثناء التثبيت.

; *** Common wizard text
ClickNext=انقر فوق التالي للمتابعة، أو إلغاء الأمر لإنهاء الإعداد.
BeveledLabel=
BrowseDialogTitle=تصفح لاختيار مجلد
BrowseDialogLabel=حدد مجلدًا في القائمة أدناه، ثم انقر فوق حسنا.
NewFolderName=مجلد جديد

; *** "Welcome" wizard page
WelcomeLabel1=مرحبا بكم في معالج تثبيت [name]
WelcomeLabel2=هذا المعالج سيقوم بتثبيت  [name/ver] على جهازك. %n%nمن المستحسن أن تقوم بإغلاق كافة التطبيقات الأخرى قبل المتابعة.

; *** "Password" wizard page
WizardPassword=كلمة السر
PasswordLabel1=هذا التثبيت محمي بكلمة سر.
PasswordLabel3=الرجاء تقديم كلمة المرور، ثم انقر فوق التالي للمتابعة. كلمات المرور حساسة لحالة الأحرف.
PasswordEditLabel=&كلمة السر:
IncorrectPassword=كلمة السر التي أدخلتها غير صحيحة. يرجى إعادة المحاولة.

; *** "License Agreement" wizard page
WizardLicense=اتفاقية الترخيص
LicenseLabel=يرجى قراءة المعلومات الهامة التالية قبل المتابعة.
LicenseLabel3=الرجاء قراءة اتفاقية الترخيص التالية. يجب قبول شروط هذه الاتفاقية قبل متابعة التثبيت.
LicenseAccepted=أنا أواف&ق على هذه الإتفاقية
LicenseNotAccepted=أنا &لا أوافق على الإتفاقية

; *** "Information" wizard pages
WizardInfoBefore=معلومات
InfoBeforeLabel=يرجى قراءة المعلومات الهامة التالية قبل المتابعة.
InfoBeforeClickLabel=عندما تكون جاهزًا للمتابعة مع الإعداد، انقر فوق التالي.
WizardInfoAfter=معلومات
InfoAfterLabel=يرجى قراءة المعلومات الهامة التالية قبل المتابعة.
InfoAfterClickLabel=عندما تكون جاهزًا للمتابعة مع الإعداد، انقر فوق التالي.

; *** "User Information" wizard page
WizardUserInfo=معلومات المستخدم
UserInfoDesc=يرجى إدخال معلوماتك.
UserInfoName=إسم ال&مستخدم :
UserInfoOrg=المن&ظمة:
UserInfoSerial=&الرقم التسلسلي:
UserInfoNameRequired=يجب إدخال إسم.

; *** "Select Destination Location" wizard page
WizardSelectDir=تحديد موقع الوِجْهة
SelectDirDesc=أين يجب تثبيت [name]؟
SelectDirLabel3=سيقوم معالج التثبيت بتثبيت  [name] في المجلد التالي.
SelectDirBrowseLabel=للمتابعة، انقر فوق التالي. إذا كنت ترغب في تحديد مجلد آخر، انقر فوق استعراض.
DiskSpaceGBLabel=تحتاج على الأقل [gb] GB من المساحة لتثبيت البرنامج. 
DiskSpaceMBLabel=تحتاج على الأقل [mb] MB من المساحة لتثبيت البرنامج.
CannotInstallToNetworkDrive=يتعذر على برنامج الإعداد التثبيت على محرك أقراص شبكة اتصال.
CannotInstallToUNCPath=يتعذر على برنامج الإعداد تثبيت مسار UNC.
InvalidPath=يجب إدخال مسار كامل مع حرف محرك الأقراص; على سبيل المثال: %n%nC:\APP%n%أو مسار UNC في النموذج:%n%n\\server\share
InvalidDrive=محرك الأقراص أو مشاركة UNC التي حددتها غير موجود أو غير قابل للوصول. الرجاء تحديد آخر.
DiskSpaceWarningTitle=مساحة القرص غير كافية
DiskSpaceWarning=Sيتطلب الإعداد على الأقل %1 KB من المساحة الفارغة للتثبيت، ولكن محرك الأقراص المحدد فيه فقط %2 KB متوفرة.%n%nهل تريد المتابعة على أية حال؟
DirNameTooLong=اسم المجلد أو المسار طويل جداً.
InvalidDirName=اسم المجلد غير صالح.
BadDirName32=لا يمكن لأسماء المجلدات تضمين أي من الأحرف التالية:%n%n%1
DirExistsTitle=المجلد موجود بالفعل
DirExists=المجلد:%n%n%1%n%n موجود بالفعل. هل ترغب في التثبيت على هذا المجلد على أي حال؟
DirDoesntExistTitle=المجلد غير موجود
DirDoesntExist=المجلد:%n%n%1%n%nغير موجود. هل تريد إنشاء المجلد؟

; *** "Select Components" wizard page
WizardSelectComponents=تحديد المكونات
SelectComponentsDesc=ما هي المكونات التي يجب تثبيتها؟
SelectComponentsLabel2=حدد المكونات التي تريد تثبيتها ؛ امسح المكونات التي لا تريد تثبيتها. انقر فوق "التالي" عندما تكون مستعدًا للمتابعة.
FullInstallation=تثبيت كامل
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=تثبيت مدمج
CustomInstallation=تثبيت مخصص
NoUninstallWarningTitle=مكونات موجودة
NoUninstallWarning=اكتشف برنامج الإعداد أن المكونات التالية مثبتة بالفعل على جهاز الكمبيوتر الخاص بك: %n%n%1%n%nلن يؤدي إلغاء تحديد هذه المكونات إلى إزالة تثبيتها.%n%nهل ترغب في الاستمرار على أي حال?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=الاختيار الحالي يتطلب على الأقل [gb] GB من مساحة القرص.
ComponentsDiskSpaceMBLabel=الاختيار الحالي يتطلب على الأقل [mb] MB من مساحة القرص.

; *** "Select Additional Tasks" wizard page
WizardSelectTasks=حدد المهام الإضافية
SelectTasksDesc=ما المهام الإضافية التي ينبغي تنفيذها؟
SelectTasksLabel2=حدد المهام الإضافية التي ترغب في أن يقوم الإعداد بتنفيذها أثناء تثبيت [name], ثم إضغط التالي.

; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=حدد مجلد قائمة ابدأ
SelectStartMenuFolderDesc=أين يجب أن يضع الإعداد اختصارات البرنامج؟
SelectStartMenuFolderLabel3=سيقوم برنامج الإعداد بإنشاء اختصارات البرنامج في مجلد قائمة ابدأ التالية.
SelectStartMenuFolderBrowseLabel=للمتابعة، انقر فوق التالي. إذا كنت ترغب في تحديد مجلد آخر، انقر فوق استعراض.
MustEnterGroupName=يجب إدخال اسم مجلد.
GroupNameTooLong=اسم المجلد أو المسار طويل جداً.
InvalidGroupName=اسم المجلد غير صالح.
BadGroupName=لا يمكن أن يتضمن اسم المجلد أي من الأحرف التالية:%n%n%1
NoProgramGroupCheck2=&عدم إنشاء مجلد قائمة ابدأ

; *** "Ready to Install" wizard page
WizardReady=جاهز للتثبيت
ReadyLabel1=الإعداد جاهز الآن لبدء تثبيت [name] على جهازك.
ReadyLabel2a=انقر فوق تثبيت لمتابعة التثبيت، أو انقر فوق "السابق" إذا كنت ترغب في مراجعة أو تغيير أية إعدادات.
ReadyLabel2b=انقر فوق تثبيت لمتابعة التثبيت.
ReadyMemoUserInfo=معلومات المستخدم:
ReadyMemoDir=مسار الوِجْهة:
ReadyMemoType=نوع الإعداد:
ReadyMemoComponents=المكونات المحددة:
ReadyMemoGroup=مجلد قائمة ابدأ:
ReadyMemoTasks=مهام إضافية:

; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=تحميل الملفات الإضافية...
ButtonStopDownload=إي&قاف التحميل
StopDownload=هل أنت متأكد من أنك ترغب في إيقاف التحميل؟
ErrorDownloadAborted=تم إلغاء التحميل
ErrorDownloadFailed=فشل التحميل: %1 %2
ErrorDownloadSizeFailed=خطأ في قراءة الحجم: %1 %2
ErrorFileHash1=خطأ في قراءة الهاش الخاص بالملف: %1
ErrorFileHash2=خطأ في هاش الملف: كان من المتوقع أن يكن : %1, بينما تم إيجاد : %2
ErrorProgress=خطأ في الحصول على نسبة التقدم: %1 من %2
ErrorFileSize=خطأ في حجم الملف: المتوقع هو : %1, الحجم الذي وجدناه هو : %2

; *** "Preparing to Install" wizard page
WizardPreparing=التحضير للتثبيت
PreparingDesc=الإعداد يستعد لتثبيت [name] على جهازك.
PreviousInstallNotCompleted=لم يكتمل التثبيت / إزالة البرنامج السابق. ستحتاج إلى إعادة تشغيل الكمبيوتر لإكمال هذا التثبيت.%n%nبعد إعادة تشغيل جهاز الكمبيوتر الخاص بك ، شغّل برنامج الإعداد مرة أخرى لإكمال تثبيت [name].
CannotContinue=لا يمكن لبرنامج الإعداد المتابعة. يرجى النقر فوق "إلغاء" للخروج.
ApplicationsFound=تستخدم التطبيقات التالية الملفات التي تحتاج إلى تحديث بواسطة برنامج الإعداد. يوصى بالسماح لبرنامج الإعداد بإغلاق هذه التطبيقات تلقائيًا.
ApplicationsFound2=تستخدم التطبيقات التالية الملفات التي تحتاج إلى تحديث بواسطة برنامج الإعداد. يوصى بالسماح لبرنامج الإعداد بإغلاق هذه التطبيقات تلقائيًا. بعد اكتمال التثبيت ، سيحاول برنامج الإعداد إعادة تشغيل التطبيقات.
CloseApplications=أغلق التطبيقات &تلقائيًا
DontCloseApplications=&لا تغلق التطبيقات
ErrorCloseApplications=لم يتمكن الإعداد من إغلاق جميع التطبيقات تلقائيًا. يوصى بإغلاق جميع التطبيقات التي تستخدم الملفات التي تحتاج إلى تحديث بواسطة برنامج الإعداد قبل المتابعة.
PrepareToInstallNeedsRestart=برنامج الإعداد يجب أن يقوم بإعادة تشغيل الجهاز. بعد إعادة تشغيل جهازك, قم بتشغيل برنامج الإعداد مرة أخرى لإكمال تثبيت [name].%n%nهل تحب إعادة التشغيل الآن?

; *** "Installing" wizard page
WizardInstalling=جاري التثبيت
InstallingLabel=يرجى الانتظار حتى يقوم برنامج الإعداد بتثبي [name] على جهازك.

; *** "Setup Completed" wizard page
FinishedHeadingLabel=إنهاء معالج تثبيت [name]
FinishedLabelNoIcons=إكتمل معالج التثبيت من تثبيت [name] على جهازك.
FinishedLabel=اكتمل معالج التثبيت من تثبيت [name] على جهازك. قد يتم تشغيل التطبيق عن طريق تحديد الاختصارات المثبتة.
ClickFinish=إضغط إنهاء للخروج من معالج التثبيت
FinishedRestartLabel=لاستكمال تثبيت [name], يجب على برنامج الإعداد إعادة تشغيل جهاز الكمبيوتر الخاص بك. هل ترغب في إعادة التشغيل الآن؟
FinishedRestartMessage=لاستكمال تثبيت [name], يجب على برنامج الإعداد إعادة تشغيل جهاز الكمبيوتر الخاص بك.%n%nهل ترغب في إعادة التشغيل الآن؟
ShowReadmeCheck=نعم ، أرغب عرض ملف README
YesRadio=&نعم أعد تشغيل الكومبيوتر الان
NoRadio=&لا ، سأعيد تشغيل الكمبيوتر لاحقًا
; used for example as 'Run MyProg.exe'
RunEntryExec=تشغيل %1
; used for example as 'View Readme.txt'
RunEntryShellExec=عرض %1

; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=يحتاج برنامج الإعداد إلى القرص التالي
SelectDiskLabel2=الرجاء إدراج القرص %1 وانقر فوق حسنا.%n%nإذا كان يمكن العثور على الملفات الموجودة على هذا القرص في مجلد غير الذي يظهر أدناه، أدخل المسار الصحيح أو انقر فوق استعراض.
PathLabel=&مسار :
FileNotInDir2=لم نتمكن من العثور على الملف "%1" في "%2". الرجاء إدراج القرص الصحيح أو تحديد مجلد آخر.
SelectDirectoryLabel=الرجاء تحديد موقع القرص التالي.

; *** Installation phase messages
SetupAborted=لم يتم إكمال الإعداد. %n%nالرجاء تصحيح المشكلة وتشغيل الإعداد مرة أخرى.
AbortRetryIgnoreSelectAction=حدد إجراء
AbortRetryIgnoreRetry=أ&عد مجددا
AbortRetryIgnoreIgnore=&تجاهل الخطأ والمتابعة
AbortRetryIgnoreCancel=إلغاء التثبيت

; *** Installation status messages
StatusClosingApplications=إغلاق التطبيقات...
StatusCreateDirs=إنشاء المجلدات...
StatusExtractFiles=استخراج الملفات...
StatusCreateIcons=إنشاء الإختصارات...
StatusCreateIniEntries=إنشاء مدخلات INI...
StatusCreateRegistryEntries=إنشاء مفاتيح السجل...
StatusRegisterFiles=تسجيل الملفات...
StatusSavingUninstall=تسجيل معلومات إزالة التثبيت...
StatusRunProgram=الإنتهاء من التثبيت...
StatusRestartingApplications=إعادة تشغيل التطبيقات...
StatusRollback=التراجع عن التغييرات...

; *** Misc. errors
ErrorInternal2=خطأ داخلي: %1
ErrorFunctionFailedNoCode=فشل %1
ErrorFunctionFailed=فشل %1; رقم الخطء %2
ErrorFunctionFailedWithMessage=فشل %1; رقم الخطء %2.%n%3
ErrorExecutingProgram=الإعداد غير قابل على تشغيل الملف:%n%1

; *** Registry errors
ErrorRegOpenKey=خطأ في فتح مفتاح التسجيل:%n%1\%2
ErrorRegCreateKey=خطأ في إنشاء مفتاح التسجيل:%n%1\%2
ErrorRegWriteKey=خطأ في الكتابة على مفتاح التسجيل:%n%1\%2

; *** INI errors
ErrorIniEntry=حدث خطأ في إنشاء إدخال INI في الملف "%1".

; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&تخطي هذا الملف (غير مستحسن)
FileAbortRetryIgnoreIgnoreNotRecommended=&تجاهل الخطأ والمتابعة (غير مستحسن)
SourceIsCorrupted=الملف المصدر تالف
SourceDoesntExist=الملف "%1"غير موجود
ExistingFileReadOnly2=تعذر استبدال الملف الموجود لأنه تم وضع علامة للقراءة فقط.
ExistingFileReadOnlyRetry=&أزل القراءة فقط عن الملفات ثم حاول مرة أخرى
ExistingFileReadOnlyKeepExisting=&إحتفظ بالملفات الموجودة
ErrorReadingExistingDest=حدث خطأ أثناء محاولة قراءة الملف الموجود:
FileExistsSelectAction=اختر إجراء
FileExists2=الملف موجود بالفعل.
FileExistsOverwriteExisting=&استبدال الملف الموجود
FileExistsKeepExisting=ا&بقاء الملف الموجود
FileExistsOverwriteOrKeepAll=ا&فعل هذا للنزاعات القادمة
ExistingFileNewerSelectAction=اختر إجراء
ExistingFileNewer2=الملف الموجود أحدث من الملف الذي سيقوم معالج الإعداد بتثبيته.
ExistingFileNewerOverwriteExisting=&&استبدال الملف الموجود
ExistingFileNewerKeepExisting=ال&ابقاء على الملف الموجود (مستحسن)
ExistingFileNewerOverwriteOrKeepAll=ا&فعل هذا مع النزاعات القادمة
ErrorChangingAttr=حدث خطأ أثناء محاولة تغيير سمات الملف الموجود:
ErrorCreatingTemp=حدث خطأ أثناء محاولة إنشاء ملف في الدليل الوجهة:
ErrorReadingSource=حدث خطأ أثناء محاولة قراءة ملف مصدر:
ErrorCopying=حدث خطأ أثناء محاولة نسخ ملف:
ErrorReplacingExistingFile=حدث خطأ أثناء محاولة استبدال الملف الموجود:
ErrorRestartReplace=فشل إعادة تشغيل "استبدال":
ErrorRenamingTemp=حدث خطأ أثناء محاولة إعادة تسمية ملف في الدليل الوجهة:
ErrorRegisterServer=تعذر تسجيل ملفات DLL/OCX: %1
ErrorRegSvr32Failed=فشل RegSvr32 مع رمز الخروج %1
ErrorRegisterTypeLib=الإعداد غير قادر على تسجيل مكتبة النوع: %1

; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=كافة المستخدمين
UninstallDisplayNameMarkCurrentUser=المستخدم الحالي

; *** Post-installation errors
ErrorOpeningReadme=حدث خطأ أثناء محاولة فتح ملف إقرأني.
ErrorRestartingComputer=لم يتمكن برنامج الإعداد من إعادة تشغيل الكمبيوتر. الرجاء القيام بذلك يدوياً.

; *** Uninstaller messages
UninstallNotFound=الملف "%1" غير موجود. لا يمكن إزالة التثبيت.
UninstallOpenError=تعذر فتح "%1". لا يمكن إزالة التثبيت.
UninstallUnsupportedVer=ملف سجل الإزالة "%1" في تنسيق غير معروف من قبل هذا الإصدار من برنامج إلغاء التثبيت. لا يمكن إزالة التثبيت
UninstallUnknownEntry=إدخال غير معروف (%1) تمت مصادفة في سجل إلغاء التثبيت
ConfirmUninstall=هل أنت متأكد من أنك تريد إزالة %1 تماما, وجميع مكوناته?
UninstallOnlyOnWin64=يمكن إلغاء تثبيت هذا التثبيت على Windows 64-بت فقط.
OnlyAdminCanUninstall=يمكن إلغاء تثبيت هذا التثبيت فقط من قبل مستخدم له امتيازات إدارية.
UninstallStatusLabel=يرجى الإنتظار ريت ما يتم إزالة تثبيت %1 من جهازك.
UninstalledAll=تم إزالة %1 تماما من جهازك بنجاح.
UninstalledMost=اكتمل إزالة %1.%n%nتعذر إزالة بعض العناصر. يمكن إزالة هذه يدوياً.
UninstalledAndNeedsRestart=لإكمال إلغاء تثبيت %1, يجب إعادة تشغيل الكمبيوتر.%n%nهل تريد إعادة تشغيل الآن؟
UninstallDataCorrupted=الملف "%1" تالف. لا يمكن إزالة التثبيت

; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=إزالة ملف مشترك؟
ConfirmDeleteSharedFile2=يشير النظام إلى أن الملف المشترك التالي لم يعد في الاستخدام من قبل أي برامج. هل ترغب في أن يقوم إلغاء التثبيت بإزالة هذا الملف المشترك?%n%nإذا كانت أية برامج لا تزال تستخدم هذا الملف وتتم إزالته، قد لا تعمل هذه البرامج بشكل صحيح. إذا كنت غير متأكد، اختر لا. ترك الملف على النظام الخاص بك لن يسبب أي ضرر.
SharedFileNameLabel=اسم الملف:
SharedFileLocationLabel=الموقع :
WizardUninstalling=حالة إزالة التثبيت
StatusUninstalling=جاري إزالة تثبيت %1...

; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=جاري تثبيت %1.
ShutdownBlockReasonUninstallingApp=جاري تثبيت %1.

; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.

[CustomMessages]

NameAndVersion=%1 الإصدار %2
AdditionalIcons=اختصارات إضافية:
CreateDesktopIcon=إنشاء اختصار في &سطح المكتب
CreateQuickLaunchIcon=إنشاء اختصار "الت&شغيل السريع"
ProgramOnTheWeb=%1 على الأنترنت
UninstallProgram=إزالة تثبيت %1
LaunchProgram=تشغيل %1
AssocFileExtension=اربط %1 مع صيغة ملف %2
AssocingFileExtension=جاري ربط %1 مع صيغة ملف %2
AutoStartProgramGroupDescription=بدأ التشغيل:
AutoStartProgram=تشغيل %1 تلقائيا
AddonHostProgramNotFound= تعذر العثور على %1 في الموقع الذي إخترته.%n%nهل تريد المتابعة على أية حال؟


================================================
FILE: InnoDependencies/ChineseSimplified.isl
================================================
; *** Inno Setup version 6.1.0+ Chinese Simplified messages ***
;
; To download user-contributed translations of this file, go to:
;   https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
;
; Maintained by Zhenghan Yang
; Email: 847320916@QQ.com
; Translation based on network resource
; The latest Translation is on https://github.com/kira-96/Inno-Setup-Chinese-Simplified-Translation
;

[LangOptions]
; The following three entries are very important. Be sure to read and 
; understand the '[LangOptions] section' topic in the help file.
LanguageName=简体中文
; If Language Name display incorrect, uncomment next line
; LanguageName=<7B80><4F53><4E2D><6587>
; About LanguageID, to reference link:
; https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c
LanguageID=$0804
LanguageCodePage=936
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8

[Messages]

; *** 应用程序标题
SetupAppTitle=安装
SetupWindowTitle=安装 - %1
UninstallAppTitle=卸载
UninstallAppFullTitle=%1 卸载

; *** Misc. common
InformationTitle=信息
ConfirmTitle=确认
ErrorTitle=错误

; *** SetupLdr messages
SetupLdrStartupMessage=现在将安装 %1。您想要继续吗?
LdrCannotCreateTemp=不能创建临时文件。安装中断。
LdrCannotExecTemp=不能执行临时目录中的文件。安装中断。
HelpTextNote=

; *** 启动错误消息
LastErrorMessage=%1.%n%n错误 %2: %3
SetupFileMissing=安装目录中的文件 %1 丢失。请修正这个问题或者获取程序的新副本。
SetupFileCorrupt=安装文件已损坏。请获取程序的新副本。
SetupFileCorruptOrWrongVer=安装文件已损坏,或是与这个安装程序的版本不兼容。请修正这个问题或获取新的程序副本。
InvalidParameter=无效的命令行参数:%n%n%1
SetupAlreadyRunning=安装程序正在运行。
WindowsVersionNotSupported=这个程序不支持当前计算机运行的Windows版本。
WindowsServicePackRequired=这个程序需要 %1 服务包 %2 或更高。
NotOnThisPlatform=这个程序将不能运行于 %1。
OnlyOnThisPlatform=这个程序必须运行于 %1。
OnlyOnTheseArchitectures=这个程序只能在为下列处理器结构设计的Windows版本中进行安装:%n%n%1
WinVersionTooLowError=这个程序需要 %1 版本 %2 或更高。
WinVersionTooHighError=这个程序不能安装于 %1 版本 %2 或更高。
AdminPrivilegesRequired=在安装这个程序时您必须以管理员身份登录。
PowerUserPrivilegesRequired=在安装这个程序时您必须以管理员身份或有权限的用户组身份登录。
SetupAppRunningError=安装程序发现 %1 当前正在运行。%n%n请先关闭所有运行的窗口,然后点击“确定”继续,或按“取消”退出。
UninstallAppRunningError=卸载程序发现 %1 当前正在运行。%n%n请先关闭所有运行的窗口,然后点击“确定”继续,或按“取消”退出。

; *** 启动问题
PrivilegesRequiredOverrideTitle=选择安装程序模式
PrivilegesRequiredOverrideInstruction=选择安装模式
PrivilegesRequiredOverrideText1=%1 可以为所有用户安装(需要管理员权限),或仅为您安装。
PrivilegesRequiredOverrideText2=%1 只能为您安装,或为所有用户安装(需要管理员权限)。
PrivilegesRequiredOverrideAllUsers=为所有用户安装(&A)
PrivilegesRequiredOverrideAllUsersRecommended=为所有用户安装(&A) (建议选项)
PrivilegesRequiredOverrideCurrentUser=只为我安装(&M)
PrivilegesRequiredOverrideCurrentUserRecommended=只为我安装(&M) (建议选项)

; *** 其它错误
ErrorCreatingDir=安装程序不能创建目录“%1”。
ErrorTooManyFilesInDir=不能在目录“%1”中创建文件,因为里面的文件太多

; *** 安装程序公共消息
ExitSetupTitle=退出安装程序
ExitSetupMessage=安装程序还未完成安装。如果您现在退出,程序将不能安装。%n%n您可以以后再运行安装程序完成安装。%n%n现在退出安装程序吗?
AboutSetupMenuItem=关于安装程序(&A)...
AboutSetupTitle=关于安装程序
AboutSetupMessage=%1 版本 %2%n%3%n%n%1 主页:%n%4
AboutSetupNote=
TranslatorNote=

; *** 按钮
ButtonBack=< 上一步(&B)
ButtonNext=下一步(&N) >
ButtonInstall=安装(&I)
ButtonOK=确定
ButtonCancel=取消
ButtonYes=是(&Y)
ButtonYesToAll=全是(&A)
ButtonNo=否(&N)
ButtonNoToAll=全否(&O)
ButtonFinish=完成(&F)
ButtonBrowse=浏览(&B)...
ButtonWizardBrowse=浏览(&R)...
ButtonNewFolder=新建文件夹(&M)

; *** “选择语言”对话框消息
SelectLanguageTitle=选择安装语言
SelectLanguageLabel=选择安装时要使用的语言。

; *** 公共向导文字
ClickNext=点击“下一步”继续,或点击“取消”退出安装程序。
BeveledLabel=
BrowseDialogTitle=浏览文件夹
BrowseDialogLabel=在下列列表中选择一个文件夹,然后点击“确定”。
NewFolderName=新建文件夹

; *** “欢迎”向导页
WelcomeLabel1=欢迎使用 [name] 安装向导
WelcomeLabel2=现在将安装 [name/ver] 到您的电脑中。%n%n推荐您在继续安装前关闭所有其它应用程序。

; *** “密码”向导页
WizardPassword=密码
PasswordLabel1=这个安装程序有密码保护。
PasswordLabel3=请输入密码,然后点击“下一步”继续。密码区分大小写。
PasswordEditLabel=密码(&P):
IncorrectPassword=您所输入的密码不正确,请重试。

; *** “许可协议”向导页
WizardLicense=许可协议
LicenseLabel=继续安装前请阅读下列重要信息。
LicenseLabel3=请仔细阅读下列许可协议。您在继续安装前必须同意这些协议条款。
LicenseAccepted=我同意此协议(&A)
LicenseNotAccepted=我不同意此协议(&D)

; *** “信息”向导页
WizardInfoBefore=信息
InfoBeforeLabel=请在继续安装前阅读下列重要信息。
InfoBeforeClickLabel=如果您想继续安装,点击“下一步”。
WizardInfoAfter=信息
InfoAfterLabel=请在继续安装前阅读下列重要信息。
InfoAfterClickLabel=如果您想继续安装,点击“下一步”。

; *** “用户信息”向导页
WizardUserInfo=用户信息
UserInfoDesc=请输入您的信息。
UserInfoName=用户名(&U):
UserInfoOrg=组织(&O):
UserInfoSerial=序列号(&S):
UserInfoNameRequired=您必须输入用户名。

; *** “选择目标目录”向导页
WizardSelectDir=选择目标位置
SelectDirDesc=您想将 [name] 安装在哪里?
SelectDirLabel3=安装程序将安装 [name] 到下列文件夹中。
SelectDirBrowseLabel=点击“下一步”继续。如果您想选择其它文件夹,点击“浏览”。
DiskSpaceGBLabel=至少需要有 [gb] GB 的可用磁盘空间。
DiskSpaceMBLabel=至少需要有 [mb] MB 的可用磁盘空间。
CannotInstallToNetworkDrive=安装程序无法安装到一个网络驱动器。
CannotInstallToUNCPath=安装程序无法安装到一个UNC路径。
InvalidPath=您必须输入一个带驱动器卷标的完整路径,例如:%n%nC:\APP%n%n或下列形式的UNC路径:%n%n\\server\share
InvalidDrive=您选定的驱动器或 UNC 共享不存在或不能访问。请选选择其它位置。
DiskSpaceWarningTitle=没有足够的磁盘空间
DiskSpaceWarning=安装程序至少需要 %1 KB 的可用空间才能安装,但选定驱动器只有 %2 KB 的可用空间。%n%n您一定要继续吗?
DirNameTooLong=文件夹名称或路径太长。
InvalidDirName=文件夹名称无效。
BadDirName32=文件夹名称不能包含下列任何字符:%n%n%1
DirExistsTitle=文件夹已存在
DirExists=文件夹:%n%n%1%n%n已经存在。您一定要安装到这个文件夹中吗?
DirDoesntExistTitle=文件夹不存在
DirDoesntExist=文件夹:%n%n%1%n%n不存在。您想要创建此文件夹吗?

; *** “选择组件”向导页
WizardSelectComponents=选择组件
SelectComponentsDesc=您想安装哪些程序的组件?
SelectComponentsLabel2=选择您想要安装的组件;清除您不想安装的组件。然后点击“下一步”继续。
FullInstallation=完全安装
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=简洁安装
CustomInstallation=自定义安装
NoUninstallWarningTitle=组件已存在
NoUninstallWarning=安装程序检测到下列组件已在您的电脑中安装:%n%n%1%n%n取消选定这些组件将不能卸载它们。%n%n您一定要继续吗?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=当前选择的组件至少需要 [gb] GB 的磁盘空间。
ComponentsDiskSpaceMBLabel=当前选择的组件至少需要 [mb] MB 的磁盘空间。

; *** “选择附加任务”向导页
WizardSelectTasks=选择附加任务
SelectTasksDesc=您想要安装程序执行哪些附加任务?
SelectTasksLabel2=选择您想要安装程序在安装 [name] 时执行的附加任务,然后点击“下一步”。

; *** “选择开始菜单文件夹”向导页
WizardSelectProgramGroup=选择开始菜单文件夹
SelectStartMenuFolderDesc=安装程序应该在哪里放置程序的快捷方式?
SelectStartMenuFolderLabel3=安装程序现在将在下列开始菜单文件夹中创建程序的快捷方式。
SelectStartMenuFolderBrowseLabel=点击“下一步”继续。如果您想选择其它文件夹,点击“浏览”。
MustEnterGroupName=您必须输入一个文件夹名。
GroupNameTooLong=文件夹名或路径太长。
InvalidGroupName=文件夹名是无效的。
BadGroupName=文件夹名不能包含下列任何字符:%n%n%1
NoProgramGroupCheck2=不创建开始菜单文件夹(&D)

; *** “准备安装”向导页
WizardReady=准备安装
ReadyLabel1=安装程序现在准备开始安装 [name] 到您的电脑中。
ReadyLabel2a=点击“安装”继续此安装程序。如果您想要回顾或修改设置,请点击“上一步”。
ReadyLabel2b=点击“安装”继续此安装程序?
ReadyMemoUserInfo=用户信息:
ReadyMemoDir=目标位置:
ReadyMemoType=安装类型:
ReadyMemoComponents=选定组件:
ReadyMemoGroup=开始菜单文件夹:
ReadyMemoTasks=附加任务:

; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=正在下载附加文件...
ButtonStopDownload=停止下载(&S)
StopDownload=您确定要停止下载吗?
ErrorDownloadAborted=下载已中止
ErrorDownloadFailed=下载失败:%1 %2
ErrorDownloadSizeFailed=获取下载大小失败:%1 %2
ErrorFileHash1=校验文件哈希失败:%1
ErrorFileHash2=无效的文件哈希:预期 %1,实际 %2
ErrorProgress=无效的进度:%1,总共%2
ErrorFileSize=文件大小错误:预期 %1,实际 %2

; *** “正在准备安装”向导页
WizardPreparing=正在准备安装
PreparingDesc=安装程序正在准备安装 [name] 到您的电脑中。
PreviousInstallNotCompleted=先前程序的安装/卸载未完成。您需要重新启动您的电脑才能完成安装。%n%n在重新启动电脑后,再运行安装完成 [name] 的安装。
CannotContinue=安装程序不能继续。请点击“取消”退出。
ApplicationsFound=下列应用程序正在使用的文件需要更新设置。它是建议您允许安装程序自动关闭这些应用程序。
ApplicationsFound2=下列应用程序正在使用的文件需要更新设置。它是建议您允许安装程序自动关闭这些应用程序。安装完成后,安装程序将尝试重新启动应用程序。
CloseApplications=自动关闭该应用程序(&A)
DontCloseApplications=不要关闭该应用程序(&D)
ErrorCloseApplications=安装程序无法自动关闭所有应用程序。在继续之前,我们建议您关闭所有使用需要更新的安装程序文件。
PrepareToInstallNeedsRestart=安装程序必须重新启动计算机。重新启动计算机后,请再次运行安装程序以完成 [name] 的安装。%n%n是否立即重新启动?

; *** “正在安装”向导页
WizardInstalling=正在安装
InstallingLabel=安装程序正在安装 [name] 到您的电脑中,请稍等。

; *** “安装完成”向导页
FinishedHeadingLabel=[name] 安装完成
FinishedLabelNoIcons=安装程序已在您的电脑中安装了 [name]。
FinishedLabel=安装程序已在您的电脑中安装了 [name]。此应用程序可以通过选择安装的快捷方式运行。
ClickFinish=点击“完成”退出安装程序。
FinishedRestartLabel=要完成 [name] 的安装,安装程序必须重新启动您的电脑。您想要立即重新启动吗?
FinishedRestartMessage=要完成 [name] 的安装,安装程序必须重新启动您的电脑。%n%n您想要立即重新启动吗?
ShowReadmeCheck=是,我想查阅自述文件
YesRadio=是,立即重新启动电脑(&Y)
NoRadio=否,稍后重新启动电脑(&N)
; used for example as 'Run MyProg.exe'
RunEntryExec=运行 %1
; used for example as 'View Readme.txt'
RunEntryShellExec=查阅 %1

; *** “安装程序需要下一张磁盘”提示
ChangeDiskTitle=安装程序需要下一张磁盘
SelectDiskLabel2=请插入磁盘 %1 并点击“确定”。%n%n如果这个磁盘中的文件可以在下列文件夹之外的文件夹中找到,请输入正确的路径或点击“浏览”。
PathLabel=路径(&P):
FileNotInDir2=文件“%1”不能在“%2”定位。请插入正确的磁盘或选择其它文件夹。
SelectDirectoryLabel=请指定下一张磁盘的位置。

; *** 安装状态消息
SetupAborted=安装程序未完成安装。%n%n请修正这个问题并重新运行安装程序。
AbortRetryIgnoreSelectAction=选择操作
AbortRetryIgnoreRetry=重试(&T)
AbortRetryIgnoreIgnore=忽略错误并继续(&I)
AbortRetryIgnoreCancel=关闭安装程序

; *** 安装状态消息
StatusClosingApplications=正在关闭应用程序...
StatusCreateDirs=正在创建目录...
StatusExtractFiles=正在解压缩文件...
StatusCreateIcons=正在创建快捷方式...
StatusCreateIniEntries=正在创建 INI 条目...
StatusCreateRegistryEntries=正在创建注册表条目...
StatusRegisterFiles=正在注册文件...
StatusSavingUninstall=正在保存卸载信息...
StatusRunProgram=正在完成安装...
StatusRestartingApplications=正在重启应用程序...
StatusRollback=正在撤销更改...

; *** 其它错误
ErrorInternal2=内部错误:%1
ErrorFunctionFailedNoCode=%1 失败
ErrorFunctionFailed=%1 失败;错误代码 %2
ErrorFunctionFailedWithMessage=%1 失败;错误代码 %2.%n%3
ErrorExecutingProgram=不能执行文件:%n%1

; *** 注册表错误
ErrorRegOpenKey=打开注册表项时出错:%n%1\%2
ErrorRegCreateKey=创建注册表项时出错:%n%1\%2
ErrorRegWriteKey=写入注册表项时出错:%n%1\%2

; *** INI 错误
ErrorIniEntry=在文件“%1”中创建INI条目时出错。

; *** 文件复制错误
FileAbortRetryIgnoreSkipNotRecommended=跳过这个文件(&S) (不推荐)
FileAbortRetryIgnoreIgnoreNotRecommended=忽略错误并继续(&I) (不推荐)
SourceIsCorrupted=源文件已损坏
SourceDoesntExist=源文件“%1”不存在
ExistingFileReadOnly2=无法替换现有文件,因为它是只读的。
ExistingFileReadOnlyRetry=移除只读属性并重试(&R)
ExistingFileReadOnlyKeepExisting=保留现有文件(&K)
ErrorReadingExistingDest=尝试读取现有文件时出错:
FileExistsSelectAction=选择操作
FileExists2=文件已经存在。
FileExistsOverwriteExisting=覆盖已经存在的文件(&O)
FileExistsKeepExisting=保留现有的文件(&K)
FileExistsOverwriteOrKeepAll=为所有的冲突文件执行此操作(&D)
ExistingFileNewerSelectAction=选择操作
ExistingFileNewer2=现有的文件比安装程序将要安装的文件更新。
ExistingFileNewerOverwriteExisting=覆盖已经存在的文件(&O)
ExistingFileNewerKeepExisting=保留现有的文件(&K) (推荐)
ExistingFileNewerOverwriteOrKeepAll=为所有的冲突文件执行此操作(&D)
ErrorChangingAttr=尝试改变下列现有的文件的属性时出错:
ErrorCreatingTemp=尝试在目标目录创建文件时出错:
ErrorReadingSource=尝试读取下列源文件时出错:
ErrorCopying=尝试复制下列文件时出错:
ErrorReplacingExistingFile=尝试替换现有的文件时出错:
ErrorRestartReplace=重新启动替换失败:
ErrorRenamingTemp=尝试重新命名以下目标目录中的一个文件时出错:
ErrorRegisterServer=无法注册 DLL/OCX:%1
ErrorRegSvr32Failed=RegSvr32 失败;退出代码 %1
ErrorRegisterTypeLib=无法注册类型库:%1

; *** 卸载显示名字标记
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32位
UninstallDisplayNameMark64Bit=64位
UninstallDisplayNameMarkAllUsers=所有用户
UninstallDisplayNameMarkCurrentUser=当前用户

; *** 安装后错误
ErrorOpeningReadme=尝试打开自述文件时出错。
ErrorRestartingComputer=安装程序不能重新启动电脑,请手动重启。

; *** 卸载消息
UninstallNotFound=文件“%1”不存在。无法卸载。
UninstallOpenError=文件“%1”不能打开。无法卸载。
UninstallUnsupportedVer=此版本的卸载程序无法识别卸载日志文件“%1”的格式。无法卸载
UninstallUnknownEntry=在卸载日志中遇到一个未知的条目 (%1)
ConfirmUninstall=您确认想要完全删除 %1 及它的所有组件吗?
UninstallOnlyOnWin64=这个安装程序只能在64位Windows中进行卸载。
OnlyAdminCanUninstall=这个安装的程序需要有管理员权限的用户才能卸载。
UninstallStatusLabel=正在从您的电脑中删除 %1,请稍等。
UninstalledAll=%1 已顺利地从您的电脑中删除。
UninstalledMost=%1 卸载完成。%n%n有一些内容无法被删除。您可以手动删除它们。
UninstalledAndNeedsRestart=要完成 %1 的卸载,您的电脑必须重新启动。%n%n您想立即重新启动电脑吗?
UninstallDataCorrupted=文件“%1”已损坏,无法卸载

; *** 卸载状态消息
ConfirmDeleteSharedFileTitle=删除共享文件吗?
ConfirmDeleteSharedFile2=系统中包含的下列共享文件已经不再被其它程序使用。您想要卸载程序删除这些共享文件吗?%n%n如果这些文件被删除,但还有程序正在使用这些文件,这些程序可能不能正确执行。如果您不能确定,选择“否”。把这些文件保留在系统中以免引起问题。
SharedFileNameLabel=文件名:
SharedFileLocationLabel=位置:
WizardUninstalling=卸载状态
StatusUninstalling=正在卸载 %1...

; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=正在安装 %1。
ShutdownBlockReasonUninstallingApp=正在卸载 %1。

; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.

[CustomMessages]

NameAndVersion=%1 版本 %2
AdditionalIcons=附加快捷方式:
CreateDesktopIcon=创建桌面快捷方式(&D)
CreateQuickLaunchIcon=创建快速运行栏快捷方式(&Q)
ProgramOnTheWeb=%1 网站
UninstallProgram=卸载 %1
LaunchProgram=运行 %1
AssocFileExtension=将 %2 文件扩展名与 %1 建立关联(&A)
AssocingFileExtension=正在将 %2 文件扩展名与 %1 建立关联...
AutoStartProgramGroupDescription=启动组:
AutoStartProgram=自动启动 %1
AddonHostProgramNotFound=%1无法找到您所选择的文件夹。%n%n您想要继续吗?


================================================
FILE: InnoDependencies/ChineseTraditional.isl
================================================
; *** Inno Setup version 6.1.0+ Chinese (Traditional) messages ***
; Name: Enfeng Tsao, nelson22768384@gmail.com
; Based on 5.5.3+ translations by Samuel Lee, Email: 751555749@qq.com
; Translation based on network resource
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).

[LangOptions]
; The following three entries are very important. Be sure to read and 
; understand the '[LangOptions] section' topic in the help file.
LanguageName=<7e41><9ad4><4e2d><6587>
LanguageID=$0404
LanguageCodepage=950
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;TitleFontName=Arial
;TitleFontSize=29
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;CopyrightFontName=Arial
;CopyrightFontSize=8

[Messages]

; *** Application titles
SetupAppTitle=安裝程式
SetupWindowTitle=%1 安裝程式
UninstallAppTitle=解除安裝
UninstallAppFullTitle=解除安裝 %1

; *** Misc. common
InformationTitle=訊息
ConfirmTitle=確認
ErrorTitle=錯誤

; *** SetupLdr messages
SetupLdrStartupMessage=這將會安裝 %1。您想要繼續嗎?
LdrCannotCreateTemp=無法建立暫存檔案。安裝程式將會結束。
LdrCannotExecTemp=無法執行暫存檔案。安裝程式將會結束。
HelpTextNote=

; *** Startup error messages
LastErrorMessage=%1%n%n錯誤 %2: %3
SetupFileMissing=安裝資料夾中遺失檔案 %1。請修正此問題或重新取得此軟體。
SetupFileCorrupt=安裝檔案已經損毀。請重新取得此軟體。
SetupFileCorruptOrWrongVer=安裝檔案已經損毀,或與安裝程式的版本不符。請重新取得此軟體。
InvalidParameter=某個無效的變量已被傳遞到了命令列:%n%n%1
SetupAlreadyRunning=安裝程式已經在執行。
WindowsVersionNotSupported=本安裝程式並不支援目前在電腦所運行的 Windows 版本。
WindowsServicePackRequired=本安裝程式需要 %1 Service Pack %2 或更新。
NotOnThisPlatform=這個程式無法在 %1 執行。
OnlyOnThisPlatform=這個程式必須在 %1 執行。
OnlyOnTheseArchitectures=這個程式只能在專門為以下處理器架構而設計的 Windows 上安裝:%n%n%1
WinVersionTooLowError=這個程式必須在 %1 版本 %2 或以上的系統執行。
WinVersionTooHighError=這個程式無法安裝在 %1 版本 %2 或以上的系統。
AdminPrivilegesRequired=您必須登入成系統管理員以安裝這個程式。
PowerUserPrivilegesRequired=您必須登入成具有系統管理員或 Power User 權限的使用者以安裝這個程式。
SetupAppRunningError=安裝程式偵測到 %1 正在執行。%n%n請關閉該程式後按 「確定」 繼續,或按 「取消」 離開。
UninstallAppRunningError=解除安裝程式偵測到 %1 正在執行。%n%n請關閉該程式後按 「確定」 繼續,或按 「取消」 離開。

; *** Startup questions
PrivilegesRequiredOverrideTitle=選擇安裝程式安裝模式
PrivilegesRequiredOverrideInstruction=選擇安裝模式
PrivilegesRequiredOverrideText1=可以為所有使用者安裝 %1 (需要系統管理權限),或是僅為您安裝。
PrivilegesRequiredOverrideText2=可以僅為您安裝 %1,或是為所有使用者安裝 (需要系統管理權限)。
PrivilegesRequiredOverrideAllUsers=為所有使用者安裝 (&A)
PrivilegesRequiredOverrideAllUsersRecommended=為所有使用者安裝 (建議選項) (&A)
PrivilegesRequiredOverrideCurrentUser=僅為我安裝 (&M)
PrivilegesRequiredOverrideCurrentUserRecommended=僅為我安裝 (建議選項) (&M)

; *** Misc. errors
ErrorCreatingDir=安裝程式無法建立資料夾“%1”。
ErrorTooManyFilesInDir=無法在資料夾“%1”內建立檔案,因為資料夾內有太多的檔案。

; *** Setup common messages
ExitSetupTitle=結束安裝程式
ExitSetupMessage=安裝尚未完成。如果您現在結束安裝程式,這個程式將不會被安裝。%n%n您可以稍後再執行安裝程式以完成安裝程序。您現在要結束安裝程式嗎?
AboutSetupMenuItem=關於安裝程式 (&A)...
AboutSetupTitle=關於安裝程式
AboutSetupMessage=%1 版本 %2%n%3%n%n%1 網址:%n%4
AboutSetupNote=
TranslatorNote=

; *** Buttons
ButtonBack=< 上一步(&B)
ButtonInstall=安裝(&I)
ButtonNext=下一步(&N)  >
ButtonOK=確定
ButtonCancel=取消
ButtonYes=是(&Y)
ButtonYesToAll=全部皆是 (&A)
ButtonNo=否(&N)
ButtonNoToAll=全部皆否 (&O)
ButtonFinish=完成 (&F)
ButtonBrowse=瀏覽 (&B)...
ButtonWizardBrowse=瀏覽 (&R)...
ButtonNewFolder=建立新資料夾 (&M)

; *** "Select Language" dialog messages
SelectLanguageTitle=選擇安裝語言
SelectLanguageLabel=選擇在安裝過程中使用的語言:

; *** Common wizard text
ClickNext=按 「下一步」 繼續安裝,或按 「取消」 結束安裝程式。
BeveledLabel=
BrowseDialogTitle=瀏覽資料夾
BrowseDialogLabel=在下面的資料夾列表中選擇一個資料夾,然後按 「確定」。
NewFolderName=新資料夾

; *** "Welcome" wizard page
WelcomeLabel1=歡迎使用 [name] 安裝程式
WelcomeLabel2=這個安裝程式將會安裝 [name/ver] 到您的電腦。%n%n我們強烈建議您在安裝過程中關閉其它的應用程式,以避免與安裝程式發生沖突。

; *** "Password" wizard page
WizardPassword=密碼
PasswordLabel1=這個安裝程式具有密碼保護。
PasswordLabel3=請輸入密碼,然後按 「下一步」 繼續。密碼是區分大小寫的。
PasswordEditLabel=密碼 (&P):
IncorrectPassword=您輸入的密碼不正確,請重新輸入。

; *** "License Agreement" wizard page
WizardLicense=授權合約
LicenseLabel=請閱讀以下授權合約。
LicenseLabel3=請閱讀以下授權合約,您必須接受合約的各項條款才能繼續安裝。
LicenseAccepted=我同意 (&A)
LicenseNotAccepted=我不同意 (&D)

; *** "Information" wizard pages
WizardInfoBefore=訊息
InfoBeforeLabel=在繼續安裝之前請閱讀以下重要資訊。
InfoBeforeClickLabel=當您準備好繼續安裝,請按 「下一步」。
WizardInfoAfter=訊息
InfoAfterLabel=在繼續安裝之前請閱讀以下重要資訊。
InfoAfterClickLabel=當您準備好繼續安裝,請按 「下一步」。

; *** "User Information" wizard page
WizardUserInfo=使用者資訊
UserInfoDesc=請輸入您的資料。
UserInfoName=使用者名稱(&U):
UserInfoOrg=組織(&O):
UserInfoSerial=序號(&S):
UserInfoNameRequired=您必須輸入您的名稱。

; *** "Select Destination Location" wizard page
WizardSelectDir=選擇目的資料夾
SelectDirDesc=選擇安裝程式安裝 [name] 的位置。
SelectDirLabel3=安裝程式將會把 [name] 安裝到下面的資料夾。
SelectDirBrowseLabel=按 「下一步」 繼續,如果您想選擇另一個資料夾,請按 「瀏覽」。
DiskSpaceGBLabel=最少需要 [gb] GB 磁碟空間。
DiskSpaceMBLabel=最少需要 [mb] MB 磁碟空間。
CannotInstallToNetworkDrive=安裝程式無法安裝於網絡磁碟機。
CannotInstallToUNCPath=安裝程式無法安裝於 UNC 路徑。
InvalidPath=您必須輸入完整的路徑名稱及磁碟機代碼。%n%n例如 C:\App 或 UNC 路徑格式 \\伺服器\共用資料夾。
InvalidDrive=您選取的磁碟機或 UNC 名稱不存在或無法存取,請選擇其他的目的地。
DiskSpaceWarningTitle=磁碟空間不足
DiskSpaceWarning=安裝程式需要至少 %1 KB 的磁碟空間,您所選取的磁碟只有 %2 KB 可用空間。%n%n您要繼續安裝嗎?
DirNameTooLong=資料夾名稱或路徑太長。
InvalidDirName=資料夾名稱不正確。
BadDirName32=資料夾名稱不得包含以下特殊字元:%n%n%1
DirExistsTitle=資料夾已經存在
DirExists=資料夾:%n%n%1%n%n 已經存在。仍要安裝到該資料夾嗎?
DirDoesntExistTitle=資料夾不存在
DirDoesntExist=資料夾:%n%n%1%n%n 不存在。要建立該資料夾嗎?

; *** "Select Components" wizard page
WizardSelectComponents=選擇元件
SelectComponentsDesc=選擇將會被安裝的元件。
SelectComponentsLabel2=選擇您想要安裝的元件;清除您不想安裝的元件。然後按 「下一步」 繼續安裝。
FullInstallation=完整安裝
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=最小安裝
CustomInstallation=自訂安裝
NoUninstallWarningTitle=元件已存在
NoUninstallWarning=安裝程式偵測到以下元件已經安裝在您的電腦上:%n%n%1%n%n取消選擇這些元件將不會移除它們。%n%n您仍然要繼續嗎?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=目前的選擇需要至少 [gb] GB 磁碟空間。
ComponentsDiskSpaceMBLabel=目前的選擇需要至少 [mb] MB 磁碟空間。

; *** "Select Additional Tasks" wizard page
WizardSelectTasks=選擇附加的工作
SelectTasksDesc=選擇要執行的附加工作。
SelectTasksLabel2=選擇安裝程式在安裝 [name] 時要執行的附加工作,然後按 「下一步」。

; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=選擇「開始」功能表的資料夾
SelectStartMenuFolderDesc=選擇安裝程式建立程式的捷徑的位置。
SelectStartMenuFolderLabel3=安裝程式將會把程式的捷徑建立在下面的「開始」功能表資料夾。
SelectStartMenuFolderBrowseLabel=按 「下一步」 繼續,如果您想選擇另一個資料夾,請按 「瀏覽」。
MustEnterGroupName=您必須輸入一個資料夾的名稱。
GroupNameTooLong=資料夾名稱或路徑太長。
InvalidGroupName=資料夾名稱不正確。
BadGroupName=資料夾名稱不得包含下列字元:%n%n%1
NoProgramGroupCheck2=不要在「開始」功能表中建立資料夾 (&D)

; *** "Ready to Install" wizard page
WizardReady=準備安裝
ReadyLabel1=安裝程式將開始安裝 [name] 到您的電腦中。
ReadyLabel2a=按下 「安裝」 繼續安裝,或按 「上一步」 重新檢視或設定各選項的內容。
ReadyLabel2b=按下 「安裝」 繼續安裝。
ReadyMemoUserInfo=使用者資訊
ReadyMemoDir=目的資料夾:
ReadyMemoType=安裝型態:
ReadyMemoComponents=選擇的元件:
ReadyMemoGroup=「開始」功能表資料夾:
ReadyMemoTasks=附加工作:

; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=正在下載額外檔案...
ButtonStopDownload=停止下載 (&S)
StopDownload=您確定要停止下載嗎?
ErrorDownloadAborted=已停止下載
ErrorDownloadFailed=下載失敗: %1 %2
ErrorDownloadSizeFailed=取得檔案大小失敗: %1 %2
ErrorFileHash1=檔案雜湊失敗: %1
ErrorFileHash2=檔案雜湊無效: 必須為 %1,收到 %2
ErrorProgress=進度無效: %1 之 %2
ErrorFileSize=檔案大小無效: 必須為 %1,收到 %2

; *** "Preparing to Install" wizard page
WizardPreparing=準備安裝程式
PreparingDesc=安裝程式準備將 [name] 安裝到您的電腦上。
PreviousInstallNotCompleted=先前的安裝/ 解除安裝尚未完成,您必須重新啟動電腦以完成該安裝。%n%n在重新啟動電腦之後,請再執行這個程式來安裝 [name]。
CannotContinue=安裝程式無法繼續。請按 「取消」 離開。
ApplicationsFound=下面的應用程式正在使用安裝程式所需要更新的檔案。建議您允許安裝程式自動關閉這些應用程式。
ApplicationsFound2=下面的應用程式正在使用安裝程式所需要更新的檔案。建議您允許安裝程式自動關閉這些應用程式。當安裝過程結束後,本安裝程式將會嘗試重新開啟該應用程式。
CloseApplications=關閉應用程式 (&A)
DontCloseApplications=不要關閉應用程式 (&D)
ErrorCloseApplications=安裝程式無法自動關閉所有應用程式。建議您在繼續前先關閉所有應用程式使用的檔案。
PrepareToInstallNeedsRestart=安裝程式必須重新啟動您的電腦。重新啟動後,請再次執行安裝程式以完成 [name] 的安裝。%n%n您想要現在重新啟動電腦嗎?

; *** "Installing" wizard page
WizardInstalling=正在安裝
InstallingLabel=請稍候,安裝程式正在將 [name] 安裝到您的電腦上

; *** "Setup Completed" wizard page
FinishedHeadingLabel=安裝完成
FinishedLabelNoIcons=安裝程式已經將 [name] 安裝在您的電腦上。
FinishedLabel=安裝程式已經將 [name] 安裝在您的電腦中,您可以選擇程式的圖示來執行該應用程式。
ClickFinish=按 「完成」 以結束安裝程式。
FinishedRestartLabel=要完成 [name] 的安裝,安裝程式必須重新啟動您的電腦。您想要現在重新啟動電腦嗎?
FinishedRestartMessage=要完成 [name] 的安裝,安裝程式必須重新啟動您的電腦。%n%n您想要現在重新啟動電腦嗎?
ShowReadmeCheck=是,我要閱讀讀我檔案。
YesRadio=是,立即重新啟動電腦(&Y)
NoRadio=否,我稍後重新啟動電腦(&N)
; used for example as 'Run MyProg.exe'
RunEntryExec=執行 %1
; used for example as 'View Readme.txt'
RunEntryShellExec=檢視 %1

; *** "Setup Needs the Next Disk" 
ChangeDiskTitle=安裝程式需要下一張磁片
SelectDiskLabel2=請插入磁片 %1,然後按 「確定」。%n%n如果檔案不在以下所顯示的資料夾之中,請輸入正確的資料夾名稱或按 [瀏覽] 選取。
PathLabel=路徑(&P):
FileNotInDir2=檔案“%1”無法在“%2”找到。請插入正確的磁片或選擇其它的資料夾。
SelectDirectoryLabel=請指定下一張磁片的位置。

; *** Installation phase messages
SetupAborted=安裝沒有完成。%n%n請更正問題後重新安裝一次。
AbortRetryIgnoreSelectAction=選取動作
AbortRetryIgnoreRetry=請再試一次 (&T)
AbortRetryIgnoreIgnore=略過錯誤並繼續 (&I)
AbortRetryIgnoreCancel=取消安裝

; *** Installation status messages
StatusClosingApplications=正在關閉應用程式...
StatusCreateDirs=正在建立資料夾...
StatusExtractFiles=正在解壓縮檔案...
StatusCreateIcons=正在建立程式集圖示...
StatusCreateIniEntries=寫入 INI 檔案的項目...
StatusCreateRegistryEntries=正在更新系統登錄...
StatusRegisterFiles=正在登錄檔案...
StatusSavingUninstall=儲存解除安裝資訊...
StatusRunProgram=正在完成安裝...
StatusRestartingApplications=正在重新開啟應用程式...
StatusRollback=正在復原變更...

; *** Misc. errors
ErrorInternal2=內部錯誤: %1
ErrorFunctionFailedNoCode=%1 失敗
ErrorFunctionFailed=%1 失敗;代碼 %2
ErrorFunctionFailedWithMessage=%1 失敗;代碼 %2.%n%3
ErrorExecutingProgram=無法執行檔案:%n%1

; *** Registry errors
ErrorRegOpenKey=無法開啟登錄鍵:%n%1\%2
ErrorRegCreateKey=無法建立登錄項目:%n%1\%2
ErrorRegWriteKey=無法變更登錄項目:%n%1\%2

; *** INI errors
ErrorIniEntry=在檔案“%1”建立 INI 項目錯誤。

; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=略過這個檔案 (不建議) (&S)
FileAbortRetryIgnoreIgnoreNotRecommended=略過錯誤並繼續 (不建議) (&I)
SourceDoesntExist=來源檔案“%1”不存在。
SourceIsCorrupted=來源檔案已經損毀。
ExistingFileReadOnly2=無法取代現有檔案,因為檔案已標示為唯讀。
ExistingFileReadOnlyRetry=移除唯讀屬性並重試 (&R)
ExistingFileReadOnlyKeepExisting=保留現有檔案 (&K)
ErrorReadingExistingDest=讀取一個已存在的檔案時發生錯誤:
FileExistsSelectAction=選擇操作
FileExists2=檔案已存在。
FileExistsOverwriteExisting=覆寫現有檔案
FileExistsKeepExisting=保留現有檔案 (&O)
FileExistsOverwriteOrKeepAll=對下次衝突執行相同操作 (&D)
ExistingFileNewerSelectAction=選擇操作
ExistingFileNewer2=現有檔案比安裝程式嘗試安裝的檔案還新。
ExistingFileNewerOverwriteExisting=覆寫現有檔案 (&O)
ExistingFileNewerKeepExisting=保留現有檔案 (&K) (建議選項)
ExistingFileNewerOverwriteOrKeepAll=對下次衝突執行相同操作 (&D)
ErrorChangingAttr=在變更檔案屬性時發生錯誤:
ErrorCreatingTemp=在目的資料夾中建立檔案時發生錯誤:
ErrorReadingSource=讀取原始檔案時發生錯誤:
ErrorCopying=複製檔案時發生錯誤:
ErrorReplacingExistingFile=取代檔案時發生錯誤:
ErrorRestartReplace=重新啟動電腦後取代檔案失敗:
ErrorRenamingTemp=在目的資料夾變更檔案名稱時發生錯誤:
ErrorRegisterServer=無法注冊 DLL/OCX 檔案: %1。
ErrorRegSvr32Failed=RegSvr32 失敗;退出代碼 %1
ErrorRegisterTypeLib=無法注冊類型庫: %1。

; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32 位元
UninstallDisplayNameMark64Bit=64 位元
UninstallDisplayNameMarkAllUsers=所有使用者
UninstallDisplayNameMarkCurrentUser=目前使用者

; *** Post-installation errors
ErrorOpeningReadme=開啟讀我檔案時發生錯誤。
ErrorRestartingComputer=安裝程式無法重新啟動電腦,請自行重新啟動。

; *** Uninstaller messages
UninstallNotFound=檔案“%1”不存在,無法解除安裝。
UninstallOpenError=無法開啟檔案“%1”,無法解除安裝
UninstallUnsupportedVer=這個版本的解除安裝程式無法辨識記錄檔 “%1” 之格式,無法解除安裝。
UninstallUnknownEntry=解除安裝記錄檔中發現未知的記錄 (%1)。
ConfirmUninstall=您確定要完全移除 %1 及其相關的檔案嗎?
UninstallOnlyOnWin64=這個程式只能在 64 位元的 Windows 上解除安裝。
OnlyAdminCanUninstall=這個程式要具備系統管理員權限的使用者方可解除安裝。
UninstallStatusLabel=正在從您的電腦移除 %1 中,請稍候...
UninstalledAll=%1 已經成功從您的電腦中移除。
UninstalledMost=%1 解除安裝完成。%n%n某些檔案及元件無法移除,您可以自行刪除這些檔案。
UninstalledAndNeedsRestart=要完成 %1 的解除安裝程序,您必須重新啟動電腦。%n%n您想要現在重新啟動電腦嗎?
UninstallDataCorrupted=檔案“%1”已經損毀,無法解除安裝

; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=移除共用檔案
ConfirmDeleteSharedFile2=系統顯示下列共用檔案已不再被任何程式所使用,您要移除這些檔案嗎?%n%n%1%n%n倘若您移除了以上檔案但仍有程式需要使用它們,將造成這些程式無法正常執行,因此您若無法確定請選擇 [否]。保留這些檔案在您的系統中不會造成任何損害。
SharedFileNameLabel=檔案名稱:
SharedFileLocationLabel=位置:
WizardUninstalling=解除安裝狀態
StatusUninstalling=正在解除安裝 %1...

; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=正在安裝 %1。
ShutdownBlockReasonUninstallingApp=正在解除安裝 %1。

; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.

[CustomMessages]

NameAndVersion=%1 版本 %2
AdditionalIcons=附加圖示:
CreateDesktopIcon=建立桌面圖示(&D)
CreateQuickLaunchIcon=建立快速啟動圖示(&Q)
ProgramOnTheWeb=%1 的網站
UninstallProgram=解除安裝 %1
LaunchProgram=啟動 %1
AssocFileExtension=將 %1 與檔案副檔名 %2 產生關聯(&A)
AssocingFileExtension=正在將 %1 與檔案副檔名 %2 產生關聯...
AutoStartProgramGroupDescription=開啟:
AutoStartProgram=自動開啟 %1
AddonHostProgramNotFound=%1 無法在您所選的資料夾中找到。%n%n您是否還要繼續?

================================================
FILE: InnoDependencies/Greek.isl
================================================
; *** Inno Setup version 6.1.0+ Greek messages ***
;
; To download user-contributed translations of this file, go to:
;   https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
;
; Originally translated by Anastasis Chatzioglou, baldycom@hotmail.com
; Updated by XhmikosR [XhmikosR, my_nickname at yahoo dot com]
; Updated to version 6.1.0+ by Vasileios Karamichail, v.karamichail@outlook.com
;

[LangOptions]
; The following three entries are very important. Be sure to read and 
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Ελληνικά
LanguageID=$0408
LanguageCodePage=1253
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8

[Messages]

; *** Application titles
SetupAppTitle=Εγκατάσταση
SetupWindowTitle=Εγκατάσταση - %1
UninstallAppTitle=Απεγκατάσταση
UninstallAppFullTitle=%1 Απεγκατάσταση

; *** Misc. common
InformationTitle=Πληροφορίες
ConfirmTitle=Επιβεβαίωση
ErrorTitle=Σφάλμα

; *** SetupLdr messages
SetupLdrStartupMessage=Θα εκτελεστεί η εγκατάσταση του %1. Θέλετε να συνεχίσετε;
LdrCannotCreateTemp=Σφάλμα στη δημιουργία προσωρινού αρχείου. Η εγκατάσταση τερματίστηκε
LdrCannotExecTemp=Αδύνατη η εκτέλεση αρχείου στον φάκελο προσωρινών αρχείων. Η εγκατάσταση τερματίστηκε
HelpTextNote=

; *** Startup error messages
LastErrorMessage=%1.%n%nΣφάλμα %2: %3
SetupFileMissing=Το αρχείο %1 λείπει από τον κατάλογο εγκατάστασης. Διορθώστε το πρόβλημα ή αποκτήστε ένα νέο αντίγραφο του προγράμματος.
SetupFileCorrupt=Το αρχείο εγκατάστασης είναι κατεστραμμένο. Παρακαλώ προμηθευτείτε ένα νέο αντίγραφο του προγράμματος.
SetupFileCorruptOrWrongVer=Το αρχείο εγκατάστασης είναι κατεστραμμένο ή δεν είναι συμβατό με αυτήν την έκδοση του προγράμματος εγκατάστασης. Διορθώστε το πρόβλημα ή αποκτήστε ένα νέο αντίγραφο του προγράμματος.
InvalidParameter=Μία μη έγκυρη παράμετρος χρησιμοποιήθηκε στη γραμμή εντολών:%n%n%1
SetupAlreadyRunning=Η εγκατάσταση τρέχει ήδη.
WindowsVersionNotSupported=Αυτό το πρόγραμμα δεν υποστηρίζει την έκδοση των Windows που εκτελεί ο υπολογιστής σας.
WindowsServicePackRequired=Αυτό το πρόγραμμα χρειάζεται το %1 Service Pack %2 ή νεότερο.
NotOnThisPlatform=Αυτό το πρόγραμμα δεν μπορεί να εκτελεστεί σε %1.
OnlyOnThisPlatform=Αυτό το πρόγραμμα μπορεί να εκτελεστεί μόνο σε %1.
OnlyOnTheseArchitectures=Αυτό το πρόγραμμα μπορεί να εγκατασταθεί μόνο σε εκδόσεις των Windows που έχουν σχεδιαστεί για τις ακόλουθες αρχιτεκτονικές επεξεργαστών:%n%n%1
WinVersionTooLowError=Αυτό το πρόγραμμα απαιτεί %1 έκδοση %2 ή μεταγενέστερη.
WinVersionTooHighError=Αυτό το πρόγραμμα δεν μπορεί να εγκατασταθεί σε %1 έκδοση %2 ή μεταγενέστερη.
AdminPrivilegesRequired=Πρέπει να είστε συνδεδεμένοι ως διαχειριστής κατά την εγκατάσταση αυτού του προγράμματος.
PowerUserPrivilegesRequired=Πρέπει να είστε συνδεδεμένοι ως διαχειριστής ή ως μέλος της ομάδας Power User κατά την εγκατάσταση αυτού του προγράμματος.
SetupAppRunningError=Ο Οδηγός Εγκατάστασης εντόπισε ότι η εφαρμογή %1 εκτελείται ήδη.%n%nΠαρακαλώ κλείστε την εφαρμογή τώρα και πατήστε ΟΚ για να συνεχίσετε, ή Άκυρο για έξοδο.
UninstallAppRunningError=Ο Οδηγός Απεγκατάστασης εντόπισε ότι η εφαρμογή %1 εκτελείται ήδη.%n%nΠαρακαλώ κλείστε την εφαρμογή τώρα και πατήστε ΟΚ για να συνεχίσετε, ή Άκυρο για έξοδο.

; *** Startup questions
PrivilegesRequiredOverrideTitle=Επιλέξτε Τρόπο Εγκατάστασης
PrivilegesRequiredOverrideInstruction=Επιλέξτε τον τρόπο εγκατάστασης
PrivilegesRequiredOverrideText1=Το %1 μπορεί να εγκατασταθεί για όλους τους χρήστες (απαιτεί δικαιώματα διαχειριστή) ή μόνο για εσάς.
PrivilegesRequiredOverrideText2=Το %1 μπορεί να εγκατασταθεί μόνο για εσάς ή για όλους τους χρήστες (απαιτεί δικαιώματα διαχειριστή).
PrivilegesRequiredOverrideAllUsers=Εγκατάσταση για &όλους τους χρήστες
PrivilegesRequiredOverrideAllUsersRecommended=Εγκατάσταση για όλ&ους τους χρήστες (συνιστάται)
PrivilegesRequiredOverrideCurrentUser=Εγκατάσταση μόνο για &εμένα
PrivilegesRequiredOverrideCurrentUserRecommended=Εγκατάσταση μόνο για &εμένα (συνιστάται)

; *** Misc. errors
ErrorCreatingDir=Η εγκατάσταση δεν μπόρεσε να δημιουργήσει τον φάκελο "%1"
ErrorTooManyFilesInDir=Δεν είναι δυνατή η δημιουργία ενός αρχείου στον φάκελο "%1" επειδή περιέχει πολλά αρχεία

; *** Setup common messages
ExitSetupTitle=Τέλος Εγκατάστασης
ExitSetupMessage=Η εγκατάσταση δεν έχει ολοκληρωθεί. Αν την τερματίσετε τώρα, το πρόγραμμα δεν θα εγκατασταθεί.%n%nΜπορείτε να εκτελέσετε ξανά την εγκατάσταση αργότερα.%n%nΈξοδος;
AboutSetupMenuItem=&Σχετικά με την Εγκατάσταση...
AboutSetupTitle=Σχετικά με την Εγκατάσταση
AboutSetupMessage=%1 έκδοση %2%n%3%n%n%1 αρχική σελίδα:%n%4
AboutSetupNote=
TranslatorNote=

; *** Buttons
ButtonBack=< &Πίσω
ButtonNext=&Επόμενο >
ButtonInstall=&Εγκατάσταση
ButtonOK=ΟΚ
ButtonCancel=&Ακυρο
ButtonYes=Ν&αι
ButtonYesToAll=Ναι σε &Ολα
ButtonNo=Ό&χι
ButtonNoToAll=Όχι &σε όλα
ButtonFinish=&Τέλος
ButtonBrowse=&Αναζήτηση...
ButtonWizardBrowse=Ανα&ζήτηση...
ButtonNewFolder=&Δημιουργία νέου φακέλου

; *** "Select Language" dialog messages
SelectLanguageTitle=Επιλογή Γλώσσας Οδηγού Εγκατάστασης
SelectLanguageLabel=Επιλέξτε τη γλώσσα που θέλετε να χρησιμοποιήσετε κατά την εγκατάσταση.

; *** Common wizard text
ClickNext=Πατήστε Επόμενο για να συνεχίσετε ή Άκυρο για να τερματίσετε την εγκατάσταση.
BeveledLabel=
BrowseDialogTitle=Αναζήτηση Φακέλου
BrowseDialogLabel=Επιλέξτε ένα φάκελο από την ακόλουθη λίστα και πατήστε ΟΚ.
NewFolderName=Νέος φάκελος

; *** "Welcome" wizard page
WelcomeLabel1=Καλως ορίσατε στον Οδηγό Εγκατάστασης του [name]
WelcomeLabel2=Θα γίνει εγκατάσταση του [name/ver] στον υπολογιστή σας.%n%nΣυνιστάται να κλείσετε όλες τις άλλες εφαρμογές πριν συνεχίσετε.

; *** "Password" wizard page
WizardPassword=Κωδικός Πρόσβασης
PasswordLabel1=Αυτή η εγκατάσταση προστατεύεται με κωδικό πρόσβασης.
PasswordLabel3=Παρακαλώ εισάγετε τον κωδικό και πατήστε Επόμενο.
PasswordEditLabel=&Κωδικός:
IncorrectPassword=Ο κωδικός που έχετε εισάγει είναι λανθασμένος. Παρακαλώ, προσπαθήστε ξανά.

; *** "License Agreement" wizard page
WizardLicense=Άδεια Χρήσης
LicenseLabel=Παρακαλώ διαβάστε προσεκτικά τις ακόλουθες πληροφορίες πριν συνεχίσετε.
LicenseLabel3=Παρακαλώ διαβάστε την ακόλουθη Άδεια Χρήσης. Θα πρέπει να αποδεχτείτε τους όρους της πριν συνεχίσετε την εγκατάσταση.
LicenseAccepted=&Δέχομαι τους όρους της Άδειας Χρήσης
LicenseNotAccepted=Δεν &αποδέχομαι τους όρους της Άδειας Χρήσης

; *** "Information" wizard pages
WizardInfoBefore=Πληροφορίες
InfoBeforeLabel=Παρακαλώ διαβάστε προσεκτικά τις ακόλουθες πληροφορίες πριν συνεχίσετε.
InfoBeforeClickLabel=Όταν είστε έτοιμοι να συνεχίσετε με τον Οδηγό Εγκατάστασης, πατήστε Επόμενο.
WizardInfoAfter=Πληροφορίες
InfoAfterLabel=Παρακαλώ διαβάστε προσεκτικά τις ακόλουθες πληροφορίες πριν συνεχίσετε.
InfoAfterClickLabel=Όταν είστε έτοιμοι να συνεχίσετε με τον Οδηγό Εγκατάστασης, πατήστε Επόμενο.

; *** "User Information" wizard page
WizardUserInfo=Πληροφορίες Χρήστη
UserInfoDesc=Παρακαλώ εισάγετε τα στοιχεία σας.
UserInfoName=&Ονομα Χρήστη:
UserInfoOrg=&Εταιρεία:
UserInfoSerial=&Σειριακός Αριθμός:
UserInfoNameRequired=Πρέπει να εισάγετε ένα όνομα.

; *** "Select Destination Location" wizard page
WizardSelectDir=Επιλογή Φακέλου Εγκατάστασης
SelectDirDesc=Πού θέλετε να εγκατασταθεί το [name];
SelectDirLabel3=Ο Οδηγός Εγκατάστασης θα εγκαταστήσει το [name] στον ακόλουθο φάκελο.
SelectDirBrowseLabel=Για να συνεχίσετε, πατήστε Επόμενο. Εάν θέλετε να επιλέξετε διαφορετικό φάκελο, πατήστε Αναζήτηση.
DiskSpaceGBLabel=Απαιτούνται τουλάχιστον [gb] GB ελεύθερου χώρου στο δίσκο.
DiskSpaceMBLabel=Απαιτούνται τουλάχιστον [mb] MB ελεύθερου χώρου στο δίσκο.
CannotInstallToNetworkDrive=Η εγκατάσταση δεν μπορεί να γίνει σε δίσκο δικτύου.
CannotInstallToUNCPath=Η εγκατάσταση δεν μπορεί να γίνει σε διαδρομή UNC.
InvalidPath=Πρέπει να δώσετε την πλήρη διαδρομή με το γράμμα δίσκου, για παράδειγμα:%n%nC:\APP%n%nή μια διαδρομή UNC της μορφής:%n%n\\server\share
InvalidDrive=Ο τοπικός δίσκος ή ο δίσκος δικτύου που έχετε επιλέξει δεν υπάρχει ή δεν είναι προσβάσιμος. Παρακαλώ, επιλέξτε άλλον.
DiskSpaceWarningTitle=Ανεπαρκής Χώρος στο Δίσκο
DiskSpaceWarning=Η εγκατάσταση χρειάζεται τουλάχιστον %1 KB ελεύθερο χώρο στο δίσκο αλλά ο επιλεγμένος δίσκος διαθέτει μόνον %2 KB.%n%nΘέλετε να συνεχίσετε παρόλα αυτά;
DirNameTooLong=Το όνομα ή η διαδρομή του φακέλου είναι πολύ μεγάλη.
InvalidDirName=Το όνομα του φακέλου δεν είναι έγκυρο.
BadDirName32=Το όνομα του φακέλου δεν μπορεί να περιλαμβάνει κανέναν από τους παρακάτω χαρακτήρες:%n%n%1
DirExistsTitle=Ο Φάκελος Υπάρχει
DirExists=Ο φάκελος:%n%n%1%n%nυπάρχει ήδη. Θέλετε να γίνει η εγκατάσταση σε αυτόν τον φάκελο παρόλα αυτά;
DirDoesntExistTitle=Ο Φάκελος Δεν Υπάρχει
DirDoesntExist=Ο φάκελος:%n%n%1%n%nδεν υπάρχει. Θέλετε να δημιουργηθεί;

; *** "Select Components" wizard page
WizardSelectComponents=Επιλογή Λειτουργιών Μονάδων
SelectComponentsDesc=Ποια στοιχεία θέλετε να εγκατασταθούν;
SelectComponentsLabel2=Επιλέξτε τα στοιχεία που θέλετε να εγκαταστήσετε, αποεπιλέξτε τα στοιχεία που δεν θέλετε να εγκαταστήσετε. Πατήστε Επόμενο όταν είστε έτοιμοι να συνεχίσετε.
FullInstallation=Πλήρης εγκατάσταση
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Τυπική εγκατάσταση
CustomInstallation=Προσαρμοσμένη εγκατάσταση
NoUninstallWarningTitle=Οι Λειτουργικές Μονάδες Υπάρχουν
NoUninstallWarning=Ο Οδηγός Εγκατάστασης εντόπισε ότι τα ακόλουθα στοιχεία είναι ήδη εγκατεστημένα στον υπολογιστή σας:%n%n%1%n%nΑποεπιλέγοντας αυτά τα στοιχεία δεν θα απεγκατασταθούν.%n%nΘέλετε να συνεχίσετε παρόλα αυτά;
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=Η τρέχουσα επιλογή απαιτεί τουλάχιστον [gb] GB χώρου στο δίσκο.
ComponentsDiskSpaceMBLabel=Η τρέχουσα επιλογή απαιτεί τουλάχιστον [mb] MB χώρου στο δίσκο.

; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Επιλογή Επιπλέον Ενεργειών
SelectTasksDesc=Ποιες επιπλέον ενέργειες θέλετε να γίνουν;
SelectTasksLabel2=Επιλέξτε τις επιπλέον ενέργειες που θέλετε να γίνουν κατά την εγκατάσταση του [name] και πατήστε Επόμενο.

; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Επιλογή Φακέλου Μενού Έναρξης
SelectStartMenuFolderDesc=Πού θέλετε να τοποθετηθούν οι συντομεύσεις του προγράμματος;
SelectStartMenuFolderLabel3=Η εγκατάσταση θα δημιουργήσει τις συντομεύσεις του προγράμματος στον ακόλουθο φάκελο του μενού Έναρξη.
SelectStartMenuFolderBrowseLabel=Για να συνεχίσετε, πατήστε Επόμενο. Αν θέλετε διαφορετικό φάκελο, πατήστε Αναζήτηση.
MustEnterGroupName=Πρέπει να εισαγάγετε ένα όνομα φακέλου.
GroupNameTooLong=Το όνομα ή η διαδρομή του φακέλου είναι πολύ μεγάλη.
InvalidGroupName=Το όνομα του φακέλου δεν είναι έγκυρο.
BadGroupName=Το όνομα του φακέλου δεν μπορεί να περιλαμβάνει κανέναν από τους παρακάτω χαρακτήρες:%n%n%1
NoProgramGroupCheck2=&Χωρίς δημιουργία φακέλου στο μενού Έναρξης.

; *** "Ready to Install" wizard page
WizardReady=Έτοιμα για Εγκατάσταση
ReadyLabel1=Ο Οδηγός Εγκατάστασης είναι έτοιμος να ξεκινήσει την εγκατάσταση του [name] στον υπολογιστή σας.
ReadyLabel2a=Πατήστε Εγκατάσταση για να συνεχίσετε με την εγκατάσταση ή πατήστε Πίσω, εάν θέλετε να ελέγξετε ή να αλλάξετε τυχόν ρυθμίσεις.
ReadyLabel2b=Πατήστε Εγκατάσταση για να συνεχίσετε την εγκατάσταση.
ReadyMemoUserInfo=Πληροφορίες Χρήστη:
ReadyMemoDir=Φάκελος προορισμού:
ReadyMemoType=Είδος εγκατάστασης:
ReadyMemoComponents=Επιλεγμένες λειτουργικές μονάδες:
ReadyMemoGroup=Φάκελος στο μενού Έναρξη:
ReadyMemoTasks=Επιπλέον ενέργειες:

; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Λήψη πρόσθετων αρχείων...
ButtonStopDownload=&Διακοπή λήψης
StopDownload=Είστε βέβαιοι ότι θέλετε να διακόψετε τη λήψη;
ErrorDownloadAborted=Η λήψη ακυρώθηκε
ErrorDownloadFailed=Η λήψη απέτυχε: %1 %2
ErrorDownloadSizeFailed=Η λήψη του μεγέθους απέτυχε: %1 %2
ErrorFileHash1=Αποτυχία υπολογισμού hash: %1
ErrorFileHash2=Μη έγκυρο hash: αναμενόμενο %1, βρέθηκε %2
ErrorProgress=Μη έγκυρη πρόοδος: %1 από %2
ErrorFileSize=Μη έγκυρο μέγεθος αρχείου: αναμενόμενο %1, βρέθηκε %2

; *** "Preparing to Install" wizard page
WizardPreparing=Προετοιμασία Εγκατάστασης
PreparingDesc=Ο Οδηγός Εγκατάστασης προετοιμάζεται για την εγκατάσταση του [name] στον υπολογιστή σας.
PreviousInstallNotCompleted=Η εγκατάσταση/αφαίρεση ενός προηγούμενου προγράμματος δεν ολοκληρώθηκε. Θα χρειαστεί να κάνετε επανεκκίνηση του υπολογιστή σας για να ολοκληρωθεί.%n%nΜετά την επανεκκίνηση του υπολογιστή σας, εκτελέστε ξανά τον Οδηγό Εγκατάστασης για να ολοκληρώσετε την εγκατάσταση/αφαίρεση του [name].
CannotContinue=Η εγκατάσταση δεν μπορεί να συνεχιστεί. Παρακαλώ πατήστε Άκυρο για τερματισμό.
ApplicationsFound=Οι ακόλουθες εφαρμογές χρησιμοποιούν αρχεία που πρέπει να ενημερωθούν από τον Οδηγό Εγκατάστασης. Συνιστάται να επιτρέψετε στον Οδηγό Εγκατάστασης να κλείσει αυτόματα αυτές τις εφαρμογές.
ApplicationsFound2=Οι ακόλουθες εφαρμογές χρησιμοποιούν αρχεία που πρέπει να ενημερωθούν από τον Οδηγό Εγκατάστασης. Συνιστάται να επιτρέψετε στον Οδηγό Εγκατάστασης να κλείσει αυτόματα αυτές τις εφαρμογές. Μετά την ολοκλήρωση της εγκατάστασης, ο Οδηγός Εγκατάστασης θα επιχειρήσει να κάνει επανεκκίνηση των εφαρμογών.
CloseApplications=&Αυτόματο κλείσιμο των εφαρμογών
DontCloseApplications=&Χωρίς κλείσιμο των εφαρμογών
ErrorCloseApplications=Ο Οδηγός Εγκατάστασης δεν μπόρεσε να κλείσει αυτόματα όλες τις εφαρμογές. Συνιστάται να κλείσετε όλες τις εφαρμογές που χρησιμοποιούν αρχεία που πρέπει να ενημερωθούν από τον Οδηγό Εγκατάστασης προτού συνεχίσετε.
PrepareToInstallNeedsRestart=Ο Οδηγός Εγκατάστασης πρέπει να κάνει επανεκκίνηση του υπολογιστή σας. Μετά την επανεκκίνηση του υπολογιστή σας, εκτελέστε ξανά τον Οδηγό Εγκατάστασης για να ολοκληρώσετε την εγκατάσταση του [name].%n%nΘα θέλατε να κάνετε επανεκκίνηση τώρα;

; *** "Installing" wizard page
WizardInstalling=Εγκατάσταση
InstallingLabel=Παρακαλώ περιμένετε καθώς γίνεται η εγκατάσταση του [name] στον υπολογιστή σας.

; *** "Setup Completed" wizard page
FinishedHeadingLabel=Ολοκλήρωση του Οδηγού Εγκατάστασης του [name]
FinishedLabelNoIcons=Ο Οδηγός Εγκατάστασης ολοκλήρωσε την εγκατάσταση του [name] στον υπολογιστή σας.
FinishedLabel=Ο Οδηγός Εγκατάστασης ολοκλήρωσε την εγκατάσταση του [name] στον υπολογιστή σας. Η εφαρμογή μπορεί να ξεκινήσει επιλέγοντας κάποια από τις εγκατεστημένες συντομεύσεις.
ClickFinish=Πατήστε Τέλος για να τερματίσετε τον Οδηγό Εγκατάστασης.
FinishedRestartLabel=Για να ολοκληρώσετε την εγκατάσταση του [name], ο Οδηγός Εγκατάστασης πρέπει να κάνει επανεκκίνηση του υπολογιστή σας. Θα θέλατε να κάνετε επανεκκίνηση τώρα;
FinishedRestartMessage=Για να ολοκληρώσετε την εγκατάσταση του [name], ο Οδηγός Εγκατάστασης πρέπει να κάνει επανεκκίνηση του υπολογιστή σας.%n%nΘα θέλατε να κάνετε επανεκκίνηση τώρα;
ShowReadmeCheck=Ναι, θα ήθελα να δω το αρχείο README
YesRadio=&Ναι, να γίνει επανεκκίνηση τώρα
NoRadio=&Οχι, θα κάνω επανεκκίνηση αργότερα
; used for example as 'Run MyProg.exe'
RunEntryExec=Εκτέλεση του %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Προβολή του %1

; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Ο Οδηγός Εγκατάστασης χρειάζεται τον επόμενο δίσκο
SelectDiskLabel2=Παρακαλώ, εισάγετε τον δίσκο %1 και πατήστε ΟΚ.%n%nΕάν τα αρχεία αυτού του δίσκου βρίσκονται σε φάκελο διαφορετικό από αυτόν που εμφανίζεται παρακάτω, πληκτρολογήστε τη σωστή διαδρομή ή πατήστε Αναζήτηση.
PathLabel=&Διαδρομή:
FileNotInDir2=Το αρχείο "%1" δε βρέθηκε στο "%2". Παρακαλώ εισάγετε το σωστό δίσκο ή επιλέξτε κάποιον άλλο φάκελο.
SelectDirectoryLabel=Παρακαλώ καθορίσετε την τοποθεσία του επόμενου δίσκου.

; *** Installation phase messages
SetupAborted=Η εγκατάσταση δεν ολοκληρώθηκε.%n%nΠαρακαλώ, διορθώστε το πρόβλημα και εκτελέστε ξανά τον Οδηγό Εγκατάστασης.
AbortRetryIgnoreSelectAction=Επιλέξτε ενέργεια
AbortRetryIgnoreRetry=&Δοκιμή
AbortRetryIgnoreIgnore=&Αγνόηση και συνέχεια
AbortRetryIgnoreCancel=Ακυρώση εγκατάστασης

; *** Installation status messages
StatusClosingApplications=Κλείσιμο εφαρμογών...
StatusCreateDirs=Δημιουργία φακέλων...
StatusExtractFiles=Αποσυμπίεση αρχείων...
StatusCreateIcons=Δημιουργία συντομεύσεων...
StatusCreateIniEntries=Δημιουργία καταχωρήσεων INI...
StatusCreateRegistryEntries=Δημιουργία καταχωρήσεων στο μητρώο...
StatusRegisterFiles=Καταχώρηση αρχείων...
StatusSavingUninstall=Αποθήκευση πληροφοριών απεγκατάστασης...
StatusRunProgram=Ολοκλήρωση εγκατάστασης...
StatusRestartingApplications=Επανεκκίνηση εφαρμογών...
StatusRollback=Επαναφορά αλλαγών...

; *** Misc. errors
ErrorInternal2=Εσωτερικό σφάλμα: %1
ErrorFunctionFailedNoCode=%1 απέτυχε
ErrorFunctionFailed=%1 απέτυχε, κωδικός %2
ErrorFunctionFailedWithMessage=%1 απέτυχε, κωδικός %2.%n%3
ErrorExecutingProgram=Δεν είναι δυνατή η εκτέλεση του αρχείου:%n%1

; *** Registry errors
ErrorRegOpenKey=Σφάλμα ανάγνωσης κλειδιού μητρώου:%n%1\%2
ErrorRegCreateKey=Σφάλμα δημιουργίας κλειδιού μητρώου:%n%1\%2
ErrorRegWriteKey=Σφάλμα καταχώρησης κλειδιού μητρώου:%n%1\%2

; *** INI errors
ErrorIniEntry=Σφάλμα στη δημιουργία καταχώρησης INI στο αρχείο "%1".

; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Παράλειψη αυτού του αρχείου (δεν συνιστάται)
FileAbortRetryIgnoreIgnoreNotRecommended=Παράλειψη σφάλματος και &συνέχεια (δεν συνιστάται)
SourceIsCorrupted=Το αρχείο προέλευσης είναι κατεστραμμένο
SourceDoesntExist=Το αρχείο προέλευσης "%1" δεν υπάρχει
ExistingFileReadOnly2=Το υπάρχον αρχείο δεν μπόρεσε να αντικατασταθεί επειδή είναι μόνο για ανάγνωση.
ExistingFileReadOnlyRetry=&Καταργήστε το χαρακτηριστικό μόνο για ανάγνωση και δοκιμάστε ξανά
ExistingFileReadOnlyKeepExisting=&Διατηρήστε το υπάρχον αρχείο
ErrorReadingExistingDest=Παρουσιάστηκε σφάλμα κατά την προσπάθεια ανάγνωσης του υπάρχοντος αρχείου:
FileExistsSelectAction=Επιλέξτε ενέργεια
FileExists2=Το αρχείο υπάρχει ήδη.
FileExistsOverwriteExisting=&Αντικατάσταση υπάρχοντος αρχείου
FileExistsKeepExisting=&Διατήρηση υπάρχοντος αρχείου
FileExistsOverwriteOrKeepAll=&Να γίνει το ίδιο για τις επόμενες διενέξεις
ExistingFileNewerSelectAction=Επιλέξτε ενέργεια
ExistingFileNewer2=Το υπάρχον αρχείο είναι νεότερο από αυτό που προσπαθεί να εγκαταστήσει ο Οδηγός Εγκατάστασης.
ExistingFileNewerOverwriteExisting=&Αντικατάσταση υπάρχοντος αρχείου
ExistingFileNewerKeepExisting=&Διατήρηση υπάρχοντος αρχείου (συνιστάται)
ExistingFileNewerOverwriteOrKeepAll=&Να γίνει το ίδιο για τις επόμενες διενέξεις
ErrorChangingAttr=Παρουσιάστηκε σφάλμα κατά την προσπάθεια αλλαγής των χαρακτηριστικών του υπάρχοντος αρχείου:
ErrorCreatingTemp=Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας ενός αρχείου στον φακέλο προορισμού:
ErrorReadingSource=Παρουσιάστηκε σφάλμα κατά την προσπάθεια ανάγνωσης του αρχείου προέλευσης:
ErrorCopying=Παρουσιάστηκε σφάλμα κατά την προσπάθεια αντιγραφής ενός αρχείου:
ErrorReplacingExistingFile=Παρουσιάστηκε σφάλμα κατά την προσπάθεια αντικατάστασης του υπάρχοντος αρχείου:
ErrorRestartReplace=Η ΕπανεκκίνησηΑντικατάσταση απέτυχε:
ErrorRenamingTemp=Παρουσιάστηκε σφάλμα κατά την προσπάθεια μετονομασίας ενός αρχείου στον φακέλο προορισμού:
ErrorRegisterServer=Δεν είναι δυνατή η καταχώριση του DLL/OCX: %1
ErrorRegSvr32Failed=Το RegSvr32 απέτυχε με κωδικό εξόδου %1
ErrorRegisterTypeLib=Δεν είναι δυνατή η καταχώριση της βιβλιοθήκης τύπων: %1

; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=Ολοι οι χρήστες
UninstallDisplayNameMarkCurrentUser=Τρέχων χρήστης

; *** Post-installation errors
ErrorOpeningReadme=Παρουσιάστηκε σφάλμα κατά την προσπάθεια ανοίγματος του αρχείου README.
ErrorRestartingComputer=Ο Οδηγός Εγκατάστασης δεν μπόρεσε να κάνει επανεκκίνηση του υπολογιστή. Παρακαλώ επανεκκινήσετε τον υπολογιστή μόνοι σας.

; *** Uninstaller messages
UninstallNotFound=Το αρχείο "%1" δεν υπάρχει. Δεν είναι δυνατή η απεγκατάσταση.
UninstallOpenError=Το αρχείο "%1" δεν ήταν δυνατό να ανοίξει. Δεν είναι δυνατή η απεγκατάσταση
UninstallUnsupportedVer=Το αρχείο καταγραφής απεγκατάστασης "%1" είναι σε μορφή που δεν αναγνωρίζεται από αυτήν την έκδοση του Οδηγού Απεγκατάστασης. Δεν ήταν δυνατή η απεγκατάσταση
UninstallUnknownEntry=Μια άγνωστη καταχώρηση (%1) εντοπίστηκε στο αρχείο καταγραφής απεγκατάστασης
ConfirmUninstall=Είστε βέβαιοι ότι θέλετε να καταργήσετε εντελώς το %1 και όλα τα στοιχεία του;
UninstallOnlyOnWin64=Αυτή η εγκατάσταση μπορεί να απεγκατασταθεί μόνο σε Windows 64-bit.
OnlyAdminCanUninstall=Αυτή η εγκατάσταση μπορεί να απεγκατασταθεί μόνο από χρήστη με δικαιώματα διαχειριστή.
UninstallStatusLabel=Παρακαλώ περιμένετε μέχρι να καταργηθεί το %1 από τον υπολογιστή σας.
UninstalledAll=Το %1 αφαιρέθηκε με επιτυχία από τον υπολογιστή σας.
UninstalledMost=Το %1 αφαιρέθηκε με επιτυχία.%n%nΟρισμένα στοιχεία δεν ήταν δυνατό να καταργηθούν. Αυτά μπορούν να αφαιρεθούν από εσάς.
UninstalledAndNeedsRestart=Για να ολοκληρώσετε την απεγκατάσταση του %1, ο υπολογιστής σας πρέπει να επανεκκινηθεί.%n%nΘα θέλατε να κάνετε επανεκκίνηση τώρα;
UninstallDataCorrupted=Το "%1" αρχείο είναι κατεστραμμένο. Δεν ήταν δυνατή η απεγκατάσταση

; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Κατάργηση Κοινόχρηστου Αρχείου;
ConfirmDeleteSharedFile2=Το σύστημα υποδεικνύει ότι το ακόλουθο κοινόχρηστο αρχείο δεν χρησιμοποιείται πλέον από κανένα πρόγραμμα. Θέλετε να καταργηθεί αυτό το κοινόχρηστο αρχείο;%n%nΕάν κάποιο πρόγραμμα εξακολουθεί να το χρησιμοποιεί, ενδέχεται να μην λειτουργήσει σωστά. Εάν δεν είστε βέβαιοι, επιλέξτε Όχι. Αφήνοντάς το στο σύστημά σας δεν θα προκληθεί καμία ζημιά.
SharedFileNameLabel=Όνομα Αρχείου:
SharedFileLocationLabel=Τοποθεσία:
WizardUninstalling=Πρόοδος Απεγκατάστασης
StatusUninstalling=Απεγκατάσταση %1...

; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Εγκατάσταση του %1.
ShutdownBlockReasonUninstallingApp=Απεγκατάσταση του %1.

; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.

[CustomMessages]

NameAndVersion=%1 έκδοση %2
AdditionalIcons=Επιπλέον συντομεύσεις:
CreateDesktopIcon=Δημιουργία συντόμευσης στην &επιφάνεια εργασίας
CreateQuickLaunchIcon=Δημιουργία συντόμευσης στη &Γρήγορη Εκκίνηση
ProgramOnTheWeb=Το %1 στο Internet
UninstallProgram=Απεγκατάσταση του %1
LaunchProgram=Εκκίνηση του %1
AssocFileExtension=&Συσχέτιση του %1 με την επέκταση αρχείου %2 
AssocingFileExtension=Γίνεται συσχέτιση του %1 με την επέκταση αρχείου "%2"...
AutoStartProgramGroupDescription=Εκκίνηση:
AutoStartProgram=Αυτόματη εκκίνηση του %1
AddonHostProgramNotFound=Το %1 δε βρέθηκε στο φάκελο που επιλέξατε.%n%nΘέλετε να συνεχίσετε παρόλα αυτά;



================================================
FILE: InnoDependencies/Latvian.isl
================================================
; *** Inno Setup version 6.1.0+ Latvian messages ***
;
; Translated from English by Zorgaats, zorgaats@gmail.com
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).

[LangOptions]
LanguageName=Latviski
LanguageID=$0426
LanguageCodePage=1257

[Messages]

; *** Application titles
SetupAppTitle=Uzstādīšana
SetupWindowTitle=Uzstādīšana — %1
UninstallAppTitle=Noņemšana
UninstallAppFullTitle=Noņemšana — %

; *** Misc. common
InformationTitle=Informācija
ConfirmTitle=Apstiprināt
ErrorTitle=Kļūda

; *** SetupLdr messages
SetupLdrStartupMessage=Tiks uzstādīta programma %1 uz Jūsu datora. Vai vēlaties turpināt?
LdrCannotCreateTemp=Neiespējami izveidot pagaidu datnes. Uzstādīšana pārtraukta
LdrCannotExecTemp=Neiespējami palaist datni no pagaidu mapes. Uzstādīšana pārtraukta
HelpTextNote=

; *** Startup error messages
LastErrorMessage=%1.%n%nKļūda %2: %3
SetupFileMissing=Datne %1 nav atrodama uzstādīšanas mapē. Lūdzu izlabojiet kļūdu vai iegādājaties jaunu programmas kopiju.
SetupFileCorrupt=Uzstādīšanas datnes ir bojātas. Lūdzu iegādājaties jaunu programmas kopiju.
SetupFileCorruptOrWrongVer=Uzstādīšanas datnes ir bojātas vai nav savienojamas ar šo uzstādīšanas programmu. Lūdzu izlabojiet kļūdu vai iegādājaties jaunu programmas kopiju.
InvalidParameter=Komandrinda satur nepieļaujamu parametru:%n%n%1
SetupAlreadyRunning=Uzstādīšanas programma jau ir palaista.
WindowsVersionNotSupported=Šī programma neatbalsta Windows versiju, kas uzstādīta uz šī datora.
WindowsServicePackRequired=Programma pieprasa %1 Service Pack %2 vai jaunāku versiju.
NotOnThisPlatform=Šī pragramma nevar darboties uz %1.
OnlyOnThisPlatform=Programmu var palaist tikai uz %1.
OnlyOnTheseArchitectures=Programmu var uzstādīt tikai uz Windows versijas ar šādu procesoru arhitektūru:%n%n%1
WinVersionTooLowError=Programma pieprasa %1 versiju %2 vai jaunāku.
WinVersionTooHighError=Programmu nevar uzstādīt uz %1 versijas %2 vai jaunākas.
AdminPrivilegesRequired=Jums ir jābūt administratoram, lai varētu uzsākt uzstādīšanu.
PowerUserPrivilegesRequired=Jums ir jābūt administratoram vai pilnvarotam lietotājam, lai uzstādītu šo programmu.
SetupAppRunningError=Ir atrasts palaists eksemplārs %1.%n%nLūdzu,aizveriet visas programmas un spiediet "Ok" lai turpinātu vai "Atcelt", lai izietu.
UninstallAppRunningError=Noņemšana ir atklājusi, ka darbojas eksemplārs %1.%n%nLūdzu,aizveriet visas programmas un spiediet "Ok" lai turpinātu vai "Atcelt", lai izietu.

; *** Startup questions
PrivilegesRequiredOverrideTitle=Uzstādīšanas režīma izvēle
PrivilegesRequiredOverrideInstruction=Izvēlieties uzstādīšanas režīmu
PrivilegesRequiredOverrideText1=%1 var tikt uzstādīts vai nu visiem lietotājiem (nepieciešamas administratora privilēģijas), vai arī tikai Jums.
PrivilegesRequiredOverrideText2=%1 var tikt uzstādīts vai nu tikai Jums, vai arī visiem lietotājiem (nepieciešamas administratora privilēģijas).
PrivilegesRequiredOverrideAllUsers=Uzstādīt &visiem lietotājiem
PrivilegesRequiredOverrideAllUsersRecommended=Uzstādīt &visiem lietotājiem (rekomendējas)
PrivilegesRequiredOverrideCurrentUser=Uzstādīt tikai &man
PrivilegesRequiredOverrideCurrentUserRecommended=Uzstādīt tikai &man (rekomendējas)

; *** Misc. errors
ErrorCreatingDir=Nevar izveidot mapi "%1"
ErrorTooManyFilesInDir=Neiespējami izveidot datnes mapē "%1", jo tā satur pārāk daudz datņu

; *** Setup common messages
ExitSetupTitle=Iziet no uzstādīšanas
ExitSetupMessage=Uzstādīšana nav pabeigta. Ja Jūs tagad iziesiet, programma netiks uzstādīta.%n%nLai uzstādītu programmu, Jums būs atkal jāpalaiž uzstādīšana. %n%nIziet no uzstādīšanas?
AboutSetupMenuItem=&Par uzstādīšanu...
AboutSetupTitle=Par uzstādīšanu
AboutSetupMessage=%1, varsija %2%n%3%n%n%1mājas lapa:%n%4
AboutSetupNote=
TranslatorNote=Latvian translation by Zorgaats

; *** Buttons
ButtonBack=< &Atpakaļ
ButtonNext=&Tālāk >
ButtonInstall=&Uzstādīt
ButtonOK=OK
ButtonCancel=Atcelt
ButtonYes=&Jā
ButtonYesToAll=Jā &Visam
ButtonNo=&Nē
ButtonNoToAll=Nē V&isam
ButtonFinish=&Pabeigt
ButtonBrowse=Pā&rlūkot...
ButtonWizardBrowse=Pārlū&kot...
ButtonNewFolder=I&zveidot jaunu mapi

; *** "Select Language" dialog messages
SelectLanguageTitle=Izvēlieties uzstādīšanas valodu
SelectLanguageLabel=Izvēlieties valodu, kurā notiks uzstādīšana:

; *** Common wizard text
ClickNext=Spiediet "Tālāk", lai turpinātu, vai "Atcelt", lai izietu no uzstādīšanas.
BeveledLabel=
BrowseDialogTitle=Pārlūkot mapi
BrowseDialogLabel=Izvēlieties mapi no saraksta, tad spiediet "Ok".
NewFolderName=Jauna mape

; *** "Welcome" wizard page
WelcomeLabel1=Вас приветствует Мастер установки [name]
WelcomeLabel2=Programma uzstādīs [name/ver] uz Jūsu datora.%n%nPirms uzstādīšanas vēlams aizvērt visas programmas.

; *** "Password" wizard page
WizardPassword=Parole
PasswordLabel1=Uzstādīšana ir aizsargāta ar paroli.
PasswordLabel3=Lūdzu, ievadiet paroli, tad spiediet "Tālāk", lai turpinātu. Parole ir reģistrjūtīga.
PasswordEditLabel=&Parole:
IncorrectPassword=Jūsu ievadītā parole ir nepareiza. Lūdzu, mēģiniet vēlreiz.

; *** "License Agreement" wizard page
WizardLicense=Licence
LicenseLabel=Lūdzu, izlasiet sekojošo informāciju, pirms turpināt.
LicenseLabel3=Lūdzu, izlasiet Līgumu. Jums ir jāapstiprina Līgums, lai turpinātu uzstādīšanu.
LicenseAccepted=Es &piekrītu līgumam
LicenseNotAccepted=Es &nepiekrītu līgumam

; *** "Information" wizard pages
WizardInfoBefore=Informācija
InfoBeforeLabel=Lūdzu, izlasiet šo informāciju.
InfoBeforeClickLabel=Kad esat gatavs turpināt uzstādīšanu, spiediet "Tālāk".
WizardInfoAfter=Informācija
InfoAfterLabel=Lūdzu, izlasiet šo informāciju.
InfoAfterClickLabel=Kad esat gatavs turpināt uzstādīšanu, spiediet "Tālāk".

; *** "User Information" wizard page
WizardUserInfo=Lietotāja informācija
UserInfoDesc=Lūdzu, ievadiet datus par sevi.
UserInfoName=&Lietotāja vārds:
UserInfoOrg=&Organizācija:
UserInfoSerial=&Sērijas numurs:
UserInfoNameRequired=Jums ir jāievada savs vārds.

; *** "Select Destination Location" wizard page
WizardSelectDir=Uzstādīšanas mapes izvēle
SelectDirDesc=Kur [name] tiks instalēts?
SelectDirLabel3=[name] datnes tiks instalētas norādītajā mapē.
SelectDirBrowseLabel=Lai turpinātu, spiediet "Tālāk". Ja vēlaties norādīt citu mapi, spiediet "Pārlūkot".
DiskSpaceGBLabel=Ir nepieciešami brīvi [gb] GB uz cietā diska.
DiskSpaceMBLabel=Ir nepieciešami brīvi [mb] MB uz cietā diska.
CannotInstallToNetworkDrive=Uzstādīšana nevar tikt veikta uz tīkla diska.
CannotInstallToUNCPath=Uzstādīšana nevar tikt veikta mapē pa UNC-adresi.
InvalidPath=Jums ir jānorāda pilna uzstādīšanas adrese, piemērs:%n%nC:\APP%n%nvai UNC adrese:%n%n\\server\share
InvalidDrive=Disks vai tīkla adrese, kuru Jūs izvēlējāties, nepastāv vai arī nav pieejams. Lūdzu, izvēlieties citu.
DiskSpaceWarningTitle=Nepietiek vietas uz diska
DiskSpaceWarning=Uzstādīšanai ir nepieciešami vismaz %1 KB brīvas vietas uz diska, bet pieejami ir tikai %2 KB.%n%nVai vēlaties turpināt?
DirNameTooLong=Mapes nosaukums vai adrese ir pārāk gara.
InvalidDirName=Mapes nosaukums nav derīgs.
BadDirName32=Mapes nosaukumā nedrīkst būt šādi simboli: %n%n%1
DirExistsTitle=Mape jau pastāv.
DirExists=Mape:%n%n%1%n%njau pastāv. Vai vienalga vēlaties turpināt?
DirDoesntExistTitle=Mape nepastāv
DirDoesntExist=Mape%n%n%1%n%nnepastāv. Vai vēlaties to izveidot?

; *** "Select Components" wizard page
WizardSelectComponents=Izvēlieties sastāvdaļas
SelectComponentsDesc=Kurus komponentus vēlaties uzstādīt?
SelectComponentsLabel2=Izvēlieties komponentus, kurus vēlaties uzstādīt. Spiediet "Tālāk", lai turpinātu.
FullInstallation=Pilna uzstādīšana
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Kompakta uzstādīšana
CustomInstallation=Izveidot uzstādīšanu
NoUninstallWarningTitle=Komponenti jau pastāv
NoUninstallWarning=Uzstādīšana ir atklājusi, ka šādi komponenti jau ir uzstādīti:%n%n%1%n%nŠo komponentu uzstādīšanas atcelšana neizdzēsīs tos.%n%nVai turpināt?
ComponentSize1=%1 Кб
ComponentSize2=%1 Мб
ComponentsDiskSpaceGBLabel=Pašlaik izvēlētie komponenti aizņem [gb] GB uz cietā diska.
ComponentsDiskSpaceMBLabel=Pašlaik izvēlētie komponenti aizņem [mb] MB uz cietā diska.

; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Papilduzdevumu izvēlne
SelectTasksDesc=Kurus papilduzdevumus vajadzētu veikt?
SelectTasksLabel2=Izvēlieties, kādi papilduzdevumi tiks veikti [name] uzstādīšanas laikā, tad spiediet "Tālāk".

; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Izvēlieties Start Menu mapi
SelectStartMenuFolderDesc=Kur uzstādīšanas programmai vajadzētu likt īsinājumikonas?
SelectStartMenuFolderLabel3=Uzstādīšana izveidos īsinājumikonas Start Menu mapē.
SelectStartMenuFolderBrowseLabel=Lai turpinātu, spiediet "Tālāk". Ja vēlaties norādīt citu mapi, spiediet "Pārlūkot".
MustEnterGroupName=Jums ir jānorāda mape.
GroupNameTooLong=Mapes nosaukums ir pārāk garš.
InvalidGroupName=Mape nav derīga.
BadGroupName=Mapes nosaukums satur kādu no šiem simboliem:%n%n%1
NoProgramGroupCheck2=&Neizveidot Start Menu mapi

; *** "Ready to Install" wizard page
WizardReady=Gatavs uzstādīšanai
ReadyLabel1=Uzstādīšana ir gatava instalēt [name] uz Jūsu datora.
ReadyLabel2a=Spiediet "Uzstādīt", lai sāktu uzstādīšanu, vai spiediet "Atpakaļ", lai izmainītu parametrus.
ReadyLabel2b=Spiediet "Uzstādīt", lai sāktu uzstādīšanu.
ReadyMemoUserInfo=Lietotāja informācija:
ReadyMemoDir=Galamēķis:
ReadyMemoType=Uzstādīšanas tips:
ReadyMemoComponents=Izvēlētie komponenti:
ReadyMemoGroup=Start Menu mape:
ReadyMemoTasks=Papilduzdevumi:

; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Papildus datņu lejupielāde...
ButtonStopDownload=&Pārtraukt ielādi
StopDownload=Jūs tiešām vēlaties pārtraukt lejupielādi?
ErrorDownloadAborted=Lejupielāde pārtraukta
ErrorDownloadFailed=Lejupielādes kļūda: %1 %2
ErrorDownloadSizeFailed=Izmēra kļūda: %1 %2
ErrorFileHash1=Ошибка хэша файла: %1
ErrorFileHash2=Неверный хэш файла: ожидался %1, получен %2
ErrorProgress=Izpildes kļūda: %1 из %2
ErrorFileSize=Kļūdains faila izmērs: tika gaidīts %1, iegūts %2

; *** "Preparing to Install" wizard page
WizardPreparing=Gatavoties uzstādīšanai
PreparingDesc=Uzstādīšana ir gatava instalēt [name] uz Jūsu datora.
PreviousInstallNotCompleted=Uzstādīšana/noņemšana iepriekšējai programmai nav pabeigta. Jums ir jāpārstartē dators, lai pabeigtu uzstādīšanu.%n%nPēc pārstartēšanas palaidiet uzstādīšanu no jauna, lai pabeigtu uzstādīt [name].
CannotContinue=Uzstādīšanu nevar turpināt. Lūdzu, spiediet "Atcelt", lai izietu.
ApplicationsFound=Sekojošas programmas izmanto datnes, kuras uzstādīšanai jāatjauno. Rekomendējas uzstādīšanai atļaut automātiski aizvērt šīs programmas.
ApplicationsFound2=Sekojošas programmas izmanto datnes, kuras uzstādīšanai jāatjauno. Rekomendējas uzstādīšanai atļaut automātiski aizvērt šīs programmas. Kad instalācija būs pabeigta, uzstādīšana mēģinās tās atkal palaist.
CloseApplications=&Automātiski aizvērt šīs programmas
DontCloseApplications=&Neaizvērt šīs programmas
ErrorCloseApplications=Uzstādīšanai neizdevās automātiski aizvērt visas programmas.Pirms uzstādīšanas rekomendējas aizvērt visas programmas, kas izmanto atjaunināmās datnes.
PrepareToInstallNeedsRestart=Uzstādīšanai nepieciešams pārstartēt Jūsu datoru. Kad dators pārstartēsies, lūdzu, palaidiet uzstādīšanas programmu vēlreiz, lai pabeigtu uzstādīšanu [name].%n%nVeikt pārstartēšanu tūlīt?

; *** "Installing" wizard page
WizardInstalling=Uzstādīšana...
InstallingLabel=Lūdzu, uzgaidiet, kamēr [name] tiks uzstādīts uz Jūsu datora.

; *** "Setup Completed" wizard page
FinishedHeadingLabel=Pabeigta [name] uzstādīšana
FinishedLabelNoIcons=Uzstādīšana pabeigta.
FinishedLabel=Programma [name] ir uzstādīta uz Jūsu datora. Programmu var palaist, uzklikšķinot uz izveidotajām ikonām.
ClickFinish=Spiediet "Pabeigt", lai aizvērtu uzstādīšanu.
FinishedRestartLabel=Lai pabeigtu [name] uzstādīšanu, nepieciešams pārstartēt Jūsu datoru. Vai vēlaties to darīt tagad?
FinishedRestartMessage=Lai pabeigtu [name] uzstādīšanu, nepieciešams pārstartēt Jūsu datoru.%n%nVai vēlaties to darīt tagad?
ShowReadmeCheck=Jā, vēlos apskatīt README failu
YesRadio=&Jā, pārstartēt datoru tagad
NoRadio=&Nē, datoru pārstartēšu vēlāk
; used for example as 'Run MyProg.exe'
RunEntryExec=Palaist %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Apskatīt %1

; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Uzstādīšanai ir nepieciešams nākamais disks
SelectDiskLabel2=Lūdzu, ielieciet %1 disku un spiediet "Ok".%n%nJa datne ir atrodama uz šī paša diska kādā citā mapē, norādiet tās atrašanās vietu vai spiediet "Pārlūkot", lai to norādītu.
PathLabel=&Ceļš:
FileNotInDir2=Datne "%1" neatrodas "%2". Lūdzu, ielieciet pareizo disku vai norādiet pareizo mapi.
SelectDirectoryLabel=Lūdzu, norādiet nākamā diska atrašanās vietu.

; *** Installation phase messages
SetupAborted=Uzstādīšana netika pabeigta.%n%nLūdzu, izlabojiet kļūdu un palaidiet uzstādīšanu no jauna.
AbortRetryIgnoreSelectAction=Izvēlieties darbību
AbortRetryIgnoreRetry=Mēģināt no &jauna
AbortRetryIgnoreIgnore=&Ignorēt kļūdu un turpināt
AbortRetryIgnoreCancel=Pārtraukt uzstādīšanu

; *** Installation status messages
StatusClosingApplications=Programmu aizvēršana...
StatusCreateDirs=Mapju izveidošana...
StatusExtractFiles=Datņu kopēšana...
StatusCreateIcons=Īsinājumikonu izveidošana...
StatusCreateIniEntries=Izveido INI ierakstu...
StatusCreateRegistryEntries=Izveido reģistra ierakstus...
StatusRegisterFiles=Reģistrē datnes...
StatusSavingUninstall=Saglabā noņemšanas datus...
StatusRunProgram=Pabeidz uzstādīšanu...
StatusRestartingApplications=Programmu restartēšana...
StatusRollback=Izmaiņu atiestatīšana...

; *** Misc. errors
ErrorInternal2=Iekšēja kļūda: %1
ErrorFunctionFailedNoCode=%1: cieta neveiksmi
ErrorFunctionFailed=%1: cieta neveiksmi; kods %2
ErrorFunctionFailedWithMessage=%1: cieta neveiksmi; kods %2.%n%3
ErrorExecutingProgram=Nespēju palaist failu:%n%1

; *** Registry errors
ErrorRegOpenKey=Kļūda, atverot reģistra atslēgu:%n%1\%2
ErrorRegCreateKey=Kļūda, izveidojot reģistra atslēgu:%n%1\%2
ErrorRegWriteKey=Kļūda, rakstot reģistra atslēgu:%n%1\%2

; *** INI errors
ErrorIniEntry=Kļūda, izveidojot INI ieraksta datni "%1".

; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=I&zlaist šo failu (nerekomendējas)
FileAbortRetryIgnoreIgnoreNotRecommended=&Ignorēt kļūdu un turpināt (nerekomendējas)
SourceIsCorrupted=Datnes avots ir bojāts
SourceDoesntExist=Datnes avots "%1" nepastāv
ExistingFileReadOnly2=Nevar aizstāt esošo failu, tā kā tas ir iezīmēts kā "read only".
ExistingFileReadOnlyRetry=&Dzēst atribūtu "read only" un atkārtot mēģinājumu
ExistingFileReadOnlyKeepExisting=&Paturēt esošo failu
ErrorReadingExistingDest=Kļūda, mēģinot lasīt pastāvošo failu:
FileExistsSelectAction=Izvēlieties darbību
FileExists2=Fails jau pastāv.
FileExistsOverwriteExisting=&Aizstāt esošo failu
FileExistsKeepExisting=&Saglabāt esošo failu
FileExistsOverwriteOrKeepAll=A&tkārtot darbību visiem turpmākajiem konfliktiem
ExistingFileNewerSelectAction=Izvēlieties darbību
ExistingFileNewer2=Esošais fails ir jaunāks nekā uzstādāmais.
ExistingFileNewerOverwriteExisting=&Aizstāt esošo failu
ExistingFileNewerKeepExisting=&Saglabāt esošo failu (rekomendējas)
ExistingFileNewerOverwriteOrKeepAll=A&tkārtot darbību visiem turpmākajiem konfliktiem
ErrorChangingAttr=Radusies kļūda, mēģinot nomainīt datnes īpašību:
ErrorCreatingTemp=Radusies kļūda, izveidojot datni galamērķa mapē:
ErrorReadingSource=Radusies kļūda, nolasot datni:
ErrorCopying=Radusies kļūda, pārkopējot datni:
ErrorReplacingExistingFile=Radusies kļūda, pārrakstot jau pastāvošo datni:
ErrorRestartReplace=Atkārtota aizstāšana cietusi neveiksmi:
ErrorRenamingTemp=Radusies kļūda, nomainot nosaukumu datnei galamērķa mapē:
ErrorRegisterServer=Neiespējami reģistrēt DLL/OCX: %1
ErrorRegSvr32Failed=Kļūda, palaižot RegSvr32, kods %1
ErrorRegisterTypeLib=Neiespējami reģistrēt tipa bibliotēku: %1

; *** Uninstall display name markings
UninstallDisplayNameMark=%1 (%2)
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32 biti
UninstallDisplayNameMark64Bit=64 biti
UninstallDisplayNameMarkAllUsers=Visi lietotāji
UninstallDisplayNameMarkCurrentUser=Tekošais lietotājs

; *** Post-installation errors
ErrorOpeningReadme=Radusies kļūda, atverot README datni.
ErrorRestartingComputer=Uzstādīšana nevar pārstartēt datoru. Lūdzu, izdariet to manuāli.

; *** Uninstaller messages
UninstallNotFound=Datne "%1" nepastāv. Nevar noņemt.
UninstallOpenError=Datni "%1" nevar atvērt. Nevar noņemt
UninstallUnsupportedVer=Noņemšanas datne "%1" nav atpazīstama šai noņemšanas programmai. Nevar noņemt
UninstallUnknownEntry=Nezināms ieraksts (%1) izveidoja sadursmi ar noņemšanu
ConfirmUninstall=Vai esat pārliecināts, ka vēlaties pilnībā noņemt %1 un visus tā komponentus?
UninstallOnlyOnWin64=Noņemšanu var veikt tikai ar 64-bitu Windows.
OnlyAdminCanUninstall=Noņemšanu var veikt tikai lietotājs ar Adminstratora privilēģijām.
UninstallStatusLabel=Lūdzu uzgaidiet, kamēr %1 tiek noņemts no Jūsu datora.
UninstalledAll=%1 tika veiksmīgi noņemts no Jūsu datora.
UninstalledMost=%1 noņemšana pabeigta.%n%nDažus elementus nevarēja noņemt. Tos var noņemt manuāli.
UninstalledAndNeedsRestart=Lai pabeigtu %1 noņemšanu, Jūsu dators jāpārstartē.%n%nVai vēlaties to darīt tagad?
UninstallDataCorrupted="%1" datne ir bojāta. Nevar noņemt

; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Noņemt kopīgo datni?
ConfirmDeleteSharedFile2=Sistēma ir secinājusi, ka šī koplietošanas datne vairs netiks lietota. Vai vēlaties to noņemt?%n%nJa kāda cita programma izmanto šo datni, tad šī programma var strādāt nekorekti. Ja neesat drošs, izvēlieties "Nē". Atstājot šo datni, Jūsu datoram netiks nodarīti nekādi bojājumi.
SharedFileNameLabel=Faila nosaukums:
SharedFileLocationLabel=Atrašanās vieta:
WizardUninstalling=Noņemšanas statuss
StatusUninstalling=Noņem %1...


; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=%1 uzstādīšana.
ShutdownBlockReasonUninstallingApp=%1 noņemšana.

; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.

[CustomMessages]

NameAndVersion=%1, versija %2
AdditionalIcons=Papildu ikonas:
CreateDesktopIcon=Izveidot &darbvisrmas ikonu
CreateQuickLaunchIcon=Izveidot &Quick Launch ikonu
ProgramOnTheWeb=%1 vietne Internetā
UninstallProgram=Noņemt %1
LaunchProgram=Palaist %1
AssocFileExtension=&Apvienot %1 ar %2 faila paplašinājumu
AssocingFileExtension=Apvieno %1 ar %2 faila paplašinājumu...
AutoStartProgramGroupDescription=Automātiskā palaišana:
AutoStartProgram=Automātiski palaist %1
AddonHostProgramNotFound=%1 nav atrasts Jūsu norādītajā mapē.%n%nTomēr turpināt?


================================================
FILE: InnoDependencies/Romanian.isl
================================================
; *** Inno Setup version 5.5.3+ Romanian messages ***
; Translator : Alexandru Bogdan Munteanu (muntealb@gmail.com)
;
; To download user-contributed translations of this file, go to:
;   http://www.jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).

[LangOptions]
; The following three entries are very important. Be sure to read and 
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Rom<00E2>n<0103>
LanguageID=$0418
LanguageCodePage=1250
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8

[Messages]

; *** Application titles
SetupAppTitle=Instalare
SetupWindowTitle=Instalare - %1
UninstallAppTitle=Dezinstalare
UninstallAppFullTitle=Dezinstalare %1

; *** Misc. common
InformationTitle=Informaii
ConfirmTitle=Confirmare
ErrorTitle=Eroare

; *** SetupLdr messages
SetupLdrStartupMessage=Va fi instalat programul %1. Vrei s continui?
LdrCannotCreateTemp=Nu pot crea o fil temporar. Instalare abandonat
LdrCannotExecTemp=Nu pot executa o fil din dosarul temporar. Instalare abandonat

; *** Startup error messages
LastErrorMessage=%1.%n%nEroarea %2: %3
SetupFileMissing=Fila %1 lipsete din dosarul de instalare. Corecteaz problema sau folosete o alt copie a programului.
SetupFileCorrupt=Filele de instalare snt stricate (corupte). Folosete o alt copie a programului.
SetupFileCorruptOrWrongVer=Filele de instalare snt stricate (corupte) sau snt incompatibile cu aceast versiune a Instalatorului. Remediaz problema sau folosete o alt copie a programului.
InvalidParameter=Un parametru invalid a fost trecut ctre linia de comand:%n%n%1
SetupAlreadyRunning=Instalarea ruleaz deja.
WindowsVersionNotSupported=Acest program nu suport versiunea de Windows care ruleaz pe calculatorul tu.
WindowsServicePackRequired=Acest program necesit %1 Service Pack %2 sau mai nou.
NotOnThisPlatform=Acest program nu va rula pe %1.
OnlyOnThisPlatform=Acest program trebuie s ruleze pe %1.
OnlyOnTheseArchitectures=Acest program poate fi instalat doar pe versiuni de Windows proiectate pentru urmtoarele arhitecturi de procesor:%n%n%1
MissingWOW64APIs=Versiunea de Windows pe care o rulezi nu include funcionalitatea cerut de Instalator pentru a realiza o instalare pe 64-bii. Pentru a corecta problema, va trebui s instalezi Service Pack %1.
WinVersionTooLowError=Acest program necesit %1 versiunea %2 sau mai nou.
WinVersionTooHighError=Acest program nu poate fi instalat pe %1 versiunea %2 sau mai nou.
AdminPrivilegesRequired=Trebuie s fii logat ca Administrator pentru instalarea acestui program.
PowerUserPrivilegesRequired=Trebuie s fii logat ca Administrator sau ca Membru al Grupului de Utilizatori Pricepui ("Power Users") pentru a instala acest program.
SetupAppRunningError=Instalatorul a detectat c %1 ruleaz n acest moment.%n%nnchide toate instanele programului respectiv, apoi clicheaz OK pentru a continua sau Anuleaz pentru a abandona instalarea.
UninstallAppRunningError=Dezinstalatorul a detectat c %1 ruleaz n acest moment.%n%nnchide toate instanele programului respectiv, apoi clicheaz OK pentru a continua sau Anuleaz pentru a abandona dezinstalarea.

; *** Misc. errors
ErrorCreatingDir=Instalatorul nu a putut crea dosarul "%1"
ErrorTooManyFilesInDir=Nu pot crea o fil n dosarul "%1" din cauz c are deja prea multe file

; *** Setup common messages
ExitSetupTitle=Abandonarea Instalrii
ExitSetupMessage=Instalarea nu este terminat. Dac o abandonezi acum, programul nu va fi instalat.%n%nPoi s rulezi Instalatorul din nou alt dat pentru a termina instalarea.%n%nAbandonezi Instalarea?
AboutSetupMenuItem=&Despre Instalator...
AboutSetupTitle=Despre Instalator
AboutSetupMessage=%1 versiunea %2%n%3%n%n%1 sit:%n%4
AboutSetupNote=
TranslatorNote=

; *** Buttons
ButtonBack=< na&poi
ButtonNext=&Continu >
ButtonInstall=&Instaleaz
ButtonOK=OK
ButtonCancel=Anuleaz
ButtonYes=&Da
ButtonYesToAll=Da la &Tot
ButtonNo=&Nu
ButtonNoToAll=N&u la Tot
ButtonFinish=&Finalizeaz
ButtonBrowse=&Exploreaz...
ButtonWizardBrowse=Explo&reaz...
ButtonNewFolder=Creea&z Dosar Nou

; *** "Select Language" dialog messages
SelectLanguageTitle=Selectarea Limbii Instalatorului
SelectLanguageLabel=Selecteaz limba folosit pentru instalare:

; *** Common wizard text
ClickNext=Clicheaz pe Continu pentru a avansa cu instalarea sau pe Anuleaz pentru a o abandona.
BeveledLabel=
BrowseDialogTitle=Explorare dup Dosar
BrowseDialogLabel=Selecteaz un dosar din lista de mai jos, apoi clicheaz pe OK.
NewFolderName=Dosar Nou

; *** "Welcome" wizard page
WelcomeLabel1=Bun venit la Instalarea [name]
WelcomeLabel2=Programul [name/ver] va fi instalat pe calculator.%n%nEste recomandat s nchizi toate celelalte aplicaii nainte de a continua.

; *** "Password" wizard page
WizardPassword=Parol
PasswordLabel1=Aceast instalare este protejat prin parol.
PasswordLabel3=Completeaz parola, apoi clicheaz pe Continu pentru a merge mai departe. Tipul literelor din parol (Majuscule/minuscule) este luat n considerare.
PasswordEditLabel=&Parol:
IncorrectPassword=Parola pe care ai introdus-o nu este corect. Rencearc.

; *** "License Agreement" wizard page
WizardLicense=Acord de Liceniere
LicenseLabel=Citete informaiile urmtoare nainte de a continua, snt importante.
LicenseLabel3=Citete urmtorul Acord de Liceniere. Trebuie s accepi termenii acestui acord nainte de a continua instalarea.
LicenseAccepted=&Accept licena
LicenseNotAccepted=&Nu accept licena

; *** "Information" wizard pages
WizardInfoBefore=Informaii
InfoBeforeLabel=Citete informaiile urmtoare nainte de a continua, snt importante.
InfoBeforeClickLabel=Cnd eti gata de a trece la Instalare, clicheaz pe Continu.
WizardInfoAfter=Informaii
InfoAfterLabel=Citete informaiile urmtoare nainte de a continua, snt importante.
InfoAfterClickLabel=Cnd eti gata de a trece la Instalare, clicheaz pe Continu.

; *** "User Information" wizard page
WizardUserInfo=Informaii despre Utilizator
UserInfoDesc=Completeaz informaiile cerute.
UserInfoName=&Utilizator:
UserInfoOrg=&Organizaie:
UserInfoSerial=Numr de &Serie:
UserInfoNameRequired=Trebuie s introduci un nume.

; *** "Select Destination Location" wizard page
WizardSelectDir=Selectarea Locului de Destinaie
SelectDirDesc=Unde vrei s instalezi [name]?
SelectDirLabel3=Instalatorul va pune [name] n dosarul specificat mai jos.
SelectDirBrowseLabel=Pentru a avansa cu instalarea, clicheaz pe Continu. Dac vrei s selectezi un alt dosar, clicheaz pe Exploreaz.
DiskSpaceMBLabel=Este necesar un spaiu liber de stocare de cel puin [mb] MB.
CannotInstallToNetworkDrive=Instalatorul nu poate realiza instalarea pe un dispozitiv de reea.
CannotInstallToUNCPath=Instalatorul nu poate realiza instalarea pe o cale n format UNC.
InvalidPath=Trebuie s introduci o cale complet, inclusiv litera dispozitivului; de exemplu:%n%nC:\APP%n%nsau o cale UNC de forma:%n%n\\server\share
InvalidDrive=Dispozitivul sau partajul UNC pe care l-ai selectat nu exist sau nu este accesibil. Selecteaz altul.
DiskSpaceWarningTitle=Spaiu de Stocare Insuficient
DiskSpaceWarning=Instalarea necesit cel puin %1 KB de spaiu de stocare liber, dar dispozitivul selectat are doar %2 KB liberi.%n%nVrei s continui oricum?
DirNameTooLong=Numele dosarului sau al cii este prea lung.
InvalidDirName=Numele dosarului nu este valid.
BadDirName32=Numele dosarelor nu pot include unul din urmtoarele caractere:%n%n%1
DirExistsTitle=Dosarul Exist
DirExists=Dosarul:%n%n%1%n%nexist deja. Vrei totui s instalezi n acel dosar?
DirDoesntExistTitle=Dosarul Nu Exist
DirDoesntExist=Dosarul:%n%n%1%n%nnu exist. Vrei ca el s fie creat?

; *** "Select Components" wizard page
WizardSelectComponents=Selectarea Componentelor
SelectComponentsDesc=Care dintre componente trebuie instalate?
SelectComponentsLabel2=Selecteaz componentele de instalat; deselecteaz componentele care nu trebuie instalate. Clicheaz pe Continu pentru a merge mai departe.
FullInstallation=Instalare Complet
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Instalare Compact
CustomInstallation=Instalare Personalizat
NoUninstallWarningTitle=Componentele Exist
NoUninstallWarning=Instalatorul a detectat c urmtoarele componente snt deja instalate pe calculator:%n%n%1%n%nDeselectarea lor nu le va dezinstala.%n%nVrei s continui oricum?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceMBLabel=Selecia curent necesit cel puin [mb] MB spaiu de stocare.

; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Selectarea Sarcinilor Suplimentare
SelectTasksDesc=Ce sarcini suplimentare trebuie ndeplinite?
SelectTasksLabel2=Selecteaz sarcinile suplimentare care trebuie ndeplinite n timpul instalrii [name], apoi clicheaz pe Continu.

; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Selectarea Dosarului din Meniul de Start
SelectStartMenuFolderDesc=Unde trebuie s fie plasate scurtturile programului?
SelectStartMenuFolderLabel3=Scurtturile vor fi plasate n dosarul specificat mai jos al Meniului de Start.
SelectStartMenuFolderBrowseLabel=Pentru a avansa cu instalarea, clicheaz pe Continu. Dac vrei s selectezi un alt dosar, clicheaz pe Exploreaz.
MustEnterGroupName=Trebuie s introduci numele dosarului.
GroupNameTooLong=Numele dosarului sau al cii este prea lung.
InvalidGroupName=Numele dosarului nu este valid.
BadGroupName=Numele dosarului nu poate include unul dintre caracterele urmtoarele:%n%n%1
NoProgramGroupCheck2=Nu crea un &dosar n Meniul de Start

; *** "Ready to Install" wizard page
WizardReady=Pregtit de Instalare
ReadyLabel1=Instalatorul e pregtit pentru instalarea [name] pe calculator.
ReadyLabel2a=Clicheaz pe Instaleaz pentru a continua cu instalarea, sau clicheaz pe napoi dac vrei s revezi sau s schimbi setrile.
ReadyLabel2b=Clicheaz pe Instaleaz pentru a continua cu instalarea.
ReadyMemoUserInfo=Info Utilizator:
ReadyMemoDir=Loc de Destinaie:
ReadyMemoType=Tip de Instalare:
ReadyMemoComponents=Componente Selectate:
ReadyMemoGroup=Dosarul Meniului de Start:
ReadyMemoTasks=Sarcini Suplimentare:

; *** "Preparing to Install" wizard page
WizardPreparing=Pregtire pentru Instalare
PreparingDesc=Instalatorul pregtete instalarea [name] pe calculator.
PreviousInstallNotCompleted=Instalarea/dezinstalarea anterioar a unui program nu a fost terminat. Va trebui s reporneti calculatorul pentru a termina operaia precedent.%n%nDup repornirea calculatorului, ruleaz Instalatorul din nou pentru a realiza instalarea [name].
CannotContinue=Instalarea nu poate continua. Clicheaz pe Anuleaz pentru a o nchide.
ApplicationsFound=Aplicaiile urmtoare folosesc file care trebuie actualizate de ctre Instalator. Este recomandat s permii Instalatorului s nchid automat aplicaiile respective.
ApplicationsFound2=Aplicaiile urmtoare folosesc file care trebuie actualizate de ctre Instalator. Este recomandat s permii Instalatorului s nchid automat aplicaiile respective. Dup ce instalarea e terminat, Instalatorul va ncerca s reporneasc aplicaiile.
CloseApplications=nchide &automat aplicaiile
DontCloseApplications=Nu nchi&de aplicaiile
ErrorCloseApplications=Instalatorul nu a putut nchide automat toate aplicaiile. nainte de a continua, e recomandat s nchizi manual toate aplicaiile care folosesc file ce trebuie actualizate de Instalator.

; *** "Installing" wizard page
WizardInstalling=Instalare n Desfurare
InstallingLabel=Ateapt s se termine instalarea [name] pe calculator.

; *** "Setup Completed" wizard page
FinishedHeadingLabel=Finalizarea Instalrii [name]
FinishedLabelNoIcons=Instalarea [name] pe calculator a fost terminat.
FinishedLabel=Instalarea [name] pe calculator a fost terminat. Aplicaia poate fi lansat prin clicarea pe icoanele instalate.
ClickFinish=Clicheaz pe Finalizeaz pentru a prsi Instalatorul.
FinishedRestartLabel=Pentru a termina instalarea [name], trebuie repornit calculatorul. Vrei s fie repornit acum?
FinishedRestartMessage=Pentru a termina instalarea [name], trebuie repornit calculatorul.%n%nVrei s fie repornit acum?
ShowReadmeCheck=Da, vreau s vd fila de informare (README)
YesRadio=&Da, repornete calculatorul acum
NoRadio=&Nu, voi reporni eu calculatorul mai trziu
; used for example as 'Run MyProg.exe'
RunEntryExec=Ruleaz %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Vezi %1

; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Instalatorul Necesit Discul Urmtor
SelectDiskLabel2=Introdu Discul %1 i clicheaz pe OK.%n%nDac filele de pe acest disc pot fi gsite ntr-un alt dosar dect cel afiat mai jos, introdu calea corect sau clicheaz pe Exploreaz.
PathLabel=&Cale:
FileNotInDir2=Fila "%1" nu poate fi gsit n "%2". Introdu discul corect sau selecteaz alt dosar.
SelectDirectoryLabel=Specific locul discului urmtor.

; *** Installation phase messages
SetupAborted=Instalarea nu a fost terminat.%n%nCorecteaz problema i apoi ruleaz Instalarea din nou.
EntryAbortRetryIgnore=Clicheaz pe Rencearc pentru a ncerca din nou, pe Ignor pentru a continua oricum, sau pe Abandoneaz pentru a anula instalarea.

; *** Installation status messages
StatusClosingApplications=nchid aplicaiile...
StatusCreateDirs=Creez dosarele...
StatusExtractFiles=Extrag filele...
StatusCreateIcons=Creez scurtturile...
StatusCreateIniEntries=Creez intrrile INI...
StatusCreateRegistryEntries=Creez intrrile n registru...
StatusRegisterFiles=nregistrez filele...
StatusSavingUninstall=Salvez informaiile de dezinstalare...
StatusRunProgram=Finalizez instalarea...
StatusRestartingApplications=Repornesc aplicaiile...
StatusRollback=Rentorc la starea iniial, prin anularea modificrilor fcute...

; *** Misc. errors
ErrorInternal2=Eroare Intern: %1
ErrorFunctionFailedNoCode=%1 a euat
ErrorFunctionFailed=%1 a euat; cod %2
ErrorFunctionFailedWithMessage=%1 a euat; cod %2.%n%3
ErrorExecutingProgram=Nu pot executa fila:%n%1

; *** Registry errors
ErrorRegOpenKey=Eroare la deschiderea cheii de registru:%n%1\%2
ErrorRegCreateKey=Eroare la crearea cheii de registru:%n%1\%2
ErrorRegWriteKey=Eroare la scrierea n cheia de registru:%n%1\%2

; *** INI errors
ErrorIniEntry=Eroare la crearea intrrii INI n fiierul "%1".

; *** File copying errors
FileAbortRetryIgnore=Clicheaz pe Rencearc pentru a ncerca din nou, pe Ignor pentru a sri aceast fil (nerecomandat), sau pe Abandoneaz pentru a anula instalarea.
FileAbortRetryIgnore2=Clicheaz pe Rencearc pentru a ncerca din nou, pe Ignor pentru a continua oricum (nerecomandat), sau pe Abandoneaz pentru a anula instalarea.
SourceIsCorrupted=Fila surs este stricat (corupt)
SourceDoesntExist=Fila surs "%1" nu exist
ExistingFileReadOnly=Fila deja existent este marcat doar-citire.%n%nClicheaz pe Rencearc pentru a nltura atributul doar-citire i a ncerca din nou, pe Ignor pentru a sri aceast fil, sau pe Abandoneaz pentru a anula instalarea.
ErrorReadingExistingDest=A aprut o eroare n timpul citirii filei deja existente:
FileExists=Fila exist deja.%n%Vrei ca ea s fie suprascris de Instalator?
ExistingFileNewer=Fila deja existent este mai nou dect cea care trebuie instalat. Este recomandat s-o pstrezi pe cea existent.%n%nVrei s pstrezi fila deja existent?
ErrorChangingAttr=A aprut o eroare n timpul schimbrii atributelor filei deja existente:
ErrorCreatingTemp=A aprut o eroare n timpul crerii filei n dosarul de destinaie:
ErrorReadingSource=A aprut o eroare n timpul citirii filei surs:
ErrorCopying=A aprut o eroare n timpul copierii filei:
ErrorReplacingExistingFile=A aprut o eroare n timpul nlocuirii filei deja existente:
ErrorRestartReplace=Repornirea/nlocuirea a euat:
ErrorRenamingTemp=A aprut o eroare n timpul renumirii unei file din dosarul de destinaie:
ErrorRegisterServer=Nu pot nregistra DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 a euat, avnd codul de ieire %1
ErrorRegisterTypeLib=Nu pot nregistra biblioteca de tipuri: %1

; *** Post-installation errors
ErrorOpeningReadme=A aprut o eroare la deschiderea filei de informare (README).
ErrorRestartingComputer=Instalatorul nu a putut reporni calculatorul. Va trebui s-l reporneti manual.

; *** Uninstaller messages
UninstallNotFound=Fila "%1" nu exist. Dezinstalarea nu poate fi fcut.
UninstallOpenError=Fila "%1" nu poate fi deschis. Dezinstalarea nu poate fi fcut
UninstallUnsupportedVer=Fila "%1" ce conine jurnalul de dezinstalare este ntr-un format nerecunoscut de aceast versiune a dezinstalatorului. Dezinstalarea nu poate fi fcut
UninstallUnknownEntry=A fost ntlnit o intrare necunoscut (%1) n jurnalul de dezinstalare
ConfirmUninstall=Sigur vrei s nlturi complet %1 i componentele sale?
UninstallOnlyOnWin64=Aceast instalare poate fi dezinstalat doar pe un sistem Windows 64-bii.
OnlyAdminCanUninstall=Aceast instalare poate fi dezinstalat doar de ctre un utilizator cu drepturi de Administrator.
UninstallStatusLabel=Ateapt ca %1 s fie nlturat de pe calculator.
UninstalledAll=%1 a fost nlturat cu succes de pe calculator.
UninstalledMost=Dezinstalare complet a %1.%n%nAnumite elemente nu au putut fi nlturate. Acestea pot fi nlturate manual.
UninstalledAndNeedsRestart=Pentru a termina dezinstalarea %1, calculatorul trebuie repornit.%n%nVrei s fie repornit acum?
UninstallDataCorrupted=Fila "%1" este stricat (corupt). Dezinstalarea nu poate fi fcut

; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=terg Fila Partajat?
ConfirmDeleteSharedFile2=Sistemul indic faptul c fila partajat urmtoare pare s nu mai fie folosit de vreun alt program. Vrei ca Dezinstalatorul s tearg aceast fil partajat?%n%nDac totui mai exist programe care folosesc fila i ea este tears, acele programe ar putea s funcioneze greit. Dac nu eti sigur, alege Nu. Lsarea filei n sistem nu va produce nici o neplcere.
SharedFileNameLabel=Nume Fil:
SharedFileLocationLabel=Loc:
WizardUninstalling=Starea Dezinstalrii
StatusUninstalling=Dezinstalez %1...

; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Instalez %1.
ShutdownBlockReasonUninstallingApp=Dezinstalez %1.

; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.

[CustomMessages]

NameAndVersion=%1 versiunea %2
AdditionalIcons=Icoane suplimentare:
CreateDesktopIcon=Creeaz o icoan pe &Birou ("Desktop")
CreateQuickLaunchIcon=Creeaz o icoan n Bara de &Lansare Rapid ("Quick Launch")
ProgramOnTheWeb=%1 pe internet
UninstallProgram=Dezinstaleaz %1
LaunchProgram=Lanseaz %1
AssocFileExtension=&Asociaz %1 cu extensia de file %2
AssocingFileExtension=Asociez %1 cu extensia de file %2...
AutoStartProgramGroupDescription=Pornire:
AutoStartProgram=Pornete automat %1
AddonHostProgramNotFound=%1 nu poate fi gsit n dosarul selectat.%n%nVrei s continui oricum?


================================================
FILE: InnoDependencies/Vietnamese.isl
================================================
; *** Inno Setup version 6.1.0+ Vietnamese messages ***
; Translated by Vu Khac Hiep (email: vukhachiep@gmail.com)
; To download user-contributed translations of this file, go to:
;   https://jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).

[LangOptions]
; The following three entries are very important. Be sure to read and 
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Vietnamese
LanguageID=$042A
LanguageCodePage=0
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8

[Messages]

; *** Application titles
SetupAppTitle=Cài đặt
SetupWindowTitle=Cài đặt - %1
UninstallAppTitle=Gỡ cài đặt
UninstallAppFullTitle=Gỡ cài đặt - %1

; *** Misc. common
InformationTitle=Thông tin
ConfirmTitle=Xác nhận
ErrorTitle=Lỗi

; *** SetupLdr messages
SetupLdrStartupMessage=Chương trình này sẽ cài đặt %1. Bạn có muốn tiếp tục không?
LdrCannotCreateTemp=Không thể tạo tệp tạm thời. Cài đặt bị hủy bỏ
LdrCannotExecTemp=Không thể chạy tệp trong thư mục tạm thời. Cài đặt bị hủy bỏ
HelpTextNote=

; *** Startup error messages
LastErrorMessage=%1.%n%nLỗi %2: %3
SetupFileMissing=Tệp %1 bị thiếu trong thư mục cài đặt. Hãy sửa lỗi hoặc lấy một bản sao mới của chương trình.
SetupFileCorrupt=Các tệp cài đặt đã bị hỏng. Hãy sửa lỗi hoặc lấy một bản sao của chương trình.
SetupFileCorruptOrWrongVer=Các tệp cài đặt bị hỏng, hoặc không tương thích với bản cài đặt này. Hãy sửa lỗi hoặc lấy một bản sao mới của chương trình.
InvalidParameter=Một thông số không hợp lệ đã được đưa vào dòng lệnh:%n%n%1
SetupAlreadyRunning=Cài đặt này đang chạy.
WindowsVersionNotSupported=Chương trình này không tương thích với phiên bản Windows bạn đang chạy.
WindowsServicePackRequired=Chương trình này yêu cầu %1 Service Pack %2 hoặc mới hơn.
NotOnThisPlatform=Chương trình này sẽ không chạy trên %1.
OnlyOnThisPlatform=Chương trình này phải chạy trên %1.
OnlyOnTheseArchitectures=Chương trình này chỉ có thể được cài đặt trên phiên bản Windows được thiết kế cho các hệ vi xử lí:%n%n%1
WinVersionTooLowError=Chương trình này yêu cầu %1 phiên bản %2 hoặc mới hơn.
WinVersionTooHighError=Chương trình này không thể được cài đặt trên %1 phiên bản %2 hoặc mới hơn.
AdminPrivilegesRequired=Bạn phải được đăng nhập như người quản trị khi cài đặt chương trình này.
PowerUserPrivilegesRequired=Bạn phải được đăng nhập như người quản trị hoặc thành viên trong nhóm Người dùng mạnh khi cài đặt chương trình này.
SetupAppRunningError=Cài đặt phát hiện %1 đang chạy.%n%nHãy đóng tất cả các tiến trình của nó ngay, rồi click OK để tiếp tục, hoặc Hủy để thoát.
UninstallAppRunningError=Gỡ cài đặt phát hiện %1 đang chạy.%n%nHãy đóng tất cả các tiến trình của nó ngay, rồi click OK để tiếp tục, hoặc Hủy để thoát.

; *** Startup questions
PrivilegesRequiredOverrideTitle=Select Setup Install Mode
PrivilegesRequiredOverrideInstruction=Select install mode
PrivilegesRequiredOverrideText1=%1 can be installed for all users (requires administrative privileges), or for you only.
PrivilegesRequiredOverrideText2=%1 can be installed for you only, or for all users (requires administrative privileges).
PrivilegesRequiredOverrideAllUsers=Install for &all users
PrivilegesRequiredOverrideAllUsersRecommended=Install for &all users (recommended)
PrivilegesRequiredOverrideCurrentUser=Install for &me only
PrivilegesRequiredOverrideCurrentUserRecommended=Install for &me only (recommended)

; *** Misc. errors
ErrorCreatingDir=Cài đặt không thể tạo ra thư mục "%1"
ErrorTooManyFilesInDir=Không thể tạo một tệp trong thư mục "%1" vì nó chứa quá nhiều tệp

; *** Setup common messages
ExitSetupTitle=Thoát cài đặt
ExitSetupMessage=Cài đặt chưa hoàn thành. Nếu bạn thoát bây giờ, chương trình sẽ không được cài đặt.%n%nBạn có thể chạy lại Cài đặt một lần khác để hoàn thành cài đặt.%n%nThoát ngay?
AboutSetupMenuItem=&Về trình cài đặt...
AboutSetupTitle=Về trình cài đặt
AboutSetupMessage=%1 phiên bản %2%n%3%n%n%1 trang chủ:%n%4
AboutSetupNote=
TranslatorNote=Giao diện người dùng tiếng Việt bởi: Vũ Khắc Hiệp

; *** Buttons
ButtonBack=< &Trước
ButtonNext=T&iếp >
ButtonInstall=&Cài đặt
ButtonOK=OK
ButtonCancel=Hủy
ButtonYes=&Có
ButtonYesToAll=Có c&ho tất cả
ButtonNo=&Không
ButtonNoToAll=Khô&ng cho tất cả
ButtonFinish=&Hoàn thành
ButtonBrowse=&Duyệt...
ButtonWizardBrowse=D&uyệt...
ButtonNewFolder=Tạ&o thư mục mới

; *** "Select Language" dialog messages
SelectLanguageTitle=Chọn ngôn ngữ cài đặt
SelectLanguageLabel=Chọn ngôn ngữ để sử dụng khi cài đặt:

; *** Common wizard text
ClickNext=Nhấn Tiếp để tiếp tục, hoặc Hủy để thoát cài đặt
BeveledLabel=
BrowseDialogTitle=Tìm thư mục
BrowseDialogLabel=Chọn một thư mục trong danh sách sau rồi ấn OK.
NewFolderName=Tạo thư mục mới

; *** "Welcome" wizard page
WelcomeLabel1=Chào mừng tới trình cài đặt [name]
WelcomeLabel2=Chương trình này sẽ cài [name/ver] trên máy tính của bạn.%n%nChúng tôi khuyên bạn đóng mọi chương trình khác lại trước khi cài đặt.

; *** "Password" wizard page
WizardPassword=Mật khẩu
PasswordLabel1=Việc cài đặt được bảo vệ bằng mật khẩu.
PasswordLabel3=Hãy nhập mật khẩu, rồi nhấn Tiếp để tiếp tục. Mật khẩu phân biệt chữ hoa/thường.
PasswordEditLabel=&Mật khẩu:
IncorrectPassword=Mật khẩu bạn đã nhập không đúng. Hãy thử lại.

; *** "License Agreement" wizard page
WizardLicense=Thỏa thuận cấp phép
LicenseLabel=Hãy đọc những thông tin quan trọng sau trước khi tiếp tục.
LicenseLabel3=Hãy đọc Thỏa thuận cấp phép sau. Bạn phải chấp nhận các điều khoản của cài đặt này trước khi tiếp tục.
LicenseAccepted=Tô&i chấp nhận thỏa thuận
LicenseNotAccepted=Tôi khôn&g chấp nhận thỏa thuận

; *** "Information" wizard pages
WizardInfoBefore=Thông tin
InfoBeforeLabel=Hãy đọc những thông tin quan trọng sau trước khi tiếp tục.
InfoBeforeClickLabel=Khi bạn đã sẵn sàng cài đặt tiếp, click Tiếp.
WizardInfoAfter=Thông tin
InfoAfterLabel=Hãy đọc những thông tin quan trọng sau trước khi tiếp tục.
InfoAfterClickLabel=Khi bạn đã sẵn sàng cài đặt tiếp, click Tiếp.

; *** "User Information" wizard page
WizardUserInfo=Thông tin người dùng
UserInfoDesc=Hãy nhập thông tin của bạn.
UserInfoName=Tên n&gười dùng:
UserInfoOrg=Tổ c&hức:
UserInfoSerial=&Số serial:
UserInfoNameRequired=Bạn phải nhập một tên.

; *** "Select Destination Location" wizard page
WizardSelectDir=Chọn vị trí cài đặt
SelectDirDesc=[name] nên được cài đặt ở đâu?
SelectDirLabel3=[name] sẽ được cài đặt vào thư mục sau:
SelectDirBrowseLabel=Để tiếp tục. nhấn Tiếp. Nếu bạn muốn chọn một thư mục khác, nhấn Duyệt.
DiskSpaceGBLabel=Cần có ít nhất [gb] GB ổ đĩa trống.
DiskSpaceMBLabel=Cần có ít nhất [mb] MB ổ đĩa trống.
CannotInstallToNetworkDrive=Cài đặt không thể cài vào một ổ đĩa mạng.
CannotInstallToUNCPath=Cài đặt không thể cài vào đường dẫn UNC.
InvalidPath=Bạn phải nhập đường dẫn đầy đủ với chữ cái ổ đĩa, ví dụ:%n%nC:\APP%n%nhoặc một đường dẫn UNC theo mẫu:%n%n\\server\share
InvalidDrive=Ổ đĩa hoặc chia sẻ UNC bạn đã chọn không tồn tại hoặc không truy cập được. Hãy chọn cái khác.
DiskSpaceWarningTitle=Không đủ dung lượng đĩa
DiskSpaceWarning=Cài đặt yêu cầu ít nhất %1 KB dung lượng trống để cài đặt, nhưng ổ đĩa đã chọn chỉ còn %2KB.%n%nBạn muốn tiếp tục bằng mọi giá?
DirNameTooLong=Tên thư mục hoặc đường dẫn quá dài.
InvalidDirName=Tên thư mục không hợp lệ.
BadDirName32=Tên thư mục không được chứa các kí tự sau:%n%n%1
DirExistsTitle=Thư mục đã tồn tại
DirExists=Thư mục:%n%n%1%n%nđã tồn tại. Bạn có muốn cài đặt vào thư mục đó bằng mọi giá?
DirDoesntExistTitle=Thư mục không tồn tại
DirDoesntExist=Thư mục:%n%n%1%n%nkhông tồn tại. Bạn có muốn tạo thư mục không?

; *** "Select Components" wizard page
WizardSelectComponents=Chọn các thành phần
SelectComponentsDesc=Những thành phần nào nên được cài đặt?
SelectComponentsLabel2=Chọn các thành phần bạn muốn cài đặt, bỏ chọn các thành phần bạn không muốn. Click Tiếp khi bạn đã sẵn sàng để tiếp tục.
FullInstallation=Cài đặt đầy đủ
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Cài đặt rút gọn
CustomInstallation=Cài đặt tủy chỉnh
NoUninstallWarningTitle=Thành phần đã tồn tại
NoUninstallWarning=Cài đặt phát hiện các thành phần sau đã được cài đặt trên máy tính của bạn:%n%n%1%n%nBỏ chọn những thành phần này sẽ không cài đặt chúng.%n%nBạn có muốn tiếp tục bằng mọi giá?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=Lựa chọn này yêu cầu ít nhất [gb] GB không gian đĩa.
ComponentsDiskSpaceMBLabel=Lựa chọn này yêu cầu ít nhất [mb] MB không gian đĩa.

; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Chọn các tác vụ bổ sung
SelectTasksDesc=Các tác vụ bổ sung nào nên được thực hiện?
SelectTasksLabel2=Chọn các tác vụ bổ sung mà bạn muốn cài đặt thực hiện khi cài đặt [name], rồi nhấn Tiếp.

; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Chọn thư mục bắt đầu
SelectStartMenuFolderDesc=Các lối tắt đến chương trình nên được đặt ở đâu?
SelectStartMenuFolderLabel3=Cài đặt sẽ tạo các lối tắt đến chương trình trong thư mục bắt đầu sau.
SelectStartMenuFolderBrowseLabel=Để tiếp tục, click Tiếp. Nếu bạn muốn chọn thư mục khác, click Duyệt.
MustEnterGroupName=Bạn phải nhập tên một thư mục.
GroupNameTooLong=Tên thư mục hoặc đường dẫn quá dài.
InvalidGroupName=Tên thư mục không hợp lệ.
BadGroupName=Tên thư mục không được chứa các kí tự sau:%n%n%1
NoProgramGroupCheck2=&Không tạo thư mục bắt đầu

; *** "Ready to Install" wizard page
WizardReady=Sẵn sàng cài đặt
ReadyLabel1=[name] đã sẵn sàng để dược cài đặt trên máy tính của bạn.
ReadyLabel2a=Click Cài đặt để tiếp tục, hoặc click Trước nếu bạn muốn xem lại/thay đổi bất kì cài đặt nào.
ReadyLabel2b=Click Cài đặt để tiếp tục cài đặt.
ReadyMemoUserInfo=Thông tin người dùng:
ReadyMemoDir=Vị trí đích:
ReadyMemoType=Kiểu cài đặt:
ReadyMemoComponents=Các thành phần được chọn:
ReadyMemoGroup=Thư mục bắt đầu:
ReadyMemoTasks=Các tác vụ bổ sung:

; *** TDownloadWizardPage wizard page and DownloadTemporaryFile
DownloadingLabel=Đang tải các tập tin bổ sung...
ButtonStopDownload=&Dừng tải xuống
StopDownload=Bạn có chắc chắn muốn dừng tải xuống không?
ErrorDownloadAborted=Tải xuống bị hủy bỏ
ErrorDownloadFailed=Tải xuống không thành công: %1 %2
ErrorDownloadSizeFailed=Getting size failed: %1 %2
ErrorFileHash1=File hash failed: %1
ErrorFileHash2=Invalid file hash: expected %1, found %2
ErrorProgress=Invalid progress: %1 of %2
ErrorFileSize=Invalid file size: expected %1, found %2

; *** "Preparing to Install" wizard page
WizardPreparing=Chuẩn bị cài đặt
PreparingDesc=[name] đang chuẩn bị được cài đặt trên máy tính của bạn.
PreviousInstallNotCompleted=Việc cài đặt/gỡ bỏ một chương trình chưa được hoàn tất trước đó. Bạn sẽ phải khởi động lại máy tính để hoàn tất cài đặt đó.%n%nSau khi chởi động lại, chạy Cài đặt một lần nữa để hoàn tất cài đặt [name].
CannotContinue=Cài đặt không thể tiếp tục. Nhấn Hủy để thoát.
ApplicationsFound=Những chương trình sau đang sử dụng các tệp cần được cập nhật bởi trình cài đặt. Chúng tôi khuyên bạn cho phép Cài đặt đóng các chương trình này.
ApplicationsFound2=Những chương trình sau đang sử dụng các tệp cần được cập nhật bởi trình cài đặt. Chúng tôi khuyên bạn cho phép Cài đặt đóng các chương trình này. Sau khi hoàn thành cài đặt, chúng tôi sẽ thử khởi động lại các chương trình này.
CloseApplications=Tự độn&g đóng các chương trình này
DontCloseApplications=Không đóng các chương t&rình này
ErrorCloseApplications=Cài đặt không thể đóng mọi chương trình. Chúng tôi khuyên bạn đóng các chương trình đang sử dụng các tệp cần được cập nhật bởi Cài đặt một cách thủ công trước khi tiếp tục.
PrepareToInstallNeedsRestart=Setup must restart your computer. After restarting your computer, run Setup again to complete the installation of [name].%n%nWould you like to restart now?

; *** "Installing" wizard page
WizardInstalling=Đang cài đặt
InstallingLabel=Hãy đợi khi [name] đang được cài đặt trên máy tính của bạn.

; *** "Setup Completed" wizard page
FinishedHeadingLabel=Hoàn thành cài đặt [name]
FinishedLabelNoIcons=[name] đã được cài đặt xong trên máy tính của bạn.
FinishedLabel=[name] đã được cài đặt xong trên máy tính của bạn. Chương trình có thể được khởi động bằng cách click vào lối tắt đến chương trình.
ClickFinish=Click Hoàn thành để thoát Cài đặt.
FinishedRestartLabel=Để hoàn thành cài đặt [name], máy tính của bạn cần đươc khởi động lại. Bạn có muốn khởi động lại ngay?
FinishedRestartMessage=Để hoàn thành cài đặt [name], máy tính của bạn cần đươc khởi động lại.%n%nBạn có muốn khởi động lại ngay?
ShowReadmeCheck=Có, tôi muốn xem tệp README
YesRadio=&Có, khởi động lại máy tính ngay
NoRadio=&Không, tôi sẽ khởi động lại máy tính sau
; used for example as 'Run MyProg.exe'
RunEntryExec=Chạy %1
; used for example as 'View Readme.txt'
RunEntryShellExec=Xem %1

; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Cài đặt cần đĩa tiếp theo
SelectDiskLabel2=Hãy chèn đĩa %1 và click OK.%n%nNếu các tệp trên đĩa này có thể được tìm thấy trên một thư mục khác với được hiển thị dưới đây, nhập đường dẫn hoặc click Duyệt.
PathLabel=Đườ&ng dẫn:
FileNotInDir2=Tệp "%1" không thể được xác định trong "%2". Hãy chọn đia xđúng hoặc chọn thư mục khác.
SelectDirectoryLabel=Hãy chọn vị trí của đĩa tiếp theo.

; *** Installation phase messages
SetupAborted=Cài đặt không được hoàn thành.%n%nHãy sửa lỗi và chạy Cài đặt lại.
AbortRetryIgnoreSelectAction=Chọn hành động
AbortRetryIgnoreRetry=&Thử lại
AbortRetryIgnoreIgnore=&Bỏ qua lỗi và tiếp tục
AbortRetryIgnoreCancel=Hủy

; *** Installation status messages
StatusClosingApplications=Đang đóng các chương trình...
StatusCreateDirs=Đang tạo các thư mục...
StatusExtractFiles=Đang giải nén các tệp...
StatusCreateIcons=Đang tạo các lối tắt...
StatusCreateIniEntries=Đang tạo các đầu vào INI...
StatusCreateRegistryEntries=Đang tạo các đầu vào registry...
StatusRegisterFiles=Đang đăng kí các tệp...
StatusSavingUninstall=Đang lưu thông tin gỡ cài đặt...
StatusRunProgram=Đang hoàn thành cài đặt...
StatusRestartingApplications=Đang khởi động lại các chương trình...
StatusRollback=Đang hoàn lại các thay đổi...

; *** Misc. errors
ErrorInternal2=Lỗi nội bộ: %1
ErrorFunctionFailedNoCode=%1 thất bại
ErrorFunctionFailed=%1 thất bại với mã lỗi %2
ErrorFunctionFailedWithMessage=%1 thất bại với mã lỗi %2.%n%3
ErrorExecutingProgram=Không thể chạy tệp:%n%1

; *** Registry errors
ErrorRegOpenKey=Lỗi khi mở registry:%n%1\%2
ErrorRegCreateKey=Lỗi khi tạo registry:%n%1\%2
ErrorRegWriteKey=Lỗi khi viết registry:%n%1\%2

; *** INI errors
ErrorIniEntry=Lỗi tạo đầu vào INI cho tệp "%1".

; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Bỏ qua tệp này (không khuyến nghị)
FileAbortRetryIgnoreIgnoreNotRecommended=&Bỏ qua để tiếp tục bằng mọi giá (không khuyến nghị)
SourceIsCorrupted=Tệp nguồn bị hỏng
SourceDoesntExist=Tệp nguồn "%1" không tồn tại
ExistingFileReadOnly2=Tệp đã tồn tại với đánh dấu chỉ đọc.
ExistingFileReadOnlyRetry=&Xóa thuộc tính chỉ đọc và thử lại
ExistingFileReadOnlyKeepExisting=&Giữ tập tin hiện có
ErrorReadingExistingDest=Một lỗi đã xảy ra khi đọc tệp:
FileExistsSelectAction=Select action
FileExists2=Tệp đã tồn tại.
FileExistsOverwriteExisting=G&hi đè tệp hiện có
FileExistsKeepExisting=&Giữ tệp hiện có
FileExistsOverwriteOrKeepAll=&Do this for the next conflicts
ExistingFileNewerSelectAction=Select action
ExistingFileNewer2=Tệp hiện có mới hơn tệp mà Thiết lập đang cố gắng cài đặt.
ExistingFileNewerOverwriteExisting=&Ghi đè tệp hiện có
ExistingFileNewerKeepExisting=&Giữ tệp hiện có (khuyến nghị)
ExistingFileNewerOverwriteOrKeepAll=&Do this for the next conflicts
ErrorChangingAttr=Một lỗi đã xảy ra khi thay đổi thuộc tính của tệp sau:
ErrorCreatingTemp=Một lỗi đã xảy ra khi tạo một tệp trong thư mục đích:
ErrorReadingSource=Một lỗi đã xảy ra khi đọc tệp nguồn:
ErrorCopying=Một lỗi đã xảy ra khi sao chép tệp:
ErrorReplacingExistingFile=Một lỗi đã xảy ra khi thay thế tệp:
ErrorRestartReplace=Khởi động lại & Thay thế (RestartReplace) thất bại:
ErrorRenamingTemp=Một lỗi đã xảy ra khi đổi tên tệp trong thư mục đích:
ErrorRegisterServer=Không thể đăng kí DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 thất bại với mã thoát %1
ErrorRegisterTypeLib=Không thể đăng kí thư viện kiểu: %1

; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=All users
UninstallDisplayNameMarkCurrentUser=Current user

; *** Post-installation errors
ErrorOpeningReadme=Một lỗi đã xảy ra khi mở tệp README.
ErrorRestartingComputer=Cài đặt không thể khởi động lại máy tính. Hãy làm việc này một cách thủ công.

; *** Uninstaller messages
UninstallNotFound=Tệp "%1" không tồn tại. Không thể gỡ cài đặt.
UninstallOpenError=Tệp "%1" không thể được mở. Không thể gỡ cài đặt
UninstallUnsupportedVer=Tệp nhật kí gỡ cài đặt "%1" có định dạng không thể được xác định bởi phiên bản gỡ cài đặt này. Không thể gỡ cài đặt
UninstallUnknownEntry=Một đầu vào không xác định (%1) đã bị phát hiện trong nhật kí gỡ cài đặt
ConfirmUninstall=Bạn có muốn dỡ bỏ hoàn toàn %1 và mọi thành phần của nó?
UninstallOnlyOnWin64=Cài đặt này chỉ có thể được gỡ bỏ trên Windows 64 bit.
OnlyAdminCanUninstall=Cài đặt này chỉ có thể được gỡ bỏ bằng một người dùng có quyền người quản trị.
UninstallStatusLabel=Hãy đợi khi %1 được gỡ khỏi máy tính của bạn.
UninstalledAll=%1 đã được gỡ bỏ thành công khỏi máy tính của bạn.
UninstalledMost=%1 đã được gỡ bỏ thành công.%n%nMột số thành phần không thể được gỡ bỏ. Hãy làm việc này một cách thủ công.
UninstalledAndNeedsRestart=Để hoàn thành việc gỡ cài đặt %1, bạn phải khởi động lại máy tính.%n%nBạn có muốn khởi động lại ngay?
UninstallDataCorrupted=Tệp "%1" bị hỏng. Không thể gỡ cài đặt

; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Gỡ bỏ tệp được chia sẻ?
ConfirmDeleteSharedFile2=Hệ thống chỉ ra các tệp được chia sẻ sau không được sử dụng bởi chương trình nào. Bạn có muốn gỡ bỏ tệp này?%n%nNếu có một chương trình vẫn sử dụng tệp này mà tệp bị gỡ bỏ, chúng có thể không chạy tốt. Nếu bạn không chắc chắn, chọn Không. Để lại tệp trên hệ thống của bạn sẽ không gây ra tổn hại.
SharedFileNameLabel=Tên tệp:
SharedFileLocationLabel=Vị trí:
WizardUninstalling=Trạng thái gỡ cài đặt
StatusUninstalling=Đang gỡ cài đặt %1...

; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Đang cài đặt %1.
ShutdownBlockReasonUninstallingApp=Đang gỡ cài đặt %1.

; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.

[CustomMessages]

NameAndVersion=%1 phiên bản %2
AdditionalIcons=Các lối tắt bổ sung:
CreateDesktopIcon=Tạo một &lối tắt trên Desktop
CreateQuickLaunchIcon=Tạo một lối tắt &Khởi động nhanh
ProgramOnTheWeb=%1 trên Web
UninstallProgram=Gỡ cài đặt %1
LaunchProgram=Khởi động %1
AssocFileExtension=&Gán %1 với đuôi tệp %2
AssocingFileExtension=Đang gán %1 với đuôi tệp %2...
AutoStartProgramGroupDescription=Khởi động:
AutoStartProgram=Tự động khởi động %1
AddonHostProgramNotFound=%1 không thể được xác định trong thư mục bạn đã chọn.%n%nBạn có muốn tiếp tục bằng mọi giá?


================================================
FILE: InnoDependencies/install_dotnet.iss
================================================
#define DotNetPrettyName "Microsoft .NET Desktop Runtime"
#define DotNetName "Microsoft.WindowsDesktop.App 8"
#define DotNetVersion "8.0.15"
#define DotNetURL "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/8.0.15/windowsdesktop-runtime-8.0.15-win-x64.exe"
#define DotNetExeName "dotnet8.exe"
#define DotNetExeArgs "/install /repair /passive /norestart"

[Code]
var
  NeedsInstall: Boolean;
  Dependency_DownloadPage: TDownloadWizardPage;
  Dependency_Memo: String;

function SplitString(Text: String; Separator: String): TArrayOfString;
var
  i, p: Integer;
  dest: TArrayOfString; 
begin
  i := 0;
  repeat
    SetArrayLength(dest, i + 1);
    p := Pos(Separator, Text);
    if p > 0 then begin
      dest[i] := Copy(Text, 1, p - 1);
      Text := Copy(Text, p + Length(Separator), Length(Text));
      i := i + 1;         
    end else begin
      dest[i] := Text;
      Text := '';
    end;
  until Length(Text)=0;
  Result := dest
end;

function CheckDotNetVersionEqualOrHigher(StringArray: TArrayOfString; DotNetName: String; MinimumVersionString: String): Boolean;
var
  i, p: Integer;
  str, verStr: String;
  strArray: TArrayOfString;
  minVer, ver: Int64;
begin       
  Result := False;
  if StrToVersion(MinimumVersionString, minVer) then begin
    for i := 0 to GetArrayLength(StringArray) - 1 do begin
      str := StringArray[i];
      p := Pos(DotNetName, str);
      if p > 0 then begin
        strArray := SplitString(str, ' ');
        if GetArrayLength(strArray) >= 3 then begin
          verStr := strArray[1]; 
          if StrToVersion(verStr, ver) then begin
            if ComparePackedVersion(minVer, ver) <= 0 then begin
              Result := True;
              break;
            end;
          end;
        end;
      end;
    end;
  end;
end;

function IsDotNetInstalled(DotNetName: string; DotNetVersion: string): Boolean;
var
  cmd, args, fileName, command: string;
  output: AnsiString;
  resultCode: Integer;
begin  
  command := 'dotnet --list-runtimes';
  fileName := ExpandConstant('{tmp}\dotnet.txt');
  cmd := ExpandConstant('{cmd}');
  args := '/C ' + command + ' > "' + fileName + '" 2>&1';

  if Exec(cmd, args, '', SW_HIDE, ewWaitUntilTerminated, resultCode) and (resultCode = 0) then begin
    if LoadStringFromFile(fileName, output) then begin
      if CheckDotNetVersionEqualOrHigher(SplitString(output, #13#10), DotNetName, DotNetVersion) then begin
        Log('"' + DotNetName + '" version "' + DotNetVersion + '" or higher found in output of "' + command + '"');
        Result := True;
      end
      else begin
        Log('"' + DotNetName + '" version "' + DotNetVersion + '" or higher not found in output of "' + command + '"');
        Result := False;
      end;
    end
    else begin
      Log('Failed to read output of "' + command + '"');
      Result := False;
    end;
  end
  else begin
    Log('Failed to execute "' + command + '"');
    Result := False;
  end;
 
  DeleteFile(fileName);
end;

procedure InstallDotNet6DesktopRuntime;
begin
  if not IsDotNetInstalled('{#DotNetName}', '{#DotNetVersion}') then begin 
    NeedsInstall := True;
    Dependency_Memo := Dependency_Memo + #13#10 + '%1' + '{#DotNetPrettyName} {#DotNetVersion}';
  end;
end;

<event('InitializeWizard')>
procedure Dependency_InitializeWizard;
begin
  Dependency_DownloadPage := CreateDownloadPage(SetupMessage(msgWizardPreparing), SetupMessage(msgPreparingDesc), nil);
end;

<event('UpdateReadyMemo')>
function Dependency_UpdateReadyMemo(const Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
begin
  Result := '';
  if MemoUserInfoInfo <> '' then begin
    Result := Result + MemoUserInfoInfo + Newline + NewLine;
  end;
  if MemoDirInfo <> '' then begin
    Result := Result + MemoDirInfo + Newline + NewLine;
  end;
  if MemoTypeInfo <> '' then begin
    Result := Result + MemoTypeInfo + Newline + NewLine;
  end;
  if MemoComponentsInfo <> '' then begin
    Result := Result + MemoComponentsInfo + Newline + NewLine;
  end;
  if MemoGroupInfo <> '' then begin
    Result := Result + MemoGroupInfo + Newline + NewLine;
  end;
  if MemoTasksInfo <> '' then begin
    Result := Result + MemoTasksInfo;
  end;
  if Dependency_Memo <> '' then begin
    if MemoTasksInfo = '' then begin
      Result := Result + SetupMessage(msgReadyMemoTasks);
    end;
    Result := Result + FmtMessage(Dependency_Memo, [Space]);
  end;
end;

<event('PrepareToInstall')>
function Dependency_PrepareToInstall(var NeedsRestart: Boolean): String;
var
  prettyName: String;
  retry, abort: Boolean;
  resultCode: Integer;
begin
  if NeedsInstall then begin
    prettyName := '{#DotNetPrettyName} {#DotNetVersion}'

    Dependency_DownloadPage.Show;
    Dependency_DownloadPage.Clear;
    Dependency_DownloadPage.Add('{#DotNetURL}', '{#DotNetExeName}', '');

    retry := True;
    while retry do begin
      retry := False;
      abort := False;

      try
        Dependency_DownloadPage.Download;
      except
        if Dependency_DownloadPage.AbortedByUser then begin
          abort := True
          end else begin
          case SuppressibleMsgBox(AddPeriod(GetExceptionMessage), mbError, MB_RETRYCANCEL, IDRETRY) of
            IDCANCEL: begin
              abort := True;
            end;
            IDRETRY: begin
              retry := True;
            end;
          end;
        end;
      end;
    end;

    if not abort then begin
      Dependency_DownloadPage.SetText(prettyName, '');
      Dependency_DownloadPage.SetProgress(1, 1);

      while True do begin
          resultCode := 0;
          if ShellExec('', ExpandConstant('{tmp}{\}') + '{#DotNetExeName}', '{#DotNetExeArgs}', '', SW_SHOWNORMAL, ewWaitUntilTerminated, resultCode) then begin
            if (resultCode = 0) then begin
              break;
            end;
          end;

          case SuppressibleMsgBox(FmtMessage(SetupMessage(msgErrorFunctionFailed), [prettyName, IntToStr(ResultCode)]), mbError, MB_RETRYCANCEL, IDRETRY) of
            IDCANCEL: begin
              abort := True;
              break;
            end;
          end;
        end;
    end;

    Dependency_DownloadPage.Hide;
  end;
end;


================================================
FILE: LICENSE
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.


================================================
FILE: LenovoLegionToolkit.CLI/Flags.cs
================================================
using System.Collections.Generic;
using System.Linq;

namespace LenovoLegionToolkit.CLI;

public readonly struct Flags
{
    public bool Silent { get; }
    public string? QuickActionRunName { get; }
    public bool Help { get; }

    public static Flags Create(IEnumerable<string> startupArgs)
    {
        try
        {
            return new(startupArgs);
        }
        catch
        {
            return default;
        }
    }

    private Flags(IEnumerable<string> startupArgs)
    {
        var args = startupArgs.ToArray();

        QuickActionRunName = StringValue(args, "--quickAction") ?? StringValue(args, "-qa");
        Silent = BoolValue(args, "--silent") || BoolValue(args, "-s");
        Help = BoolValue(args, "--help") || BoolValue(args, "-h");
    }

    private static bool BoolValue(IEnumerable<string> values, string key) => values.Contains(key);

    private static string? StringValue(IEnumerable<string> values, string key)
    {
        var value = values.FirstOrDefault(s => s.StartsWith(key));
        return value?.Remove(0, key.Length + 1);
    }
}


================================================
FILE: LenovoLegionToolkit.CLI/IpcClient.cs
================================================
using System;
using System.IO.Pipes;
using System.Threading;
using System.Threading.Tasks;
using LenovoLegionToolkit.CLI.Lib;
using LenovoLegionToolkit.CLI.Lib.Extensions;

namespace LenovoLegionToolkit.CLI;

public static class IpcClient
{
    public static async Task<string> ListQuickActionsAsync()
    {
        var req = new IpcRequest
        {
            Operation = IpcRequest.OperationType.ListQuickActions
        };

        return await SendRequestAsync(req).ConfigureAwait(false)
               ?? throw new IpcException("Missin
Download .txt
gitextract_7y507dhv/

├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1_feature_request.yml
│   │   ├── 2_bug_report.yml
│   │   ├── 3_compatibility_request.yml
│   │   └── config.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── build.yml
│       └── release.yml
├── .gitignore
├── CONTRIBUTING.md
├── CONTRIBUTING_ja-JP.md
├── CONTRIBUTING_zh-hans.md
├── InnoDependencies/
│   ├── Arabic.isl
│   ├── ChineseSimplified.isl
│   ├── ChineseTraditional.isl
│   ├── Greek.isl
│   ├── Latvian.isl
│   ├── Romanian.isl
│   ├── Vietnamese.isl
│   └── install_dotnet.iss
├── LICENSE
├── LenovoLegionToolkit.CLI/
│   ├── Flags.cs
│   ├── IpcClient.cs
│   ├── LenovoLegionToolkit.CLI.csproj
│   └── Program.cs
├── LenovoLegionToolkit.CLI.Lib/
│   ├── Constants.cs
│   ├── Extensions/
│   │   └── PipeStreamExtensions.cs
│   ├── IpcConnectException.cs
│   ├── IpcException.cs
│   ├── IpcRequest.cs
│   ├── IpcResponse.cs
│   └── LenovoLegionToolkit.CLI.Lib.csproj
├── LenovoLegionToolkit.Lib/
│   ├── AutoListeners/
│   │   ├── AbstractAutoListener.cs
│   │   ├── GameAutoListener.cs
│   │   ├── IAutoListener.cs
│   │   ├── InstanceStartedEventAutoAutoListener.cs
│   │   ├── InstanceStoppedEventAutoAutoListener.cs
│   │   ├── ProcessAutoListener.cs
│   │   ├── TimeAutoListener.cs
│   │   ├── UserInactivityAutoListener.cs
│   │   └── WiFiAutoListener.cs
│   ├── Controllers/
│   │   ├── AIController.cs
│   │   ├── DisplayBrightnessController.cs
│   │   ├── GPUController.cs
│   │   ├── GPUOverclockController.cs
│   │   ├── GodMode/
│   │   │   ├── AbstractGodModeController.cs
│   │   │   ├── GodModeController.cs
│   │   │   ├── GodModeControllerV1.cs
│   │   │   ├── GodModeControllerV2.cs
│   │   │   └── IGodModeController.cs
│   │   ├── RGBKeyboardBacklightController.cs
│   │   ├── Sensors/
│   │   │   ├── AbstractSensorsController.cs
│   │   │   ├── ISensorsController.cs
│   │   │   ├── SensorsController.cs
│   │   │   ├── SensorsControllerV1.cs
│   │   │   ├── SensorsControllerV2.cs
│   │   │   └── SensorsControllerV3.cs
│   │   ├── SmartFnLockController.cs
│   │   ├── SpectrumKeyboardBacklightController.cs
│   │   ├── WindowsPowerModeController.cs
│   │   └── WindowsPowerPlanController.cs
│   ├── Enums.cs
│   ├── Extensions/
│   │   ├── AssemblyExtensions.cs
│   │   ├── ContainerBuilderExtensions.cs
│   │   ├── DateTimeExtensions.cs
│   │   ├── DictionaryExtensions.cs
│   │   ├── DisplayExtensions.cs
│   │   ├── DisplayPossibleSettingExtensions.cs
│   │   ├── DisplaySettingExtensions.cs
│   │   ├── EnumExtensions.cs
│   │   ├── EnumerableExtensions.cs
│   │   ├── HttpClientExtensions.cs
│   │   ├── IntExtensions.cs
│   │   ├── ListExtensions.cs
│   │   ├── LogoInfoFormatExtensions.cs
│   │   ├── ManagementObjectSearcherExtensions.cs
│   │   ├── MathExtensions.cs
│   │   ├── OSExtensions.cs
│   │   ├── PInvokeExtensions.cs
│   │   ├── PhyscialGPUExtensions.cs
│   │   ├── ProcessExtensions.cs
│   │   ├── PropertyDataCollectionExtensions.cs
│   │   ├── RGBKeyboardBacklightPresetExtensions.cs
│   │   ├── RegistrationBuilderExtensions.cs
│   │   ├── ServiceControllerExtension.cs
│   │   ├── SpectrumKeyboardBacklightEffectTypeExtensions.cs
│   │   ├── StreamExtensions.cs
│   │   ├── StringExtensions.cs
│   │   ├── TaskExtensions.cs
│   │   ├── TimeExtensions.cs
│   │   ├── UintExtensions.cs
│   │   └── VersionExtensions.cs
│   ├── Features/
│   │   ├── AbstractCapabilityFeature.cs
│   │   ├── AbstractCompositeFeature.cs
│   │   ├── AbstractDriverFeature.cs
│   │   ├── AbstractLenovoLightingFeature.cs
│   │   ├── AbstractUEFIFeature.cs
│   │   ├── AbstractWmiFeature.cs
│   │   ├── AlwaysOnUsbFeature.cs
│   │   ├── BatteryFeature.cs
│   │   ├── BatteryNightChargeFeature.cs
│   │   ├── DpiScaleFeature.cs
│   │   ├── FlipToStart/
│   │   │   ├── FlipToStartCapabilityFeature.cs
│   │   │   ├── FlipToStartFeature.cs
│   │   │   └── FlipToStartUEFIFeature.cs
│   │   ├── FnLockFeature.cs
│   │   ├── HDRFeature.cs
│   │   ├── Hybrid/
│   │   │   ├── GSyncFeature.cs
│   │   │   ├── HybridModeFeature.cs
│   │   │   ├── IGPUModeCapabilityFeature.cs
│   │   │   ├── IGPUModeChangeException.cs
│   │   │   ├── IGPUModeFeature.cs
│   │   │   ├── IGPUModeFeatureFlagsFeature.cs
│   │   │   ├── IGPUModeGamezoneFeature.cs
│   │   │   └── Notify/
│   │   │       ├── AbstractDGPUNotify.cs
│   │   │       ├── DGPUCapabilityNotify.cs
│   │   │       ├── DGPUFeatureFlagsNotify.cs
│   │   │       ├── DGPUGamezoneNotify.cs
│   │   │       ├── DGPUNotify.cs
│   │   │       └── IDGPUNotify.cs
│   │   ├── IFeature.cs
│   │   ├── InstantBoot/
│   │   │   ├── InstantBootCapabilityFeature.cs
│   │   │   ├── InstantBootFeature.cs
│   │   │   └── InstantBootFeatureFlagsFeature.cs
│   │   ├── MicrophoneFeature.cs
│   │   ├── OneLevelWhiteKeyboardBacklightFeature.cs
│   │   ├── OverDrive/
│   │   │   ├── OverDriveCapabilityFeature.cs
│   │   │   ├── OverDriveFeature.cs
│   │   │   └── OverDriveGameZoneFeature.cs
│   │   ├── PanelLogo/
│   │   │   ├── PanelLogoBacklightFeature.cs
│   │   │   ├── PanelLogoLenovoLightingBacklightFeature.cs
│   │   │   └── PanelLogoSpectrumBacklightFeature.cs
│   │   ├── PortsBacklightFeature.cs
│   │   ├── PowerModeFeature.cs
│   │   ├── RefreshRateFeature.cs
│   │   ├── ResolutionFeature.cs
│   │   ├── SpeakerFeature.cs
│   │   ├── TouchpadLockFeature.cs
│   │   ├── WhiteKeyboardBacklight/
│   │   │   ├── WhiteKeyboardBacklightFeature.cs
│   │   │   ├── WhiteKeyboardDriverBacklightFeature.cs
│   │   │   └── WhiteKeyboardLenovoLightingBacklightFeature.cs
│   │   └── WinKeyFeature.cs
│   ├── GameDetection/
│   │   ├── EffectiveGameModeDetector.cs
│   │   └── GameConfigStoreDetector.cs
│   ├── GlobalSuppressions.cs
│   ├── HttpClientFactory.cs
│   ├── Integrations/
│   │   └── HWiNFOIntegration.cs
│   ├── Interfaces.cs
│   ├── IoCContainer.cs
│   ├── IoCModule.cs
│   ├── LenovoLegionToolkit.Lib.csproj
│   ├── LenovoLegionToolkit.Lib.csproj.DotSettings
│   ├── Listeners/
│   │   ├── AbstractEventLogListener.cs
│   │   ├── AbstractWMIListener.cs
│   │   ├── DisplayBrightnessListener.cs
│   │   ├── DisplayConfigurationListener.cs
│   │   ├── DriverKeyListener.cs
│   │   ├── IListener.cs
│   │   ├── INotifyingListener.cs
│   │   ├── LightingChangeListener.cs
│   │   ├── NativeWindowsMessageListener.cs
│   │   ├── PowerModeListener.cs
│   │   ├── PowerStateListener.cs
│   │   ├── RGBKeyboardBacklightListener.cs
│   │   ├── SessionLockUnlockListener.cs
│   │   ├── SpecialKeyListener.cs
│   │   ├── SystemThemeListener.cs
│   │   ├── ThermalModeListener.cs
│   │   └── WinKeyListener.cs
│   ├── Messaging/
│   │   ├── Messages/
│   │   │   ├── FeatureStateMessage.cs
│   │   │   ├── IMessage.cs
│   │   │   ├── NotificationMessage.cs
│   │   │   ├── RGBKeyboardBacklightChangedMessage.cs
│   │   │   └── SpectrumBacklightChangedMessage.cs
│   │   └── MessagingCenter.cs
│   ├── Native.cs
│   ├── NativeMethods.json
│   ├── NativeMethods.txt
│   ├── PackageDownloader/
│   │   ├── AbstractPackageDownloader.cs
│   │   ├── Detectors/
│   │   │   ├── Rules/
│   │   │   │   ├── AndPackageRule.cs
│   │   │   │   ├── BiosPackageRule.cs
│   │   │   │   ├── CpuAddressWidthPackageRule.cs
│   │   │   │   ├── DriverPackageRule.cs
│   │   │   │   ├── ExternalDetectionRule.cs
│   │   │   │   ├── IPackageRule.cs
│   │   │   │   ├── NotPackageRule.cs
│   │   │   │   ├── OrPackageRule.cs
│   │   │   │   ├── OsPackageRule.cs
│   │   │   │   ├── PnPIdPackageRule.cs
│   │   │   │   ├── RegistryKeyPackageRule.cs
│   │   │   │   ├── RegistryKeyValuePackageRule.cs
│   │   │   │   └── WindowsBuildVersionPackageRule.cs
│   │   │   └── VantagePackageUpdateDetector.cs
│   │   ├── IPackageDownloader.cs
│   │   ├── PCSupportPackageDownloader.cs
│   │   ├── PackageDownloaderFactory.cs
│   │   ├── UpdateCatalogNotFoundException.cs
│   │   └── VantagePackageDownloader.cs
│   ├── Resources/
│   │   ├── Resource.Designer.cs
│   │   ├── Resource.ar.resx
│   │   ├── Resource.bg.resx
│   │   ├── Resource.bs.resx
│   │   ├── Resource.ca.resx
│   │   ├── Resource.cs.resx
│   │   ├── Resource.de.resx
│   │   ├── Resource.el.resx
│   │   ├── Resource.es.resx
│   │   ├── Resource.fr.resx
│   │   ├── Resource.hu.resx
│   │   ├── Resource.it.resx
│   │   ├── Resource.ja.resx
│   │   ├── Resource.ko.resx
│   │   ├── Resource.lv.resx
│   │   ├── Resource.nl-nl.resx
│   │   ├── Resource.pl.resx
│   │   ├── Resource.pt-br.resx
│   │   ├── Resource.pt.resx
│   │   ├── Resource.resx
│   │   ├── Resource.ro.resx
│   │   ├── Resource.ru.resx
│   │   ├── Resource.sk.resx
│   │   ├── Resource.tr.resx
│   │   ├── Resource.uk.resx
│   │   ├── Resource.uz-latn-uz.resx
│   │   ├── Resource.vi.resx
│   │   ├── Resource.zh-hans.resx
│   │   └── Resource.zh-hant.resx
│   ├── Services/
│   │   └── BatteryDischargeRateMonitorService.cs
│   ├── Settings/
│   │   ├── AbstractSettings.cs
│   │   ├── ApplicationSettings.cs
│   │   ├── BalanceModeSettings.cs
│   │   ├── GPUOverclockSettings.cs
│   │   ├── GodModeSettings.cs
│   │   ├── IntegrationsSettings.cs
│   │   ├── PackageDownloaderSettings.cs
│   │   ├── RGBKeyboardSettings.cs
│   │   ├── SpectrumKeyboardSettings.cs
│   │   ├── SunriseSunsetSettings.cs
│   │   └── UpdateCheckSettings.cs
│   ├── SoftwareDisabler/
│   │   ├── AbstractSoftwareDisabler.cs
│   │   ├── FnKeysDisabler.cs
│   │   ├── LegionZoneDisabler.cs
│   │   └── VantageDisabler.cs
│   ├── Structs.cs
│   ├── System/
│   │   ├── AirplaneMode.cs
│   │   ├── Autorun.cs
│   │   ├── Battery.cs
│   │   ├── BootLogo.cs
│   │   ├── CMD.cs
│   │   ├── Devices.cs
│   │   ├── Displays.cs
│   │   ├── Drivers.cs
│   │   ├── ExternalDisplays.cs
│   │   ├── InternalDisplay.cs
│   │   ├── KnownFolders.cs
│   │   ├── Management/
│   │   │   ├── WMI.LenovoCapabilityData00.cs
│   │   │   ├── WMI.LenovoCapabilityData01.cs
│   │   │   ├── WMI.LenovoCpuMethod.cs
│   │   │   ├── WMI.LenovoDefaultValueInDifferentModeData.cs
│   │   │   ├── WMI.LenovoDiscreteData.cs
│   │   │   ├── WMI.LenovoFanMethod.cs
│   │   │   ├── WMI.LenovoFanTableData.cs
│   │   │   ├── WMI.LenovoGameZoneData.cs
│   │   │   ├── WMI.LenovoGameZoneKeyLockStatusEvent.cs
│   │   │   ├── WMI.LenovoGameZoneLightProfileChangeEvent.cs
│   │   │   ├── WMI.LenovoGameZoneSmartFanModeEvent.cs
│   │   │   ├── WMI.LenovoGameZoneThermalModeEvent.cs
│   │   │   ├── WMI.LenovoGpuMethod.cs
│   │   │   ├── WMI.LenovoIntelligentOPList.cs
│   │   │   ├── WMI.LenovoLightingData.cs
│   │   │   ├── WMI.LenovoLightingEvent.cs
│   │   │   ├── WMI.LenovoLightingMethod.cs
│   │   │   ├── WMI.LenovoOtherMethod.cs
│   │   │   ├── WMI.LenovoUtilityEvent.cs
│   │   │   ├── WMI.Win32.cs
│   │   │   ├── WMI.WmiMonitorBrightnessEvent.cs
│   │   │   ├── WMI.WmiMonitorBrightnessMethods.cs
│   │   │   └── WMI.cs
│   │   ├── NVAPI.cs
│   │   ├── Power.cs
│   │   ├── Registry.cs
│   │   ├── SystemPath.cs
│   │   ├── SystemTheme.cs
│   │   └── WiFi.cs
│   └── Utils/
│       ├── Compatibility.cs
│       ├── Crc32Adler.cs
│       ├── Folders.cs
│       ├── IMainThreadDispatcher.cs
│       ├── LambdaAsyncDisposable.cs
│       ├── LambdaDisposable.cs
│       ├── Log.cs
│       ├── NullSafeHandle.cs
│       ├── RetryHelper.cs
│       ├── SafePerformanceCounter.cs
│       ├── StructSafeHandle.cs
│       ├── SunriseSunset.cs
│       ├── ThreadSafeBool.cs
│       ├── ThreadSafeCounter.cs
│       ├── ThrottleFirstDispatcher.cs
│       ├── ThrottleLastDispatcher.cs
│       ├── TokenManipulator.cs
│       ├── UpdateChecker.cs
│       └── WarrantyChecker.cs
├── LenovoLegionToolkit.Lib.Automation/
│   ├── AutomationContext.cs
│   ├── AutomationEnvironment.cs
│   ├── AutomationProcessor.cs
│   ├── Enums.cs
│   ├── GlobalSuppressions.cs
│   ├── IAutomationEvent.cs
│   ├── IoCModule.cs
│   ├── LenovoLegionToolkit.Lib.Automation.csproj
│   ├── LenovoLegionToolkit.Lib.Automation.csproj.DotSettings
│   ├── Pipeline/
│   │   ├── AutomationPipeline.cs
│   │   └── Triggers/
│   │       ├── ACAdapterConnectedAutomationPipelineTrigger.cs
│   │       ├── ACAdapterDisconnectedAutomationPipelineTrigger.cs
│   │       ├── AndAutomationPipelineTrigger.cs
│   │       ├── DeviceConnectedAutomationPipelineTrigger.cs
│   │       ├── DeviceDisconnectedAutomationPipelineTrigger.cs
│   │       ├── DisplayOffAutomationPipelineTrigger.cs
│   │       ├── DisplayOnAutomationPipelineTrigger.cs
│   │       ├── ExternalDisplayConnectedAutomationPipelineTrigger.cs
│   │       ├── ExternalDisplayDisconnectedAutomationPipelineTrigger.cs
│   │       ├── GamesAreRunningAutomationPipelineTrigger.cs
│   │       ├── GamesStopAutomationPipelineTrigger.cs
│   │       ├── GodModePresetChangedAutomationPipelineTrigger.cs
│   │       ├── HDROffAutomationPipelineTrigger.cs
│   │       ├── HDROnAutomationPipelineTrigger.cs
│   │       ├── IAutomationPipelineTrigger.cs
│   │       ├── LidClosedAutomationPipelineTrigger.cs
│   │       ├── LidOpenedAutomationPipelineTrigger.cs
│   │       ├── LowWattageACAdapterConnectedAutomationPipelineTrigger.cs
│   │       ├── OnResumeAutomationPipelineTrigger.cs
│   │       ├── OnStartupAutomationPipelineTrigger.cs
│   │       ├── PeriodicAutomationPipelineTrigger.cs
│   │       ├── PowerModeAutomationPipelineTrigger.cs
│   │       ├── ProcessesAreRunningAutomationPipelineTrigger.cs
│   │       ├── ProcessesStopRunningAutomationPipelineTrigger.cs
│   │       ├── SessionLockAutomationPipelineTrigger.cs
│   │       ├── SessionUnlockAutomationPipelineTrigger.cs
│   │       ├── TimeAutomationPipelineTrigger.cs
│   │       ├── UserInactivityAutomationPipelineTrigger.cs
│   │       ├── WiFiConnectedAutomationPipelineTrigger.cs
│   │       └── WiFiDisconnectedAutomationPipelineTrigger.cs
│   ├── Resources/
│   │   ├── Resource.Designer.cs
│   │   ├── Resource.ar.resx
│   │   ├── Resource.bg.resx
│   │   ├── Resource.bs.resx
│   │   ├── Resource.ca.resx
│   │   ├── Resource.cs.resx
│   │   ├── Resource.de.resx
│   │   ├── Resource.el.resx
│   │   ├── Resource.es.resx
│   │   ├── Resource.fr.resx
│   │   ├── Resource.hu.resx
│   │   ├── Resource.it.resx
│   │   ├── Resource.ja.resx
│   │   ├── Resource.ko.resx
│   │   ├── Resource.lv.resx
│   │   ├── Resource.nl-nl.resx
│   │   ├── Resource.pl.resx
│   │   ├── Resource.pt-br.resx
│   │   ├── Resource.pt.resx
│   │   ├── Resource.resx
│   │   ├── Resource.ro.resx
│   │   ├── Resource.ru.resx
│   │   ├── Resource.sk.resx
│   │   ├── Resource.tr.resx
│   │   ├── Resource.uk.resx
│   │   ├── Resource.uz-latn-uz.resx
│   │   ├── Resource.vi.resx
│   │   ├── Resource.zh-hans.resx
│   │   └── Resource.zh-hant.resx
│   ├── Steps/
│   │   ├── AbstractFeatureAutomationStep.cs
│   │   ├── AlwaysOnUsbAutomationStep.cs
│   │   ├── BatteryAutomationStep.cs
│   │   ├── BatteryNightChargeAutomationStep.cs
│   │   ├── DeactivateGPUAutomationStep.cs
│   │   ├── DelayAutomationStep.cs
│   │   ├── DisplayBrightnessAutomationStep.cs
│   │   ├── DpiScaleAutomationStep.cs
│   │   ├── FlipToStartAutomationStep.cs
│   │   ├── FnLockAutomationStep.cs
│   │   ├── GodModePresetAutomationStep.cs
│   │   ├── HDRAutomationStep.cs
│   │   ├── HybridModeAutomationStep.cs
│   │   ├── IAutomationStep.cs
│   │   ├── InstantBootAutomationStep.cs
│   │   ├── MacroAutomationStep.cs
│   │   ├── MicrophoneAutomationStep.cs
│   │   ├── NotificationAutomationStep.cs
│   │   ├── OneLevelWhiteKeyboardBacklightAutomationStep.cs
│   │   ├── OverDriveAutomationStep.cs
│   │   ├── OverclockDiscreteGPUAutomationStep.cs
│   │   ├── PanelLogoBacklightAutomationStep.cs
│   │   ├── PlaySoundAutomationStep.cs
│   │   ├── PortsBacklightAutomationStep.cs
│   │   ├── PowerModeAutomationStep.cs
│   │   ├── QuickActionAutomationStep.cs
│   │   ├── RGBKeyboardBacklightAutomationStep.cs
│   │   ├── RefreshRateAutomationStep.cs
│   │   ├── ResolutionAutomationStep.cs
│   │   ├── RunAutomationStep.cs
│   │   ├── SpeakerAutomationStep.cs
│   │   ├── SpectrumKeyboardBacklightBrightnessAutomationStep.cs
│   │   ├── SpectrumKeyboardBacklightImportProfileAutomationStep.cs
│   │   ├── SpectrumKeyboardBacklightProfileAutomationStep.cs
│   │   ├── TouchpadLockAutomationStep.cs
│   │   ├── TurnOffMonitorsAutomationStep.cs
│   │   ├── TurnOffWiFiAutomationStep.cs
│   │   ├── TurnOnWiFiAutomationStep.cs
│   │   ├── WhiteKeyboardBacklightAutomationStep.cs
│   │   └── WinKeyAutomationStep.cs
│   ├── Structs.cs
│   └── Utils/
│       └── AutomationSettings.cs
├── LenovoLegionToolkit.Lib.Macro/
│   ├── Enums.cs
│   ├── IoCModule.cs
│   ├── LenovoLegionToolkit.Lib.Macro.csproj
│   ├── MacroController.cs
│   ├── Resources/
│   │   ├── Resource.Designer.cs
│   │   ├── Resource.ar.resx
│   │   ├── Resource.bg.resx
│   │   ├── Resource.bs.resx
│   │   ├── Resource.cs.resx
│   │   ├── Resource.de.resx
│   │   ├── Resource.el.resx
│   │   ├── Resource.es.resx
│   │   ├── Resource.fr.resx
│   │   ├── Resource.hu.resx
│   │   ├── Resource.it.resx
│   │   ├── Resource.ja.resx
│   │   ├── Resource.ko.resx
│   │   ├── Resource.lv.resx
│   │   ├── Resource.nl-nl.resx
│   │   ├── Resource.pl.resx
│   │   ├── Resource.pt-br.resx
│   │   ├── Resource.pt.resx
│   │   ├── Resource.resx
│   │   ├── Resource.ro.resx
│   │   ├── Resource.ru.resx
│   │   ├── Resource.sk.resx
│   │   ├── Resource.tr.resx
│   │   ├── Resource.uk.resx
│   │   ├── Resource.uz-latn-uz.resx
│   │   ├── Resource.vi.resx
│   │   ├── Resource.zh-hans.resx
│   │   └── Resource.zh-hant.resx
│   ├── Structs.cs
│   └── Utils/
│       ├── MacroPlayer.cs
│       ├── MacroRecorder.cs
│       ├── MacroSettings.cs
│       └── TypeConverters/
│           └── MacroIdentifierTypeConverter.cs
├── LenovoLegionToolkit.SpectrumTester/
│   ├── LenovoLegionToolkit.SpectrumTester.csproj
│   └── Program.cs
├── LenovoLegionToolkit.WPF/
│   ├── App.xaml
│   ├── App.xaml.cs
│   ├── Assets/
│   │   ├── AssetResources.Designer.cs
│   │   └── AssetResources.resx
│   ├── Behaviors/
│   │   └── ProgressBarAnimateBehavior.cs
│   ├── CLI/
│   │   ├── Features/
│   │   │   ├── FeatureRegistration.cs
│   │   │   ├── FeatureRegistry.cs
│   │   │   └── IFeatureRegistration.cs
│   │   └── IpcServer.cs
│   ├── Constants.cs
│   ├── Controls/
│   │   ├── AbstractComboBoxFeatureCardControl.cs
│   │   ├── AbstractRefreshingControl.cs
│   │   ├── AbstractToggleFeatureCardControl.cs
│   │   ├── Automation/
│   │   │   ├── AbstractAutomationStepControl.cs
│   │   │   ├── AbstractComboBoxAutomationStepControl.cs
│   │   │   ├── AutomationPipelineControl.cs
│   │   │   └── Steps/
│   │   │       ├── AlwaysOnUsbAutomationStepControl.cs
│   │   │       ├── BatteryAutomationStepControl.cs
│   │   │       ├── BatteryNightChargeAutomationStepControl.cs
│   │   │       ├── DeactivateGPUAutomationStepControl.cs
│   │   │       ├── DelayAutomationStepControl.cs
│   │   │       ├── DisplayBrightnessAutomationStepControl.cs
│   │   │       ├── DpiScaleAutomationStepControl.cs
│   │   │       ├── FlipToStartAutomationStepControl.cs
│   │   │       ├── FnLockAutomationStepControl.cs
│   │   │       ├── GodModePresetAutomationStepControl.cs
│   │   │       ├── HDRAutomationStepControl.cs
│   │   │       ├── HybridModeAutomationStepControl.cs
│   │   │       ├── InstantBootAutomationStepControl.cs
│   │   │       ├── MacroAutomationStepControl.cs
│   │   │       ├── MicrophoneAutomationStepControl.cs
│   │   │       ├── NotificationAutomationStepControl.cs
│   │   │       ├── OneLevelWhiteKeyboardBacklightAutomationStepControl.cs
│   │   │       ├── OverDriveAutomationStepControl.cs
│   │   │       ├── OverclockDiscreteGPUAutomationStepControl.cs
│   │   │       ├── PanelLogoBacklightAutomationStepControl.cs
│   │   │       ├── PlaySoundAutomationStepControl.cs
│   │   │       ├── PortsBacklightAutomationStepControl.cs
│   │   │       ├── PowerModeAutomationStepControl.cs
│   │   │       ├── QuickActionAutomationStepControl.cs
│   │   │       ├── RGBKeyboardBacklightAutomationStepControl.cs
│   │   │       ├── RefreshRateAutomationStepControl.cs
│   │   │       ├── ResolutionAutomationStepControl.cs
│   │   │       ├── RunAutomationStepControl.cs
│   │   │       ├── SpeakerAutomationStepControl.cs
│   │   │       ├── SpectrumKeyboardBacklightBrightnessAutomationStepControl.cs
│   │   │       ├── SpectrumKeyboardBacklightImportProfileAutomationStepControl.cs
│   │   │       ├── SpectrumKeyboardBacklightProfileAutomationStepControl.cs
│   │   │       ├── TouchpadLockAutomationStepControl.cs
│   │   │       ├── TurnOffMonitorsAutomationStepControl.cs
│   │   │       ├── TurnOffWiFiAutomationStepControl.cs
│   │   │       ├── TurnOnWiFiAutomationStepControl.cs
│   │   │       ├── WhiteKeyboardBacklightAutomationStepControl.cs
│   │   │       └── WinKeyAutomationStepControl.cs
│   │   ├── CardHeaderControl.cs
│   │   ├── ColorPickerControl.xaml
│   │   ├── ColorPickerControl.xaml.cs
│   │   ├── Custom/
│   │   │   ├── Badge.cs
│   │   │   ├── CardAction.cs
│   │   │   ├── CardControl.cs
│   │   │   ├── CardExpander.cs
│   │   │   ├── InfoBar.cs
│   │   │   └── NavigationItem.cs
│   │   ├── Dashboard/
│   │   │   ├── AlwaysOnUSBControl.cs
│   │   │   ├── BatteryModeControl.cs
│   │   │   ├── BatteryNightChargeModeControl.cs
│   │   │   ├── DashboardGroupControl.cs
│   │   │   ├── DiscreteGPUControl.xaml
│   │   │   ├── DiscreteGPUControl.xaml.cs
│   │   │   ├── DpiScaleControl.cs
│   │   │   ├── Edit/
│   │   │   │   ├── EditDashboardGroupControl.cs
│   │   │   │   └── EditDashboardItemControl.cs
│   │   │   ├── FlipToStartControl.cs
│   │   │   ├── FnLockControl.cs
│   │   │   ├── GodMode/
│   │   │   │   ├── GodModeValueControl.xaml
│   │   │   │   └── GodModeValueControl.xaml.cs
│   │   │   ├── HDRControl.cs
│   │   │   ├── HybridModeControlFactory.cs
│   │   │   ├── InstantBootControl.cs
│   │   │   ├── MicrophoneControl.cs
│   │   │   ├── OneLevelWhiteKeyboardBacklightControl.cs
│   │   │   ├── OverDriveControl.cs
│   │   │   ├── OverclockDiscreteGPUControl.cs
│   │   │   ├── PanelLogoBacklightControl.cs
│   │   │   ├── PortsBacklightControl.cs
│   │   │   ├── PowerModeControl.cs
│   │   │   ├── RefreshRateControl.cs
│   │   │   ├── ResolutionControl.cs
│   │   │   ├── SensorsControl.xaml
│   │   │   ├── SensorsControl.xaml.cs
│   │   │   ├── TouchpadLockControl.cs
│   │   │   ├── TurnOffMonitorsControl.xaml
│   │   │   ├── TurnOffMonitorsControl.xaml.cs
│   │   │   ├── WhiteKeyboardBacklightControl.cs
│   │   │   └── WinKeyControl.cs
│   │   ├── FanCurveControl.xaml
│   │   ├── FanCurveControl.xaml.cs
│   │   ├── KeyboardBacklight/
│   │   │   ├── RGB/
│   │   │   │   ├── AbstractComboBoxRGBKeyboardCardControl.cs
│   │   │   │   ├── RGBKeyboardBacklightBrightnessCardControl.cs
│   │   │   │   ├── RGBKeyboardBacklightControl.xaml
│   │   │   │   ├── RGBKeyboardBacklightControl.xaml.cs
│   │   │   │   ├── RGBKeyboardBacklightEffectCardControl.cs
│   │   │   │   └── RGBKeyboardBacklightSpeedCardControl.cs
│   │   │   └── Spectrum/
│   │   │       ├── Device/
│   │   │       │   ├── SpectrumDeviceControl.cs
│   │   │       │   ├── SpectrumDeviceFullAlternativeControl.xaml
│   │   │       │   ├── SpectrumDeviceFullAlternativeControl.xaml.cs
│   │   │       │   ├── SpectrumDeviceFullControl.xaml
│   │   │       │   ├── SpectrumDeviceFullControl.xaml.cs
│   │   │       │   ├── SpectrumDeviceKeyboardAndFrontControl.xaml
│   │   │       │   ├── SpectrumDeviceKeyboardAndFrontControl.xaml.cs
│   │   │       │   ├── SpectrumDeviceKeyboardOnlyControl.xaml
│   │   │       │   ├── SpectrumDeviceKeyboardOnlyControl.xaml.cs
│   │   │       │   ├── SpectrumKeyboardANSIControl.xaml
│   │   │       │   ├── SpectrumKeyboardANSIControl.xaml.cs
│   │   │       │   ├── SpectrumKeyboardControl.cs
│   │   │       │   ├── SpectrumKeyboardISOControl.xaml
│   │   │       │   ├── SpectrumKeyboardISOControl.xaml.cs
│   │   │       │   ├── SpectrumKeyboardJisControl.xaml
│   │   │       │   ├── SpectrumKeyboardJisControl.xaml.cs
│   │   │       │   ├── SpectrumZoneControl.xaml
│   │   │       │   └── SpectrumZoneControl.xaml.cs
│   │   │       ├── SpectrumKeyboardBacklightControl.xaml
│   │   │       ├── SpectrumKeyboardBacklightControl.xaml.cs
│   │   │       ├── SpectrumKeyboardEffectControl.xaml
│   │   │       └── SpectrumKeyboardEffectControl.xaml.cs
│   │   ├── LoadableControl.cs
│   │   ├── Macro/
│   │   │   ├── AbstractMacroEventControl.xaml
│   │   │   ├── AbstractMacroEventControl.xaml.cs
│   │   │   ├── MacroSequenceControl.xaml
│   │   │   ├── MacroSequenceControl.xaml.cs
│   │   │   ├── MultiAbstractMacroEventControl.cs
│   │   │   └── SingleAbstractMacroEventControl.cs
│   │   ├── MultiColorPickerControl.xaml
│   │   ├── MultiColorPickerControl.xaml.cs
│   │   ├── MultiColorPickerItemControl.xaml
│   │   ├── MultiColorPickerItemControl.xaml.cs
│   │   ├── Packages/
│   │   │   ├── PackageControl.xaml
│   │   │   └── PackageControl.xaml.cs
│   │   └── SelectableControl.cs
│   ├── Enums.cs
│   ├── Extensions/
│   │   ├── AutomationPipelineTriggerExtensions.cs
│   │   ├── ClipboardExtensions.cs
│   │   ├── ColorExtensions.cs
│   │   ├── ComboBoxExtensions.cs
│   │   ├── DashboardItemExtensions.cs
│   │   ├── DispatcherExtensions.cs
│   │   ├── ImageSourceExtensions.cs
│   │   ├── ItemCollectionExtensions.cs
│   │   ├── NavigationStoreExtensions.cs
│   │   ├── PowerModeStateExtensions.cs
│   │   ├── RGBColorExtensions.cs
│   │   ├── UIElementExtensions.cs
│   │   ├── UriExtensions.cs
│   │   └── WindowExtensions.cs
│   ├── Flags.cs
│   ├── GlobalSuppressions.cs
│   ├── IoCModule.cs
│   ├── LenovoLegionToolkit.WPF.csproj
│   ├── LenovoLegionToolkit.WPF.csproj.DotSettings
│   ├── Pages/
│   │   ├── AboutPage.xaml
│   │   ├── AboutPage.xaml.cs
│   │   ├── AutomationPage.xaml
│   │   ├── AutomationPage.xaml.cs
│   │   ├── BatteryPage.xaml
│   │   ├── BatteryPage.xaml.cs
│   │   ├── DashboardPage.xaml
│   │   ├── DashboardPage.xaml.cs
│   │   ├── DonatePage.xaml
│   │   ├── DonatePage.xaml.cs
│   │   ├── KeyboardBacklightPage.xaml
│   │   ├── KeyboardBacklightPage.xaml.cs
│   │   ├── MacroPage.xaml
│   │   ├── MacroPage.xaml.cs
│   │   ├── PackagesPage.xaml
│   │   ├── PackagesPage.xaml.cs
│   │   ├── SettingsPage.xaml
│   │   └── SettingsPage.xaml.cs
│   ├── Properties/
│   │   └── launchSettings.json
│   ├── Resources/
│   │   ├── Resource.Designer.cs
│   │   ├── Resource.ar.resx
│   │   ├── Resource.bg.resx
│   │   ├── Resource.bs.resx
│   │   ├── Resource.ca.resx
│   │   ├── Resource.cs.resx
│   │   ├── Resource.de.resx
│   │   ├── Resource.el.resx
│   │   ├── Resource.es.resx
│   │   ├── Resource.fr.resx
│   │   ├── Resource.hu.resx
│   │   ├── Resource.it.resx
│   │   ├── Resource.ja.resx
│   │   ├── Resource.ko.resx
│   │   ├── Resource.lv.resx
│   │   ├── Resource.nl-nl.resx
│   │   ├── Resource.pl.resx
│   │   ├── Resource.pt-br.resx
│   │   ├── Resource.pt.resx
│   │   ├── Resource.resx
│   │   ├── Resource.ro.resx
│   │   ├── Resource.ru.resx
│   │   ├── Resource.sk.resx
│   │   ├── Resource.tr.resx
│   │   ├── Resource.uk.resx
│   │   ├── Resource.uz-latn-uz.resx
│   │   ├── Resource.vi.resx
│   │   ├── Resource.zh-hans.resx
│   │   └── Resource.zh-hant.resx
│   ├── Settings/
│   │   └── DashboardSettings.cs
│   ├── Structs.cs
│   ├── Styles/
│   │   ├── Badge.xaml
│   │   ├── CardAction.xaml
│   │   ├── CardControl.xaml
│   │   ├── CardExpander.xaml
│   │   ├── DynamicScrollBar.xaml
│   │   ├── InfoBar.xaml
│   │   └── NavigationStore.xaml
│   ├── Utils/
│   │   ├── FullscreenHelper.cs
│   │   ├── LocalizationHelper.cs
│   │   ├── MainThreadDispatcher.cs
│   │   ├── MesageBoxHelper.cs
│   │   ├── NotificationsManager.cs
│   │   ├── NotifyIcon.cs
│   │   ├── ScreenHelper.cs
│   │   ├── SmartKeyHelper.cs
│   │   ├── SnackbarHelper.cs
│   │   ├── SpectrumScreenCapture.cs
│   │   ├── ThemeManager.cs
│   │   └── TrayHelper.cs
│   ├── Windows/
│   │   ├── Automation/
│   │   │   ├── AddAutomationStepWindow.xaml
│   │   │   ├── AddAutomationStepWindow.xaml.cs
│   │   │   ├── AutomationPipelineTriggerConfigurationWindow.xaml
│   │   │   ├── AutomationPipelineTriggerConfigurationWindow.xaml.cs
│   │   │   ├── CreateAutomationPipelineWindow.xaml
│   │   │   ├── CreateAutomationPipelineWindow.xaml.cs
│   │   │   └── TabItemContent/
│   │   │       ├── DeviceAutomationPipelineTriggerTabItemContent.xaml
│   │   │       ├── DeviceAutomationPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── GodModePresetPipelineTriggerTabItemContent.xaml
│   │   │       ├── GodModePresetPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── IAutomationPipelineTriggerTabItemContent.cs
│   │   │       ├── PeriodicActionPipelineTriggerTabItemContent.xaml
│   │   │       ├── PeriodicActionPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── PowerModeAutomationPipelineTriggerTabItemContent.xaml
│   │   │       ├── PowerModeAutomationPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── ProcessAutomationPipelineTriggerTabItemControl.xaml
│   │   │       ├── ProcessAutomationPipelineTriggerTabItemControl.xaml.cs
│   │   │       ├── TimeAutomationPipelineTriggerTabItemContent.xaml
│   │   │       ├── TimeAutomationPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── UserInactivityPipelineTriggerTabItemContent.xaml
│   │   │       ├── UserInactivityPipelineTriggerTabItemContent.xaml.cs
│   │   │       ├── WiFiConnectedPipelineTriggerTabItemContent.xaml
│   │   │       └── WiFiConnectedPipelineTriggerTabItemContent.xaml.cs
│   │   ├── BaseWindow.cs
│   │   ├── Dashboard/
│   │   │   ├── AddDashboardItemWindow.xaml
│   │   │   ├── AddDashboardItemWindow.xaml.cs
│   │   │   ├── BalanceModeSettingsWindow.xaml
│   │   │   ├── BalanceModeSettingsWindow.xaml.cs
│   │   │   ├── EditDashboardWindow.xaml
│   │   │   ├── EditDashboardWindow.xaml.cs
│   │   │   ├── ExtendedHybridModeInfoWindow.xaml
│   │   │   ├── ExtendedHybridModeInfoWindow.xaml.cs
│   │   │   ├── GodModeSettingsWindow.xaml
│   │   │   ├── GodModeSettingsWindow.xaml.cs
│   │   │   ├── OverclockDiscreteGPUSettingsWindow.xaml
│   │   │   └── OverclockDiscreteGPUSettingsWindow.xaml.cs
│   │   ├── KeyboardBacklight/
│   │   │   └── Spectrum/
│   │   │       ├── SpectrumKeyboardBacklightEditEffectWindow.xaml
│   │   │       └── SpectrumKeyboardBacklightEditEffectWindow.xaml.cs
│   │   ├── Macro/
│   │   │   └── MacroRecordingWindow.cs
│   │   ├── MainWindow.xaml
│   │   ├── MainWindow.xaml.cs
│   │   ├── Settings/
│   │   │   ├── BootLogoWindow.xaml
│   │   │   ├── BootLogoWindow.xaml.cs
│   │   │   ├── ExcludeRefreshRatesWindow.xaml
│   │   │   ├── ExcludeRefreshRatesWindow.xaml.cs
│   │   │   ├── NotificationsSettingsWindow.xaml
│   │   │   ├── NotificationsSettingsWindow.xaml.cs
│   │   │   ├── SelectSmartKeyPipelinesWindow.xaml
│   │   │   ├── SelectSmartKeyPipelinesWindow.xaml.cs
│   │   │   ├── WindowsPowerModesWindow.xaml
│   │   │   ├── WindowsPowerModesWindow.xaml.cs
│   │   │   ├── WindowsPowerPlansWindow.xaml
│   │   │   └── WindowsPowerPlansWindow.xaml.cs
│   │   └── Utils/
│   │       ├── DeviceInformationWindow.xaml
│   │       ├── DeviceInformationWindow.xaml.cs
│   │       ├── INotificationWindow.cs
│   │       ├── LanguageSelectorWindow.xaml
│   │       ├── LanguageSelectorWindow.xaml.cs
│   │       ├── NativeLayeredWindow.cs
│   │       ├── NotificationAoTWindow.cs
│   │       ├── NotificationWindow.cs
│   │       ├── StatusWindow.xaml
│   │       ├── StatusWindow.xaml.cs
│   │       ├── SymbolRegularPicker.xaml
│   │       ├── SymbolRegularPicker.xaml.cs
│   │       ├── UnsupportedWindow.xaml
│   │       ├── UnsupportedWindow.xaml.cs
│   │       ├── UpdateWindow.xaml
│   │       └── UpdateWindow.xaml.cs
│   └── app.manifest
├── LenovoLegionToolkit.sln
├── LenovoLegionToolkit.sln.DotSettings
├── README.md
├── README_ja-JP.md
├── README_zh-hans.md
├── clean.bat
├── crowdin.yml
├── make.bat
└── make_installer.iss
Download .txt
Showing preview only (353K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3142 symbols across 514 files)

FILE: LenovoLegionToolkit.CLI.Lib/Constants.cs
  class Constants (line 3) | public static class Constants

FILE: LenovoLegionToolkit.CLI.Lib/Extensions/PipeStreamExtensions.cs
  class PipeStreamExtensions (line 10) | public static class PipeStreamExtensions
    method WriteObjectAsync (line 14) | public static async Task WriteObjectAsync<T>(this PipeStream stream, T...
    method ReadObjectAsync (line 24) | public static async Task<T?> ReadObjectAsync<T>(this PipeStream stream...

FILE: LenovoLegionToolkit.CLI.Lib/IpcRequest.cs
  class IpcRequest (line 3) | public class IpcRequest
    type OperationType (line 5) | public enum OperationType

FILE: LenovoLegionToolkit.CLI.Lib/IpcResponse.cs
  class IpcResponse (line 3) | public class IpcResponse

FILE: LenovoLegionToolkit.CLI/Flags.cs
  type Flags (line 6) | public readonly struct Flags
    method Create (line 12) | public static Flags Create(IEnumerable<string> startupArgs)
    method Flags (line 24) | private Flags(IEnumerable<string> startupArgs)
    method BoolValue (line 33) | private static bool BoolValue(IEnumerable<string> values, string key) ...
    method StringValue (line 35) | private static string? StringValue(IEnumerable<string> values, string ...

FILE: LenovoLegionToolkit.CLI/IpcClient.cs
  class IpcClient (line 10) | public static class IpcClient
    method ListQuickActionsAsync (line 12) | public static async Task<string> ListQuickActionsAsync()
    method RunQuickActionAsync (line 23) | public static Task RunQuickActionAsync(string name)
    method ListFeaturesAsync (line 34) | public static async Task<string> ListFeaturesAsync()
    method ListFeatureValuesAsync (line 45) | public static async Task<string> ListFeatureValuesAsync(string name)
    method SetFeatureValueAsync (line 57) | public static Task SetFeatureValueAsync(string name, string value)
    method GetFeatureValueAsync (line 69) | public static async Task<string> GetFeatureValueAsync(string name)
    method GetSpectrumProfileAsync (line 81) | public static async Task<string> GetSpectrumProfileAsync()
    method SetSpectrumProfileAsync (line 92) | public static Task SetSpectrumProfileAsync(string value)
    method GetSpectrumBrightnessAsync (line 103) | public static async Task<string> GetSpectrumBrightnessAsync()
    method SetSpectrumBrightnessAsync (line 114) | public static Task SetSpectrumBrightnessAsync(string value)
    method GetRGBPresetAsync (line 125) | public static async Task<string> GetRGBPresetAsync()
    method SetRGBPresetAsync (line 136) | public static Task SetRGBPresetAsync(string value)
    method SendRequestAsync (line 147) | private static async Task<string?> SendRequestAsync(IpcRequest req)
    method ConnectAsync (line 162) | private static async Task ConnectAsync(NamedPipeClientStream pipe)

FILE: LenovoLegionToolkit.CLI/Program.cs
  class Program (line 12) | public class Program
    method Main (line 14) | public static Task<int> Main(string[] args) => BuildCommandLine().Invo...
    method BuildCommandLine (line 16) | private static Parser BuildCommandLine()
    method BuildQuickActionsCommand (line 34) | private static Command BuildQuickActionsCommand()
    method BuildFeatureCommand (line 70) | private static Command BuildFeatureCommand()
    method BuildGetFeatureCommand (line 108) | private static Command BuildGetFeatureCommand()
    method BuildSetFeatureCommand (line 124) | private static Command BuildSetFeatureCommand()
    method BuildSpectrumCommand (line 162) | private static Command BuildSpectrumCommand()
    method BuildSpectrumProfileCommand (line 174) | private static Command BuildSpectrumProfileCommand()
    method BuildGetSpectrumProfileCommand (line 187) | private static Command BuildGetSpectrumProfileCommand()
    method BuildSetSpectrumProfileCommand (line 200) | private static Command BuildSetSpectrumProfileCommand()
    method BuildSpectrumBrightnessCommand (line 215) | private static Command BuildSpectrumBrightnessCommand()
    method BuildGetSpectrumBrightnessCommand (line 228) | private static Command BuildGetSpectrumBrightnessCommand()
    method BuildSetSpectrumBrightnessCommand (line 241) | private static Command BuildSetSpectrumBrightnessCommand()
    method BuildRGBCommand (line 256) | private static Command BuildRGBCommand()
    method BuildGetRGBCommand (line 269) | private static Command BuildGetRGBCommand()
    method BuildSetRGBCommand (line 282) | private static Command BuildSetRGBCommand()
    method OnException (line 297) | private static void OnException(Exception ex, InvocationContext context)

FILE: LenovoLegionToolkit.Lib.Automation/AutomationContext.cs
  class AutomationContext (line 3) | public class AutomationContext

FILE: LenovoLegionToolkit.Lib.Automation/AutomationEnvironment.cs
  class AutomationEnvironment (line 7) | public class AutomationEnvironment

FILE: LenovoLegionToolkit.Lib.Automation/AutomationProcessor.cs
  class AutomationProcessor (line 17) | public class AutomationProcessor(
    method InitializeAsync (line 43) | public async Task InitializeAsync()
    method SetEnabledAsync (line 62) | public async Task SetEnabledAsync(bool enabled)
    method ReloadPipelinesAsync (line 73) | public async Task ReloadPipelinesAsync(List<AutomationPipeline> pipeli...
    method GetPipelinesAsync (line 97) | public async Task<List<AutomationPipeline>> GetPipelinesAsync()
    method RunOnStartup (line 107) | public void RunOnStartup()
    method RunNowAsync (line 123) | public async Task RunNowAsync(AutomationPipeline pipeline)
    method RunNowAsync (line 155) | public async Task RunNowAsync(Guid pipelineId)
    method RunAsync (line 167) | private async Task RunAsync(IAutomationEvent automationEvent)
    method DisplayConfigurationListener_Changed (line 240) | private async void DisplayConfigurationListener_Changed(object? sender...
    method NativeWindowsMessageListener_Changed (line 246) | private async void NativeWindowsMessageListener_Changed(object? sender...
    method PowerStateListener_Changed (line 252) | private async void PowerStateListener_Changed(object? sender, PowerSta...
    method PowerModeListener_Changed (line 258) | private async void PowerModeListener_Changed(object? sender, PowerMode...
    method GodModeController_PresetChanged (line 264) | private async void GodModeController_PresetChanged(object? sender, Gui...
    method GameAutoListener_Changed (line 270) | private async void GameAutoListener_Changed(object? sender, GameAutoLi...
    method ProcessAutoListener_Changed (line 276) | private async void ProcessAutoListener_Changed(object? sender, Process...
    method SessionLockUnlockListener_Changed (line 282) | private async void SessionLockUnlockListener_Changed(object? sender, S...
    method TimeAutoListener_Changed (line 288) | private async void TimeAutoListener_Changed(object? sender, TimeAutoLi...
    method UserInactivityAutoListener_Changed (line 294) | private async void UserInactivityAutoListener_Changed(object? sender, ...
    method WiFiAutoListener_Changed (line 300) | private async void WiFiAutoListener_Changed(object? sender, WiFiAutoLi...
    method ProcessEvent (line 310) | private async Task ProcessEvent(IAutomationEvent e)
    method UpdateListenersAsync (line 331) | private async Task UpdateListenersAsync()
    method RaisePipelinesChanged (line 401) | private void RaisePipelinesChanged()

FILE: LenovoLegionToolkit.Lib.Automation/Enums.cs
  type DeactivateGPUAutomationStepState (line 6) | public enum DeactivateGPUAutomationStepState
  type MacroAutomationStepState (line 14) | public enum MacroAutomationStepState
  type OverclockDiscreteGPUAutomationStepState (line 22) | public enum OverclockDiscreteGPUAutomationStepState

FILE: LenovoLegionToolkit.Lib.Automation/IAutomationEvent.cs
  type HDRAutomationEvent (line 5) | public interface IAutomationEvent;
  type NativeWindowsMessageEvent (line 12) | public readonly struct NativeWindowsMessageEvent(NativeWindowsMessage me...
  type PowerStateAutomationEvent (line 18) | public struct StartupAutomationEvent : IAutomationEvent;
  type PowerModeAutomationEvent (line 27) | public readonly struct PowerModeAutomationEvent(PowerModeState powerMode...
  type CustomModePresetAutomationEvent (line 32) | public readonly struct CustomModePresetAutomationEvent(Guid id) : IAutom...
  type GameAutomationEvent (line 37) | public readonly struct GameAutomationEvent(bool running) : IAutomationEvent
  type ProcessAutomationEvent (line 42) | public readonly struct ProcessAutomationEvent(ProcessEventInfoType type,...
  type SessionLockUnlockAutomationEvent (line 49) | public readonly struct SessionLockUnlockAutomationEvent(bool locked) : I...
  type TimeAutomationEvent (line 54) | public readonly struct TimeAutomationEvent(Time time, DayOfWeek day) : I...
  type UserInactivityAutomationEvent (line 60) | public readonly struct UserInactivityAutomationEvent(TimeSpan inactivity...
  type WiFiAutomationEvent (line 66) | public readonly struct WiFiAutomationEvent(bool isConnected, string? ssi...

FILE: LenovoLegionToolkit.Lib.Automation/IoCModule.cs
  class IoCModule (line 7) | public class IoCModule : Module
    method Load (line 9) | protected override void Load(ContainerBuilder builder)

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/AutomationPipeline.cs
  class AutomationPipeline (line 14) | public class AutomationPipeline
    method AutomationPipeline (line 42) | public AutomationPipeline() { }
    method AutomationPipeline (line 44) | public AutomationPipeline(string name) => Name = name;
    method AutomationPipeline (line 46) | public AutomationPipeline(IAutomationPipelineTrigger trigger) => Trigg...
    method RunAsync (line 48) | internal async Task RunAsync(List<AutomationPipeline> otherPipelines, ...
    method GetAllSteps (line 95) | private IEnumerable<IAutomationStep> GetAllSteps(List<AutomationPipeli...
    method DeepCopy (line 113) | public AutomationPipeline DeepCopy() => new()

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/ACAdapterConnectedAutomationPipelineTrigger.cs
  class ACAdapterConnectedAutomationPipelineTrigger (line 9) | public class ACAdapterConnectedAutomationPipelineTrigger : IPowerStateAu...
    method IsMatchingEvent (line 14) | public async Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 23) | public async Task<bool> IsMatchingState()
    method UpdateEnvironment (line 29) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 31) | public IAutomationPipelineTrigger DeepCopy() => new ACAdapterConnected...
    method Equals (line 33) | public override bool Equals(object? obj) => obj is ACAdapterConnectedA...
    method GetHashCode (line 35) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/ACAdapterDisconnectedAutomationPipelineTrigger.cs
  class ACAdapterDisconnectedAutomationPipelineTrigger (line 9) | public class ACAdapterDisconnectedAutomationPipelineTrigger : IPowerStat...
    method IsMatchingEvent (line 14) | public async Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 23) | public async Task<bool> IsMatchingState()
    method UpdateEnvironment (line 29) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 31) | public IAutomationPipelineTrigger DeepCopy() => new ACAdapterDisconnec...
    method Equals (line 33) | public override bool Equals(object? obj) => obj is ACAdapterDisconnect...
    method GetHashCode (line 35) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/AndAutomationPipelineTrigger.cs
  class AndAutomationPipelineTrigger (line 8) | [method: JsonConstructor]
    method IsMatchingEvent (line 15) | public async Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 34) | public Task<bool> IsMatchingState() => Task.FromResult(false);
    method UpdateEnvironment (line 36) | public void UpdateEnvironment(AutomationEnvironment environment)
    method DeepCopy (line 42) | public IAutomationPipelineTrigger DeepCopy() => new AndAutomationPipel...

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/DeviceConnectedAutomationPipelineTrigger.cs
  class DeviceConnectedAutomationPipelineTrigger (line 11) | [method: JsonConstructor]
    method IsMatchingEvent (line 19) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 27) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 37) | public void UpdateEnvironment(AutomationEnvironment environment)
    method DeepCopy (line 43) | public IAutomationPipelineTrigger DeepCopy() => new DeviceConnectedAut...
    method DeepCopy (line 45) | public IDeviceAutomationPipelineTrigger DeepCopy(string[] instanceIds)...
    method Equals (line 47) | public override bool Equals(object? obj) => obj is DeviceConnectedAuto...
    method GetHashCode (line 49) | public override int GetHashCode()
    method ToString (line 56) | public override string ToString() => $"{nameof(InstanceIds)}: {string....

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/DeviceDisconnectedAutomationPipelineTrigger.cs
  class DeviceDisconnectedAutomationPipelineTrigger (line 11) | [method: JsonConstructor]
    method IsMatchingEvent (line 19) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 27) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 37) | public void UpdateEnvironment(AutomationEnvironment environment)
    method DeepCopy (line 43) | public IAutomationPipelineTrigger DeepCopy() => new DeviceDisconnected...
    method DeepCopy (line 45) | public IDeviceAutomationPipelineTrigger DeepCopy(string[] instanceIds)...
    method Equals (line 47) | public override bool Equals(object? obj) => obj is DeviceDisconnectedA...
    method GetHashCode (line 49) | public override int GetHashCode()
    method ToString (line 56) | public override string ToString() => $"{nameof(InstanceIds)}: {string....

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/DisplayOffAutomationPipelineTrigger.cs
  class DisplayOffAutomationPipelineTrigger (line 9) | public class DisplayOffAutomationPipelineTrigger : INativeWindowsMessage...
    method IsMatchingEvent (line 14) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 27) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 29) | public IAutomationPipelineTrigger DeepCopy() => new DisplayOffAutomati...
    method Equals (line 31) | public override bool Equals(object? obj) => obj is DisplayOffAutomatio...
    method GetHashCode (line 33) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/DisplayOnAutomationPipelineTrigger.cs
  class DisplayOnAutomationPipelineTrigger (line 9) | public class DisplayOnAutomationPipelineTrigger : INativeWindowsMessageP...
    method IsMatchingEvent (line 14) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 27) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 29) | public IAutomationPipelineTrigger DeepCopy() => new DisplayOnAutomatio...
    method Equals (line 31) | public override bool Equals(object? obj) => obj is DisplayOnAutomation...
    method GetHashCode (line 33) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/ExternalDisplayConnectedAutomationPipelineTrigger.cs
  class ExternalDisplayConnectedAutomationPipelineTrigger (line 9) | public class ExternalDisplayConnectedAutomationPipelineTrigger : INative...
    method IsMatchingEvent (line 14) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 26) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 28) | public IAutomationPipelineTrigger DeepCopy() => new ExternalDisplayCon...
    method Equals (line 30) | public override bool Equals(object? obj) => obj is ExternalDisplayConn...
    method GetHashCode (line 32) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/ExternalDisplayDisconnectedAutomationPipelineTrigger.cs
  class ExternalDisplayDisconnectedAutomationPipelineTrigger (line 9) | public class ExternalDisplayDisconnectedAutomationPipelineTrigger : INat...
    method IsMatchingEvent (line 13) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 19) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 25) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 27) | public IAutomationPipelineTrigger DeepCopy() => new ExternalDisplayDis...
    method Equals (line 29) | public override bool Equals(object? obj) => obj is ExternalDisplayDisc...
    method GetHashCode (line 31) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/GamesAreRunningAutomationPipelineTrigger.cs
  class GamesAreRunningAutomationPipelineTrigger (line 7) | public class GamesAreRunningAutomationPipelineTrigger : IGameAutomationP...
    method IsMatchingEvent (line 11) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 17) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 24) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 26) | public IAutomationPipelineTrigger DeepCopy() => new GamesAreRunningAut...

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/GamesStopAutomationPipelineTrigger.cs
  class GamesStopAutomationPipelineTrigger (line 7) | public class GamesStopAutomationPipelineTrigger : IGameAutomationPipelin...
    method IsMatchingEvent (line 11) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 17) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 24) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 26) | public IAutomationPipelineTrigger DeepCopy() => new GamesStopAutomatio...

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/GodModePresetChangedAutomationPipelineTrigger.cs
  class GodModePresetChangedAutomationPipelineTrigger (line 9) | [method: JsonConstructor]
    method IsMatchingEvent (line 18) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 26) | public async Task<bool> IsMatchingState()
    method UpdateEnvironment (line 32) | public void UpdateEnvironment(AutomationEnvironment environment) { /* ...
    method DeepCopy (line 34) | public IAutomationPipelineTrigger DeepCopy() => new GodModePresetChang...
    method DeepCopy (line 36) | public IGodModePresetChangedAutomationPipelineTrigger DeepCopy(Guid pr...
    method Equals (line 38) | public override bool Equals(object? obj)
    method GetHashCode (line 43) | public override int GetHashCode() => HashCode.Combine(PresetId);
    method ToString (line 45) | public override string ToString() => $"{nameof(PresetId)}: {PresetId}";

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/HDROffAutomationPipelineTrigger.cs
  class HDROffAutomationPipelineTrigger (line 9) | public class HDROffAutomationPipelineTrigger : IHDRPipelineTrigger
    method IsMatchingEvent (line 14) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 27) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 29) | public IAutomationPipelineTrigger DeepCopy() => new HDROffAutomationPi...
    method Equals (line 31) | public override bool Equals(object? obj) => obj is HDROffAutomationPip...
    method GetHashCode (line 33) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/HDROnAutomationPipelineTrigger.cs
  class HDROnAutomationPipelineTrigger (line 9) | public class HDROnAutomationPipelineTrigger : IHDRPipelineTrigger
    method IsMatchingEvent (line 14) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 27) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 29) | public IAutomationPipelineTrigger DeepCopy() => new HDROnAutomationPip...
    method Equals (line 31) | public override bool Equals(object? obj) => obj is HDROnAutomationPipe...
    method GetHashCode (line 33) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/IAutomationPipelineTrigger.cs
  type IAutomationPipelineTrigger (line 7) | public interface IAutomationPipelineTrigger
    method IsMatchingEvent (line 12) | Task<bool> IsMatchingEvent(IAutomationEvent automationEvent);
    method IsMatchingState (line 14) | Task<bool> IsMatchingState();
    method UpdateEnvironment (line 16) | void UpdateEnvironment(AutomationEnvironment environment);
    method DeepCopy (line 18) | IAutomationPipelineTrigger DeepCopy();
  type ICompositeAutomationPipelineTrigger (line 21) | public interface IDisallowDuplicatesAutomationPipelineTrigger : IAutomat...
  type IDeviceAutomationPipelineTrigger (line 28) | public interface IHDRPipelineTrigger : IDisallowDuplicatesAutomationPipe...
    method DeepCopy (line 36) | IDeviceAutomationPipelineTrigger DeepCopy(string[] instanceIds);
  type IPowerModeAutomationPipelineTrigger (line 39) | public interface IOnStartupAutomationPipelineTrigger : IDisallowDuplicat...
    method DeepCopy (line 49) | IPowerModeAutomationPipelineTrigger DeepCopy(PowerModeState powerModeS...
  type IGodModePresetChangedAutomationPipelineTrigger (line 52) | public interface IGodModePresetChangedAutomationPipelineTrigger : IAutom...
    method DeepCopy (line 56) | IGodModePresetChangedAutomationPipelineTrigger DeepCopy(Guid powerMode...
  type IProcessesAutomationPipelineTrigger (line 59) | public interface IGameAutomationPipelineTrigger : IDisallowDuplicatesAut...
    method DeepCopy (line 65) | IProcessesAutomationPipelineTrigger DeepCopy(ProcessInfo[] processes);
  type ITimeAutomationPipelineTrigger (line 68) | public interface ISessionLockPipelineTrigger : IDisallowDuplicatesAutoma...
    method DeepCopy (line 79) | ITimeAutomationPipelineTrigger DeepCopy(bool isSunrise, bool isSunset,...
  type IUserInactivityPipelineTrigger (line 82) | public interface IUserInactivityPipelineTrigger : IAutomationPipelineTri...
    method DeepCopy (line 86) | IUserInactivityPipelineTrigger DeepCopy(TimeSpan timeSpan);
  type IWiFiConnectedPipelineTrigger (line 89) | public interface IWiFiConnectedPipelineTrigger : IAutomationPipelineTrigger
    method DeepCopy (line 93) | IWiFiConnectedPipelineTrigger DeepCopy(string[] ssids);
  type IPeriodicAutomationPipelineTrigger (line 96) | public interface IWiFiDisconnectedPipelineTrigger : IDisallowDuplicatesA...
    method DeepCopy (line 102) | IPeriodicAutomationPipelineTrigger DeepCopy(TimeSpan period);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/LidClosedAutomationPipelineTrigger.cs
  class LidClosedAutomationPipelineTrigger (line 9) | public class LidClosedAutomationPipelineTrigger : INativeWindowsMessageP...
    method IsMatchingEvent (line 14) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 27) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 29) | public IAutomationPipelineTrigger DeepCopy() => new LidClosedAutomatio...
    method Equals (line 31) | public override bool Equals(object? obj) => obj is LidClosedAutomation...
    method GetHashCode (line 33) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/LidOpenedAutomationPipelineTrigger.cs
  class LidOpenedAutomationPipelineTrigger (line 9) | public class LidOpenedAutomationPipelineTrigger : INativeWindowsMessageP...
    method IsMatchingEvent (line 14) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 27) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 29) | public IAutomationPipelineTrigger DeepCopy() => new LidOpenedAutomatio...
    method Equals (line 31) | public override bool Equals(object? obj) => obj is LidOpenedAutomation...
    method GetHashCode (line 33) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/LowWattageACAdapterConnectedAutomationPipelineTrigger.cs
  class LowWattageACAdapterConnectedAutomationPipelineTrigger (line 9) | public class LowWattageACAdapterConnectedAutomationPipelineTrigger : IPo...
    method IsMatchingEvent (line 14) | public async Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 23) | public async Task<bool> IsMatchingState()
    method UpdateEnvironment (line 29) | public void UpdateEnvironment(AutomationEnvironment environment)
    method DeepCopy (line 35) | public IAutomationPipelineTrigger DeepCopy() => new LowWattageACAdapte...
    method Equals (line 37) | public override bool Equals(object? obj) => obj is LowWattageACAdapter...
    method GetHashCode (line 39) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/OnResumeAutomationPipelineTrigger.cs
  class OnResumeAutomationPipelineTrigger (line 8) | public class OnResumeAutomationPipelineTrigger : IOnResumeAutomationPipe...
    method IsMatchingEvent (line 13) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 18) | public Task<bool> IsMatchingState() => Task.FromResult(false);
    method UpdateEnvironment (line 20) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 22) | public IAutomationPipelineTrigger DeepCopy() => new OnResumeAutomation...
    method Equals (line 24) | public override bool Equals(object? obj) => obj is OnResumeAutomationP...
    method GetHashCode (line 26) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/OnStartupAutomationPipelineTrigger.cs
  class OnStartupAutomationPipelineTrigger (line 8) | public class OnStartupAutomationPipelineTrigger : IOnStartupAutomationPi...
    method IsMatchingEvent (line 13) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 18) | public Task<bool> IsMatchingState() => Task.FromResult(false);
    method UpdateEnvironment (line 20) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 22) | public IAutomationPipelineTrigger DeepCopy() => new OnStartupAutomatio...
    method Equals (line 24) | public override bool Equals(object? obj) => obj is OnStartupAutomation...
    method GetHashCode (line 26) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/PeriodicAutomationPipelineTrigger.cs
  class PeriodicAutomationPipelineTrigger (line 8) | [method: JsonConstructor]
    method IsMatchingEvent (line 15) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState() => IsMatching();
    method DeepCopy (line 22) | public IAutomationPipelineTrigger DeepCopy() => new PeriodicAutomation...
    method DeepCopy (line 24) | public IPeriodicAutomationPipelineTrigger DeepCopy(TimeSpan period) =>...
    method IsMatching (line 26) | private Task<bool> IsMatching()
    method UpdateEnvironment (line 34) | public void UpdateEnvironment(AutomationEnvironment environment) => en...

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/PowerModeAutomationPipelineTrigger.cs
  class PowerModeAutomationPipelineTrigger (line 9) | [method: JsonConstructor]
    method IsMatchingEvent (line 16) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 25) | public async Task<bool> IsMatchingState()
    method UpdateEnvironment (line 31) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 33) | public IAutomationPipelineTrigger DeepCopy() => new PowerModeAutomatio...
    method DeepCopy (line 35) | public IPowerModeAutomationPipelineTrigger DeepCopy(PowerModeState pow...
    method Equals (line 37) | public override bool Equals(object? obj)
    method GetHashCode (line 42) | public override int GetHashCode() => HashCode.Combine(PowerModeState);
    method ToString (line 44) | public override string ToString() => $"{nameof(PowerModeState)}: {Powe...

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/ProcessesAreRunningAutomationPipelineTrigger.cs
  class ProcessesAreRunningAutomationPipelineTrigger (line 12) | [method: JsonConstructor]
    method IsMatchingEvent (line 19) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 43) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 49) | public void UpdateEnvironment(AutomationEnvironment environment)
    method DeepCopy (line 55) | public IAutomationPipelineTrigger DeepCopy() => new ProcessesAreRunnin...
    method DeepCopy (line 57) | public IProcessesAutomationPipelineTrigger DeepCopy(ProcessInfo[] proc...
    method Equals (line 59) | public override bool Equals(object? obj)
    method GetHashCode (line 64) | public override int GetHashCode()
    method ToString (line 71) | public override string ToString() => $"{nameof(Processes)}: {string.Jo...

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/ProcessesStopRunningAutomationPipelineTrigger.cs
  class ProcessesStopRunningAutomationPipelineTrigger (line 12) | [method: JsonConstructor]
    method IsMatchingEvent (line 20) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 44) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 50) | public void UpdateEnvironment(AutomationEnvironment environment)
    method DeepCopy (line 56) | public IAutomationPipelineTrigger DeepCopy() => new ProcessesStopRunni...
    method DeepCopy (line 58) | public IProcessesAutomationPipelineTrigger DeepCopy(ProcessInfo[] proc...
    method Equals (line 60) | public override bool Equals(object? obj)
    method GetHashCode (line 65) | public override int GetHashCode()
    method ToString (line 72) | public override string ToString() => $"{nameof(Processes)}: {string.Jo...

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/SessionLockAutomationPipelineTrigger.cs
  class SessionLockAutomationPipelineTrigger (line 9) | public class SessionLockAutomationPipelineTrigger : ISessionLockPipeline...
    method IsMatchingEvent (line 14) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 27) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 29) | public IAutomationPipelineTrigger DeepCopy() => new SessionLockAutomat...
    method Equals (line 31) | public override bool Equals(object? obj) => obj is SessionLockAutomati...
    method GetHashCode (line 33) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/SessionUnlockAutomationPipelineTrigger.cs
  class SessionUnlockAutomationPipelineTrigger (line 9) | public class SessionUnlockAutomationPipelineTrigger : ISessionUnlockPipe...
    method IsMatchingEvent (line 14) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 20) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 27) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 29) | public IAutomationPipelineTrigger DeepCopy() => new SessionUnlockAutom...
    method Equals (line 31) | public override bool Equals(object? obj) => obj is SessionUnlockAutoma...
    method GetHashCode (line 33) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/TimeAutomationPipelineTrigger.cs
  class TimeAutomationPipelineTrigger (line 11) | [method: JsonConstructor]
    method IsMatchingEvent (line 27) | public async Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 35) | public async Task<bool> IsMatchingState()
    method UpdateEnvironment (line 44) | public void UpdateEnvironment(AutomationEnvironment environment)
    method IsMatching (line 52) | private async Task<bool> IsMatching(Time time, DayOfWeek dayOfWeek)
    method DeepCopy (line 67) | public IAutomationPipelineTrigger DeepCopy() => new TimeAutomationPipe...
    method DeepCopy (line 69) | public ITimeAutomationPipelineTrigger DeepCopy(bool isSunrise, bool is...
    method Equals (line 71) | public override bool Equals(object? obj)
    method GetHashCode (line 80) | public override int GetHashCode() => HashCode.Combine(IsSunrise, IsSun...
    method ToString (line 82) | public override string ToString() =>

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/UserInactivityAutomationPipelineTrigger.cs
  class UserInactivityAutomationPipelineTrigger (line 9) | [method: JsonConstructor]
    method IsMatchingEvent (line 18) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 27) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 34) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 36) | public IAutomationPipelineTrigger DeepCopy() => new UserInactivityAuto...
    method DeepCopy (line 38) | public IUserInactivityPipelineTrigger DeepCopy(TimeSpan timeSpan) => n...
    method Equals (line 40) | public override bool Equals(object? obj) => obj is UserInactivityAutom...
    method GetHashCode (line 42) | public override int GetHashCode() => InactivityTimeSpan.GetHashCode();
    method ToString (line 44) | public override string ToString() => $"{nameof(InactivityTimeSpan)}: {...

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/WiFiConnectedAutomationPipelineTrigger.cs
  class WiFiConnectedAutomationPipelineTrigger (line 11) | [method: JsonConstructor]
    method IsMatchingEvent (line 18) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 26) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 36) | public void UpdateEnvironment(AutomationEnvironment environment)
    method DeepCopy (line 42) | public IAutomationPipelineTrigger DeepCopy() => new WiFiConnectedAutom...
    method DeepCopy (line 44) | public IWiFiConnectedPipelineTrigger DeepCopy(string[] ssids) => new W...
    method Equals (line 46) | public override bool Equals(object? obj) => obj is WiFiConnectedAutoma...
    method GetHashCode (line 48) | public override int GetHashCode() => HashCode.Combine(Ssids);
    method ToString (line 50) | public override string ToString() => $"{nameof(Ssids)}: {string.Join("...

FILE: LenovoLegionToolkit.Lib.Automation/Pipeline/Triggers/WiFiDisconnectedAutomationPipelineTrigger.cs
  class WiFiDisconnectedAutomationPipelineTrigger (line 8) | public class WiFiDisconnectedAutomationPipelineTrigger : IWiFiDisconnect...
    method IsMatchingEvent (line 12) | public Task<bool> IsMatchingEvent(IAutomationEvent automationEvent)
    method IsMatchingState (line 18) | public Task<bool> IsMatchingState()
    method UpdateEnvironment (line 24) | public void UpdateEnvironment(AutomationEnvironment environment) => en...
    method DeepCopy (line 26) | public IAutomationPipelineTrigger DeepCopy() => new WiFiDisconnectedAu...
    method Equals (line 28) | public override bool Equals(object? obj) => obj is WiFiDisconnectedAut...
    method GetHashCode (line 30) | public override int GetHashCode() => HashCode.Combine(DisplayName);

FILE: LenovoLegionToolkit.Lib.Automation/Resources/Resource.Designer.cs
  class Resource (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resource (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/AbstractFeatureAutomationStep.cs
  class AbstractFeatureAutomationStep (line 9) | public abstract class AbstractFeatureAutomationStep<T>(T state)
    method IsSupportedAsync (line 16) | public Task<bool> IsSupportedAsync() => _feature.IsSupportedAsync();
    method RunAsync (line 18) | public virtual async Task RunAsync(AutomationContext context, Automati...
    method GetAllStatesAsync (line 27) | public Task<T[]> GetAllStatesAsync() => _feature.GetAllStatesAsync();
    method DeepCopy (line 29) | public abstract IAutomationStep DeepCopy();

FILE: LenovoLegionToolkit.Lib.Automation/Steps/AlwaysOnUsbAutomationStep.cs
  class AlwaysOnUsbAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new AlwaysOnUsbAutomatio...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/BatteryAutomationStep.cs
  class BatteryAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new BatteryAutomationSte...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/BatteryNightChargeAutomationStep.cs
  class BatteryNightChargeAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new BatteryNightChargeAu...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/DeactivateGPUAutomationStep.cs
  class DeactivateGPUAutomationStep (line 8) | public class DeactivateGPUAutomationStep(DeactivateGPUAutomationStepStat...
    method GetAllStatesAsync (line 15) | public Task<DeactivateGPUAutomationStepState[]> GetAllStatesAsync() =>...
    method IsSupportedAsync (line 17) | public Task<bool> IsSupportedAsync() => Task.FromResult(_controller.Is...
    method RunAsync (line 19) | public async Task RunAsync(AutomationContext context, AutomationEnviro...
    method DeepCopy (line 37) | IAutomationStep IAutomationStep.DeepCopy() => new DeactivateGPUAutomat...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/DelayAutomationStep.cs
  class DelayAutomationStep (line 8) | [method: JsonConstructor]
    method IsSupportedAsync (line 14) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method GetAllStatesAsync (line 16) | public Task<Delay[]> GetAllStatesAsync() => Task.FromResult(new Delay[] {
    method DeepCopy (line 23) | public IAutomationStep DeepCopy() => new DelayAutomationStep(State);
    method RunAsync (line 25) | public Task RunAsync(AutomationContext context, AutomationEnvironment ...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/DisplayBrightnessAutomationStep.cs
  class DisplayBrightnessAutomationStep (line 8) | [method: JsonConstructor]
    method IsSupportedAsync (line 15) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method RunAsync (line 17) | public Task RunAsync(AutomationContext context, AutomationEnvironment ...
    method DeepCopy (line 22) | IAutomationStep IAutomationStep.DeepCopy() => new DisplayBrightnessAut...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/DpiScaleAutomationStep.cs
  class DpiScaleAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new DpiScaleAutomationSt...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/FlipToStartAutomationStep.cs
  class FlipToStartAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new FlipToStartAutomatio...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/FnLockAutomationStep.cs
  class FnLockAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new FnLockAutomationStep...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/GodModePresetAutomationStep.cs
  class GodModePresetAutomationStep (line 11) | [method: JsonConstructor]
    method IsSupportedAsync (line 20) | public async Task<bool> IsSupportedAsync()
    method GetStateAsync (line 26) | public Task<GodModeState> GetStateAsync() => _controller.GetStateAsync();
    method RunAsync (line 28) | public async Task RunAsync(AutomationContext context, AutomationEnviro...
    method DeepCopy (line 42) | public IAutomationStep DeepCopy() => new GodModePresetAutomationStep(P...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/HDRAutomationStep.cs
  class HDRAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new HDRAutomationStep(St...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/HybridModeAutomationStep.cs
  class HybridModeAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new HybridModeAutomation...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/IAutomationStep.cs
  type IAutomationStep (line 6) | public interface IAutomationStep
    method IsSupportedAsync (line 8) | Task<bool> IsSupportedAsync();
    method RunAsync (line 10) | Task RunAsync(AutomationContext context, AutomationEnvironment environ...
    method DeepCopy (line 12) | IAutomationStep DeepCopy();
    method GetAllStatesAsync (line 19) | Task<T[]> GetAllStatesAsync();
  type IAutomationStep (line 15) | public interface IAutomationStep<T> : IAutomationStep where T : struct
    method IsSupportedAsync (line 8) | Task<bool> IsSupportedAsync();
    method RunAsync (line 10) | Task RunAsync(AutomationContext context, AutomationEnvironment environ...
    method DeepCopy (line 12) | IAutomationStep DeepCopy();
    method GetAllStatesAsync (line 19) | Task<T[]> GetAllStatesAsync();

FILE: LenovoLegionToolkit.Lib.Automation/Steps/InstantBootAutomationStep.cs
  class InstantBootAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new InstantBootAutomatio...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/MacroAutomationStep.cs
  class MacroAutomationStep (line 8) | public class MacroAutomationStep(MacroAutomationStepState state) : IAuto...
    method IsSupportedAsync (line 14) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method GetAllStatesAsync (line 16) | public Task<MacroAutomationStepState[]> GetAllStatesAsync() => Task.Fr...
    method RunAsync (line 18) | public Task RunAsync(AutomationContext context, AutomationEnvironment ...
    method DeepCopy (line 24) | public IAutomationStep DeepCopy() => new MacroAutomationStep(State);

FILE: LenovoLegionToolkit.Lib.Automation/Steps/MicrophoneAutomationStep.cs
  class MicrophoneAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new MicrophoneAutomation...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/NotificationAutomationStep.cs
  class NotificationAutomationStep (line 9) | [method: JsonConstructor]
    method IsSupportedAsync (line 15) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method RunAsync (line 17) | public Task RunAsync(AutomationContext context, AutomationEnvironment ...
    method DeepCopy (line 28) | IAutomationStep IAutomationStep.DeepCopy() => new NotificationAutomati...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/OneLevelWhiteKeyboardBacklightAutomationStep.cs
  class OneLevelWhiteKeyboardBacklightAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new OneLevelWhiteKeyboar...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/OverDriveAutomationStep.cs
  class OverDriveAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new OverDriveAutomationS...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/OverclockDiscreteGPUAutomationStep.cs
  class OverclockDiscreteGPUAutomationStep (line 8) | public class OverclockDiscreteGPUAutomationStep(OverclockDiscreteGPUAuto...
    method GetAllStatesAsync (line 15) | public Task<OverclockDiscreteGPUAutomationStepState[]> GetAllStatesAsy...
    method IsSupportedAsync (line 17) | public Task<bool> IsSupportedAsync() => _controller.IsSupportedAsync();
    method RunAsync (line 19) | public async Task RunAsync(AutomationContext context, AutomationEnviro...
    method DeepCopy (line 39) | IAutomationStep IAutomationStep.DeepCopy() => new OverclockDiscreteGPU...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/PanelLogoBacklightAutomationStep.cs
  class PanelLogoBacklightAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new PanelLogoBacklightAu...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/PlaySoundAutomationStep.cs
  class PlaySoundAutomationStep (line 8) | [method: JsonConstructor]
    method IsSupportedAsync (line 13) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method RunAsync (line 15) | public Task RunAsync(AutomationContext context, AutomationEnvironment ...
    method DeepCopy (line 27) | public IAutomationStep DeepCopy() => new PlaySoundAutomationStep(Path);

FILE: LenovoLegionToolkit.Lib.Automation/Steps/PortsBacklightAutomationStep.cs
  class PortsBacklightAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new PortsBacklightAutoma...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/PowerModeAutomationStep.cs
  class PowerModeAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new PowerModeAutomationS...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/QuickActionAutomationStep.cs
  class QuickActionAutomationStep (line 7) | public class QuickActionAutomationStep(Guid? pipelineId)
    method IsSupportedAsync (line 12) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method RunAsync (line 14) | public Task RunAsync(AutomationContext context, AutomationEnvironment ...
    method DeepCopy (line 16) | IAutomationStep IAutomationStep.DeepCopy() => new QuickActionAutomatio...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/RGBKeyboardBacklightAutomationStep.cs
  class RGBKeyboardBacklightAutomationStep (line 10) | public class RGBKeyboardBacklightAutomationStep(RGBKeyboardBacklightPres...
    method GetAllStatesAsync (line 17) | public Task<RGBKeyboardBacklightPreset[]> GetAllStatesAsync() => Task....
    method IsSupportedAsync (line 19) | public Task<bool> IsSupportedAsync() => _controller.IsSupportedAsync();
    method RunAsync (line 21) | public async Task RunAsync(AutomationContext context, AutomationEnviro...
    method DeepCopy (line 32) | IAutomationStep IAutomationStep.DeepCopy() => new RGBKeyboardBacklight...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/RefreshRateAutomationStep.cs
  class RefreshRateAutomationStep (line 10) | [method: JsonConstructor]
    method RunAsync (line 14) | public override Task RunAsync(AutomationContext context, AutomationEnv...
    method DeepCopy (line 23) | public override IAutomationStep DeepCopy() => new RefreshRateAutomatio...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/ResolutionAutomationStep.cs
  class ResolutionAutomationStep (line 10) | [method: JsonConstructor]
    method RunAsync (line 14) | public override Task RunAsync(AutomationContext context, AutomationEnv...
    method DeepCopy (line 23) | public override IAutomationStep DeepCopy() => new ResolutionAutomation...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/RunAutomationStep.cs
  class RunAutomationStep (line 8) | [method: JsonConstructor]
    method IsSupportedAsync (line 20) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method RunAsync (line 22) | public async Task RunAsync(AutomationContext context, AutomationEnviro...
    method DeepCopy (line 36) | IAutomationStep IAutomationStep.DeepCopy() => new RunAutomationStep(Sc...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/SpeakerAutomationStep.cs
  class SpeakerAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new SpeakerAutomationSte...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/SpectrumKeyboardBacklightBrightnessAutomationStep.cs
  class SpectrumKeyboardBacklightBrightnessAutomationStep (line 12) | [method: JsonConstructor]
    method GetAllStatesAsync (line 22) | public Task<int[]> GetAllStatesAsync() => Task.FromResult(_allStates);
    method IsSupportedAsync (line 24) | public Task<bool> IsSupportedAsync() => _controller.IsSupportedAsync();
    method RunAsync (line 26) | public async Task RunAsync(AutomationContext context, AutomationEnviro...
    method DeepCopy (line 39) | public IAutomationStep DeepCopy() => new SpectrumKeyboardBacklightBrig...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/SpectrumKeyboardBacklightImportProfileAutomationStep.cs
  class SpectrumKeyboardBacklightImportProfileAutomationStep (line 10) | [method: JsonConstructor]
    method IsSupportedAsync (line 18) | public Task<bool> IsSupportedAsync() => _controller.IsSupportedAsync();
    method RunAsync (line 20) | public async Task RunAsync(AutomationContext context, AutomationEnviro...
    method DeepCopy (line 31) | IAutomationStep IAutomationStep.DeepCopy() => new SpectrumKeyboardBack...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/SpectrumKeyboardBacklightProfileAutomationStep.cs
  class SpectrumKeyboardBacklightProfileAutomationStep (line 12) | [method: JsonConstructor]
    method GetAllStatesAsync (line 22) | public Task<int[]> GetAllStatesAsync() => Task.FromResult(_allStates);
    method IsSupportedAsync (line 24) | public Task<bool> IsSupportedAsync() => _controller.IsSupportedAsync();
    method RunAsync (line 26) | public async Task RunAsync(AutomationContext context, AutomationEnviro...
    method DeepCopy (line 39) | public IAutomationStep DeepCopy() => new SpectrumKeyboardBacklightProf...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/TouchpadLockAutomationStep.cs
  class TouchpadLockAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new TouchpadLockAutomati...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/TurnOffMonitorsAutomationStep.cs
  class TurnOffMonitorsAutomationStep (line 7) | public class TurnOffMonitorsAutomationStep : IAutomationStep
    method IsSupportedAsync (line 11) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method RunAsync (line 13) | public Task RunAsync(AutomationContext context, AutomationEnvironment ...
    method DeepCopy (line 15) | public IAutomationStep DeepCopy() => new TurnOffMonitorsAutomationStep();

FILE: LenovoLegionToolkit.Lib.Automation/Steps/TurnOffWiFiAutomationStep.cs
  class TurnOffWiFiAutomationStep (line 7) | public class TurnOffWiFiAutomationStep : IAutomationStep
    method IsSupportedAsync (line 9) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method RunAsync (line 11) | public Task RunAsync(AutomationContext context, AutomationEnvironment ...
    method DeepCopy (line 17) | public IAutomationStep DeepCopy() => new TurnOffWiFiAutomationStep();

FILE: LenovoLegionToolkit.Lib.Automation/Steps/TurnOnWiFiAutomationStep.cs
  class TurnOnWiFiAutomationStep (line 7) | public class TurnOnWiFiAutomationStep : IAutomationStep
    method IsSupportedAsync (line 9) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method RunAsync (line 11) | public Task RunAsync(AutomationContext context, AutomationEnvironment ...
    method DeepCopy (line 17) | public IAutomationStep DeepCopy() => new TurnOnWiFiAutomationStep();

FILE: LenovoLegionToolkit.Lib.Automation/Steps/WhiteKeyboardBacklightAutomationStep.cs
  class WhiteKeyboardBacklightAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new WhiteKeyboardBacklig...

FILE: LenovoLegionToolkit.Lib.Automation/Steps/WinKeyAutomationStep.cs
  class WinKeyAutomationStep (line 5) | [method: JsonConstructor]
    method DeepCopy (line 9) | public override IAutomationStep DeepCopy() => new WinKeyAutomationStep...

FILE: LenovoLegionToolkit.Lib.Automation/Structs.cs
  type Delay (line 6) | [method: JsonConstructor]

FILE: LenovoLegionToolkit.Lib.Automation/Utils/AutomationSettings.cs
  class AutomationSettings (line 10) | public class AutomationSettings() : AbstractSettings<AutomationSettings....
    class AutomationSettingsStore (line 12) | public class AutomationSettingsStore

FILE: LenovoLegionToolkit.Lib.Macro/Enums.cs
  type MacroDirection (line 7) | public enum MacroDirection
  type MacroRecorderSettings (line 17) | [Flags]
  type MacroSource (line 25) | public enum MacroSource

FILE: LenovoLegionToolkit.Lib.Macro/IoCModule.cs
  class IoCModule (line 7) | public class IoCModule : Module
    method Load (line 9) | protected override void Load(ContainerBuilder builder)

FILE: LenovoLegionToolkit.Lib.Macro/MacroController.cs
  class MacroController (line 14) | public class MacroController
    class RecorderReceivedEventArgs (line 16) | public class RecorderReceivedEventArgs : EventArgs
    class RecorderStoppedEventArgs (line 21) | public class RecorderStoppedEventArgs : EventArgs
    method MacroController (line 42) | public MacroController(MacroSettings settings)
    method Recorder_Received (line 52) | private void Recorder_Received(object? sender, MacroRecorder.ReceivedE...
    method Recorder_Stopped (line 54) | private void Recorder_Stopped(object? sender, MacroRecorder.StoppedEve...
    method SetEnabled (line 56) | public void SetEnabled(bool enabled)
    method GetSequences (line 62) | public Dictionary<MacroIdentifier, MacroSequence> GetSequences() => _s...
    method SetSequences (line 64) | public void SetSequences(Dictionary<MacroIdentifier, MacroSequence> se...
    method Start (line 72) | public void Start()
    method StartRecording (line 80) | public void StartRecording(MacroRecorderSettings settings = MacroRecor...
    method StopRecording (line 82) | public void StopRecording() => _recorder.StopRecording();
    method LowLevelKeyboardProc (line 84) | private unsafe LRESULT LowLevelKeyboardProc(int nCode, WPARAM wParam, ...
    method Play (line 110) | private void Play(MacroSequence sequence) => Task.Run(() => _player.St...
    method CleanUp (line 112) | private static void CleanUp(ref Dictionary<MacroIdentifier, MacroSeque...
    method ClearEmptySequences (line 118) | private static Dictionary<MacroIdentifier, MacroSequence> ClearEmptySe...
    method ClearDownsWithoutUps (line 124) | private static Dictionary<MacroIdentifier, MacroSequence> ClearDownsWi...
    method ClearDownsWithoutUps (line 132) | private static MacroSequence ClearDownsWithoutUps(MacroSequence sequence)

FILE: LenovoLegionToolkit.Lib.Macro/Resources/Resource.Designer.cs
  class Resource (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resource (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: LenovoLegionToolkit.Lib.Macro/Structs.cs
  type MacroEvent (line 8) | public readonly struct MacroEvent
    method IsUndefined (line 16) | public bool IsUndefined() => Source == MacroSource.Unknown || Directio...
    method ToString (line 18) | public override string ToString() => $"{nameof(Source)}:{Source}, {nam...
  type MacroIdentifier (line 21) | [TypeConverter(typeof(MacroIdentifierTypeConverter))]
    method Equals (line 30) | public override bool Equals(object? obj) => obj is MacroIdentifier oth...
    method GetHashCode (line 32) | public override int GetHashCode() => HashCode.Combine((int)Source, Key);
  type MacroSequence (line 41) | public readonly struct MacroSequence

FILE: LenovoLegionToolkit.Lib.Macro/Utils/MacroPlayer.cs
  class MacroPlayer (line 15) | internal class MacroPlayer
    method InterruptIfNeeded (line 24) | public void InterruptIfNeeded(KBDLLHOOKSTRUCT kbStruct)
    method StartPlayingAsync (line 36) | public async Task StartPlayingAsync(MacroSequence sequence)
    method ToInput (line 75) | private static INPUT ToInput(MacroEvent macroEvent, Rectangle screenAr...
    method ToKeyboardInput (line 83) | private static INPUT ToKeyboardInput(MacroEvent macroEvent) => new()
    method ToMouseInput (line 101) | private static INPUT ToMouseInput(MacroEvent macroEvent, Rectangle scr...

FILE: LenovoLegionToolkit.Lib.Macro/Utils/MacroRecorder.cs
  class MacroRecorder (line 14) | internal class MacroRecorder
    class ReceivedEventArgs (line 16) | public class ReceivedEventArgs : EventArgs
    class StoppedEventArgs (line 21) | public class StoppedEventArgs : EventArgs
    class MacroEventEqualityComparer (line 26) | private class MacroEventEqualityComparer : IEqualityComparer<MacroEvent>
      method Equals (line 28) | public bool Equals(MacroEvent x, MacroEvent y) => x.Source == y.Sour...
      method GetHashCode (line 30) | public int GetHashCode(MacroEvent obj) => HashCode.Combine(obj.Sourc...
    method MacroRecorder (line 49) | public MacroRecorder()
    method StartRecording (line 55) | public void StartRecording(MacroRecorderSettings settings)
    method StopRecording (line 69) | public void StopRecording()
    method SystemEvents_SessionSwitch (line 91) | private void SystemEvents_SessionSwitch(object sender, SessionSwitchEv...
    method LowLevelKeyboardProc (line 109) | private unsafe LRESULT LowLevelKeyboardProc(int nCode, WPARAM wParam, ...
    method LowLevelMouseProc (line 150) | private unsafe LRESULT LowLevelMouseProc(int nCode, WPARAM wParam, LPA...
    method ConvertToMacroEvent (line 185) | private static MacroEvent ConvertToMacroEvent(WPARAM wParam, KBDLLHOOK...
    method ConvertToMacroEvent (line 208) | private static MacroEvent ConvertToMacroEvent(WPARAM wParam, MSLLHOOKS...

FILE: LenovoLegionToolkit.Lib.Macro/Utils/MacroSettings.cs
  class MacroSettings (line 6) | public class MacroSettings() : AbstractSettings<MacroSettings.MacroSetti...
    class MacroSettingsStore (line 8) | public class MacroSettingsStore

FILE: LenovoLegionToolkit.Lib.Macro/Utils/TypeConverters/MacroIdentifierTypeConverter.cs
  class MacroIdentifierTypeConverter (line 7) | public class MacroIdentifierTypeConverter : TypeConverter
    method CanConvertFrom (line 9) | public override bool CanConvertFrom(ITypeDescriptorContext? context, T...
    method CanConvertTo (line 11) | public override bool CanConvertTo(ITypeDescriptorContext? context, Typ...
    method ConvertFrom (line 13) | public override object? ConvertFrom(ITypeDescriptorContext? context, C...
    method ConvertTo (line 31) | public override object? ConvertTo(ITypeDescriptorContext? context, Cul...

FILE: LenovoLegionToolkit.Lib/AutoListeners/AbstractAutoListener.cs
  class AbstractAutoListener (line 8) | public abstract class AbstractAutoListener<TEventArgs> : IAutoListener<T...
    method SubscribeChangedAsync (line 16) | public async Task SubscribeChangedAsync(EventHandler<TEventArgs> event...
    method UnsubscribeChangedAsync (line 22) | public async Task UnsubscribeChangedAsync(EventHandler<TEventArgs> eve...
    method StartStopAsync (line 28) | private async Task StartStopAsync()
    method StartInternalAsync (line 44) | private async Task StartInternalAsync()
    method StopInternalAsync (line 65) | private async Task StopInternalAsync()
    method StartAsync (line 86) | protected abstract Task StartAsync();
    method StopAsync (line 88) | protected abstract Task StopAsync();
    method RaiseChanged (line 90) | protected void RaiseChanged(TEventArgs value) => Changed?.Invoke(this,...

FILE: LenovoLegionToolkit.Lib/AutoListeners/GameAutoListener.cs
  class GameAutoListener (line 12) | public class GameAutoListener : AbstractAutoListener<GameAutoListener.Ch...
    class ChangedEventArgs (line 14) | public class ChangedEventArgs(bool running) : EventArgs
    class ProcessEqualityComparer (line 19) | private class ProcessEqualityComparer : IEqualityComparer<Process>
      method Equals (line 21) | public bool Equals(Process? x, Process? y)
      method GetHashCode (line 30) | public int GetHashCode(Process obj) => obj.Id;
    method GameAutoListener (line 45) | public GameAutoListener(InstanceStartedEventAutoAutoListener instanceS...
    method StartAsync (line 56) | protected override async Task StartAsync()
    method StopAsync (line 70) | protected override async Task StopAsync()
    method AreGamesRunning (line 88) | public bool AreGamesRunning()
    method GameConfigStoreDetectorGamesConfigStoreDetected (line 96) | private void GameConfigStoreDetectorGamesConfigStoreDetected(object? s...
    method EffectiveGameModeDetectorChanged (line 132) | private void EffectiveGameModeDetectorChanged(object? sender, bool e)
    method InstanceStartedEventAutoAutoListener_Changed (line 147) | private void InstanceStartedEventAutoAutoListener_Changed(object? send...
    method RaiseChangedIfNeeded (line 190) | private void RaiseChangedIfNeeded(bool newState)
    method Attach (line 203) | private void Attach(Process process)
    method Detach (line 212) | private void Detach(Process process)
    method Process_Exited (line 221) | private void Process_Exited(object? o, EventArgs args)

FILE: LenovoLegionToolkit.Lib/AutoListeners/IAutoListener.cs
  type IAutoListener (line 6) | public interface IAutoListener<T> where T : EventArgs
    method SubscribeChangedAsync (line 8) | Task SubscribeChangedAsync(EventHandler<T> eventHandler);
    method UnsubscribeChangedAsync (line 9) | Task UnsubscribeChangedAsync(EventHandler<T> eventHandler);

FILE: LenovoLegionToolkit.Lib/AutoListeners/InstanceStartedEventAutoAutoListener.cs
  class InstanceStartedEventAutoAutoListener (line 7) | public class InstanceStartedEventAutoAutoListener : AbstractAutoListener...
    class ChangedEventArgs (line 9) | public class ChangedEventArgs(int processId, string processName) : Eve...
    method StartAsync (line 17) | protected override Task StartAsync()
    method StopAsync (line 24) | protected override Task StopAsync()
    method Handle (line 31) | private void Handle(int processId, string processName) => RaiseChanged...

FILE: LenovoLegionToolkit.Lib/AutoListeners/InstanceStoppedEventAutoAutoListener.cs
  class InstanceStoppedEventAutoAutoListener (line 7) | public class InstanceStoppedEventAutoAutoListener : AbstractAutoListener...
    class ChangedEventArgs (line 9) | public class ChangedEventArgs(int processId, string processName) : Eve...
    method StartAsync (line 17) | protected override Task StartAsync()
    method StopAsync (line 24) | protected override Task StopAsync()
    method Handle (line 31) | private void Handle(int processId, string processName) => RaiseChanged...

FILE: LenovoLegionToolkit.Lib/AutoListeners/ProcessAutoListener.cs
  class ProcessAutoListener (line 11) | public class ProcessAutoListener(
    class ChangedEventArgs (line 16) | public class ChangedEventArgs(ProcessEventInfoType type, ProcessInfo p...
    method StartAsync (line 54) | protected override async Task StartAsync()
    method StopAsync (line 60) | protected override async Task StopAsync()
    method InstanceStartedEventAutoListener_Changed (line 69) | private void InstanceStartedEventAutoListener_Changed(object? sender, ...
    method InstanceStoppedEventAutoListener_Changed (line 110) | private void InstanceStoppedEventAutoListener_Changed(object? sender, ...
    method CleanUpCacheIfNecessary (line 132) | private void CleanUpCacheIfNecessary()

FILE: LenovoLegionToolkit.Lib/AutoListeners/TimeAutoListener.cs
  class TimeAutoListener (line 8) | public class TimeAutoListener : AbstractAutoListener<TimeAutoListener.Ch...
    class ChangedEventArgs (line 10) | public class ChangedEventArgs(Time time, DayOfWeek day) : EventArgs
    method TimeAutoListener (line 18) | public TimeAutoListener()
    method StartAsync (line 25) | protected override Task StartAsync()
    method StopAsync (line 33) | protected override Task StopAsync()
    method Timer_Elapsed (line 40) | private void Timer_Elapsed(object? sender, ElapsedEventArgs e) => Rais...

FILE: LenovoLegionToolkit.Lib/AutoListeners/UserInactivityAutoListener.cs
  class UserInactivityAutoListener (line 12) | public class UserInactivityAutoListener(IMainThreadDispatcher mainThread...
    class ChangedEventArgs (line 15) | public class ChangedEventArgs(TimeSpan timerResolution, uint tickCount...
    class UserInactivityWindow (line 21) | private class UserInactivityWindow : NativeWindow, IDisposable
      method UserInactivityWindow (line 30) | public UserInactivityWindow(Action callback)
      method Create (line 37) | public void Create()
      method HookProc (line 49) | private LRESULT HookProc(int nCode, WPARAM wParam, LPARAM lParam)
      method Dispose (line 55) | public void Dispose()
    method StartAsync (line 78) | protected override Task StartAsync() => mainThreadDispatcher.DispatchA...
    method StopAsync (line 93) | protected override Task StopAsync() => mainThreadDispatcher.DispatchAs...
    method WindowCallback (line 108) | private void WindowCallback()
    method TimerCallback (line 126) | private void TimerCallback(object? state)

FILE: LenovoLegionToolkit.Lib/AutoListeners/WiFiAutoListener.cs
  class WiFiAutoListener (line 13) | public class WiFiAutoListener : AbstractAutoListener<WiFiAutoListener.Ch...
    class ChangedEventArgs (line 15) | public class ChangedEventArgs(bool isConnected, string? ssid) : EventArgs
    method WiFiAutoListener (line 26) | public unsafe WiFiAutoListener(IMainThreadDispatcher mainThreadDispatc...
    method StartAsync (line 33) | protected override Task StartAsync() => _mainThreadDispatcher.Dispatch...
    method StopAsync (line 39) | protected override Task StopAsync() => _mainThreadDispatcher.DispatchA...
    method RegisterWlanNotification (line 46) | private unsafe LambdaDisposable? RegisterWlanNotification()
    method WlanCallback (line 88) | private unsafe void WlanCallback(L2_NOTIFICATION_DATA* param0, void* p...

FILE: LenovoLegionToolkit.Lib/Controllers/AIController.cs
  class AIController (line 17) | public class AIController(
    method StartIfNeededAsync (line 38) | public async Task StartIfNeededAsync()
    method StopAsync (line 71) | public async Task StopAsync()
    method PowerModeListener_Changed (line 96) | private async void PowerModeListener_Changed(object? sender, PowerMode...
    method PowerStateListener_Changed (line 97) | private async void PowerStateListener_Changed(object? sender, PowerSta...
    method GameAutoListener_Changed (line 98) | private async void GameAutoListener_Changed(object? sender, GameAutoLi...
    method RefreshAsync (line 100) | private async Task RefreshAsync()
    method IsSupportedAsync (line 126) | private static async Task<bool> IsSupportedAsync()
    method ShouldEnableAsync (line 132) | private async Task<bool> ShouldEnableAsync()
    method ShouldDisableAsync (line 164) | private async Task<bool> ShouldDisableAsync()
    method EnableAsync (line 188) | private static async Task EnableAsync()
    method DisableAsync (line 220) | private static async Task DisableAsync()

FILE: LenovoLegionToolkit.Lib/Controllers/DisplayBrightnessController.cs
  class DisplayBrightnessController (line 6) | public class DisplayBrightnessController
    method SetBrightnessAsync (line 8) | public Task SetBrightnessAsync(int brightness) => WMI.WmiMonitorBright...

FILE: LenovoLegionToolkit.Lib/Controllers/GPUController.cs
  class GPUController (line 15) | public class GPUController
    method IsSupported (line 30) | public bool IsSupported()
    method GetLastKnownStateAsync (line 51) | public async Task<GPUState> GetLastKnownStateAsync()
    method RefreshNowAsync (line 57) | public async Task<GPUStatus> RefreshNowAsync()
    method StartAsync (line 66) | public Task StartAsync(int delay = 1_000, int interval = 5_000)
    method StopAsync (line 80) | public async Task StopAsync(bool waitForFinish = false)
    method RestartGPUAsync (line 113) | public async Task RestartGPUAsync()
    method KillGPUProcessesAsync (line 133) | public async Task KillGPUProcessesAsync()
    method RefreshLoopAsync (line 165) | private async Task RefreshLoopAsync(int delay, int interval, Cancellat...
    method RefreshStateAsync (line 222) | private async Task RefreshStateAsync()

FILE: LenovoLegionToolkit.Lib/Controllers/GPUOverclockController.cs
  class GPUOverclockController (line 16) | public class GPUOverclockController
    method GPUOverclockController (line 25) | public GPUOverclockController(GPUOverclockSettings settings,
    method GetMaxCoreDeltaMhz (line 37) | public static int GetMaxCoreDeltaMhz() => 500;
    method GetMaxMemoryDeltaMhz (line 39) | public static int GetMaxMemoryDeltaMhz()
    method IsSupportedAsync (line 52) | public async Task<bool> IsSupportedAsync()
    method GetState (line 101) | public (bool, GPUOverclockInfo) GetState() => (_settings.Store.Enabled...
    method SaveState (line 103) | public void SaveState(bool enabled, GPUOverclockInfo info)
    method ApplyStateAsync (line 110) | public async Task ApplyStateAsync(bool force = false)
    method EnsureOverclockIsAppliedAsync (line 192) | public async Task<bool> EnsureOverclockIsAppliedAsync()
    method NativeWindowsMessageListenerOnChanged (line 202) | private async void NativeWindowsMessageListenerOnChanged(object? sende...
    method GetMaxMemoryDeltaMhz (line 211) | private static int GetMaxMemoryDeltaMhz(PhysicalGPU? gpu) => gpu?.Memo...
    method SetOverclockInfo (line 217) | private static void SetOverclockInfo(PhysicalGPU gpu, GPUOverclockInfo...
    method GetOverclockInfo (line 234) | private static GPUOverclockInfo GetOverclockInfo(PhysicalGPU gpu)

FILE: LenovoLegionToolkit.Lib/Controllers/GodMode/AbstractGodModeController.cs
  class AbstractGodModeController (line 11) | public abstract class AbstractGodModeController(GodModeSettings settings)
    method NeedsVantageDisabledAsync (line 16) | public abstract Task<bool> NeedsVantageDisabledAsync();
    method NeedsLegionZoneDisabledAsync (line 18) | public abstract Task<bool> NeedsLegionZoneDisabledAsync();
    method GetActivePresetIdAsync (line 20) | public Task<Guid> GetActivePresetIdAsync() => Task.FromResult(settings...
    method GetActivePresetNameAsync (line 22) | public Task<string?> GetActivePresetNameAsync()
    method GetStateAsync (line 32) | public async Task<GodModeState> GetStateAsync()
    method SetStateAsync (line 59) | public Task SetStateAsync(GodModeState state)
    method ApplyStateAsync (line 101) | public abstract Task ApplyStateAsync();
    method GetDefaultFanTableAsync (line 103) | public Task<FanTable> GetDefaultFanTableAsync()
    method GetMinimumFanTableAsync (line 109) | public abstract Task<FanTable> GetMinimumFanTableAsync();
    method GetDefaultsInOtherPowerModesAsync (line 111) | public abstract Task<Dictionary<PowerModeState, GodModeDefaults>> GetD...
    method RestoreDefaultsInOtherPowerModeAsync (line 113) | public abstract Task RestoreDefaultsInOtherPowerModeAsync(PowerModeSta...
    method GetDefaultStateAsync (line 115) | protected abstract Task<GodModePreset> GetDefaultStateAsync();
    method RaisePresetChanged (line 117) | protected void RaisePresetChanged(Guid presetId) => PresetChanged?.Inv...
    method GetActivePresetAsync (line 119) | protected async Task<(Guid, GodModeSettings.GodModeSettingsStore.Prese...
    method IsValidFanTableAsync (line 139) | protected async Task<bool> IsValidFanTableAsync(FanTable fanTable)
    method IsValidStore (line 146) | private static bool IsValidStore(GodModeSettings.GodModeSettingsStore ...
    method LoadStateFromStoreAsync (line 148) | private async Task<GodModeState> LoadStateFromStoreAsync(GodModeSettin...
    method CreateStepperValue (line 186) | private static StepperValue? CreateStepperValue(StepperValue? state, S...
    method GetFanTableInfoAsync (line 225) | private async Task<FanTableInfo?> GetFanTableInfoAsync(GodModeSettings...

FILE: LenovoLegionToolkit.Lib/Controllers/GodMode/GodModeController.cs
  class GodModeController (line 8) | public class GodModeController(GodModeControllerV1 controllerV1, GodMode...
    method NeedsVantageDisabledAsync (line 28) | public async Task<bool> NeedsVantageDisabledAsync()
    method NeedsLegionZoneDisabledAsync (line 34) | public async Task<bool> NeedsLegionZoneDisabledAsync()
    method GetActivePresetIdAsync (line 40) | public async Task<Guid> GetActivePresetIdAsync()
    method GetActivePresetNameAsync (line 46) | public async Task<string?> GetActivePresetNameAsync()
    method GetStateAsync (line 52) | public async Task<GodModeState> GetStateAsync()
    method SetStateAsync (line 58) | public async Task SetStateAsync(GodModeState state)
    method ApplyStateAsync (line 64) | public async Task ApplyStateAsync()
    method GetDefaultFanTableAsync (line 70) | public async Task<FanTable> GetDefaultFanTableAsync()
    method GetMinimumFanTableAsync (line 76) | public async Task<FanTable> GetMinimumFanTableAsync()
    method GetDefaultsInOtherPowerModesAsync (line 82) | public async Task<Dictionary<PowerModeState, GodModeDefaults>> GetDefa...
    method RestoreDefaultsInOtherPowerModeAsync (line 88) | public async Task RestoreDefaultsInOtherPowerModeAsync(PowerModeState ...
    method GetControllerAsync (line 94) | private async Task<IGodModeController> GetControllerAsync()

FILE: LenovoLegionToolkit.Lib/Controllers/GodMode/GodModeControllerV1.cs
  class GodModeControllerV1 (line 13) | public class GodModeControllerV1(
    method NeedsVantageDisabledAsync (line 18) | public override Task<bool> NeedsVantageDisabledAsync() => Task.FromRes...
    method NeedsLegionZoneDisabledAsync (line 19) | public override Task<bool> NeedsLegionZoneDisabledAsync() => Task.From...
    method ApplyStateAsync (line 21) | public override async Task ApplyStateAsync()
    method GetMinimumFanTableAsync (line 259) | public override Task<FanTable> GetMinimumFanTableAsync()
    method GetDefaultsInOtherPowerModesAsync (line 265) | public override async Task<Dictionary<PowerModeState, GodModeDefaults>...
    method RestoreDefaultsInOtherPowerModeAsync (line 291) | public override async Task RestoreDefaultsInOtherPowerModeAsync(PowerM...
    method GetDefaultStateAsync (line 451) | protected override async Task<GodModePreset> GetDefaultStateAsync()
    method GetCPULongTermPowerLimitAsync (line 481) | private static async Task<StepperValue> GetCPULongTermPowerLimitAsync()
    method SetCPULongTermPowerLimitAsync (line 488) | private static Task SetCPULongTermPowerLimitAsync(int value) => WMI.Le...
    method GetCPUShortTermPowerLimitAsync (line 494) | private static async Task<StepperValue> GetCPUShortTermPowerLimitAsync()
    method SetCPUShortTermPowerLimitAsync (line 501) | private static Task SetCPUShortTermPowerLimitAsync(int value) => WMI.L...
    method GetCPUPeakPowerLimitAsync (line 507) | private static async Task<StepperValue> GetCPUPeakPowerLimitAsync()
    method SetCPUPeakPowerLimitAsync (line 513) | private static Task SetCPUPeakPowerLimitAsync(int value) => WMI.Lenovo...
    method GetCPUCrossLoadingPowerLimitAsync (line 519) | private static async Task<StepperValue> GetCPUCrossLoadingPowerLimitAs...
    method SetCPUCrossLoadingPowerLimitAsync (line 525) | private static Task SetCPUCrossLoadingPowerLimitAsync(int value) => WM...
    method GetAPUSPPTPowerLimitAsync (line 531) | private static async Task<StepperValue> GetAPUSPPTPowerLimitAsync()
    method SetAPUSPPTPowerLimitAsync (line 537) | private static Task SetAPUSPPTPowerLimitAsync(int value) => WMI.Lenovo...
    method GetCPUTemperatureLimitAsync (line 543) | private static async Task<StepperValue> GetCPUTemperatureLimitAsync()
    method SetCPUTemperatureLimitAsync (line 549) | private static Task SetCPUTemperatureLimitAsync(int value) => WMI.Leno...
    method GetGPUConfigurableTGPAsync (line 555) | private static async Task<StepperValue> GetGPUConfigurableTGPAsync()
    method SetGPUConfigurableTGPAsync (line 562) | private static Task SetGPUConfigurableTGPAsync(int value) => WMI.Lenov...
    method GetGPUPowerBoost (line 568) | private static async Task<StepperValue> GetGPUPowerBoost()
    method SetGPUPowerBoostAsync (line 575) | private static Task SetGPUPowerBoostAsync(int value) => WMI.LenovoGpuM...
    method GetGPUTemperatureLimitAsync (line 581) | private static async Task<StepperValue> GetGPUTemperatureLimitAsync()
    method SetGPUTemperatureLimitAsync (line 587) | private static Task SetGPUTemperatureLimitAsync(int value) => WMI.Leno...
    method GetFanTableDataAsync (line 593) | private static async Task<FanTableData[]?> GetFanTableDataAsync()
    method SetFanTable (line 644) | private static Task SetFanTable(FanTable fanTable) => WMI.LenovoFanMet...
    method GetFanFullSpeedAsync (line 650) | private static Task<bool> GetFanFullSpeedAsync() => WMI.LenovoFanMetho...
    method SetFanFullSpeedAsync (line 652) | private static Task SetFanFullSpeedAsync(bool enabled) => WMI.LenovoFa...
    method GetDefaultValuesInDifferentModeAsync (line 658) | private async Task<Dictionary<PowerModeState, GodModeDefaults>> GetDef...

FILE: LenovoLegionToolkit.Lib/Controllers/GodMode/GodModeControllerV2.cs
  class GodModeControllerV2 (line 13) | public class GodModeControllerV2(
    method NeedsVantageDisabledAsync (line 19) | public override Task<bool> NeedsVantageDisabledAsync() => Task.FromRes...
    method NeedsLegionZoneDisabledAsync (line 20) | public override Task<bool> NeedsLegionZoneDisabledAsync() => Task.From...
    method ApplyStateAsync (line 22) | public override async Task ApplyStateAsync()
    method GetMinimumFanTableAsync (line 196) | public override Task<FanTable> GetMinimumFanTableAsync()
    method GetDefaultsInOtherPowerModesAsync (line 202) | public override async Task<Dictionary<PowerModeState, GodModeDefaults>...
    method RestoreDefaultsInOtherPowerModeAsync (line 255) | public override Task RestoreDefaultsInOtherPowerModeAsync(PowerModeSta...
    method GetDefaultStateAsync (line 257) | protected override async Task<GodModePreset> GetDefaultStateAsync()
    method AdjustCapabilityIdForPowerMode (line 325) | private static CapabilityID AdjustCapabilityIdForPowerMode(CapabilityI...
    method GetDefaultCapabilityIdValueInPowerMode (line 332) | private static int? GetDefaultCapabilityIdValueInPowerMode(IEnumerable...
    method GetValueAsync (line 345) | private static Task<int> GetValueAsync(CapabilityID id)
    method SetValueAsync (line 351) | private static Task SetValueAsync(CapabilityID id, StepperValue value)...
    method SetValueAsync (line 353) | private static Task SetValueAsync(CapabilityID id, int value)
    method GetFanTableDataAsync (line 363) | private static async Task<FanTableData[]?> GetFanTableDataAsync(PowerM...
    method SetFanTable (line 418) | private static Task SetFanTable(FanTable fanTable) => WMI.LenovoFanMet...
    method GetFanFullSpeedAsync (line 424) | private static async Task<bool> GetFanFullSpeedAsync()
    method SetFanFullSpeedAsync (line 430) | private static Task SetFanFullSpeedAsync(bool enabled) => WMI.LenovoOt...

FILE: LenovoLegionToolkit.Lib/Controllers/GodMode/IGodModeController.cs
  type IGodModeController (line 7) | public interface IGodModeController
    method NeedsVantageDisabledAsync (line 10) | Task<bool> NeedsVantageDisabledAsync();
    method NeedsLegionZoneDisabledAsync (line 11) | Task<bool> NeedsLegionZoneDisabledAsync();
    method GetActivePresetIdAsync (line 12) | Task<Guid> GetActivePresetIdAsync();
    method GetActivePresetNameAsync (line 13) | Task<string?> GetActivePresetNameAsync();
    method GetStateAsync (line 14) | Task<GodModeState> GetStateAsync();
    method SetStateAsync (line 15) | Task SetStateAsync(GodModeState state);
    method ApplyStateAsync (line 16) | Task ApplyStateAsync();
    method GetDefaultFanTableAsync (line 17) | Task<FanTable> GetDefaultFanTableAsync();
    method GetMinimumFanTableAsync (line 18) | Task<FanTable> GetMinimumFanTableAsync();
    method GetDefaultsInOtherPowerModesAsync (line 19) | Task<Dictionary<PowerModeState, GodModeDefaults>> GetDefaultsInOtherPo...
    method RestoreDefaultsInOtherPowerModeAsync (line 20) | Task RestoreDefaultsInOtherPowerModeAsync(PowerModeState state);

FILE: LenovoLegionToolkit.Lib/Controllers/RGBKeyboardBacklightController.cs
  class RGBKeyboardBacklightController (line 19) | public class RGBKeyboardBacklightController(RGBKeyboardSettings settings...
    method IsSupportedAsync (line 39) | public Task<bool> IsSupportedAsync()
    method SetLightControlOwnerAsync (line 48) | public async Task SetLightControlOwnerAsync(bool enable, bool restoreP...
    method GetStateAsync (line 91) | public async Task<RGBKeyboardBacklightState> GetStateAsync()
    method SetStateAsync (line 105) | public async Task SetStateAsync(RGBKeyboardBacklightState state)
    method SetPresetAsync (line 145) | public async Task SetPresetAsync(RGBKeyboardBacklightPreset preset)
    method SetNextPresetAsync (line 186) | public async Task<RGBKeyboardBacklightPreset> SetNextPresetAsync()
    method SetCurrentPresetAsync (line 231) | private async Task SetCurrentPresetAsync()
    method ThrowIfVantageEnabled (line 267) | private async Task ThrowIfVantageEnabled()
    method SendToDevice (line 274) | private unsafe Task SendToDevice(LENOVO_RGB_KEYBOARD_STATE str) => Tas...
    method CreateOffState (line 296) | private static LENOVO_RGB_KEYBOARD_STATE CreateOffState()
    method Convert (line 314) | private static LENOVO_RGB_KEYBOARD_STATE Convert(RGBKeyboardBacklightB...

FILE: LenovoLegionToolkit.Lib/Controllers/Sensors/AbstractSensorsController.cs
  class AbstractSensorsController (line 15) | public abstract class AbstractSensorsController(GPUController gpuControl...
    type GPUInfo (line 17) | private readonly struct GPUInfo(
    method IsSupportedAsync (line 45) | public abstract Task<bool> IsSupportedAsync();
    method PrepareAsync (line 47) | public Task PrepareAsync()
    method GetDataAsync (line 54) | public async Task<SensorsData> GetDataAsync()
    method GetFanSpeedsAsync (line 100) | public async Task<(int cpuFanSpeed, int gpuFanSpeed)> GetFanSpeedsAsync()
    method GetCpuCurrentTemperatureAsync (line 107) | protected abstract Task<int> GetCpuCurrentTemperatureAsync();
    method GetGpuCurrentTemperatureAsync (line 109) | protected abstract Task<int> GetGpuCurrentTemperatureAsync();
    method GetCpuCurrentFanSpeedAsync (line 111) | protected abstract Task<int> GetCpuCurrentFanSpeedAsync();
    method GetGpuCurrentFanSpeedAsync (line 113) | protected abstract Task<int> GetGpuCurrentFanSpeedAsync();
    method GetCpuMaxFanSpeedAsync (line 115) | protected abstract Task<int> GetCpuMaxFanSpeedAsync();
    method GetGpuMaxFanSpeedAsync (line 117) | protected abstract Task<int> GetGpuMaxFanSpeedAsync();
    method GetCpuUtilization (line 119) | private int GetCpuUtilization(int maxUtilization)
    method GetCpuCoreClock (line 127) | private int GetCpuCoreClock()
    method GetCpuBaseClock (line 136) | private static unsafe int GetCpuBaseClock()
    method GetCpuMaxCoreClockAsync (line 170) | private static Task<int> GetCpuMaxCoreClockAsync() => WMI.LenovoGameZo...
    method GetGPUInfoAsync (line 172) | private async Task<GPUInfo> GetGPUInfoAsync()

FILE: LenovoLegionToolkit.Lib/Controllers/Sensors/ISensorsController.cs
  type ISensorsController (line 5) | public interface ISensorsController
    method IsSupportedAsync (line 7) | Task<bool> IsSupportedAsync();
    method PrepareAsync (line 8) | Task PrepareAsync();
    method GetDataAsync (line 9) | Task<SensorsData> GetDataAsync();
    method GetFanSpeedsAsync (line 10) | Task<(int cpuFanSpeed, int gpuFanSpeed)> GetFanSpeedsAsync();

FILE: LenovoLegionToolkit.Lib/Controllers/Sensors/SensorsController.cs
  class SensorsController (line 6) | public class SensorsController(
    method IsSupportedAsync (line 14) | public async Task<bool> IsSupportedAsync() => await GetControllerAsync...
    method PrepareAsync (line 16) | public async Task PrepareAsync()
    method GetDataAsync (line 22) | public async Task<SensorsData> GetDataAsync()
    method GetFanSpeedsAsync (line 28) | public async Task<(int cpuFanSpeed, int gpuFanSpeed)> GetFanSpeedsAsync()
    method GetControllerAsync (line 34) | private async Task<ISensorsController?> GetControllerAsync()

FILE: LenovoLegionToolkit.Lib/Controllers/Sensors/SensorsControllerV1.cs
  class SensorsControllerV1 (line 6) | public class SensorsControllerV1(GPUController gpuController) : Abstract...
    method IsSupportedAsync (line 13) | public override async Task<bool> IsSupportedAsync()
    method GetCpuCurrentTemperatureAsync (line 31) | protected override async Task<int> GetCpuCurrentTemperatureAsync()
    method GetGpuCurrentTemperatureAsync (line 39) | protected override async Task<int> GetGpuCurrentTemperatureAsync()
    method GetCpuCurrentFanSpeedAsync (line 47) | protected override Task<int> GetCpuCurrentFanSpeedAsync() => WMI.Lenov...
    method GetGpuCurrentFanSpeedAsync (line 49) | protected override Task<int> GetGpuCurrentFanSpeedAsync() => WMI.Lenov...
    method GetCpuMaxFanSpeedAsync (line 51) | protected override Task<int> GetCpuMaxFanSpeedAsync() => WMI.LenovoFan...
    method GetGpuMaxFanSpeedAsync (line 53) | protected override Task<int> GetGpuMaxFanSpeedAsync() => WMI.LenovoFan...

FILE: LenovoLegionToolkit.Lib/Controllers/Sensors/SensorsControllerV2.cs
  class SensorsControllerV2 (line 8) | public class SensorsControllerV2(GPUController gpuController) : Abstract...
    method IsSupportedAsync (line 15) | public override async Task<bool> IsSupportedAsync()
    method GetCpuCurrentTemperatureAsync (line 36) | protected override async Task<int> GetCpuCurrentTemperatureAsync()
    method GetGpuCurrentTemperatureAsync (line 44) | protected override async Task<int> GetGpuCurrentTemperatureAsync()
    method GetCpuCurrentFanSpeedAsync (line 52) | protected override Task<int> GetCpuCurrentFanSpeedAsync() => WMI.Lenov...
    method GetGpuCurrentFanSpeedAsync (line 54) | protected override Task<int> GetGpuCurrentFanSpeedAsync() => WMI.Lenov...
    method GetCpuMaxFanSpeedAsync (line 56) | protected override Task<int> GetCpuMaxFanSpeedAsync() => WMI.LenovoFan...
    method GetGpuMaxFanSpeedAsync (line 58) | protected override Task<int> GetGpuMaxFanSpeedAsync() => WMI.LenovoFan...

FILE: LenovoLegionToolkit.Lib/Controllers/Sensors/SensorsControllerV3.cs
  class SensorsControllerV3 (line 8) | public class SensorsControllerV3(GPUController gpuController) : Abstract...
    method IsSupportedAsync (line 15) | public override async Task<bool> IsSupportedAsync()
    method GetCpuCurrentTemperatureAsync (line 36) | protected override async Task<int> GetCpuCurrentTemperatureAsync()
    method GetGpuCurrentTemperatureAsync (line 42) | protected override async Task<int> GetGpuCurrentTemperatureAsync()
    method GetCpuCurrentFanSpeedAsync (line 48) | protected override Task<int> GetCpuCurrentFanSpeedAsync() => WMI.Lenov...
    method GetGpuCurrentFanSpeedAsync (line 50) | protected override Task<int> GetGpuCurrentFanSpeedAsync() => WMI.Lenov...
    method GetCpuMaxFanSpeedAsync (line 52) | protected override Task<int> GetCpuMaxFanSpeedAsync() => WMI.LenovoFan...
    method GetGpuMaxFanSpeedAsync (line 54) | protected override Task<int> GetGpuMaxFanSpeedAsync() => WMI.LenovoFan...

FILE: LenovoLegionToolkit.Lib/Controllers/SmartFnLockController.cs
  class SmartFnLockController (line 13) | public class SmartFnLockController(FnLockFeature feature, ApplicationSet...
    method OnKeyboardEvent (line 22) | public void OnKeyboardEvent(nuint wParam, KBDLLHOOKSTRUCT kbStruct)
    method OnKeyboardEventAsync (line 42) | private async Task OnKeyboardEventAsync(nuint wParam, KBDLLHOOKSTRUCT ...
    method IsModifierKeyPressed (line 69) | private bool IsModifierKeyPressed(nuint wParam, KBDLLHOOKSTRUCT kbStruct)

FILE: LenovoLegionToolkit.Lib/Controllers/SpectrumKeyboardBacklightController.cs
  class SpectrumKeyboardBacklightController (line 21) | public class SpectrumKeyboardBacklightController
    type IScreenCapture (line 23) | public interface IScreenCapture
      method CaptureScreen (line 25) | void CaptureScreen(ref RGBColor[,] buffer, int width, int height, Ca...
    type KeyMap (line 28) | private readonly struct KeyMap(int width, int height, ushort[,] keyCod...
    method SpectrumKeyboardBacklightController (line 62) | public SpectrumKeyboardBacklightController(SpecialKeyListener listener...
    method Listener_Changed (line 71) | private async void Listener_Changed(object? sender, SpecialKeyListener...
    method IsSupportedAsync (line 94) | public async Task<bool> IsSupportedAsync() => await GetDeviceHandleAsy...
    method GetKeyboardLayoutAsync (line 96) | public async Task<(SpectrumLayout, KeyboardLayout, HashSet<ushort>)> G...
    method GetBrightnessAsync (line 126) | public async Task<int> GetBrightnessAsync()
    method SetBrightnessAsync (line 147) | public async Task SetBrightnessAsync(int brightness)
    method GetLogoStatusAsync (line 168) | public async Task<bool> GetLogoStatusAsync()
    method SetLogoStatusAsync (line 189) | public async Task SetLogoStatusAsync(bool isOn)
    method GetProfileAsync (line 207) | public async Task<int> GetProfileAsync()
    method SetProfileAsync (line 228) | public async Task SetProfileAsync(int profile)
    method SetProfileDefaultAsync (line 255) | public async Task SetProfileDefaultAsync(int profile)
    method SetProfileDescriptionAsync (line 273) | public async Task SetProfileDescriptionAsync(int profile, SpectrumKeyb...
    method GetProfileDescriptionAsync (line 294) | public async Task<(int Profile, SpectrumKeyboardBacklightEffect[] Effe...
    method ImportProfileDescription (line 317) | public async Task ImportProfileDescription(int profile, string jsonPath)
    method ExportProfileDescriptionAsync (line 326) | public async Task ExportProfileDescriptionAsync(int profile, string js...
    method StartAuroraIfNeededAsync (line 333) | public async Task<bool> StartAuroraIfNeededAsync(int? profile = null)
    method StopAuroraIfNeededAsync (line 363) | public async Task StopAuroraIfNeededAsync()
    method GetStateAsync (line 382) | public async Task<Dictionary<ushort, RGBColor>> GetStateAsync(bool ski...
    method ThrowIfVantageEnabled (line 404) | private async Task ThrowIfVantageEnabled()
    method ReadAllKeyCodesAsync (line 411) | private async Task<(int Width, int Height, HashSet<ushort> Keys)> Read...
    method GetKeyMapAsync (line 427) | private async Task<KeyMap> GetKeyMapAsync()
    method AuroraRefreshAsync (line 470) | private async Task AuroraRefreshAsync(int profile, CancellationToken t...
    method GetDeviceHandleAsync (line 570) | private async Task<SafeFileHandle?> GetDeviceHandleAsync()
    method IsReady (line 635) | private static bool IsReady(SafeHandle handle)
    method SetAndGetFeature (line 653) | private static void SetAndGetFeature<TIn, TOut>(SafeHandle handle, TIn...
    method SetAndGetFeature (line 662) | private static void SetAndGetFeature<TIn>(SafeHandle handle, TIn input...
    method SetFeature (line 671) | private static unsafe void SetFeature<T>(SafeHandle handle, T str) whe...
    method GetFeature (line 703) | private static unsafe void GetFeature<T>(SafeHandle handle, out T str)...
    method GetFeature (line 727) | private static unsafe void GetFeature(SafeHandle handle, out byte[] by...
    method Compress (line 751) | private static SpectrumKeyboardBacklightEffect[] Compress(SpectrumKeyb...
    method Convert (line 786) | private static (int Profile, SpectrumKeyboardBacklightEffect[] Effects...
    method Convert (line 793) | private static SpectrumKeyboardBacklightEffect Convert(LENOVO_SPECTRUM...
    method Convert (line 846) | private static LENOVO_SPECTRUM_EFFECT_DESCRIPTION Convert(int profile,...
    method Convert (line 854) | private static LENOVO_SPECTRUM_EFFECT Convert(int index, SpectrumKeybo...

FILE: LenovoLegionToolkit.Lib/Controllers/WindowsPowerModeController.cs
  class WindowsPowerModeController (line 14) | public partial class WindowsPowerModeController(ApplicationSettings sett...
    method SetPowerModeAsync (line 27) | public async Task SetPowerModeAsync(PowerModeState powerModeState)
    method UpdateRegistry (line 80) | private static void UpdateRegistry(Guid guid)
    method GuidForWindowsPowerMode (line 86) | private static Guid GuidForWindowsPowerMode(WindowsPowerMode windowsPo...
    method ActivateDefaultPowerPlanIfNeeded (line 93) | private static unsafe void ActivateDefaultPowerPlanIfNeeded()
    method PowerSetActiveOverlayScheme (line 108) | [LibraryImport("powrprof.dll", EntryPoint = "PowerSetActiveOverlaySche...

FILE: LenovoLegionToolkit.Lib/Controllers/WindowsPowerPlanController.cs
  class WindowsPowerPlanController (line 16) | public class WindowsPowerPlanController(ApplicationSettings settings, Va...
    method GetPowerPlans (line 20) | public IEnumerable<WindowsPowerPlan> GetPowerPlans()
    method SetPowerPlanAsync (line 30) | public async Task SetPowerPlanAsync(PowerModeState powerModeState, boo...
    method SetPowerPlanParameter (line 95) | public void SetPowerPlanParameter(WindowsPowerPlan windowsPowerPlan, B...
    method ShouldSetPowerPlanAsync (line 101) | private async Task<bool> ShouldSetPowerPlanAsync(bool alwaysActivateDe...
    method GetPowerPlanGuids (line 126) | private static unsafe List<Guid> GetPowerPlanGuids()
    method GetPowerPlanName (line 146) | private static unsafe string GetPowerPlanName(Guid powerPlanGuid)
    method GetActivePowerPlanGuid (line 168) | private static unsafe Guid GetActivePowerPlanGuid()
    method SetActivePowerPlan (line 176) | private static void SetActivePowerPlan(Guid powerPlanGuid)

FILE: LenovoLegionToolkit.Lib/Enums.cs
  type AlwaysOnUSBState (line 7) | public enum AlwaysOnUSBState
  type AutorunState (line 17) | public enum AutorunState
  type BatteryNightChargeState (line 27) | public enum BatteryNightChargeState
  type BatteryState (line 35) | public enum BatteryState
  type CapabilityID (line 45) | public enum CapabilityID
  type DriverKey (line 81) | [Flags]
  type FanTableType (line 90) | public enum FanTableType
  type FlipToStartState (line 99) | public enum FlipToStartState
  type FnLockState (line 107) | public enum FnLockState
  type GPUState (line 115) | public enum GPUState
  type GSyncState (line 125) | public enum GSyncState
  type HDRState (line 131) | public enum HDRState
  type HybridModeState (line 139) | public enum HybridModeState
  type IGPUModeState (line 151) | public enum IGPUModeState
  type InstantBootState (line 158) | public enum InstantBootState
  type KeyboardLayout (line 170) | public enum KeyboardLayout
  type KnownFolder (line 177) | public enum KnownFolder
  type LightingChangeState (line 187) | public enum LightingChangeState
  type MicrophoneState (line 193) | public enum MicrophoneState
  type ModifierKey (line 201) | [Flags]
  type NativeWindowsMessage (line 213) | public enum NativeWindowsMessage
  type NotificationDuration (line 229) | public enum NotificationDuration
  type NotificationType (line 239) | public enum NotificationType
  type NotificationPosition (line 278) | public enum NotificationPosition
  type OneLevelWhiteKeyboardBacklightState (line 300) | public enum OneLevelWhiteKeyboardBacklightState
  type OS (line 308) | public enum OS
  type OverDriveState (line 320) | public enum OverDriveState
  type PanelLogoBacklightState (line 328) | public enum PanelLogoBacklightState
  type PortsBacklightState (line 336) | public enum PortsBacklightState
  type PowerAdapterStatus (line 344) | public enum PowerAdapterStatus
  type PowerModeMappingMode (line 351) | public enum PowerModeMappingMode
  type PowerModeState (line 361) | public enum PowerModeState
  type PowerStateEvent (line 373) | public enum PowerStateEvent
  type ProcessEventInfoType (line 381) | public enum ProcessEventInfoType
  type RebootType (line 387) | public enum RebootType
  type RGBKeyboardBacklightBrightness (line 396) | public enum RGBKeyboardBacklightChanged;
  type RGBKeyboardBacklightEffect (line 406) | public enum RGBKeyboardBacklightEffect
  type RGBKeyboardBacklightPreset (line 420) | public enum RGBKeyboardBacklightPreset
  type RGBKeyboardBacklightSpeed (line 434) | public enum RGBKeyboardBacklightSpeed
  type SpeakerState (line 446) | public enum SpeakerState
  type SoftwareStatus (line 454) | public enum SoftwareStatus
  type SpecialKey (line 461) | public enum SpecialKey
  type SpectrumKeyboardBacklightBrightness (line 490) | public enum SpectrumKeyboardBacklightBrightness
  type SpectrumKeyboardBacklightClockwiseDirection (line 502) | public enum SpectrumKeyboardBacklightClockwiseDirection
  type SpectrumKeyboardBacklightDirection (line 511) | public enum SpectrumKeyboardBacklightDirection
  type SpectrumKeyboardBacklightEffectType (line 524) | public enum SpectrumKeyboardBacklightEffectType
  type SpectrumKeyboardBacklightSpeed (line 554) | public enum SpectrumKeyboardBacklightSpeed
  type SpectrumLayout (line 565) | public enum SpectrumLayout
  type Theme (line 573) | public enum Theme
  type AccentColorSource (line 583) | public enum AccentColorSource
  type TemperatureUnit (line 591) | public enum TemperatureUnit
  type ThermalModeState (line 597) | public enum ThermalModeState
  type TouchpadLockState (line 606) | public enum TouchpadLockState
  type UpdateCheckFrequency (line 614) | public enum UpdateCheckFrequency
  type UpdateCheckStatus (line 630) | public enum UpdateCheckStatus
  type WhiteKeyboardBacklightState (line 637) | public enum WhiteKeyboardBacklightState
  type WindowsPowerMode (line 647) | public enum WindowsPowerMode
  type WinKeyState (line 657) | public enum WinKeyState

FILE: LenovoLegionToolkit.Lib/Extensions/AssemblyExtensions.cs
  class AssemblyExtensions (line 7) | public static class AssemblyExtensions
    method GetBuildDateTime (line 9) | public static DateTime? GetBuildDateTime(this Assembly assembly)
    method GetBuildDateTimeString (line 31) | public static string? GetBuildDateTimeString(this Assembly assembly)

FILE: LenovoLegionToolkit.Lib/Extensions/ContainerBuilderExtensions.cs
  class ContainerBuilderExtensions (line 6) | public static class ContainerBuilderExtensions
    method Register (line 8) | public static IRegistrationBuilder<T, ConcreteReflectionActivatorData,...

FILE: LenovoLegionToolkit.Lib/Extensions/DateTimeExtensions.cs
  class DateTimeExtensions (line 5) | public static class DateTimeExtensions
    method UtcFrom (line 7) | public static DateTime UtcFrom(int hours, int minutes)
    method LocalFrom (line 13) | public static DateTime LocalFrom(int hours, int minutes)
    method UtcDayFrom (line 19) | public static DateTime UtcDayFrom(DayOfWeek targetDay, int hours, int ...
    method LocalDayFrom (line 27) | public static DateTime LocalDayFrom(DayOfWeek targetDay, int hours, in...

FILE: LenovoLegionToolkit.Lib/Extensions/DictionaryExtensions.cs
  class DictionaryExtensions (line 6) | public static class DictionaryExtensions
    method AsReadOnlyDictionary (line 8) | public static ReadOnlyDictionary<TKey, TValue> AsReadOnlyDictionary<TK...
    method AddRange (line 13) | public static void AddRange<TKey, TValue>(this IDictionary<TKey, TValu...
    method GetValueOrNull (line 19) | public static TValue? GetValueOrNull<TKey, TValue>(this IReadOnlyDicti...

FILE: LenovoLegionToolkit.Lib/Extensions/DisplayExtensions.cs
  class DisplayExtensions (line 10) | public static class DisplayExtensions
    method SetSettingsUsingPathInfo (line 12) | public static void SetSettingsUsingPathInfo(this Display display, Disp...
    method GetAdvancedColorInfo (line 48) | public static DisplayAdvancedColorInfo GetAdvancedColorInfo(this Displ...
    method SetAdvancedColorState (line 72) | public static void SetAdvancedColorState(this Display display, bool st...

FILE: LenovoLegionToolkit.Lib/Extensions/DisplayPossibleSettingExtensions.cs
  class DisplayPossibleSettingExtensions (line 6) | public static class DisplayPossibleSettingExtensions
    method IsTooSmall (line 8) | public static bool IsTooSmall(this DisplayPossibleSetting dps) => Math...

FILE: LenovoLegionToolkit.Lib/Extensions/DisplaySettingExtensions.cs
  class DisplaySettingExtensions (line 5) | public static class DisplaySettingExtensions
    method ToExtendedString (line 7) | public static string ToExtendedString(this DisplaySetting displaySetting)

FILE: LenovoLegionToolkit.Lib/Extensions/EnumExtensions.cs
  class EnumExtensions (line 8) | public static class EnumExtensions
    method GetDisplayName (line 10) | public static string GetDisplayName(this Enum enumValue)
    method GetFlagsDisplayName (line 28) | public static string GetFlagsDisplayName(this Enum enumValue, Enum? ex...

FILE: LenovoLegionToolkit.Lib/Extensions/EnumerableExtensions.cs
  class EnumerableExtensions (line 7) | public static class EnumerableExtensions
    method IsEmpty (line 9) | public static bool IsEmpty<T>(this IEnumerable<T> source)
    method ForEach (line 16) | public static void ForEach<T>(this IEnumerable<T> enumeration, Action<...
    method Split (line 22) | public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T>...

FILE: LenovoLegionToolkit.Lib/Extensions/HttpClientExtensions.cs
  class HttpClientExtensions (line 9) | public static class HttpClientExtensions
    method DownloadAsync (line 11) | public static async Task DownloadAsync(this HttpClient client, string ...

FILE: LenovoLegionToolkit.Lib/Extensions/IntExtensions.cs
  class IntExtensions (line 3) | public static class IntExtensions
    method IsBitSet (line 5) | public static bool IsBitSet(this int value, int position) => (value & ...

FILE: LenovoLegionToolkit.Lib/Extensions/ListExtensions.cs
  class ListExtensions (line 5) | public static class ListExtensions
    method ToArray (line 8) | public static object[] ToArray(this IList source)

FILE: LenovoLegionToolkit.Lib/Extensions/LogoInfoFormatExtensions.cs
  class LogoInfoFormatExtensions (line 6) | public static class LogoInfoFormatExtensions
    method ImageFormats (line 8) | public static IEnumerable<ImageFormat> ImageFormats(this BootLogoForma...
    method ExtensionFilters (line 18) | public static IEnumerable<string> ExtensionFilters(this BootLogoFormat...

FILE: LenovoLegionToolkit.Lib/Extensions/ManagementObjectSearcherExtensions.cs
  class ManagementObjectSearcherExtensions (line 8) | public static class ManagementObjectSearcherExtensions
    method GetAsync (line 10) | public static Task<IEnumerable<ManagementBaseObject>> GetAsync(this Ma...

FILE: LenovoLegionToolkit.Lib/Extensions/MathExtensions.cs
  class MathExtensions (line 5) | public static class MathExtensions
    method RoundNearest (line 7) | public static int RoundNearest(int value, int factor)

FILE: LenovoLegionToolkit.Lib/Extensions/OSExtensions.cs
  class OSExtensions (line 5) | public static class OSExtensions
    method GetCurrent (line 7) | public static OS GetCurrent()

FILE: LenovoLegionToolkit.Lib/Extensions/PInvokeExtensions.cs
  class PInvokeExtensions (line 11) | public static class PInvokeExtensions
    type CONSOLE_DISPLAY_STATE (line 13) | public enum CONSOLE_DISPLAY_STATE
    method DeviceIoControl (line 31) | public static unsafe bool DeviceIoControl<TIn, TOut>(SafeFileHandle hD...
    method ThrowIfWin32Error (line 66) | public static void ThrowIfWin32Error(string description)
    method ThrowIfWin32Error (line 72) | public static void ThrowIfWin32Error(int errorCode, string description)

FILE: LenovoLegionToolkit.Lib/Extensions/PhyscialGPUExtensions.cs
  class NVAPIExtensions (line 10) | public static class NVAPIExtensions
    method GetActiveProcesses (line 18) | public static List<Process> GetActiveProcesses(PhysicalGPU gpu)

FILE: LenovoLegionToolkit.Lib/Extensions/ProcessExtensions.cs
  class ProcessExtensions (line 6) | public static class ProcessExtensions
    method GetFileName (line 8) | public static string? GetFileName(this Process process, int maxLength ...

FILE: LenovoLegionToolkit.Lib/Extensions/PropertyDataCollectionExtensions.cs
  class PropertyDataCollectionExtensions (line 5) | public static class PropertyDataCollectionExtensions
    method Contains (line 7) | public static bool Contains(this PropertyDataCollection pdc, string name)

FILE: LenovoLegionToolkit.Lib/Extensions/RGBKeyboardBacklightPresetExtensions.cs
  class RGBKeyboardBacklightPresetExtensions (line 3) | public static class RGBKeyboardBacklightPresetExtensions
    method Next (line 5) | public static RGBKeyboardBacklightPreset Next(this RGBKeyboardBackligh...

FILE: LenovoLegionToolkit.Lib/Extensions/RegistrationBuilderExtensions.cs
  class RegistrationBuilderExtensions (line 8) | public static class RegistrationBuilderExtensions
    method AutoActivateListener (line 10) | public static void AutoActivateListener<T>(this IRegistrationBuilder<I...

FILE: LenovoLegionToolkit.Lib/Extensions/ServiceControllerExtension.cs
  class ServiceControllerExtension (line 8) | internal static class ServiceControllerExtension
    method ChangeStartMode (line 10) | public static unsafe void ChangeStartMode(this ServiceController svc, ...

FILE: LenovoLegionToolkit.Lib/Extensions/SpectrumKeyboardBacklightEffectTypeExtensions.cs
  class SpectrumKeyboardBacklightEffectTypeExtensions (line 3) | public static class SpectrumKeyboardBacklightEffectTypeExtensions
    method IsAllLightsEffect (line 6) | public static bool IsAllLightsEffect(this SpectrumKeyboardBacklightEff...
    method IsWholeKeyboardEffect (line 14) | public static bool IsWholeKeyboardEffect(this SpectrumKeyboardBackligh...

FILE: LenovoLegionToolkit.Lib/Extensions/StreamExtensions.cs
  class StreamExtensions (line 10) | public static class StreamExtensions
    method CopyToAsync (line 12) | public static async Task CopyToAsync(this Stream source, Stream destin...

FILE: LenovoLegionToolkit.Lib/Extensions/StringExtensions.cs
  class StringExtensions (line 5) | public static class StringExtensions
    method GetUntilOrEmpty (line 7) | public static string GetUntilOrEmpty(this string text, string stopAt)

FILE: LenovoLegionToolkit.Lib/Extensions/TaskExtensions.cs
  class TaskExtensions (line 5) | public static class TaskExtensions
    method AsValueTask (line 7) | public static ValueTask AsValueTask(this Task task) => new(task);
    method OrNullIfException (line 9) | public static Task<T?> OrNullIfException<T>(this Task<T> task) where T...

FILE: LenovoLegionToolkit.Lib/Extensions/TimeExtensions.cs
  class TimeExtensions (line 5) | public static class TimeExtensions

FILE: LenovoLegionToolkit.Lib/Extensions/UintExtensions.cs
  class UintExtensions (line 5) | public static class UintExtensions
    method ReverseEndianness (line 7) | public static uint ReverseEndianness(this uint state)
    method GetNthBit (line 14) | public static bool GetNthBit(this uint num, int n) => (num & (1 << n))...
    method SetNthBit (line 16) | public static uint SetNthBit(this uint num, int n, bool state) => stat...

FILE: LenovoLegionToolkit.Lib/Extensions/VersionExtensions.cs
  class VersionExtensions (line 5) | public static class VersionExtensions
    method IsBeta (line 7) | public static bool IsBeta(this Version version) => version switch

FILE: LenovoLegionToolkit.Lib/Features/AbstractCapabilityFeature.cs
  class AbstractCapabilityFeature (line 8) | public abstract class AbstractCapabilityFeature<T>(CapabilityID capabili...
    method IsSupportedAsync (line 11) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 24) | public Task<T[]> GetAllStatesAsync() => Task.FromResult(Enum.GetValues...
    method GetStateAsync (line 26) | public async Task<T> GetStateAsync()
    method SetStateAsync (line 42) | public async Task SetStateAsync(T state)

FILE: LenovoLegionToolkit.Lib/Features/AbstractCompositeFeature.cs
  class AbstractCompositeFeature (line 7) | public abstract class AbstractCompositeFeature<T>(params IFeature<T>[] f...
    method IsSupportedAsync (line 14) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 22) | public async Task<T[]> GetAllStatesAsync()
    method GetStateAsync (line 29) | public async Task<T> GetStateAsync()
    method SetStateAsync (line 36) | public async Task SetStateAsync(T state)
    method ResolveAsync (line 43) | protected virtual async Task<IFeature<T>?> ResolveAsync()
    method ResolveInternalAsync (line 56) | private async Task<IFeature<T>?> ResolveInternalAsync()

FILE: LenovoLegionToolkit.Lib/Features/AbstractDriverFeature.cs
  class AbstractDriverFeature (line 10) | public abstract class AbstractDriverFeature<T>(Func<SafeFileHandle> driv...
    method IsSupportedAsync (line 17) | public virtual async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 30) | public Task<T[]> GetAllStatesAsync() => Task.FromResult(Enum.GetValues...
    method GetStateAsync (line 32) | public virtual async Task<T> GetStateAsync()
    method SetStateAsync (line 51) | public virtual async Task SetStateAsync(T state)
    method FromInternalAsync (line 67) | protected abstract Task<T> FromInternalAsync(uint state);
    method GetInBufferValue (line 69) | protected abstract uint GetInBufferValue();
    method ToInternalAsync (line 71) | protected abstract Task<uint[]> ToInternalAsync(T state);
    method SendCodeAsync (line 73) | protected Task<uint> SendCodeAsync(SafeFileHandle handle, uint control...
    method VerifyStateSetAsync (line 86) | private async Task VerifyStateSetAsync(T state)

FILE: LenovoLegionToolkit.Lib/Features/AbstractLenovoLightingFeature.cs
  class AbstractLenovoLightingFeature (line 8) | public abstract class AbstractLenovoLightingFeature<T>(int lightingID, i...
    method IsSupportedAsync (line 12) | public virtual async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 48) | public Task<T[]> GetAllStatesAsync() => Task.FromResult(Enum.GetValues...
    method GetStateAsync (line 50) | public async Task<T> GetStateAsync()
    method SetStateAsync (line 64) | public async Task SetStateAsync(T state)
    method FromInternal (line 77) | protected abstract T FromInternal(int stateType, int level);
    method ToInternal (line 79) | protected abstract (int stateType, int level) ToInternal(T state);

FILE: LenovoLegionToolkit.Lib/Features/AbstractUEFIFeature.cs
  class AbstractUEFIFeature (line 9) | public abstract class AbstractUEFIFeature<T>(string guid, string scopeNa...
    method IsSupportedAsync (line 12) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 25) | public Task<T[]> GetAllStatesAsync() => Task.FromResult(Enum.GetValues...
    method GetStateAsync (line 27) | public abstract Task<T> GetStateAsync();
    method SetStateAsync (line 29) | public abstract Task SetStateAsync(T state);
    method ReadFromUefiAsync (line 31) | protected unsafe Task<TS> ReadFromUefiAsync<TS>() where TS : struct =>...
    method WriteToUefiAsync (line 73) | protected unsafe Task WriteToUefiAsync<TS>(TS structure) where TS : st...

FILE: LenovoLegionToolkit.Lib/Features/AbstractWmiFeature.cs
  class AbstractWmiFeature (line 7) | public abstract class AbstractWmiFeature<T>(Func<Task<int>> getValue, Fu...
    method IsSupportedAsync (line 10) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 24) | public virtual Task<T[]> GetAllStatesAsync() => Task.FromResult(Enum.G...
    method GetStateAsync (line 26) | public async Task<T> GetStateAsync()
    method SetStateAsync (line 40) | public virtual async Task SetStateAsync(T state)
    method ToInternal (line 52) | private int ToInternal(T state) => (int)(object)state + offset;
    method FromInternal (line 54) | private T FromInternal(int state) => (T)(object)(state - offset);

FILE: LenovoLegionToolkit.Lib/Features/AlwaysOnUsbFeature.cs
  class AlwaysOnUSBFeature (line 8) | public class AlwaysOnUSBFeature() : AbstractDriverFeature<AlwaysOnUSBSta...
    method GetInBufferValue (line 10) | protected override uint GetInBufferValue() => 0x2;
    method ToInternalAsync (line 12) | protected override Task<uint[]> ToInternalAsync(AlwaysOnUSBState state)
    method FromInternalAsync (line 24) | protected override Task<AlwaysOnUSBState> FromInternalAsync(uint state)

FILE: LenovoLegionToolkit.Lib/Features/BatteryFeature.cs
  class BatteryFeature (line 8) | public class BatteryFeature() : AbstractDriverFeature<BatteryState>(Driv...
    method GetInBufferValue (line 17) | protected override uint GetInBufferValue() => 0xFF;
    method ToInternalAsync (line 19) | protected override Task<uint[]> ToInternalAsync(BatteryState state)
    method FromInternalAsync (line 31) | protected override Task<BatteryState> FromInternalAsync(uint state)
    method SetStateAsync (line 44) | public override async Task SetStateAsync(BatteryState state)
    method EnsureCorrectBatteryModeIsSetAsync (line 50) | public async Task EnsureCorrectBatteryModeIsSetAsync()
    method GetStateFromRegistry (line 63) | private static BatteryState? GetStateFromRegistry()
    method SetStateInRegistry (line 75) | private static void SetStateInRegistry(BatteryState state)

FILE: LenovoLegionToolkit.Lib/Features/BatteryNightChargeFeature.cs
  class BatteryNightChargeFeature (line 8) | public class BatteryNightChargeFeature() : AbstractDriverFeature<Battery...
    method GetInBufferValue (line 10) | protected override uint GetInBufferValue() => 0x11;
    method ToInternalAsync (line 12) | protected override Task<uint[]> ToInternalAsync(BatteryNightChargeStat...
    method FromInternalAsync (line 23) | protected override Task<BatteryNightChargeState> FromInternalAsync(uin...

FILE: LenovoLegionToolkit.Lib/Features/DpiScaleFeature.cs
  class DpiScaleFeature (line 10) | public class DpiScaleFeature : IFeature<DpiScale>
    method IsSupportedAsync (line 12) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method GetAllStatesAsync (line 14) | public Task<DpiScale[]> GetAllStatesAsync()
    method GetStateAsync (line 44) | public Task<DpiScale> GetStateAsync()
    method SetStateAsync (line 67) | public Task SetStateAsync(DpiScale state)

FILE: LenovoLegionToolkit.Lib/Features/FlipToStart/FlipToStartUEFIFeature.cs
  class FlipToStartUEFIFeature (line 7) | public class FlipToStartUEFIFeature() : AbstractUEFIFeature<FlipToStartS...
    type FlipToBootStruct (line 14) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
    method GetStateAsync (line 29) | public override async Task<FlipToStartState> GetStateAsync()
    method SetStateAsync (line 35) | public override async Task SetStateAsync(FlipToStartState state)

FILE: LenovoLegionToolkit.Lib/Features/FnLockFeature.cs
  class FnLockFeature (line 8) | public class FnLockFeature() : AbstractDriverFeature<FnLockState>(Driver...
    method GetInBufferValue (line 10) | protected override uint GetInBufferValue() => 0x2;
    method ToInternalAsync (line 12) | protected override Task<uint[]> ToInternalAsync(FnLockState state)
    method FromInternalAsync (line 25) | protected override Task<FnLockState> FromInternalAsync(uint state)

FILE: LenovoLegionToolkit.Lib/Features/HDRFeature.cs
  class HDRFeature (line 9) | public class HDRFeature : IFeature<HDRState>
    method IsSupportedAsync (line 11) | public Task<bool> IsSupportedAsync()
    method IsHdrBlockedAsync (line 43) | public Task<bool> IsHdrBlockedAsync()
    method GetAllStatesAsync (line 51) | public Task<HDRState[]> GetAllStatesAsync() => Task.FromResult(Enum.Ge...
    method GetStateAsync (line 53) | public Task<HDRState> GetStateAsync()
    method SetStateAsync (line 68) | public async Task SetStateAsync(HDRState state)

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/HybridModeFeature.cs
  class HybridModeFeature (line 9) | public class HybridModeFeature(GSyncFeature gSyncFeature, IGPUModeFeatur...
    method IsSupportedAsync (line 13) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 19) | public async Task<HybridModeState[]> GetAllStatesAsync()
    method GetStateAsync (line 32) | public async Task<HybridModeState> GetStateAsync()
    method SetStateAsync (line 57) | public async Task SetStateAsync(HybridModeState state)
    method EnsureDGPUEjectedIfNeededAsync (line 99) | public async Task EnsureDGPUEjectedIfNeededAsync()
    method Unpack (line 157) | private static (GSyncState, IGPUModeState) Unpack(HybridModeState stat...
    method Pack (line 166) | private static HybridModeState Pack(GSyncState state1, IGPUModeState s...

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/IGPUModeCapabilityFeature.cs
  class IGPUModeCapabilityFeature (line 8) | public class IGPUModeCapabilityFeature : IFeature<IGPUModeState>
    method IsSupportedAsync (line 10) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 23) | public Task<IGPUModeState[]> GetAllStatesAsync() => Task.FromResult(En...
    method GetStateAsync (line 25) | public async Task<IGPUModeState> GetStateAsync()
    method SetStateAsync (line 39) | public async Task SetStateAsync(IGPUModeState state)

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/IGPUModeChangeException.cs
  class IGPUModeChangeException (line 5) | public class IGPUModeChangeException(IGPUModeState igpuMode) : Exception

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/IGPUModeFeature.cs
  class IGPUModeFeature (line 5) | public class IGPUModeFeature(IGPUModeGamezoneFeature feature1, IGPUModeC...
    method ResolveAsync (line 10) | protected override async Task<IFeature<IGPUModeState>?> ResolveAsync()

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/IGPUModeFeatureFlagsFeature.cs
  class IGPUModeFeatureFlagsFeature (line 9) | public class IGPUModeFeatureFlagsFeature : IFeature<IGPUModeState>
    method IsSupportedAsync (line 11) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 24) | public Task<IGPUModeState[]> GetAllStatesAsync() => Task.FromResult(En...
    method GetStateAsync (line 26) | public async Task<IGPUModeState> GetStateAsync()
    method SetStateAsync (line 47) | public async Task SetStateAsync(IGPUModeState state)

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/Notify/AbstractDGPUNotify.cs
  class AbstractDGPUNotify (line 14) | public abstract partial class AbstractDGPUNotify : IDGPUNotify
    method HardwareIdRegex (line 16) | [GeneratedRegex("pci#ven_([0-9A-Fa-f]{4})|dev_([0-9A-Fa-f]{4})")]
    method IsSupportedAsync (line 25) | public abstract Task<bool> IsSupportedAsync();
    method IsDGPUAvailableAsync (line 27) | public async Task<bool> IsDGPUAvailableAsync()
    method NotifyAsync (line 43) | public async Task NotifyAsync(bool publish = true)
    method NotifyLaterIfNeededAsync (line 70) | public Task NotifyLaterIfNeededAsync()
    method NotifyDGPUStatusAsync (line 97) | protected abstract Task NotifyDGPUStatusAsync(bool state);
    method GetDGPUHardwareIdAsync (line 99) | protected abstract Task<HardwareId> GetDGPUHardwareIdAsync();
    method IsDGPUAvailable (line 101) | private unsafe bool IsDGPUAvailable(HardwareId dgpuHardwareId)
    method HardwareIdFromDevicePath (line 174) | private static HardwareId HardwareIdFromDevicePath(string devicePath)

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/Notify/DGPUCapabilityNotify.cs
  class DGPUCapabilityNotify (line 8) | public class DGPUCapabilityNotify : AbstractDGPUNotify
    method IsSupportedAsync (line 10) | public override async Task<bool> IsSupportedAsync()
    method NotifyDGPUStatusAsync (line 23) | protected override Task NotifyDGPUStatusAsync(bool state) => WMI.Lenov...
    method GetDGPUHardwareIdAsync (line 25) | protected override async Task<HardwareId> GetDGPUHardwareIdAsync()

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/Notify/DGPUFeatureFlagsNotify.cs
  class DGPUFeatureFlagsNotify (line 8) | public class DGPUFeatureFlagsNotify : AbstractDGPUNotify
    method IsSupportedAsync (line 10) | public override async Task<bool> IsSupportedAsync()
    method NotifyDGPUStatusAsync (line 23) | protected override Task NotifyDGPUStatusAsync(bool state) => WMI.Lenov...
    method GetDGPUHardwareIdAsync (line 25) | protected override async Task<HardwareId> GetDGPUHardwareIdAsync()

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/Notify/DGPUGamezoneNotify.cs
  class DGPUGamezoneNotify (line 8) | public class DGPUGamezoneNotify : AbstractDGPUNotify
    method IsSupportedAsync (line 10) | public override async Task<bool> IsSupportedAsync()
    method NotifyDGPUStatusAsync (line 23) | protected override Task NotifyDGPUStatusAsync(bool state) => WMI.Lenov...
    method GetDGPUHardwareIdAsync (line 25) | protected override async Task<HardwareId> GetDGPUHardwareIdAsync()

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/Notify/DGPUNotify.cs
  class DGPUNotify (line 7) | public class DGPUNotify(DGPUGamezoneNotify gamezoneNotify, DGPUCapabilit...
    method IsSupportedAsync (line 36) | public async Task<bool> IsSupportedAsync()
    method IsDGPUAvailableAsync (line 44) | public async Task<bool> IsDGPUAvailableAsync()
    method NotifyAsync (line 50) | public async Task NotifyAsync(bool publish = true)
    method NotifyLaterIfNeededAsync (line 56) | public async Task NotifyLaterIfNeededAsync()
    method ResolveAsync (line 62) | private async Task<IDGPUNotify?> ResolveAsync()
    method ResolveInternalAsync (line 76) | private async Task<IDGPUNotify?> ResolveInternalAsync()

FILE: LenovoLegionToolkit.Lib/Features/Hybrid/Notify/IDGPUNotify.cs
  type IDGPUNotify (line 6) | public interface IDGPUNotify
    method IsSupportedAsync (line 10) | Task<bool> IsSupportedAsync();
    method IsDGPUAvailableAsync (line 11) | Task<bool> IsDGPUAvailableAsync();
    method NotifyAsync (line 12) | Task NotifyAsync(bool publish = true);
    method NotifyLaterIfNeededAsync (line 13) | Task NotifyLaterIfNeededAsync();

FILE: LenovoLegionToolkit.Lib/Features/IFeature.cs
  type IFeature (line 5) | public interface IFeature<T> where T : struct
    method IsSupportedAsync (line 7) | Task<bool> IsSupportedAsync();
    method GetAllStatesAsync (line 8) | Task<T[]> GetAllStatesAsync();
    method GetStateAsync (line 9) | Task<T> GetStateAsync();
    method SetStateAsync (line 10) | Task SetStateAsync(T state);

FILE: LenovoLegionToolkit.Lib/Features/InstantBoot/InstantBootCapabilityFeature.cs
  class InstantBootCapabilityFeature (line 7) | public class InstantBootCapabilityFeature : IFeature<InstantBootState>
    type State (line 9) | private enum State
    method IsSupportedAsync (line 21) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 26) | public Task<InstantBootState[]> GetAllStatesAsync() => Task.FromResult...
    method GetStateAsync (line 28) | public async Task<InstantBootState> GetStateAsync()
    method SetStateAsync (line 50) | public async Task SetStateAsync(InstantBootState state)

FILE: LenovoLegionToolkit.Lib/Features/InstantBoot/InstantBootFeatureFlagsFeature.cs
  class InstantBootFeatureFlagsFeature (line 9) | public class InstantBootFeatureFlagsFeature : IFeature<InstantBootState>
    method IsSupportedAsync (line 14) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 27) | public Task<InstantBootState[]> GetAllStatesAsync() => Task.FromResult...
    method GetStateAsync (line 29) | public async Task<InstantBootState> GetStateAsync()
    method SetStateAsync (line 53) | public async Task SetStateAsync(InstantBootState state)

FILE: LenovoLegionToolkit.Lib/Features/MicrophoneFeature.cs
  class MicrophoneFeature (line 10) | public class MicrophoneFeature : IFeature<MicrophoneState>
    method IsSupportedAsync (line 16) | public Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 29) | public Task<MicrophoneState[]> GetAllStatesAsync() => Task.FromResult(...
    method GetStateAsync (line 31) | public Task<MicrophoneState> GetStateAsync()
    method SetStateAsync (line 38) | public Task SetStateAsync(MicrophoneState state)

FILE: LenovoLegionToolkit.Lib/Features/OneLevelWhiteKeyboardBacklightFeature.cs
  class OneLevelWhiteKeyboardBacklightFeature (line 7) | public class OneLevelWhiteKeyboardBacklightFeature() : AbstractDriverFea...
    method IsSupportedAsync (line 9) | public override async Task<bool> IsSupportedAsync()
    method GetInBufferValue (line 23) | protected override uint GetInBufferValue() => 0x2;
    method ToInternalAsync (line 25) | protected override Task<uint[]> ToInternalAsync(OneLevelWhiteKeyboardB...
    method FromInternalAsync (line 36) | protected override Task<OneLevelWhiteKeyboardBacklightState> FromInter...

FILE: LenovoLegionToolkit.Lib/Features/PanelLogo/PanelLogoLenovoLightingBacklightFeature.cs
  class PanelLogoLenovoLightingBacklightFeature (line 6) | public class PanelLogoLenovoLightingBacklightFeature() : AbstractLenovoL...
    method IsSupportedAsync (line 8) | public override async Task<bool> IsSupportedAsync()
    method FromInternal (line 17) | protected override PanelLogoBacklightState FromInternal(int stateType,...
    method ToInternal (line 19) | protected override (int stateType, int level) ToInternal(PanelLogoBack...

FILE: LenovoLegionToolkit.Lib/Features/PanelLogo/PanelLogoSpectrumBacklightFeature.cs
  class PanelLogoSpectrumBacklightFeature (line 7) | public class PanelLogoSpectrumBacklightFeature(SpectrumKeyboardBacklight...
    method IsSupportedAsync (line 9) | public async Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 19) | public Task<PanelLogoBacklightState[]> GetAllStatesAsync() => Task.Fro...
    method GetStateAsync (line 21) | public async Task<PanelLogoBacklightState> GetStateAsync() => await co...
    method SetStateAsync (line 25) | public Task SetStateAsync(PanelLogoBacklightState state) => controller...

FILE: LenovoLegionToolkit.Lib/Features/PortsBacklightFeature.cs
  class PortsBacklightFeature (line 3) | public class PortsBacklightFeature() : AbstractLenovoLightingFeature<Por...
    method FromInternal (line 5) | protected override PortsBacklightState FromInternal(int stateType, int...
    method ToInternal (line 7) | protected override (int stateType, int level) ToInternal(PortsBackligh...

FILE: LenovoLegionToolkit.Lib/Features/PowerModeFeature.cs
  class PowerModeUnavailableWithoutACException (line 13) | public class PowerModeUnavailableWithoutACException(PowerModeState power...
  class PowerModeFeature (line 18) | public class PowerModeFeature(
    method GetAllStatesAsync (line 28) | public override async Task<PowerModeState[]> GetAllStatesAsync()
    method SetStateAsync (line 36) | public override async Task SetStateAsync(PowerModeState state)
    method EnsureCorrectWindowsPowerSettingsAreSetAsync (line 85) | public async Task EnsureCorrectWindowsPowerSettingsAreSetAsync()
    method EnsureGodModeStateIsAppliedAsync (line 92) | public async Task EnsureGodModeStateIsAppliedAsync()

FILE: LenovoLegionToolkit.Lib/Features/RefreshRateFeature.cs
  class RefreshRateFeature (line 12) | public class RefreshRateFeature : IFeature<RefreshRate>
    method IsSupportedAsync (line 14) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method GetAllStatesAsync (line 16) | public Task<RefreshRate[]> GetAllStatesAsync()
    method GetStateAsync (line 52) | public Task<RefreshRate> GetStateAsync()
    method SetStateAsync (line 75) | public Task SetStateAsync(RefreshRate state)
    method Match (line 124) | private static bool Match(DisplayPossibleSetting dps, DisplayPossibleS...

FILE: LenovoLegionToolkit.Lib/Features/ResolutionFeature.cs
  class ResolutionFeature (line 12) | public class ResolutionFeature : IFeature<Resolution>
    method IsSupportedAsync (line 14) | public Task<bool> IsSupportedAsync() => Task.FromResult(true);
    method GetAllStatesAsync (line 16) | public Task<Resolution[]> GetAllStatesAsync()
    method GetStateAsync (line 52) | public Task<Resolution> GetStateAsync()
    method SetStateAsync (line 75) | public Task SetStateAsync(Resolution state)
    method Match (line 125) | private static bool Match(DisplayPossibleSetting dps, DisplayPossibleS...

FILE: LenovoLegionToolkit.Lib/Features/SpeakerFeature.cs
  class SpeakerFeature (line 10) | public class SpeakerFeature : IFeature<SpeakerState>
    method IsSupportedAsync (line 16) | public Task<bool> IsSupportedAsync()
    method GetAllStatesAsync (line 29) | public Task<SpeakerState[]> GetAllStatesAsync() => Task.FromResult(Enu...
    method GetStateAsync (line 31) | public Task<SpeakerState> GetStateAsync()
    method SetStateAsync (line 38) | public Task SetStateAsync(SpeakerState state)

FILE: LenovoLegionToolkit.Lib/Features/WhiteKeyboardBacklight/WhiteKeyboardBacklightFeature.cs
  class WhiteKeyboardBacklightFeature (line 6) | public class WhiteKeyboardBacklightFeature(WhiteKeyboardLenovoLightingBa...
    method ResolveAsync (line 12) | protected override async Task<IFeature<WhiteKeyboardBacklightState>?> ...

FILE: LenovoLegionToolkit.Lib/Features/WhiteKeyboardBacklight/WhiteKeyboardDriverBacklightFeature.cs
  class WhiteKeyboardDriverBacklightFeature (line 7) | public class WhiteKeyboardDriverBacklightFeature()
    method IsSupportedAsync (line 10) | public override async Task<bool> IsSupportedAsync()
    method GetInBufferValue (line 24) | protected override uint GetInBufferValue() => 0x22;
    method ToInternalAsync (line 26) | protected override Task<uint[]> ToInternalAsync(WhiteKeyboardBacklight...
    method FromInternalAsync (line 38) | protected override Task<WhiteKeyboardBacklightState> FromInternalAsync...

FILE: LenovoLegionToolkit.Lib/Features/WhiteKeyboardBacklight/WhiteKeyboardLenovoLightingBacklightFeature.cs
  class WhiteKeyboardLenovoLightingBacklightFeature (line 3) | public class WhiteKeyboardLenovoLightingBacklightFeature()
    method FromInternal (line 6) | protected override WhiteKeyboardBacklightState FromInternal(int _, int...
    method ToInternal (line 8) | protected override (int stateType, int level) ToInternal(WhiteKeyboard...

FILE: LenovoLegionToolkit.Lib/GameDetection/EffectiveGameModeDetector.cs
  class EffectiveGameModeDetector (line 9) | internal unsafe class EffectiveGameModeDetector
    method EffectiveGameModeDetector (line 18) | public EffectiveGameModeDetector()
    method StartAsync (line 23) | public Task StartAsync()
    method StopAsync (line 31) | public Task StopAsync()
    method Callback (line 38) | private void Callback(EFFECTIVE_POWER_MODE mode, void* context)

FILE: LenovoLegionToolkit.Lib/GameDetection/GameConfigStoreDetector.cs
  class GameConfigStoreDetector (line 9) | internal class GameConfigStoreDetector
    class GameDetectedEventArgs (line 15) | public class GameDetectedEventArgs(HashSet<ProcessInfo> games) : Event...
    method StartAsync (line 24) | public Task StartAsync()
    method StopAsync (line 52) | public async Task StopAsync()
    method GetDetectedGamePaths (line 59) | public static HashSet<ProcessInfo> GetDetectedGamePaths()

FILE: LenovoLegionToolkit.Lib/HttpClientFactory.cs
  class HttpClientFactory (line 7) | public class HttpClientFactory
    method CreateHandler (line 14) | public HttpClientHandler CreateHandler()
    method Create (line 37) | public HttpClient Create() => new(CreateHandler(), true);
    method SetProxy (line 39) | public void SetProxy(Uri? url, string? username, string? password, boo...

FILE: LenovoLegionToolkit.Lib/Integrations/HWiNFOIntegration.cs
  class HWiNFOIntegration (line 12) | public class HWiNFOIntegration(SensorsController sensorController, Integ...
    method StartStopIfNeededAsync (line 28) | public async Task StartStopIfNeededAsync()
    method StopAsync (line 45) | public async Task StopAsync()
    method RefreshLoopAsync (line 62) | private async Task RefreshLoopAsync(CancellationToken token)
    method SetSensorValuesAsync (line 82) | private async Task SetSensorValuesAsync(bool firstRun = true)
    method SetValue (line 96) | private static void SetValue<T>(string type, int index, string name, T...
    method ClearValues (line 112) | private static void ClearValues()

FILE: LenovoLegionToolkit.Lib/Interfaces.cs
  type IDisplayName (line 3) | public interface IDisplayName

FILE: LenovoLegionToolkit.Lib/IoCContainer.cs
  class IoCContainer (line 6) | public static class IoCContainer
    method Initialize (line 12) | public static void Initialize(params Module[] modules)
    method Resolve (line 28) | public static T Resolve<T>() where T : notnull
    method TryResolve (line 38) | public static T? TryResolve<T>() where T : class

FILE: LenovoLegionToolkit.Lib/IoCModule.cs
  class IoCModule (line 25) | public class IoCModule : Module
    method Load (line 27) | protected override void Load(ContainerBuilder builder)

FILE: LenovoLegionToolkit.Lib/Listeners/AbstractEventLogListener.cs
  class AbstractEventLogListener (line 8) | public abstract class AbstractEventLogListener : IListener<EventArgs>
    method AbstractEventLogListener (line 12) | public AbstractEventLogListener(string path, string query)
    method StartAsync (line 21) | public Task StartAsync()
    method StopAsync (line 29) | public Task StopAsync()
    method OnChangedAsync (line 35) | protected abstract Task OnChangedAsync();
    method Watcher_EventRecordWritten (line 37) | private async void Watcher_EventRecordWritten(object? sender, EventRec...

FILE: LenovoLegionToolkit.Lib/Listeners/AbstractWMIListener.cs
  class AbstractWMIListener (line 7) | public abstract class AbstractWMIListener<TEventArgs, TValue, TRawValue>...
    method StartAsync (line 15) | public Task StartAsync()
    method StopAsync (line 40) | public Task StopAsync()
    method GetValue (line 59) | protected abstract TValue GetValue(TRawValue value);
    method GetEventArgs (line 61) | protected abstract TEventArgs GetEventArgs(TValue value);
    method OnChangedAsync (line 63) | protected abstract Task OnChangedAsync(TValue value);
    method RaiseChanged (line 65) | protected void RaiseChanged(TValue value) => Changed?.Invoke(this, Get...
    method Handler (line 67) | private async void Handler(TRawValue properties)

FILE: LenovoLegionToolkit.Lib/Listeners/DisplayBrightnessListener.cs
  class DisplayBrightnessListener (line 10) | public class DisplayBrightnessListener(WindowsPowerPlanController window...
    class ChangedEventArgs (line 13) | public class ChangedEventArgs(Brightness brightness) : EventArgs
    method GetValue (line 20) | protected override Brightness GetValue(byte value) => new(value);
    method GetEventArgs (line 22) | protected override ChangedEventArgs GetEventArgs(Brightness value) => ...
    method OnChangedAsync (line 24) | protected override async Task OnChangedAsync(Brightness value) => awai...
    method SynchronizeBrightnessAsync (line 26) | private async Task SynchronizeBrightnessAsync(Brightness value)
    method SetBrightnessForAllPowerPlans (line 38) | private void SetBrightnessForAllPowerPlans(Brightness brightness)

FILE: LenovoLegionToolkit.Lib/Listeners/DisplayConfigurationListener.cs
  class DisplayConfigurationListener (line 11) | public class DisplayConfigurationListener : IListener<DisplayConfigurati...
    class ChangedEventArgs (line 13) | public class ChangedEventArgs : EventArgs
    method StartAsync (line 24) | public Task StartAsync()
    method StopAsync (line 37) | public Task StopAsync()
    method SystemEvents_DisplaySettingsChanged (line 47) | private void SystemEvents_DisplaySettingsChanged(object? sender, Event...
    method GetHDRStatus (line 61) | private static bool? GetHDRStatus()

FILE: LenovoLegionToolkit.Lib/Listeners/DriverKeyListener.cs
  class DriverKeyListener (line 16) | public class DriverKeyListener(
    class ChangedEventArgs (line 23) | public class ChangedEventArgs(DriverKey driverKey) : EventArgs
    method StartAsync (line 33) | public Task StartAsync()
    method StopAsync (line 44) | public async Task StopAsync()
    method HandlerAsync (line 57) | private async Task HandlerAsync(CancellationToken token)
    method OnChangedAsync (line 106) | private async Task OnChangedAsync(DriverKey value)
    method BindListener (line 160) | private static unsafe bool BindListener(WaitHandle waitHandle)
    method GetValue (line 173) | private static unsafe bool GetValue(out uint value)

FILE: LenovoLegionToolkit.Lib/Listeners/IListener.cs
  type IListener (line 6) | public interface IListener<TEventArgs> where TEventArgs : EventArgs
    method StartAsync (line 10) | Task StartAsync();
    method StopAsync (line 12) | Task StopAsync();

FILE: LenovoLegionToolkit.Lib/Listeners/INotifyingListener.cs
  type INotifyingListener (line 6) | public interface INotifyingListener<TEventArgs, in TValue> : IListener<T...
    method NotifyAsync (line 8) | Task NotifyAsync(TValue value);

FILE: LenovoLegionToolkit.Lib/Listeners/LightingChangeListener.cs
  class LightingChangeListener (line 13) | public class LightingChangeListener(
    class ChangedEventArgs (line 20) | public class ChangedEventArgs(LightingChangeState state) : EventArgs
    method GetValue (line 25) | protected override LightingChangeState GetValue(int value)
    method GetEventArgs (line 34) | protected override ChangedEventArgs GetEventArgs(LightingChangeState v...
    method OnChangedAsync (line 36) | protected override async Task OnChangedAsync(LightingChangeState value)

FILE: LenovoLegionToolkit.Lib/Listeners/NativeWindowsMessageListener.cs
  class NativeWindowsMessageListener (line 22) | public class NativeWindowsMessageListener : NativeWindow, IListener<Nati...
    class ChangedEventArgs (line 24) | public class ChangedEventArgs(NativeWindowsMessage message, object? da...
    method NativeWindowsMessageListener (line 51) | public NativeWindowsMessageListener(IMainThreadDispatcher mainThreadDi...
    method TurnOffMonitorAsync (line 61) | public async Task TurnOffMonitorAsync()
    method StartAsync (line 71) | public Task StartAsync() => _mainThreadDispatcher.DispatchAsync(() =>
    method StopAsync (line 89) | public Task StopAsync() => _mainThreadDispatcher.DispatchAsync(() =>
    method WndProc (line 107) | protected override unsafe void WndProc(ref Message m)
    method WaitForInit (line 234) | private async Task WaitForInit()
    method OnMonitorOn (line 251) | private void OnMonitorOn()
    method OnMonitorOff (line 259) | private void OnMonitorOff()
    method OnLidOpened (line 267) | private void OnLidOpened()
    method OnLidClosed (line 275) | private void OnLidClosed()
    method OnBatterySaverEnabled (line 283) | private void OnBatterySaverEnabled()
    method OnDeviceConnected (line 290) | private void OnDeviceConnected(string name)
    method OnDeviceDisconnected (line 295) | private void OnDeviceDisconnected(string name)
    method OnMonitorConnected (line 300) | private void OnMonitorConnected(bool isExternal)
    method OnMonitorDisconnected (line 308) | private void OnMonitorDisconnected(bool isExternal)
    method OnDisplayDeviceArrival (line 316) | private void OnDisplayDeviceArrival()
    method RaiseChanged (line 327) | private void RaiseChanged(NativeWindowsMessage message, object? data =...
    method LowLevelKeyboardProc (line 329) | private unsafe LRESULT LowLevelKeyboardProc(int nCode, WPARAM wParam, ...
    method RegisterDeviceNotification (line 358) | private static unsafe HDEVNOTIFY RegisterDeviceNotification(IntPtr han...
    method RegisterPowerNotification (line 378) | private unsafe HPOWERNOTIFY RegisterPowerNotification(Guid guid)
    method ConvertDeviceNameToDeviceInstanceId (line 383) | private static string? ConvertDeviceNameToDeviceInstanceId(string name)

FILE: LenovoLegionToolkit.Lib/Listeners/PowerModeListener.cs
  class PowerModeListener (line 12) | public class PowerModeListener(
    class ChangedEventArgs (line 18) | public class ChangedEventArgs(PowerModeState state) : EventArgs
    method GetValue (line 23) | protected override PowerModeState GetValue(int value)
    method GetEventArgs (line 29) | protected override ChangedEventArgs GetEventArgs(PowerModeState value)...
    method OnChangedAsync (line 31) | protected override async Task OnChangedAsync(PowerModeState value)
    method NotifyAsync (line 37) | public async Task NotifyAsync(PowerModeState value)
    method ChangeDependenciesAsync (line 43) | private async Task ChangeDependenciesAsync(PowerModeState value)
    method PublishNotification (line 52) | private static void PublishNotification(PowerModeState value)

FILE: LenovoLegionToolkit.Lib/Listeners/PowerStateListener.cs
  class PowerStateListener (line 19) | public class PowerStateListener : IListener<PowerStateListener.ChangedEv...
    class ChangedEventArgs (line 21) | public class ChangedEventArgs(PowerStateEvent powerStateEvent, bool po...
    method PowerStateListener (line 42) | public unsafe PowerStateListener(PowerModeFeature powerModeFeature, Ba...
    method StartAsync (line 57) | public async Task StartAsync()
    method StopAsync (line 70) | public Task StopAsync()
    method SystemEvents_PowerModeChanged (line 80) | private async void SystemEvents_PowerModeChanged(object sender, PowerM...
    method Callback (line 99) | private unsafe uint Callback(void* context, uint type, void* setting)
    method CallbackAsync (line 105) | private async Task CallbackAsync(uint type)
    method HandleAsync (line 131) | private async Task HandleAsync(PowerStateEvent powerStateEvent)
    method RegisterSuspendResumeNotification (line 189) | private unsafe void RegisterSuspendResumeNotification()
    method UnRegisterSuspendResumeNotification (line 196) | private void UnRegisterSuspendResumeNotification()
    method Notify (line 202) | private static void Notify(PowerAdapterStatus newState)

FILE: LenovoLegionToolkit.Lib/Listeners/RGBKeyboardBacklightListener.cs
  class RGBKeyboardBacklightListener (line 12) | public class RGBKeyboardBacklightListener(RGBKeyboardBacklightController...
    method GetValue (line 15) | protected override RGBKeyboardBacklightChanged GetValue(int value) => ...
    method GetEventArgs (line 17) | protected override EventArgs GetEventArgs(RGBKeyboardBacklightChanged ...
    method OnChangedAsync (line 19) | protected override async Task OnChangedAsync(RGBKeyboardBacklightChang...

FILE: LenovoLegionToolkit.Lib/Listeners/SessionLockUnlockListener.cs
  class SessionLockUnlockListener (line 12) | public class SessionLockUnlockListener : IListener<SessionLockUnlockList...
    class ChangedEventArgs (line 14) | public class ChangedEventArgs(bool locked) : EventArgs
    method StartAsync (line 23) | public Task StartAsync()
    method StopAsync (line 29) | public Task StopAsync()
    method SystemEvents_SessionSwitch (line 35) | private void SystemEvents_SessionSwitch(object sender, SessionSwitchEv...
    method GetActiveConsoleSessionFlags (line 55) | private static unsafe uint GetActiveConsoleSessionFlags()

FILE: LenovoLegionToolkit.Lib/Listeners/SpecialKeyListener.cs
  class SpecialKeyListener (line 16) | public class SpecialKeyListener(
    class ChangedEventArgs (line 23) | public class ChangedEventArgs(SpecialKey specialKey) : EventArgs
    method GetValue (line 30) | protected override SpecialKey GetValue(int value)
    method GetEventArgs (line 39) | protected override ChangedEventArgs GetEventArgs(SpecialKey value) => ...
    method OnChangedAsync (line 41) | protected override async Task OnChangedAsync(SpecialKey value)
    method NotifyCameraState (line 120) | private static void NotifyCameraState(SpecialKey value)
    method NotifyFnLockState (line 133) | private static void NotifyFnLockState(SpecialKey value)
    method ToggleRefreshRateAsync (line 146) | private Task ToggleRefreshRateAsync() => _refreshRateDispatcher.Dispat...
    method OpenSnippingTool (line 204) | private static void OpenSnippingTool()
    method NotifySpectrumBacklight (line 212) | private static void NotifySpectrumBacklight(SpectrumKeyboardBacklightB...
    method NotifySpectrumPreset (line 220) | private static void NotifySpectrumPreset(int value) => MessagingCenter...
    method ToggleMicrophoneAsync (line 222) | private async Task ToggleMicrophoneAsync()
    method OpenAirplaneModeSettings (line 241) | private static void OpenAirplaneModeSettings() => AirplaneMode.Open();
    method NotifyWhiteBacklight (line 243) | private static void NotifyWhiteBacklight(WhiteKeyboardBacklightState v...

FILE: LenovoLegionToolkit.Lib/Listeners/SystemThemeListener.cs
  class SystemThemeListener (line 8) | public class SystemThemeListener : IListener<EventArgs>
    method StartAsync (line 19) | public Task StartAsync()
    method OnDarkModeChanged (line 32) | private void OnDarkModeChanged()
    method OnColorizationColorChanged (line 37) | private void OnColorizationColorChanged()
    method StopAsync (line 58) | public Task StopAsync()

FILE: LenovoLegionToolkit.Lib/Listeners/ThermalModeListener.cs
  class ThermalModeListener (line 9) | public class ThermalModeListener(
    class ChangedEventArgs (line 14) | public class ChangedEventArgs(ThermalModeState state) : EventArgs
    method GetValue (line 21) | protected override ThermalModeState GetValue(int value)
    method GetEventArgs (line 36) | protected override ChangedEventArgs GetEventArgs(ThermalModeState valu...
    method OnChangedAsync (line 38) | protected override async Task OnChangedAsync(ThermalModeState state)
    method SuppressNext (line 63) | public void SuppressNext()

FILE: LenovoLegionToolkit.Lib/Listeners/WinKeyListener.cs
  class WinKeyListener (line 7) | public class WinKeyListener()
    method GetValue (line 10) | protected override WinKeyChanged GetValue(int value) => default;
    method GetEventArgs (line 12) | protected override EventArgs GetEventArgs(WinKeyChanged value) => Even...
    method OnChangedAsync (line 14) | protected override Task OnChangedAsync(WinKeyChanged value) => Task.Co...

FILE: LenovoLegionToolkit.Lib/Messaging/Messages/FeatureStateMessage.cs
  type FeatureStateMessage (line 3) | public readonly struct FeatureStateMessage<T>(T state) : IMessage

FILE: LenovoLegionToolkit.Lib/Messaging/Messages/NotificationMessage.cs
  type NotificationMessage (line 3) | public readonly struct NotificationMessage(NotificationType type, params...
    method ToString (line 9) | public override string ToString() => $@"{nameof(Type)}: {Type}, {nameo...

FILE: LenovoLegionToolkit.Lib/Messaging/MessagingCenter.cs
  class MessagingCenter (line 7) | public static class MessagingCenter
    method Publish (line 9) | public static void Publish<T>(T data) where T : IMessage => Hub.Defaul...
    method Subscribe (line 11) | public static void Subscribe<T>(object subscriber, Action<T> handler) ...
    method Subscribe (line 13) | public static void Subscribe<T>(object subscriber, Action handler) whe...

FILE: LenovoLegionToolkit.Lib/Native.cs
  type LENOVO_BATTERY_INFORMATION (line 14) | [StructLayout(LayoutKind.Sequential)]
  type LENOVO_RGB_KEYBOARD_STATE (line 30) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
  type LENOVO_SPECTRUM_OPERATION_TYPE (line 57) | internal enum LENOVO_SPECTRUM_OPERATION_TYPE : byte
  type LENOVO_SPECTRUM_EFFECT_TYPE (line 75) | internal enum LENOVO_SPECTRUM_EFFECT_TYPE : byte
  type LENOVO_SPECTRUM_COLOR_MODE (line 92) | internal enum LENOVO_SPECTRUM_COLOR_MODE : byte
  type LENOVO_SPECTRUM_SPEED (line 99) | internal enum LENOVO_SPECTRUM_SPEED : byte
  type LENOVO_SPECTRUM_CLOCKWISE_DIRECTION (line 107) | internal enum LENOVO_SPECTRUM_CLOCKWISE_DIRECTION : byte
  type LENOVO_SPECTRUM_DIRECTION (line 114) | internal enum LENOVO_SPECTRUM_DIRECTION : byte
  type LENOVO_SPECTRUM_COLOR (line 123) | [StructLayout(LayoutKind.Sequential)]
  type LENOVO_SPECTRUM_KEY_STATE (line 131) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
  type LENOVO_SPECTRUM_KEY_PAGE_ITEM (line 138) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
  type LENOVO_SPECTRUM_HEADER (line 145) | [StructLayout(LayoutKind.Sequential)]
  type LENOVO_SPECTRUM_EFFECT_HEADER (line 154) | [StructLayout(LayoutKind.Sequential)]
  type LENOVO_SPECTRUM_EFFECT (line 177) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
  type LENOVO_SPECTRUM_AURORA_ITEM (line 192) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
  type LENOVO_SPECTRUM_GET_COMPATIBILITY_REQUEST (line 199) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_COMPATIBILITY_RESPONSE (line 205) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_KEY_COUNT_REQUEST (line 217) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_KEY_COUNT_RESPONSE (line 224) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_KEY_PAGE_REQUEST (line 236) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_KEY_PAGE_RESPONSE (line 244) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_BRIGHTNESS_REQUEST (line 257) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_BRIGHTNESS_RESPONSE (line 263) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_SET_BRIGHTNESS_REQUEST (line 273) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_LOGO_STATUS (line 280) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_LOGO_STATUS_RESPONSE (line 286) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_SET_LOGO_STATUS_REQUEST (line 298) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_PROFILE_REQUEST (line 305) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_PROFILE_RESPONSE (line 311) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_SET_PROFILE_REQUEST (line 321) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_SET_PROFILE_DEFAULT_REQUEST (line 328) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_GET_EFFECT_REQUEST (line 335) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_EFFECT_DESCRIPTION (line 342) | internal readonly struct LENOVO_SPECTRUM_EFFECT_DESCRIPTION(
    method FromBytes (line 352) | public static LENOVO_SPECTRUM_EFFECT_DESCRIPTION FromBytes(byte[] bytes)
    method ToBytes (line 420) | public byte[] ToBytes()
  type LENOVO_SPECTRUM_AURORA_START_STOP_REQUEST (line 475) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type LENOVO_SPECTRUM_AURORA_SEND_BITMAP_REQUEST (line 483) | internal readonly struct LENOVO_SPECTRUM_AURORA_SEND_BITMAP_REQUEST(LENO...
    method ToBytes (line 487) | public byte[] ToBytes()
  type LENOVO_SPECTRUM_STATE_RESPONSE (line 509) | [StructLayout(LayoutKind.Sequential, Size = 960)]
  type BootLogoFormat (line 524) | [Flags]
  type BootLogoInfo (line 532) | [StructLayout(LayoutKind.Sequential, Pack = 1)]
  type BootLogoChecksum (line 541) | [StructLayout(LayoutKind.Sequential, Pack = 1)]

FILE: LenovoLegionToolkit.Lib/PackageDownloader/AbstractPackageDownloader.cs
  class AbstractPackageDownloader (line 15) | public abstract class AbstractPackageDownloader(HttpClientFactory httpCl...
    method GetPackagesAsync (line 19) | public abstract Task<List<Package>> GetPackagesAsync(string machineTyp...
    method DownloadPackageFileAsync (line 21) | public async Task<string> DownloadPackageFileAsync(Package package, st...
    method TryValidateChecksum (line 40) | private static async Task TryValidateChecksum(Package package, string ...
    method SanitizeFileName (line 77) | private static string SanitizeFileName(string name)

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/AndPackageRule.cs
  type AndPackageRule (line 8) | internal readonly struct AndPackageRule : IPackageRule
    method TryCreate (line 12) | public static bool TryCreate(IEnumerable<IPackageRule> rules, out AndP...
    method CheckDependenciesSatisfiedAsync (line 18) | public async Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInf...
    method DetectInstallNeededAsync (line 29) | public async Task<bool> DetectInstallNeededAsync(List<DriverInfo> driv...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/BiosPackageRule.cs
  type BiosPackageRule (line 13) | internal readonly partial struct BiosPackageRule : IPackageRule
    method PrefixRegex (line 15) | [GeneratedRegex("^[A-Z0-9]{4}")]
    method VersionRegex (line 18) | [GeneratedRegex("[0-9]{2}")]
    method TryCreate (line 23) | public static bool TryCreate(XmlNode? node, out BiosPackageRule value)
    method CheckDependenciesSatisfiedAsync (line 40) | public async Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInf...
    method DetectInstallNeededAsync (line 55) | public async Task<bool> DetectInstallNeededAsync(List<DriverInfo> _1, ...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/CpuAddressWidthPackageRule.cs
  type CpuAddressWidthPackageRule (line 10) | internal readonly struct CpuAddressWidthPackageRule : IPackageRule
    method TryCreate (line 14) | public static bool TryCreate(XmlNode? node, out CpuAddressWidthPackage...
    method CheckDependenciesSatisfiedAsync (line 28) | public Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInfo> _1,...
    method DetectInstallNeededAsync (line 30) | public Task<bool> DetectInstallNeededAsync(List<DriverInfo> _1, HttpCl...
    method CheckCpuAddressWidthAsync (line 32) | private async Task<bool> CheckCpuAddressWidthAsync()

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/DriverPackageRule.cs
  type DriverPackageRule (line 12) | internal readonly struct DriverPackageRule : IPackageRule
    method TryCreate (line 18) | public static bool TryCreate(XmlNode? node, out DriverPackageRule value)
    method CheckDependenciesSatisfiedAsync (line 45) | public Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInfo> dri...
    method DetectInstallNeededAsync (line 56) | public Task<bool> DetectInstallNeededAsync(List<DriverInfo> driverInfo...
    method VerifyByDateVersion (line 67) | private bool VerifyByDateVersion(DriverInfo driverInfo)
    method RemoveNonVersionCharacters (line 86) | private static string RemoveNonVersionCharacters(string? versionString)
    method FindMatchingDriverInfo (line 93) | private static DriverInfo FindMatchingDriverInfo(IEnumerable<string> h...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/ExternalDetectionRule.cs
  type ExternalDetectionRule (line 14) | internal readonly struct ExternalDetectionRule : IPackageRule
    method TryCreate (line 24) | public static bool TryCreate(XmlNode? node, XmlDocument document, stri...
    method CheckDependenciesSatisfiedAsync (line 55) | public Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInfo> _, ...
    method DetectInstallNeededAsync (line 57) | public Task<bool> DetectInstallNeededAsync(List<DriverInfo> _, HttpCli...
    method CheckExternalDependency (line 59) | private async Task<bool> CheckExternalDependency(HttpClient httpClient...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/IPackageRule.cs
  type IPackageRule (line 8) | public interface IPackageRule
    method CheckDependenciesSatisfiedAsync (line 10) | Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInfo> driverInfo...
    method DetectInstallNeededAsync (line 12) | Task<bool> DetectInstallNeededAsync(List<DriverInfo> driverInfoCache, ...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/NotPackageRule.cs
  type NotPackageRule (line 9) | internal readonly struct NotPackageRule : IPackageRule
    method TryCreate (line 13) | public static bool TryCreate(IEnumerable<IPackageRule> rules, out NotP...
    method CheckDependenciesSatisfiedAsync (line 26) | public async Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInf...
    method DetectInstallNeededAsync (line 32) | public async Task<bool> DetectInstallNeededAsync(List<DriverInfo> driv...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/OrPackageRule.cs
  type OrPackageRule (line 8) | internal readonly struct OrPackageRule : IPackageRule
    method TryCreate (line 12) | public static bool TryCreate(IEnumerable<IPackageRule> rules, out OrPa...
    method CheckDependenciesSatisfiedAsync (line 18) | public async Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInf...
    method DetectInstallNeededAsync (line 29) | public async Task<bool> DetectInstallNeededAsync(List<DriverInfo> driv...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/OsPackageRule.cs
  type OsPackageRule (line 12) | internal readonly struct OsPackageRule : IPackageRule
    method TryCreate (line 16) | public static bool TryCreate(XmlNode? node, out OsPackageRule value)
    method CheckDependenciesSatisfiedAsync (line 33) | public Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInfo> _1,...
    method DetectInstallNeededAsync (line 35) | public Task<bool> DetectInstallNeededAsync(List<DriverInfo> _1, HttpCl...
    method OsVersionMatch (line 37) | private Task<bool> OsVersionMatch()

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/PnPIdPackageRule.cs
  type PnPIdPackageRule (line 11) | internal readonly struct PnPIdPackageRule : IPackageRule
    method TryCreate (line 15) | public static bool TryCreate(XmlNode? node, out PnPIdPackageRule value)
    method CheckDependenciesSatisfiedAsync (line 29) | public Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInfo> dri...
    method DetectInstallNeededAsync (line 35) | public Task<bool> DetectInstallNeededAsync(List<DriverInfo> driverInfo...
    method MatchingDriverInfoExists (line 40) | private static bool MatchingDriverInfoExists(string hardwareId, IEnume...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/RegistryKeyPackageRule.cs
  type RegistryKeyPackageRule (line 11) | internal readonly struct RegistryKeyPackageRule : IPackageRule
    method TryCreate (line 15) | public static bool TryCreate(XmlNode? node, out RegistryKeyPackageRule...
    method CheckDependenciesSatisfiedAsync (line 29) | public Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInfo> _1,...
    method DetectInstallNeededAsync (line 31) | public Task<bool> DetectInstallNeededAsync(List<DriverInfo> _1, HttpCl...
    method KeyExists (line 33) | private Task<bool> KeyExists()

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/RegistryKeyValuePackageRule.cs
  type RegistryKeyValuePackageRule (line 12) | internal readonly struct RegistryKeyValuePackageRule : IPackageRule
    method TryCreate (line 18) | public static bool TryCreate(XmlNode? node, out RegistryKeyValuePackag...
    method CheckDependenciesSatisfiedAsync (line 39) | public Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInfo> _1,...
    method DetectInstallNeededAsync (line 60) | public Task<bool> DetectInstallNeededAsync(List<DriverInfo> _1, HttpCl...
    method RemoveNonVersionCharacters (line 84) | private static string RemoveNonVersionCharacters(string? versionString)

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/WindowsBuildVersionPackageRule.cs
  type WindowsBuildVersionPackageRule (line 11) | internal readonly struct WindowsBuildVersionPackageRule : IPackageRule
    method TryCreate (line 15) | public static bool TryCreate(XmlNode? node, out WindowsBuildVersionPac...
    method CheckDependenciesSatisfiedAsync (line 29) | public Task<bool> CheckDependenciesSatisfiedAsync(List<DriverInfo> _1,...
    method DetectInstallNeededAsync (line 31) | public Task<bool> DetectInstallNeededAsync(List<DriverInfo> _1, HttpCl...
    method CheckBuildNumberAsync (line 33) | private async Task<bool> CheckBuildNumberAsync()
    method RemoveNonVersionCharacters (line 41) | private static string RemoveNonVersionCharacters(string? versionString)

FILE: LenovoLegionToolkit.Lib/PackageDownloader/Detectors/VantagePackageUpdateDetector.cs
  class VantagePackageUpdateDetector (line 12) | internal class VantagePackageUpdateDetector
    method BuildDriverInfoCache (line 16) | public async Task BuildDriverInfoCache()
    method DetectAsync (line 23) | public async Task<bool> DetectAsync(HttpClient httpClient, XmlDocument...
    method CheckDependenciesSatisfiedAsync (line 32) | private async Task<bool> CheckDependenciesSatisfiedAsync(HttpClient ht...
    method DetectInstallAsync (line 46) | private async Task<bool> DetectInstallAsync(HttpClient httpClient, Xml...
    method CreateRules (line 60) | private static IEnumerable<IPackageRule> CreateRules(XmlNode? node, Xm...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/IPackageDownloader.cs
  type IPackageDownloader (line 8) | public interface IPackageDownloader
    method DownloadPackageFileAsync (line 10) | Task<string> DownloadPackageFileAsync(Package package, string location...
    method GetPackagesAsync (line 11) | Task<List<Package>> GetPackagesAsync(string machineType, OS os, IProgr...

FILE: LenovoLegionToolkit.Lib/PackageDownloader/PCSupportPackageDownloader.cs
  class PCSupportPackageDownloader (line 11) | public class PCSupportPackageDownloader(HttpClientFactory httpClientFact...
    method GetPackagesAsync (line 16) | public override async Task<List<Package>> GetPackagesAsync(string mach...
    method ParsePackage (line 55) | private static Package? ParsePackage(JsonNode downloadNode)
    method IsCompatible (line 99) | private static bool IsCompatible(JsonNode? downloadNode, string osString)

FILE: LenovoLegionToolkit.Lib/PackageDownloader/PackageDownloaderFactory.cs
  class PackageDownloaderFactory (line 5) | public class PackageDownloaderFactory(
    type Type (line 9) | public enum Type
    method GetInstance (line 15) | public IPackageDownloader GetInstance(Type type) => type switch

FILE: LenovoLegionToolkit.Lib/PackageDownloader/VantagePackageDownloader.cs
  class VantagePackageDownloader (line 14) | public class VantagePackageDownloader(HttpClientFactory httpClientFactory)
    type PackageDefinition (line 17) | private readonly struct PackageDefinition(string location, string cate...
    method GetPackagesAsync (line 25) | public override async Task<List<Package>> GetPackagesAsync(string mach...
    method GetPackageDefinitionsAsync (line 63) | private static async Task<List<PackageDefinition>> GetPackageDefinitio...
    method GetPackage (line 100) | private static async Task<Package> GetPackage(HttpClient httpClient, V...

FILE: LenovoLegionToolkit.Lib/Resources/Resource.Designer.cs
  class Resource (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
    method Resource (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...

FILE: LenovoLegionToolkit.Lib/Services/BatteryDischargeRateMonitorService.cs
  class BatteryDischargeRateMonitorService (line 9) | public class BatteryDischargeRateMonitorService
    method StartStopIfNeededAsync (line 14) | public async Task StartStopIfNeededAsync()
    method StopAsync (line 54) | public async Task StopAsync()

FILE: LenovoLegionToolkit.Lib/Settings/AbstractSettings.cs
  class AbstractSettings (line 9) | public abstract class AbstractSettings<T> where T : class, new()
    method AbstractSettings (line 21) | protected AbstractSettings(string filename)
    method SynchronizeStore (line 35) | public void SynchronizeStore()
    method LoadStore (line 41) | public virtual T? LoadStore()
    method TryBackup (line 60) | private void TryBackup()

FILE: LenovoLegionToolkit.Lib/Settings/ApplicationSettings.cs
  class ApplicationSettings (line 7) | public class ApplicationSettings : AbstractSettings<ApplicationSettings....
    class Notifications (line 9) | public class Notifications
    class ApplicationSettingsStore (line 25) | public class ApplicationSettingsStore
    method ApplicationSettings (line 54) | public ApplicationSettings() : base("settings.json")
  class LegacyPowerPlanInstanceIdToGuidConverter (line 60) | internal class LegacyPowerPlanInstanceIdToGuidConverter : JsonConverter ...
    method CanConvert (line 64) | public override bool CanConvert(Type objectType) => objectType == type...
    method WriteJson (line 66) | public override void WriteJson(JsonWriter writer, object? value, JsonS...
    method ReadJson (line 68) | public override object ReadJson(JsonReader reader, Type objectType, ob...

FILE: LenovoLegionToolkit.Lib/Settings/BalanceModeSettings.cs
  class BalanceModeSettings (line 5) | public class BalanceModeSettings() : AbstractSettings<BalanceModeSetting...
    class BalanceModeSettingsStore (line 7) | public class BalanceModeSettingsStore

FILE: LenovoLegionToolkit.Lib/Settings/GPUOverclockSettings.cs
  class GPUOverclockSettings (line 5) | public class GPUOverclockSettings() : AbstractSettings<GPUOverclockSetti...
    class GPUOverclockSettingsStore (line 7) | public class GPUOverclockSettingsStore

FILE: LenovoLegionToolkit.Lib/Settings/GodModeSettings.cs
  class GodModeSettings (line 7) | public class GodModeSettings() : AbstractSettings<GodModeSettings.GodMod...
    class GodModeSettingsStore (line 9) | public class GodModeSettingsStore
      class Preset (line 11) | public class Preset

FILE: LenovoLegionToolkit.Lib/Settings/IntegrationsSettings.cs
  class IntegrationsSettings (line 3) | public class IntegrationsSettings()
    class IntegrationsSettingsStore (line 6) | public class IntegrationsSettingsStore

FILE: LenovoLegionToolkit.Lib/Settings/PackageDownloaderSettings.cs
  class PackageDownloaderSettings (line 5) | public class PackageDownloaderSettings()
    class PackageDownloaderSettingsStore (line 8) | public class PackageDownloaderSettingsStore

FILE: LenovoLegionToolkit.Lib/Settings/RGBKeyboardSettings.cs
  class RGBKeyboardSettings (line 5) | public class RGBKeyboardSettings() : AbstractSettings<RGBKeyboardSetting...
    class RGBKeyboardSettingsStore (line 7) | public class RGBKeyboardSettingsStore

FILE: LenovoLegionToolkit.Lib/Settings/SpectrumKeyboardSettings.cs
  class SpectrumKeyboardSettings (line 3) | public class SpectrumKeyboardSettings()
    class SpectrumKeyboardSettingsStore (line 6) | public class SpectrumKeyboardSettingsStore

FILE: LenovoLegionToolkit.Lib/Settings/SunriseSunsetSettings.cs
  class SunriseSunsetSettings (line 5) | public class SunriseSunsetSettings()
    class SunriseSunsetSettingsStore (line 8) | public class SunriseSunsetSettingsStore

FILE: LenovoLegionToolkit.Lib/Settings/UpdateCheckSettings.cs
  class UpdateCheckSettings (line 5) | public class UpdateCheckSettings() : AbstractSettings<UpdateCheckSetting...
    class UpdateCheckSettingsStore (line 7) | public class UpdateCheckSettingsStore

FILE: LenovoLegionToolkit.Lib/SoftwareDisabler/AbstractSoftwareDisabler.cs
  class SoftwareDisablerException (line 14) | public class SoftwareDisablerException(string message, Exception innerEx...
    class AbstractSoftwareDisablerEventArgs (line 18) | public class AbstractSoftwareDisablerEventArgs : EventArgs
    method GetStatusAsync (line 29) | public Task<SoftwareStatus> GetStatusAsync() => Task.Run(() =>
    method EnableAsync (line 74) | public virtual Task EnableAsync() => Task.Run(async () =>
    method DisableAsync (line 88) | public virtual Task DisableAsync() => Task.Run(async () =>
    method IsInstalled (line 103) | private bool IsInstalled() => ServiceController.GetServices().Any(s =>...
    method RunningServices (line 105) | private IEnumerable<string> RunningServices()
    method RunningProcesses (line 111) | protected virtual IEnumerable<string> RunningProcesses()
    method IsServiceEnabled (line 133) | private static bool IsServiceEnabled(string serviceName, IEnumerable<S...
    method SetScheduledTasksEnabled (line 149) | private void SetScheduledTasksEnabled(bool enabled)
    method SetTasksInFolderEnabled (line 156) | private void SetTasksInFolderEnabled(TaskService taskService, string p...
    method SetServicesEnabled (line 187) | private void SetServicesEnabled(bool enabled)
    method SetServiceEnabled (line 193) | private void SetServiceEnabled(string serviceName, bool enabled)
    method KillProcessesAsync (line 262) | protected virtual async Task KillProcessesAsync()

FILE: LenovoLegionToolkit.Lib/SoftwareDisabler/FnKeysDisabler.cs
  class FnKeysDisabler (line 11) | public class FnKeysDisabler : AbstractSoftwareDisabler
    method EnableAsync (line 17) | public override async Task EnableAsync()
    method DisableAsync (line 23) | public override async Task DisableAsync()
    method RunningProcesses (line 29) | protected override IEnumerable<string> RunningProcesses()
    method KillProcessesAsync (line 50) | protected override async Task KillProcessesAsync()
    method SetUwpStartup (line 72) | private static void SetUwpStartup(string appPattern, string subKeyName...

FILE: LenovoLegionToolkit.Lib/SoftwareDisabler/LegionZoneDisabler.cs
  class LegionZoneDisabler (line 5) | public class LegionZoneDisabler : AbstractSoftwareDisabler

FILE: LenovoLegionToolkit.Lib/SoftwareDisabler/VantageDisabler.cs
  class VantageDisabler (line 5) | public class VantageDisabler : AbstractSoftwareDisabler

FILE: LenovoLegionToolkit.Lib/Structs.cs
  type BatteryInformation (line 15) | public readonly struct BatteryInformation(
  type BiosVersion (line 53) | public readonly struct BiosVersion(string prefix, int? version)
    method IsHigherOrEqualThan (line 58) | public bool IsHigherOrEqualThan(BiosVersion other)
    method IsLowerThan (line 69) | public bool IsLowerThan(BiosVersion other)
    method ToString (line 80) | public override string ToString() => $"{nameof(Prefix)}: {Prefix}, {na...
  type Brightness (line 83) | public readonly struct Brightness(byte value)
  type DiscreteCapability (line 88) | public readonly struct DiscreteCapability(CapabilityID id, int value)
  type DisplayAdvancedColorInfo (line 94) | public readonly struct DisplayAdvancedColorInfo(bool advancedColorSuppor...
  type Device (line 102) | public struct Device(
  type DriverInfo (line 140) | public readonly struct DriverInfo(string deviceId, string hardwareId, Ve...
  type FanTableData (line 148) | public readonly struct FanTableData(FanTableType type, byte fanId, byte ...
    method ToString (line 156) | public override string ToString() =>
  type FanTable (line 164) | public readonly struct FanTable
    method FanTable (line 190) | public FanTable(ushort[] fanTable)
    method GetTable (line 211) | public ushort[] GetTable() => [FSS0, FSS1, FSS2, FSS3, FSS4, FSS5, FSS...
    method GetBytes (line 213) | public byte[] GetBytes()
    method ToString (line 232) | public override string ToString() =>
  type FanTableInfo (line 248) | public readonly struct FanTableInfo(FanTableData[] data, FanTable table)
    method ToString (line 253) | public override string ToString() =>
  type GPUOverclockInfo (line 258) | public readonly struct GPUOverclockInfo(int coreDeltaMhz, int memoryDelt...
    method Equals (line 267) | public override bool Equals(object? obj) => obj is GPUOverclockInfo ot...
    method GetHashCode (line 269) | public override int GetHashCode() => HashCode.Combine(CoreDeltaMhz, Me...
    method ToString (line 277) | public override string ToString() => $"{nameof(CoreDeltaMhz)}: {CoreDe...
  type GodModeDefaults (line 281) | public readonly struct GodModeDefaults
    method ToString (line 298) | public override string ToString() =>
  type GodModeState (line 315) | public readonly struct GodModeState
  type GodModePreset (line 321) | public readonly struct GodModePreset
    method ToString (line 341) | public override string ToString() =>
  type GPUStatus (line 361) | public readonly struct GPUStatus(GPUState state, string? performanceStat...
  type HardwareId (line 369) | public readonly struct HardwareId(string vendor, string device)
    method Equals (line 378) | public override bool Equals(object? obj)
    method GetHashCode (line 392) | public override int GetHashCode() => HashCode.Combine(Vendor, Device);
  type MachineInformation (line 401) | public readonly struct MachineInformation
    type FeatureData (line 403) | public readonly struct FeatureData(FeatureData.SourceType sourceType, ...
      type SourceType (line 407) | public enum SourceType
      method FeatureData (line 420) | public FeatureData(SourceType sourceType) : this(sourceType, []) { }
    type PropertyData (line 435) | public readonly struct PropertyData
  type Package (line 466) | public struct Package
  type WindowsPowerPlan (line 500) | public readonly struct WindowsPowerPlan(Guid guid, string name, bool isA...
    method ToString (line 506) | public override string ToString() => $"{nameof(Guid)}: {Guid}, {nameof...
    method Equals (line 510) | public override bool Equals(object? obj) => obj is WindowsPowerPlan ot...
    method GetHashCode (line 512) | public override int GetHashCode() => Guid.GetHashCode();
  type ProcessInfo (line 521) | [method: JsonConstructor]
    method FromPath (line 524) | public static ProcessInfo FromPath(string path) => new(Path.GetFileNam...
    method ToString (line 530) | public override string ToString() => $"{nameof(Name)}: {Name}, {nameof...
    method CompareTo (line 534) | public int CompareTo(object? obj)
    method Equals (line 541) | public override bool Equals(object? obj) => obj is ProcessInfo info &&...
    method GetHashCode (line 543) | public override int GetHashCode() => HashCode.Combine(Name, Executable...
  type RangeCapability (line 560) | public readonly struct RangeCapability(CapabilityID id, int defaultValue...
  type RGBColor (line 569) | [method: JsonConstructor]
    method Equals (line 585) | public override bool Equals(object? obj)
    method GetHashCode (line 590) | public override int GetHashCode() => (R, G, B).GetHashCode();
    method ToString (line 598) | public override string ToString() => $"{nameof(R)}: {R}, {nameof(G)}: ...
  type RGBKeyboardBacklightBacklightPresetDescription (line 601) | [method: JsonConstructor]
    method Equals (line 623) | public override bool Equals(object? obj)
    method GetHashCode (line 635) | public override int GetHashCode() => HashCode.Combine(Effect, Speed, B...
    method ToString (line 643) | public override string ToString() =>
  type RGBKeyboardBacklightState (line 653) | [method: JsonConstructor]
  type SensorData (line 662) | public readonly struct SensorData(
    method ToString (line 687) | public override string ToString() =>
  type SensorsData (line 700) | public readonly struct SensorsData(SensorData cpu, SensorData gpu)
    method ToString (line 707) | public override string ToString() => $"{nameof(CPU)}: {CPU}, {nameof(G...
  type DpiScale (line 710) | [method: JsonConstructor]
    method Equals (line 720) | public override bool Equals(object? obj) => obj is DpiScale rate && Eq...
    method Equals (line 722) | public bool Equals(DpiScale other) => Scale == other.Scale;
    method GetHashCode (line 724) | public override int GetHashCode() => HashCode.Combine(Scale);
  type RefreshRate (line 733) | [method: JsonConstructor]
    method ToString (line 741) | public override string ToString() => $"{Frequency}Hz";
    method Equals (line 745) | public override bool Equals(object? obj) => obj is RefreshRate rate &&...
    method Equals (line 747) | public bool Equals(RefreshRate other) => Frequency == other.Frequency;
    method GetHashCode (line 749) | public override int GetHashCode() => HashCode.Combine(Frequency);
  type Resolution (line 758) | [method: JsonConstructor]
    method Resolution (line 770) | public Resolution(Size size) : this(size.Width, size.Height) { }
    method ToString (line 772) | public override string ToString() => $"{Width}x{Height}";
    method CompareTo (line 774) | public int CompareTo(Resolution other)
    method Equals (line 792) | public override bool Equals(object? obj) => obj is Resolution other &&...
    method Equals (line 794) | public bool Equals(Resolution other) => Width == other.Width && Height...
    method GetHashCode (line 796) | public override int GetHashCode() => HashCode.Combine(Width, Height);
  type SpectrumKeyboardBacklightEffect (line 806) | public readonly struct SpectrumKeyboardBacklightEffect(
  type StepperValue (line 822) | public readonly struct StepperValue(int value, int min, int max, int ste...
    method WithValue (line 831) | public StepperValue WithValue(int value) => new(value, Min, Max, Step,...
    method ToString (line 833) | public override string ToString() =>
  type Time (line 842) | public readonly struct Time(int hour, int minute)
    method Equals (line 849) | public override bool Equals(object? obj) => obj is Time time && Hour =...
    method GetHashCode (line 851) | public override int GetHashCode() => HashCode.Combine(Hour, Minute);
  type Update (line 860) | public readonly struct Update(Release release)
    method Equals (line 873) | public override bool Equals(object? obj) => obj is Update other && Ver...
    method GetHashCode (line 875) | public override int GetHashCode() => Version.GetHashCode();
  type WarrantyInfo (line 884) | public readonly struct WarrantyInfo(DateTime? start, DateTime? end, Uri?...
  type WindowSize (line 891) | public readonly struct WindowSize(double width, double height)

FILE: LenovoLegionToolkit.Lib/System/AirplaneMode.cs
  class AirplaneMode (line 5) | public static class AirplaneMode
    method Open (line 7) | public static void Open()

FILE: LenovoLegionToolkit.Lib/System/Autorun.cs
  class Autorun (line 10) | public static class Autorun
    method Validate (line 27) | public static void Validate()
    method Set (line 71) | public static void Set(AutorunState state)
    method Enable (line 79) | private static void Enable(bool delayed)
    method Disable (line 104) | private static void Disable()

FILE: LenovoLegionToolkit.Lib/System/Battery.cs
  class Battery (line 13) | public static class Battery
    method SetMinMaxDischargeRate (line 19) | public static void SetMinMaxDischargeRate(BATTERY_STATUS? status = null)
    method GetBatteryInformation (line 44) | public static BatteryInformation GetBatteryInformation()
    method GetBatteryTemperatureC (line 91) | public static double? GetBatteryTemperatureC()
    method GetOnBatterySince (line 106) | public static DateTime? GetOnBatterySince()
    method GetSystemPowerStatus (line 154) | private static SYSTEM_POWER_STATUS GetSystemPowerStatus()
    method GetBatteryTag (line 164) | private static uint GetBatteryTag()
    method GetBatteryInformation (line 177) | private static BATTERY_INFORMATION GetBatteryInformation(uint batteryTag)
    method GetBatteryStatus (line 195) | private static BATTERY_STATUS GetBatteryStatus(uint batteryTag)
    method FindLenovoBatteryInformation (line 212) | private static LENOVO_BATTERY_INFORMATION? FindLenovoBatteryInformation()
    method GetLenovoBatteryInformation (line 235) | private static LENOVO_BATTERY_INFORMATION GetLenovoBatteryInformation(...
    method DecodeDateTime (line 247) | private static DateTime? DecodeDateTime(ushort s)
    method DecodeTemperatureC (line 265) | private static double? DecodeTemperatureC(ushort s)

FILE: LenovoLegionToolkit.Lib/System/BootLogo.cs
  class BootLogo (line 14) | public class CantSetUEFIPrivilegeException : Exception;
    method IsSupportedAsync (line 35) | public static async Task<bool> IsSupportedAsync()
    method GetStatus (line 53) | public static (bool, Resolution, ImageFormat[], string[]) GetStatus()
    method EnableAsync (line 59) | public static async Task EnableAsync(string sourcePath)
    method DisableAsync (line 78) | public static async Task DisableAsync()
    method GetInfo (line 92) | private static unsafe BootLogoInfo GetInfo()
    method SetInfo (line 130) | private static unsafe void SetInfo(BootLogoInfo info)
    method GetChecksum (line 164) | private static unsafe uint GetChecksum()
    method SetChecksum (line 202) | private static unsafe void SetChecksum(uint checksum)
    method CopyMyLogoAsync (line 237) | private static async Task<uint> CopyMyLogoAsync(BootLogoInfo info, str...
    method DeleteMyLogoAsync (line 287) | private static async Task DeleteMyLogoAsync()
    method ThrowIfImageInvalid (line 327) | private static void ThrowIfImageInvalid(BootLogoInfo info, string sour...
    method GetUnusedDriveLetter (line 354) | private static char GetUnusedDriveLetter()
    method MountEfiPartitionAsync (line 371) | private static async Task<char?> MountEfiPartitionAsync()
    method UnMountEfiPartitionAsync (line 389) | private static async Task UnMountEfiPartitionAsync(char letter)

FILE: LenovoLegionToolkit.Lib/System/CMD.cs
  class CMD (line 9) | public static class CMD
    method RunAsync (line 11) | public static async Task<(int, string)> RunAsync(string file, string a...

FILE: LenovoLegionToolkit.Lib/System/Devices.cs
  class Devices (line 17) | public static class Devices
    method GetAll (line 27) | public static List<Device> GetAll()
    method GetClassName (line 78) | private static unsafe string GetClassName(Guid guid)
    method GetStringProperty (line 88) | private static unsafe string GetStringProperty(SetupDiDestroyDeviceInf...
    method GetUInt32Property (line 106) | private static unsafe uint GetUInt32Property(SetupDiDestroyDeviceInfoL...
    method GetGuidProperty (line 124) | private static unsafe Guid GetGuidProperty(SetupDiDestroyDeviceInfoLis...
    method GetFlags (line 142) | private static (bool noShow, bool disconnected) GetFlags(SP_DEVINFO_DA...
    method GetBattery (line 152) | public static unsafe SafeFileHandle GetBattery(bool forceRefresh = false)
    method GetRGBKeyboard (line 222) | public static SafeFileHandle? GetRGBKeyboard(bool forceRefresh = false)
    method GetSpectrumRGBKeyboard (line 243) | public static SafeFileHandle? GetSpectrumRGBKeyboard(bool forceRefresh...
    method FindHidDevice (line 264) | private static unsafe SafeFileHandle? FindHidDevice(ushort vendorId, u...

FILE: LenovoLegionToolkit.Lib/System/Displays.cs
  class Displays (line 6) | public static class Displays
    method Get (line 8) | public static Display[] Get() => Display.GetDisplays().ToArray();

FILE: LenovoLegionToolkit.Lib/System/Drivers.cs
  class Drivers (line 8) | public static class Drivers
    method GetEnergy (line 22) | public static SafeFileHandle GetEnergy()

FILE: LenovoLegionToolkit.Lib/System/ExternalDisplays.cs
  class ExternalDisplays (line 6) | public static class ExternalDisplays
    method Get (line 8) | public static Display[] Get()

FILE: LenovoLegionToolkit.Lib/System/InternalDisplay.cs
  class InternalDisplay (line 15) | public static class InternalDisplay
    type DisplayHolder (line 17) | private readonly struct DisplayHolder
      method DisplayHolder (line 23) | private DisplayHolder(Display? display) => _display = display;
    method SetNeedsRefresh (line 33) | public static void SetNeedsRefresh()
    method Get (line 44) | public static Display? Get()
    method FindInternalDisplay (line 77) | private static Display? FindInternalDisplay(IEnumerable<Display> displ...
    method FindInternalAdvancedOptimusDisplay (line 82) | private static Display? FindInternalAdvancedOptimusDisplay(IEnumerable...
    method GetVideoOutputTechnology (line 102) | private static DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY GetVideoOutputTec...
    method GetVideoOutputTechnology (line 107) | private static unsafe DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY GetVideoOu...
    method IsInternalOutput (line 147) | private static bool IsInternalOutput(this DISPLAYCONFIG_VIDEO_OUTPUT_T...
    method IsExternalDisplayPortOutput (line 154) | private static bool IsExternalDisplayPortOutput(this DISPLAYCONFIG_VID...

FILE: LenovoLegionToolkit.Lib/System/KnownFolders.cs
  class KnownFolders (line 8) | public static class KnownFolders
    method GetPath (line 20) | public static string GetPath(KnownFolder knownFolder)

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoCapabilityData00.cs
  class WMI (line 10) | public static partial class WMI
    class LenovoCapabilityData00 (line 12) | public static class LenovoCapabilityData00
      method ReadAsync (line 14) | public static Task<IEnumerable<CapabilityID>> ReadAsync() => WMI.Rea...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoCapabilityData01.cs
  class WMI (line 10) | public static partial class WMI
    class LenovoCapabilityData01 (line 12) | public static class LenovoCapabilityData01
      method ReadAsync (line 14) | public static Task<IEnumerable<RangeCapability>> ReadAsync() => WMI....

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoCpuMethod.cs
  class WMI (line 9) | public static partial class WMI
    class LenovoCpuMethod (line 11) | public static class LenovoCpuMethod
      method CPUGetDefaultPowerLimitAsync (line 13) | public static Task<(int longTerm, int shortTerm)> CPUGetDefaultPower...
      method CPUGetLongTermPowerLimitAsync (line 24) | public static Task<(int value, int min, int max, int step)> CPUGetLo...
      method CPUSetLongTermPowerLimitAsync (line 38) | public static Task CPUSetLongTermPowerLimitAsync(int value) => CallA...
      method CPUGetShortTermPowerLimitAsync (line 43) | public static Task<(int value, int min, int max, int step)> CPUGetSh...
      method CPUSetShortTermPowerLimitAsync (line 57) | public static Task CPUSetShortTermPowerLimitAsync(int value) => Call...
      method CPUGetPeakPowerLimitAsync (line 62) | public static Task<(int value, int min, int max, int step, int defau...
      method CPUSetPeakPowerLimitAsync (line 77) | public static Task CPUSetPeakPowerLimitAsync(int value) => CallAsync...
      method CPUGetCrossLoadingPowerLimitAsync (line 82) | public static Task<(int value, int min, int max, int step, int defau...
      method CPUSetCrossLoadingPowerLimitAsync (line 97) | public static Task CPUSetCrossLoadingPowerLimitAsync(int value) => C...
      method GetAPUSPPTPowerLimitAsync (line 102) | public static Task<(int value, int min, int max, int step, int defau...
      method SetAPUSPPTPowerLimitAsync (line 117) | public static Task SetAPUSPPTPowerLimitAsync(int value) => WMI.CallA...
      method CPUGetTemperatureControlAsync (line 122) | public static Task<(int value, int min, int max, int step, int defau...
      method CPUSetTemperatureControlAsync (line 137) | public static Task CPUSetTemperatureControlAsync(int value) => CallA...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoDefaultValueInDifferentModeData.cs
  class WMI (line 10) | public static partial class WMI
    class LenovoDefaultValueInDifferentModeData (line 12) | public static class LenovoDefaultValueInDifferentModeData
      type Data (line 14) | public readonly struct Data(
      method ReadAsync (line 38) | public static Task<IEnumerable<Data>> ReadAsync() => WMI.ReadAsync("...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoDiscreteData.cs
  class WMI (line 10) | public static partial class WMI
    class LenovoDiscreteData (line 12) | public static class LenovoDiscreteData
      method ReadAsync (line 14) | public static Task<IEnumerable<DiscreteCapability>> ReadAsync() => W...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoFanMethod.cs
  class WMI (line 10) | public static partial class WMI
    class LenovoFanMethod (line 12) | public static class LenovoFanMethod
      method FanSetTableAsync (line 14) | public static Task FanSetTableAsync(byte[] fanTable) => CallAsync("r...
      method FanGetFullSpeedAsync (line 19) | public static Task<bool> FanGetFullSpeedAsync() => CallAsync("root\\...
      method FanSetFullSpeedAsync (line 25) | public static Task FanSetFullSpeedAsync(int status) => CallAsync("ro...
      method FanGetCurrentSensorTemperatureAsync (line 30) | public static Task<int> FanGetCurrentSensorTemperatureAsync(int sens...
      method FanGetCurrentFanSpeedAsync (line 36) | public static Task<int> FanGetCurrentFanSpeedAsync(int fanId) => Cal...
      method GetCurrentFanMaxSpeedAsync (line 42) | public static async Task<int> GetCurrentFanMaxSpeedAsync(int sensorI...
      method GetDefaultFanMaxSpeedAsync (line 50) | public static async Task<int> GetDefaultFanMaxSpeedAsync(int sensorI...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoFanTableData.cs
  class WMI (line 11) | public static partial class WMI
    class LenovoFanTableData (line 13) | public static class LenovoFanTableData
      method ExistsAsync (line 15) | public static Task<bool> ExistsAsync(int sensorId, int fanId) => WMI...
      method ReadAsync (line 17) | public static Task<IEnumerable<(int mode, byte fanId, byte sensorId,...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoGameZoneData.cs
  class WMI (line 10) | public static partial class WMI
    class LenovoGameZoneData (line 12) | public static partial class LenovoGameZoneData
      method DGPUHWIdRegex (line 14) | [GeneratedRegex("PCIVEN_([0-9A-F]{4})|DEV_([0-9A-F]{4})")]
      method ExistsAsync (line 17) | public static Task<bool> ExistsAsync() => WMI.ExistsAsync("root\\WMI...
      method IsSupportSmartFanAsync (line 19) | public static Task<int> IsSupportSmartFanAsync() => CallAsync("root\...
      method GetSmartFanModeAsync (line 25) | public static Task<int> GetSmartFanModeAsync() => CallAsync("root\\W...
      method SetSmartFanModeAsync (line 31) | public static Task SetSmartFanModeAsync(int data) => CallAsync("root...
      method GetIntelligentSubModeAsync (line 36) | public static Task<int> GetIntelligentSubModeAsync() => CallAsync("r...
      method SetIntelligentSubModeAsync (line 42) | public static Task SetIntelligentSubModeAsync(int data) => CallAsync...
      method IsSupportGSyncAsync (line 47) | public static Task<int> IsSupportGSyncAsync() => CallAsync("root\\WMI",
      method GetGSyncStatusAsync (line 53) | public static Task<int> GetGSyncStatusAsync() => CallAsync("root\\WMI",
      method SetGSyncStatusAsync (line 59) | public static Task SetGSyncStatusAsync(int data) => CallAsync("root\...
      method IsSupportIGPUModeAsync (line 64) | public static Task<int> IsSupportIGPUModeAsync() => CallAsync("root\...
      method GetIGPUModeStatusAsync (line 70) | public static Task<int> GetIGPUModeStatusAsync() => CallAsync("root\...
      method SetIGPUModeStatusAsync (line 76) | public static Task SetIGPUModeStatusAsync(int mode) => CallAsync("ro...
      method NotifyDGPUStatusAsync (line 81) | public static Task NotifyDGPUStatusAsync(int status) => CallAsync("r...
      method GetDGPUHWIdAsync (line 86) | public static Task<HardwareId> GetDGPUHWIdAsync() => CallAsync("root...
      method IsSupportGpuOCAsync (line 114) | public static Task<int> IsSupportGpuOCAsync() => CallAsync("ROOT\\WMI",
      method IsSupportDisableTPAsync (line 120) | public static Task<int> IsSupportDisableTPAsync() => CallAsync("root...
      method GetTPStatusStatusAsync (line 126) | public static Task<int> GetTPStatusStatusAsync() => CallAsync("root\...
      method SetTPStatusAsync (line 132) | public static Task SetTPStatusAsync(int data) => CallAsync("root\\WMI",
      method IsSupportDisableWinKeyAsync (line 137) | public static Task<int> IsSupportDisableWinKeyAsync() => CallAsync("...
      method GetWinKeyStatusAsync (line 143) | public static Task<int> GetWinKeyStatusAsync() => CallAsync("root\\W...
      method SetWinKeyStatusAsync (line 149) | public static Task SetWinKeyStatusAsync(int data) => CallAsync("root...
      method IsSupportODAsync (line 154) | public static Task<int> IsSupportODAsync() => CallAsync("root\\WMI",
      method GetODStatusAsync (line 160) | public static Task<int> GetODStatusAsync() => CallAsync("root\\WMI",
      method SetODStatusAsync (line 166) | public static Task SetODStatusAsync(int data) => CallAsync("root\\WMI",
      method SetLightControlOwnerAsync (line 171) | public static Task SetLightControlOwnerAsync(int data) => CallAsync(...
      method IsACFitForOCAsync (line 176) | public static Task<int> IsACFitForOCAsync() => CallAsync("root\\WMI",
      method GetPowerChargeModeAsync (line 182) | public static Task<int> GetPowerChargeModeAsync() => CallAsync("root...
      method GetCPUFrequencyAsync (line 188) | public static Task<int> GetCPUFrequencyAsync() => WMI.CallAsync("roo...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoGameZoneKeyLockStatusEvent.cs
  class WMI (line 8) | public static partial class WMI
    class LenovoGameZoneKeyLockStatusEvent (line 10) | public static class LenovoGameZoneKeyLockStatusEvent
      method Listen (line 12) | public static IDisposable Listen(Action<int> handler) => WMI.Listen(...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoGameZoneLightProfileChangeEvent.cs
  class WMI (line 8) | public static partial class WMI
    class LenovoGameZoneLightProfileChangeEvent (line 10) | public static class LenovoGameZoneLightProfileChangeEvent
      method Listen (line 12) | public static IDisposable Listen(Action<int> handler) => WMI.Listen(...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoGameZoneSmartFanModeEvent.cs
  class WMI (line 8) | public static partial class WMI
    class LenovoGameZoneSmartFanModeEvent (line 10) | public static class LenovoGameZoneSmartFanModeEvent
      method Listen (line 12) | public static IDisposable Listen(Action<int> handler) => WMI.Listen(...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoGameZoneThermalModeEvent.cs
  class WMI (line 8) | public static partial class WMI
    class LenovoGameZoneThermalModeEvent (line 10) | public static class LenovoGameZoneThermalModeEvent
      method Listen (line 12) | public static IDisposable Listen(Action<int> handler) => WMI.Listen(...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoGpuMethod.cs
  class WMI (line 11) | public static partial class WMI
    class LenovoGpuMethod (line 13) | public static class LenovoGpuMethod
      method GPUGetDefaultPPABcTGPPowerLimit (line 15) | public static Task<(int ctgp, int ppab)> GPUGetDefaultPPABcTGPPowerL...
      method GPUGetCTGPPowerLimitAsync (line 26) | public static Task<(int value, int min, int max, int step)> GPUGetCT...
      method GPUSetCTGPPowerLimitAsync (line 40) | public static Task GPUSetCTGPPowerLimitAsync(int value) => CallAsync...
      method GPUGetPPABPowerLimitAsync (line 45) | public static Task<(int value, int min, int max, int step)> GPUGetPP...
      method GPUSetPPABPowerLimitAsync (line 59) | public static Task GPUSetPPABPowerLimitAsync(int value) => CallAsync...
      method GPUGetTemperatureLimitAsync (line 64) | public static Task<(int value, int min, int max, int step, int defau...
      method GPUSetTemperatureLimitAsync (line 79) | public static Task GPUSetTemperatureLimitAsync(int value) => CallAsy...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoIntelligentOPList.cs
  class WMI (line 11) | public static partial class WMI
    class LenovoIntelligentOPList (line 13) | public static class LenovoIntelligentOPList
      method ReadAsync (line 15) | public static async Task<Dictionary<string, int>> ReadAsync()

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoLightingData.cs
  class WMI (line 8) | public static partial class WMI
    class LenovoLightingData (line 10) | public static class LenovoLightingData
      method ExistsAsync (line 12) | public static Task<bool> ExistsAsync(int lightingId, int controlInte...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoLightingEvent.cs
  class WMI (line 8) | public static partial class WMI
    class LenovoLightingEvent (line 10) | public static class LenovoLightingEvent
      method Listen (line 12) | public static IDisposable Listen(Action<int> handler) => WMI.Listen(...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoLightingMethod.cs
  class WMI (line 9) | public static partial class WMI
    class LenovoLightingMethod (line 11) | public static class LenovoLightingMethod
      method GetLightingCurrentStatusAsync (line 13) | public static Task<(int stateType, int level)> GetLightingCurrentSta...
      method SetLightingCurrentStatusAsync (line 24) | public static Task SetLightingCurrentStatusAsync(int lightingId, int...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoOtherMethod.cs
  class WMI (line 10) | public static partial class WMI
    class LenovoOtherMethod (line 12) | public static class LenovoOtherMethod
      method GetSupportThermalModeAsync (line 14) | public static Task<int> GetSupportThermalModeAsync() => CallAsync("r...
      method GetSupportLegionZoneVersionAsync (line 20) | public static Task<int> GetSupportLegionZoneVersionAsync() => CallAs...
      method GetLegionDeviceSupportFeatureAsync (line 26) | public static Task<int> GetLegionDeviceSupportFeatureAsync() => Call...
      method GetDeviceCurrentSupportFeatureAsync (line 32) | public static Task<int> GetDeviceCurrentSupportFeatureAsync() => Cal...
      method SetDeviceCurrentSupportFeatureAsync (line 38) | public static Task<int> SetDeviceCurrentSupportFeatureAsync(int func...
      method SetDGPUDeviceStatusAsync (line 48) | public static Task SetDGPUDeviceStatusAsync(bool status) => CallAsyn...
      method GetDGPUDeviceDIDVIDAsync (line 53) | public static Task<HardwareId> GetDGPUDeviceDIDVIDAsync() => CallAsy...
      method GetFeatureValueAsync (line 65) | public static Task<int> GetFeatureValueAsync(CapabilityID id) => Cal...
      method SetFeatureValueAsync (line 71) | public static Task SetFeatureValueAsync(CapabilityID id, int value) ...
      method GetFeatureValueAsync (line 80) | public static Task<int> GetFeatureValueAsync(uint idRaw) => CallAsyn...
      method SetFeatureValueAsync (line 86) | public static Task SetFeatureValueAsync(uint idRaw, int value) => Ca...

FILE: LenovoLegionToolkit.Lib/System/Management/WMI.LenovoUtilityEvent.cs
  class WMI (line 8) | public static partial
Condensed preview — 761 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,996K chars).
[
  {
    "path": ".gitattributes",
    "chars": 2518,
    "preview": "###############################################################################\n# Set default behavior to automatically "
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 72,
    "preview": "github: [BartoszCichecki]\ncustom: [\"https://paypal.me/bartoszcichecki\"]\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/1_feature_request.yml",
    "chars": 2106,
    "preview": "name: Feature Request\ndescription: Suggest an idea for this project\nlabels: [\"feature\"]\nbody:\n  - type: markdown\n    att"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/2_bug_report.yml",
    "chars": 2984,
    "preview": "name: Bug Report\ndescription: Something isn't working correctly\nlabels: [\"bug\"]\nbody:\n  - type: markdown\n    attributes:"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/3_compatibility_request.yml",
    "chars": 2116,
    "preview": "name: Compatibility Request\ndescription: Request support for a device that is not supported\nlabels: [\"compatibility\"]\nbo"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 202,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: General questions\n    url: https://github.com/BartoszCichecki/Lenov"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 167,
    "preview": "<!---\nImportant!\n\nPlease make yourself familiar with Contribution section in the README and CONTRIBUTING.md file to make"
  },
  {
    "path": ".github/workflows/build.yml",
    "chars": 548,
    "preview": "name: Build\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    branches: [ master ]\n\njobs:\n  build:\n\n    runs-on:"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 746,
    "preview": "name: Release\n\non:\n  push:\n    tags:\n      - \"[0-9]*.[0-9]*.[0-9]*\"\n\njobs:\n  build:\n\n    runs-on: windows-2022\n\n    step"
  },
  {
    "path": ".gitignore",
    "chars": 10753,
    "preview": "\n# Created by https://www.toptal.com/developers/gitignore/api/visualstudio,dotnetcore,csharp\n# Edit at https://www.topta"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 3160,
    "preview": "## Welcome to Lenvo Legion Toolkit contributing guide!\n\n### Other language versions of this contributing guide:\n* [简体中文版"
  },
  {
    "path": "CONTRIBUTING_ja-JP.md",
    "chars": 1833,
    "preview": "## Lenovo Legion Toolkit への貢献ガイドへようこそ!\n\n### この貢献ガイドの他の言語バージョン:\n* [英語版の貢献ガイド](CONTRIBUTING.md)\n* [簡体字中国語版の貢献ガイド](CONTRIBU"
  },
  {
    "path": "CONTRIBUTING_zh-hans.md",
    "chars": 1526,
    "preview": "## 欢迎来到拯救者工具箱开发者指南\n\n首先感谢你花时间为此项目做出贡献!随着拯救者工具箱的热度越来越高,为了确保你的贡献能够被迅速采纳,你应该遵守一定的格式和规则。\n\n<br/>\n\n_由于 Issues 总量的增加,不符合标准的 Issu"
  },
  {
    "path": "InnoDependencies/Arabic.isl",
    "chars": 19002,
    "preview": "; *** Inno Setup version 6.1.0+ arabic messages ***\n;\n; Translated by nacer baaziz (nacerstile@gmail.com)\n;   http://ww"
  },
  {
    "path": "InnoDependencies/ChineseSimplified.isl",
    "chars": 12511,
    "preview": "; *** Inno Setup version 6.1.0+ Chinese Simplified messages ***\n;\n; To download user-contributed translations of this f"
  },
  {
    "path": "InnoDependencies/ChineseTraditional.isl",
    "chars": 12819,
    "preview": "; *** Inno Setup version 6.1.0+ Chinese (Traditional) messages ***\n; Name: Enfeng Tsao, nelson22768384@gmail.com\n; Base"
  },
  {
    "path": "InnoDependencies/Greek.isl",
    "chars": 23154,
    "preview": "; *** Inno Setup version 6.1.0+ Greek messages ***\n;\n; To download user-contributed translations of this file, go to:\n;"
  },
  {
    "path": "InnoDependencies/Latvian.isl",
    "chars": 18926,
    "preview": "; *** Inno Setup version 6.1.0+ Latvian messages ***\n;\n; Translated from English by Zorgaats, zorgaats@gmail.com\n;\n; No"
  },
  {
    "path": "InnoDependencies/Romanian.isl",
    "chars": 18987,
    "preview": "; *** Inno Setup version 5.5.3+ Romanian messages ***\n; Translator : Alexandru Bogdan Munteanu (muntealb@gmail.com)\n;\n; "
  },
  {
    "path": "InnoDependencies/Vietnamese.isl",
    "chars": 19627,
    "preview": "; *** Inno Setup version 6.1.0+ Vietnamese messages ***\n; Translated by Vu Khac Hiep (email: vukhachiep@gmail.com)\n; To"
  },
  {
    "path": "InnoDependencies/install_dotnet.iss",
    "chars": 6214,
    "preview": "#define DotNetPrettyName \"Microsoft .NET Desktop Runtime\"\n#define DotNetName \"Microsoft.WindowsDesktop.App 8\"\n#define Do"
  },
  {
    "path": "LICENSE",
    "chars": 35149,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "LenovoLegionToolkit.CLI/Flags.cs",
    "chars": 1087,
    "preview": "using System.Collections.Generic;\nusing System.Linq;\n\nnamespace LenovoLegionToolkit.CLI;\n\npublic readonly struct Flags\n"
  },
  {
    "path": "LenovoLegionToolkit.CLI/IpcClient.cs",
    "chars": 4959,
    "preview": "using System;\nusing System.IO.Pipes;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.CL"
  },
  {
    "path": "LenovoLegionToolkit.CLI/LenovoLegionToolkit.CLI.csproj",
    "chars": 1423,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n    <PropertyGroup>\n        <OutputType>Exe</OutputType>\n        <TargetFramework>net"
  },
  {
    "path": "LenovoLegionToolkit.CLI/Program.cs",
    "chars": 10265,
    "preview": "using System;\nusing System.CommandLine;\nusing System.CommandLine.Builder;\nusing System.CommandLine.Invocation;\nusing Sy"
  },
  {
    "path": "LenovoLegionToolkit.CLI.Lib/Constants.cs",
    "chars": 140,
    "preview": "namespace LenovoLegionToolkit.CLI.Lib;\n\npublic static class Constants\n{\n    public const string PIPE_NAME = \"LenovoLegi"
  },
  {
    "path": "LenovoLegionToolkit.CLI.Lib/Extensions/PipeStreamExtensions.cs",
    "chars": 1379,
    "preview": "using System;\nusing System.IO.Pipes;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing New"
  },
  {
    "path": "LenovoLegionToolkit.CLI.Lib/IpcConnectException.cs",
    "chars": 102,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.CLI.Lib;\n\npublic class IpcConnectException : Exception;\n"
  },
  {
    "path": "LenovoLegionToolkit.CLI.Lib/IpcException.cs",
    "chars": 115,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.CLI.Lib;\n\npublic class IpcException(string? name) : Exception(name);\n"
  },
  {
    "path": "LenovoLegionToolkit.CLI.Lib/IpcRequest.cs",
    "chars": 569,
    "preview": "namespace LenovoLegionToolkit.CLI.Lib;\n\npublic class IpcRequest\n{\n    public enum OperationType\n    {\n        Unknown,\n"
  },
  {
    "path": "LenovoLegionToolkit.CLI.Lib/IpcResponse.cs",
    "chars": 152,
    "preview": "namespace LenovoLegionToolkit.CLI.Lib;\n\npublic class IpcResponse\n{\n    public bool Success { get; init; }\n\n    public s"
  },
  {
    "path": "LenovoLegionToolkit.CLI.Lib/LenovoLegionToolkit.CLI.Lib.csproj",
    "chars": 511,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n    <PropertyGroup>\n        <TargetFramework>net8.0-windows</TargetFramework>\n       "
  },
  {
    "path": "LenovoLegionToolkit.Lib/AutoListeners/AbstractAutoListener.cs",
    "chars": 2581,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Utils;\nusing NeoSmart.AsyncLock;\n\nnamespace L"
  },
  {
    "path": "LenovoLegionToolkit.Lib/AutoListeners/GameAutoListener.cs",
    "chars": 8226,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Threading.Tas"
  },
  {
    "path": "LenovoLegionToolkit.Lib/AutoListeners/IAutoListener.cs",
    "chars": 280,
    "preview": "using System;\nusing System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.AutoListeners;\n\npublic interface IAutoLi"
  },
  {
    "path": "LenovoLegionToolkit.Lib/AutoListeners/InstanceStartedEventAutoAutoListener.cs",
    "chars": 945,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToo"
  },
  {
    "path": "LenovoLegionToolkit.Lib/AutoListeners/InstanceStoppedEventAutoAutoListener.cs",
    "chars": 944,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToo"
  },
  {
    "path": "LenovoLegionToolkit.Lib/AutoListeners/ProcessAutoListener.cs",
    "chars": 5082,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Threading.Tas"
  },
  {
    "path": "LenovoLegionToolkit.Lib/AutoListeners/TimeAutoListener.cs",
    "chars": 1043,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing System.Timers;\nusing LenovoLegionToolkit.Lib.Extensions;\n\nnamespace L"
  },
  {
    "path": "LenovoLegionToolkit.Lib/AutoListeners/UserInactivityAutoListener.cs",
    "chars": 3809,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing System.Windows.Forms;\nusing LenovoLegionToolkit.Lib.Utils;\nusing Wind"
  },
  {
    "path": "LenovoLegionToolkit.Lib/AutoListeners/WiFiAutoListener.cs",
    "chars": 3609,
    "preview": "using System;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\nusing System.Text;\nusing Sys"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/AIController.cs",
    "chars": 7634,
    "preview": "using System;\nusing System.Diagnostics;\nusing System.IO;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoL"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/DisplayBrightnessController.cs",
    "chars": 293,
    "preview": "using System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToolkit.Lib.Contr"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/GPUController.cs",
    "chars": 9852,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Threading;\nusing System.Threadin"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/GPUOverclockController.cs",
    "chars": 7731,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Listeners;\nusing LenovoLegionToolkit.Lib.Sett"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/GodMode/AbstractGodModeController.cs",
    "chars": 10900,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionTool"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/GodMode/GodModeController.cs",
    "chars": 3674,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Utils;\n\nnam"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/GodMode/GodModeControllerV1.cs",
    "chars": 26238,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionTool"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/GodMode/GodModeControllerV2.cs",
    "chars": 19201,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionTool"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/GodMode/IGodModeController.cs",
    "chars": 762,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.Contro"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/RGBKeyboardBacklightController.cs",
    "chars": 12781,
    "preview": "// #define MOCK_RGB\n\nusing System;\nusing System.Collections.Generic;\nusing System.Runtime.InteropServices;\nusing System"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/Sensors/AbstractSensorsController.cs",
    "chars": 8403,
    "preview": "using System;\nusing System.Linq;\nusing System.Runtime.InteropServices;\nusing System.Threading.Tasks;\nusing LenovoLegion"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/Sensors/ISensorsController.cs",
    "chars": 292,
    "preview": "using System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.Controllers.Sensors;\n\npublic interface ISensorsControl"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/Sensors/SensorsController.cs",
    "chars": 1820,
    "preview": "using System;\nusing System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.Controllers.Sensors;\n\npublic class Senso"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/Sensors/SensorsControllerV1.cs",
    "chars": 1909,
    "preview": "using System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToolkit.Lib.Contr"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/Sensors/SensorsControllerV2.cs",
    "chars": 2161,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\nusing LenovoLegionToolkit."
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/Sensors/SensorsControllerV3.cs",
    "chars": 2177,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\nusing LenovoLegionToolkit."
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/SmartFnLockController.cs",
    "chars": 3320,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Features;\nusing LenovoLegionToolkit.Lib.Setti"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/SpectrumKeyboardBacklightController.cs",
    "chars": 35981,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropService"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/WindowsPowerModeController.cs",
    "chars": 4435,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Runtime.InteropServices;\nusing System.Threading.Tasks;\nusi"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Controllers/WindowsPowerPlanController.cs",
    "chars": 6658,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Runtime.InteropServices;\nusing System.T"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Enums.cs",
    "chars": 18351,
    "preview": "using System;\nusing System.ComponentModel.DataAnnotations;\nusing LenovoLegionToolkit.Lib.Resources;\n\nnamespace LenovoLe"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/AssemblyExtensions.cs",
    "chars": 1193,
    "preview": "using System;\nusing System.Globalization;\nusing System.Reflection;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npubl"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/ContainerBuilderExtensions.cs",
    "chars": 523,
    "preview": "using Autofac;\nusing Autofac.Builder;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class ContainerBuil"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/DateTimeExtensions.cs",
    "chars": 1235,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class DateTimeExtensions\n{\n    public stati"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/DictionaryExtensions.cs",
    "chars": 844,
    "preview": "using System.Collections.Generic;\nusing System.Collections.ObjectModel;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/DisplayExtensions.cs",
    "chars": 4311,
    "preview": "using System.Linq;\nusing System.Runtime.InteropServices;\nusing Windows.Win32;\nusing Windows.Win32.Devices.Display;\nusin"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/DisplayPossibleSettingExtensions.cs",
    "chars": 277,
    "preview": "using System;\nusing WindowsDisplayAPI;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class DisplayPossi"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/DisplaySettingExtensions.cs",
    "chars": 499,
    "preview": "using WindowsDisplayAPI;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class DisplaySettingExtensions\n{"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/EnumExtensions.cs",
    "chars": 1182,
    "preview": "using System;\nusing System.ComponentModel.DataAnnotations;\nusing System.Linq;\nusing System.Reflection;\n\nnamespace Lenov"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/EnumerableExtensions.cs",
    "chars": 816,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npubl"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/HttpClientExtensions.cs",
    "chars": 1223,
    "preview": "using System;\nusing System.IO;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace "
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/IntExtensions.cs",
    "chars": 183,
    "preview": "namespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class IntExtensions\n{\n    public static bool IsBitSet(this"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/ListExtensions.cs",
    "chars": 282,
    "preview": "using System.Collections;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class ListExtensions\n{\n\n    pub"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/LogoInfoFormatExtensions.cs",
    "chars": 928,
    "preview": "using System.Collections.Generic;\nusing System.Drawing.Imaging;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic "
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/ManagementObjectSearcherExtensions.cs",
    "chars": 377,
    "preview": "using System.Collections.Generic;\nusing System.Linq;\nusing System.Management;\nusing System.Threading.Tasks;\n\nnamespace "
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/MathExtensions.cs",
    "chars": 268,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class MathExtensions\n{\n    public static in"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/OSExtensions.cs",
    "chars": 641,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class OSExtensions\n{\n    public static OS G"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/PInvokeExtensions.cs",
    "chars": 2453,
    "preview": "using System;\nusing System.Runtime.InteropServices;\nusing Microsoft.Win32.SafeHandles;\nusing Windows.Win32;\n\nnamespace "
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/PhyscialGPUExtensions.cs",
    "chars": 892,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing NvAPIWrapper.GPU;\nus"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/ProcessExtensions.cs",
    "chars": 407,
    "preview": "using System.Diagnostics;\nusing Windows.Win32;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class Proc"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/PropertyDataCollectionExtensions.cs",
    "chars": 461,
    "preview": "using System.Management;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class PropertyDataCollectionExte"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/RGBKeyboardBacklightPresetExtensions.cs",
    "chars": 575,
    "preview": "namespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class RGBKeyboardBacklightPresetExtensions\n{\n    public st"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/RegistrationBuilderExtensions.cs",
    "chars": 481,
    "preview": "using System;\nusing Autofac;\nusing Autofac.Builder;\nusing LenovoLegionToolkit.Lib.Listeners;\n\nnamespace LenovoLegionToo"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/ServiceControllerExtension.cs",
    "chars": 1302,
    "preview": "using System.Runtime.InteropServices;\nusing System.ServiceProcess;\nusing Windows.Win32;\nusing Windows.Win32.System.Serv"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/SpectrumKeyboardBacklightEffectTypeExtensions.cs",
    "chars": 706,
    "preview": "namespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class SpectrumKeyboardBacklightEffectTypeExtensions\n{\n\n   "
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/StreamExtensions.cs",
    "chars": 1062,
    "preview": "using System;\nusing System.IO;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/StringExtensions.cs",
    "chars": 445,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class StringExtensions\n{\n    public static "
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/TaskExtensions.cs",
    "chars": 373,
    "preview": "using System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class TaskExtensions\n{\n    "
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/TimeExtensions.cs",
    "chars": 270,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class TimeExtensions\n{\n    public static Ti"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/UintExtensions.cs",
    "chars": 514,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class UintExtensions\n{\n    public static ui"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Extensions/VersionExtensions.cs",
    "chars": 301,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.Extensions;\n\npublic static class VersionExtensions\n{\n    public static"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/AbstractCapabilityFeature.cs",
    "chars": 1873,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\nusing LenovoLegionToolkit."
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/AbstractCompositeFeature.cs",
    "chars": 2177,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing NeoSmart.AsyncLock;\n\nnamespace LenovoLegionToolkit.Lib.Features;\n\npub"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/AbstractDriverFeature.cs",
    "chars": 3502,
    "preview": "using System;\nusing System.Runtime.InteropServices;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensi"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/AbstractLenovoLightingFeature.cs",
    "chars": 2726,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\nusing LenovoLegionToolkit."
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/AbstractUEFIFeature.cs",
    "chars": 3811,
    "preview": "using System;\nusing System.Runtime.InteropServices;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Utils;\n"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/AbstractWmiFeature.cs",
    "chars": 1683,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Utils;\n\nnamespace LenovoLegionToolkit.Lib.Fea"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/AlwaysOnUsbFeature.cs",
    "chars": 1212,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLegionToolkit.Lib.Sys"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/BatteryFeature.cs",
    "chars": 3448,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLegionToolkit.Lib.Sys"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/BatteryNightChargeFeature.cs",
    "chars": 1129,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLegionToolkit.Lib.Sys"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/DpiScaleFeature.cs",
    "chars": 3048,
    "preview": "using System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System;\nusing LenovoLegion"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/FlipToStart/FlipToStartCapabilityFeature.cs",
    "chars": 176,
    "preview": "namespace LenovoLegionToolkit.Lib.Features.FlipToStart;\n\npublic class FlipToStartCapabilityFeature() : AbstractCapabili"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/FlipToStart/FlipToStartFeature.cs",
    "chars": 232,
    "preview": "namespace LenovoLegionToolkit.Lib.Features.FlipToStart;\n\npublic class FlipToStartFeature(FlipToStartCapabilityFeature f"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/FlipToStart/FlipToStartUEFIFeature.cs",
    "chars": 1537,
    "preview": "using System.Runtime.InteropServices;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\n\nnamespac"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/FnLockFeature.cs",
    "chars": 926,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLegionToolkit.Lib.Sys"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/HDRFeature.cs",
    "chars": 2702,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLegionToolkit.Lib.Sys"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/GSyncFeature.cs",
    "chars": 301,
    "preview": "using LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToolkit.Lib.Features.Hybrid;\n\npublic class GSyn"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/HybridModeFeature.cs",
    "chars": 6807,
    "preview": "using System;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Features.Hybrid.Notif"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/IGPUModeCapabilityFeature.cs",
    "chars": 1901,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\nusing LenovoLegionToolkit."
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/IGPUModeChangeException.cs",
    "chars": 200,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.Features.Hybrid;\n\npublic class IGPUModeChangeException(IGPUModeState i"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/IGPUModeFeature.cs",
    "chars": 802,
    "preview": "using System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.Features.Hybrid;\n\npublic class IGPUModeFeature(IGPUMod"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/IGPUModeFeatureFlagsFeature.cs",
    "chars": 1991,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLegionToolkit.Lib.Sys"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/IGPUModeGamezoneFeature.cs",
    "chars": 324,
    "preview": "using LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToolkit.Lib.Features.Hybrid;\n\npublic class IGPU"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/Notify/AbstractDGPUNotify.cs",
    "chars": 6426,
    "preview": "using System;\nusing System.Runtime.InteropServices;\nusing System.Text.RegularExpressions;\nusing System.Threading;\nusing"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/Notify/DGPUCapabilityNotify.cs",
    "chars": 1262,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\nusing LenovoLegionToolkit."
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/Notify/DGPUFeatureFlagsNotify.cs",
    "chars": 1052,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\nusing LenovoLegionToolkit."
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/Notify/DGPUGamezoneNotify.cs",
    "chars": 981,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\nusing LenovoLegionToolkit."
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/Notify/DGPUNotify.cs",
    "chars": 3106,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing NeoSmart.AsyncLock;\n\nnamespace LenovoLegionToolkit.Lib.Features.Hybri"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/Hybrid/Notify/IDGPUNotify.cs",
    "chars": 340,
    "preview": "using System;\nusing System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.Features.Hybrid.Notify;\n\npublic interfac"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/IFeature.cs",
    "chars": 259,
    "preview": "using System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.Features;\n\npublic interface IFeature<T> where T : stru"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/InstantBoot/InstantBootCapabilityFeature.cs",
    "chars": 2491,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Utils;\n\nnamespace LenovoLegionToolkit.Lib.Fea"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/InstantBoot/InstantBootFeature.cs",
    "chars": 240,
    "preview": "namespace LenovoLegionToolkit.Lib.Features.InstantBoot;\n\npublic class InstantBootFeature(InstantBootCapabilityFeature f"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/InstantBoot/InstantBootFeatureFlagsFeature.cs",
    "chars": 2587,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLegionToolkit.Lib.Sys"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/MicrophoneFeature.cs",
    "chars": 1370,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionTool"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/OneLevelWhiteKeyboardBacklightFeature.cs",
    "chars": 1426,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System;\n\nnamespace LenovoLegionToolkit.Lib.Fe"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/OverDrive/OverDriveCapabilityFeature.cs",
    "chars": 167,
    "preview": "namespace LenovoLegionToolkit.Lib.Features.OverDrive;\n\npublic class OverDriveCapabilityFeature() : AbstractCapabilityFe"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/OverDrive/OverDriveFeature.cs",
    "chars": 226,
    "preview": "namespace LenovoLegionToolkit.Lib.Features.OverDrive;\n\npublic class OverDriveFeature(OverDriveCapabilityFeature feature"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/OverDrive/OverDriveGameZoneFeature.cs",
    "chars": 311,
    "preview": "using LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToolkit.Lib.Features.OverDrive;\n\npublic class O"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/PanelLogo/PanelLogoBacklightFeature.cs",
    "chars": 266,
    "preview": "namespace LenovoLegionToolkit.Lib.Features.PanelLogo;\n\npublic class PanelLogoBacklightFeature(PanelLogoLenovoLightingBa"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/PanelLogo/PanelLogoLenovoLightingBacklightFeature.cs",
    "chars": 801,
    "preview": "using System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Utils;\n\nnamespace LenovoLegionToolkit.Lib.Features.PanelLog"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/PanelLogo/PanelLogoSpectrumBacklightFeature.cs",
    "chars": 1079,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Controllers;\n\nnamespace LenovoLegionToolkit.L"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/PortsBacklightFeature.cs",
    "chars": 371,
    "preview": "namespace LenovoLegionToolkit.Lib.Features;\n\npublic class PortsBacklightFeature() : AbstractLenovoLightingFeature<Ports"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/PowerModeFeature.cs",
    "chars": 4218,
    "preview": "using System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Controllers;\nusing LenovoL"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/RefreshRateFeature.cs",
    "chars": 4550,
    "preview": "using System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLe"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/ResolutionFeature.cs",
    "chars": 4511,
    "preview": "using System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLe"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/SpeakerFeature.cs",
    "chars": 1348,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionTool"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/TouchpadLockFeature.cs",
    "chars": 312,
    "preview": "using LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToolkit.Lib.Features;\n\npublic class TouchpadLoc"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/WhiteKeyboardBacklight/WhiteKeyboardBacklightFeature.cs",
    "chars": 818,
    "preview": "using System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Controllers;\n\nnamespace LenovoLegionToolkit.Lib.Features.Wh"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/WhiteKeyboardBacklight/WhiteKeyboardDriverBacklightFeature.cs",
    "chars": 1579,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System;\n\nnamespace LenovoLegionToolkit.Lib.Fe"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/WhiteKeyboardBacklight/WhiteKeyboardLenovoLightingBacklightFeature.cs",
    "chars": 456,
    "preview": "namespace LenovoLegionToolkit.Lib.Features.WhiteKeyboardBacklight;\n\npublic class WhiteKeyboardLenovoLightingBacklightFe"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Features/WinKeyFeature.cs",
    "chars": 306,
    "preview": "using LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToolkit.Lib.Features;\n\npublic class WinKeyFeatu"
  },
  {
    "path": "LenovoLegionToolkit.Lib/GameDetection/EffectiveGameModeDetector.cs",
    "chars": 1416,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Utils;\nusing Windows.Win32;\nusing Windows.Win"
  },
  {
    "path": "LenovoLegionToolkit.Lib/GameDetection/GameConfigStoreDetector.cs",
    "chars": 2511,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System;\nusi"
  },
  {
    "path": "LenovoLegionToolkit.Lib/GlobalSuppressions.cs",
    "chars": 454,
    "preview": "// This file is used by Code Analysis to maintain SuppressMessage\n// attributes that are applied to this project.\n// Pr"
  },
  {
    "path": "LenovoLegionToolkit.Lib/HttpClientFactory.cs",
    "chars": 1243,
    "preview": "using System;\nusing System.Net;\nusing System.Net.Http;\n\nnamespace LenovoLegionToolkit.Lib;\n\npublic class HttpClientFact"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Integrations/HWiNFOIntegration.cs",
    "chars": 4058,
    "preview": "using System;\nusing System.Globalization;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing LenovoLegionToolk"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Interfaces.cs",
    "chars": 103,
    "preview": "namespace LenovoLegionToolkit.Lib;\n\npublic interface IDisplayName\n{\n    string DisplayName { get; }\n}\n"
  },
  {
    "path": "LenovoLegionToolkit.Lib/IoCContainer.cs",
    "chars": 1246,
    "preview": "using System;\nusing Autofac;\n\nnamespace LenovoLegionToolkit.Lib;\n\npublic static class IoCContainer\n{\n    private static"
  },
  {
    "path": "LenovoLegionToolkit.Lib/IoCModule.cs",
    "chars": 6519,
    "preview": "using Autofac;\nusing LenovoLegionToolkit.Lib.AutoListeners;\nusing LenovoLegionToolkit.Lib.Controllers;\nusing LenovoLegi"
  },
  {
    "path": "LenovoLegionToolkit.Lib/LenovoLegionToolkit.Lib.csproj",
    "chars": 2178,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\t<PropertyGroup>\n\t\t<TargetFramework>net8.0-windows</TargetFramework>\n\t\t<RuntimeIdenti"
  },
  {
    "path": "LenovoLegionToolkit.Lib/LenovoLegionToolkit.Lib.csproj.DotSettings",
    "chars": 411,
    "preview": "<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namesp"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/AbstractEventLogListener.cs",
    "chars": 1366,
    "preview": "using System;\nusing System.Diagnostics.Eventing.Reader;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Uti"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/AbstractWMIListener.cs",
    "chars": 2468,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Utils;\n\nnamespace LenovoLegionToolkit.Lib.Lis"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/DisplayBrightnessListener.cs",
    "chars": 2415,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Controllers;\nusing LenovoLegionToolkit.Lib.Se"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/DisplayConfigurationListener.cs",
    "chars": 1908,
    "preview": "using System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing LenovoLe"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/DriverKeyListener.cs",
    "chars": 6576,
    "preview": "using System;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Extensions;\nusing Len"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/IListener.cs",
    "chars": 256,
    "preview": "using System;\nusing System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.Listeners;\n\npublic interface IListener<T"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/INotifyingListener.cs",
    "chars": 244,
    "preview": "using System;\nusing System.Threading.Tasks;\n\nnamespace LenovoLegionToolkit.Lib.Listeners;\n\npublic interface INotifyingL"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/LightingChangeListener.cs",
    "chars": 2794,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Features;\nusing LenovoLegionToolkit.Lib.Featu"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/NativeWindowsMessageListener.cs",
    "chars": 14728,
    "preview": "using System;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\nusing System.Threading.Tasks"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/PowerModeListener.cs",
    "chars": 2750,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Controllers;\nusing LenovoLegionToolkit.Lib.Co"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/PowerStateListener.cs",
    "chars": 7942,
    "preview": "using System;\nusing System.Runtime.InteropServices;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Control"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/RGBKeyboardBacklightListener.cs",
    "chars": 2094,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Controllers;\nusing LenovoLegionToolkit.Lib.Ex"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/SessionLockUnlockListener.cs",
    "chars": 2487,
    "preview": "using System;\nusing System.Runtime.InteropServices;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Utils;\n"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/SpecialKeyListener.cs",
    "chars": 9799,
    "preview": "using System;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib."
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/SystemThemeListener.cs",
    "chars": 1634,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System;\nusing LenovoLegionToolkit.Lib.Utils;\n"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/ThermalModeListener.cs",
    "chars": 2284,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.Controllers;\nusing LenovoLegionToolkit.Lib.Sy"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Listeners/WinKeyListener.cs",
    "chars": 522,
    "preview": "using System;\nusing System.Threading.Tasks;\nusing LenovoLegionToolkit.Lib.System.Management;\n\nnamespace LenovoLegionToo"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Messaging/Messages/FeatureStateMessage.cs",
    "chars": 163,
    "preview": "namespace LenovoLegionToolkit.Lib.Messaging.Messages;\n\npublic readonly struct FeatureStateMessage<T>(T state) : IMessag"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Messaging/Messages/IMessage.cs",
    "chars": 83,
    "preview": "namespace LenovoLegionToolkit.Lib.Messaging.Messages;\n\npublic interface IMessage;\n"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Messaging/Messages/NotificationMessage.cs",
    "chars": 367,
    "preview": "namespace LenovoLegionToolkit.Lib.Messaging.Messages;\n\npublic readonly struct NotificationMessage(NotificationType type"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Messaging/Messages/RGBKeyboardBacklightChangedMessage.cs",
    "chars": 116,
    "preview": "namespace LenovoLegionToolkit.Lib.Messaging.Messages;\n\npublic class RGBKeyboardBacklightChangedMessage : IMessage;\n"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Messaging/Messages/SpectrumBacklightChangedMessage.cs",
    "chars": 113,
    "preview": "namespace LenovoLegionToolkit.Lib.Messaging.Messages;\n\npublic class SpectrumBacklightChangedMessage : IMessage;\n"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Messaging/MessagingCenter.cs",
    "chars": 546,
    "preview": "using System;\nusing LenovoLegionToolkit.Lib.Messaging.Messages;\nusing PubSub;\n\nnamespace LenovoLegionToolkit.Lib.Messag"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Native.cs",
    "chars": 17267,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Runtime.InteropServices;\n\nnamespace Lenov"
  },
  {
    "path": "LenovoLegionToolkit.Lib/NativeMethods.json",
    "chars": 22,
    "preview": "{\n  \"public\": true\n}\n"
  },
  {
    "path": "LenovoLegionToolkit.Lib/NativeMethods.txt",
    "chars": 3790,
    "preview": "HWND_BROADCAST\n\nWM_CLOSE\nWM_COMMAND\nWM_DESTROY\nWM_DEVICECHANGE\nWM_KEYDOWN\nWM_KEYUP\nWM_SYSKEYDOWN\nWM_SYSKEYUP\nWM_LBUTTON"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/AbstractPackageDownloader.cs",
    "chars": 3737,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Net.Http;\nusing System"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/AndPackageRule.cs",
    "chars": 1231,
    "preview": "using System.Collections.Generic;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespa"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/BiosPackageRule.cs",
    "chars": 2368,
    "preview": "using System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Text.RegularExpressions;\nusing"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/CpuAddressWidthPackageRule.cs",
    "chars": 1330,
    "preview": "using System.Collections.Generic;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Sy"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/DriverPackageRule.cs",
    "chars": 3417,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nusing"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/ExternalDetectionRule.cs",
    "chars": 3470,
    "preview": "using System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nus"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/IPackageRule.cs",
    "chars": 471,
    "preview": "using System.Collections.Generic;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespa"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/NotPackageRule.cs",
    "chars": 1219,
    "preview": "using System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Thread"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/OrPackageRule.cs",
    "chars": 1226,
    "preview": "using System.Collections.Generic;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespa"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/OsPackageRule.cs",
    "chars": 1825,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nusing"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/PnPIdPackageRule.cs",
    "chars": 1575,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nusing"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/RegistryKeyPackageRule.cs",
    "chars": 1308,
    "preview": "using System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Thread"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/RegistryKeyValuePackageRule.cs",
    "chars": 3041,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nusing"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/Rules/WindowsBuildVersionPackageRule.cs",
    "chars": 1685,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.T"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/Detectors/VantagePackageUpdateDetector.cs",
    "chars": 6180,
    "preview": "using System.Collections.Generic;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Sy"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/IPackageDownloader.cs",
    "chars": 484,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Lenovo"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/PCSupportPackageDownloader.cs",
    "chars": 4464,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json.Nodes;\nusing System.Threading"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/PackageDownloaderFactory.cs",
    "chars": 546,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.PackageDownloader;\n\npublic class PackageDownloaderFactory(\n    PCSuppo"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/UpdateCatalogNotFoundException.cs",
    "chars": 172,
    "preview": "using System;\n\nnamespace LenovoLegionToolkit.Lib.PackageDownloader;\n\npublic class UpdateCatalogNotFoundException(string"
  },
  {
    "path": "LenovoLegionToolkit.Lib/PackageDownloader/VantagePackageDownloader.cs",
    "chars": 6056,
    "preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net;\nusing System.Net.Http;\nusing Syste"
  },
  {
    "path": "LenovoLegionToolkit.Lib/Resources/Resource.Designer.cs",
    "chars": 41511,
    "preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code w"
  }
]

// ... and 561 more files (download for full content)

About this extraction

This page contains the full source code of the BartoszCichecki/LenovoLegionToolkit GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 761 files (5.4 MB), approximately 1.5M tokens, and a symbol index with 3142 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!