{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D6","name":"Cohesion (LCOM4)","shortDescription":{"text":"Cohesion (LCOM4)"},"helpUri":"https://codehealth.canine.dev/dimensions/D6"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D17","name":"Explicit Debt","shortDescription":{"text":"Explicit Debt"},"helpUri":"https://codehealth.canine.dev/dimensions/D17"},{"id":"D18","name":"Solution Shape","shortDescription":{"text":"Solution Shape"},"helpUri":"https://codehealth.canine.dev/dimensions/D18"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D27","name":"Navigability","shortDescription":{"text":"Navigability"},"helpUri":"https://codehealth.canine.dev/dimensions/D27"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"SelfFile.ExtractElf (cyclomatic 52): SelfFile.ExtractElf has cyclomatic complexity 52 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/SelfUtilCode/SelfFile.vb"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"67df123d54af97dff9567c53ab8aed9891d3d13505818ef46f1e18623ca391aa"}},{"ruleId":"D1","level":"warning","message":{"text":"PatchingHistoryRepository.GetStatistics (cyclomatic 35): PatchingHistoryRepository.GetStatistics has cyclomatic complexity 35 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Repositories/PatchingHistoryRepository.vb"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddf4da8c9d35152213c71300400182fe421d75dea8e8a8ef6a0942ba8a2715be"}},{"ruleId":"D1","level":"warning","message":{"text":"DirectDownloadService.DownloadVikingFileAsync (cyclomatic 33): DirectDownloadService.DownloadVikingFileAsync has cyclomatic complexity 33 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0d7521c4bbe8826978717e956f7c7a734c3bf4ef9ca6e0d0bdaace6d70273eb"}},{"ruleId":"D1","level":"warning","message":{"text":"TorrentGalaxyProvider.ParseSearchResults (cyclomatic 32): TorrentGalaxyProvider.ParseSearchResults has cyclomatic complexity 32 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab73dbad718eff8c76f585e527cc5cc1779b42c8fb3385ffd6b915dec47bbb4c"}},{"ruleId":"D1","level":"warning","message":{"text":"FirmwareDownloadModule.DownloadFileWithProgressAsync (cyclomatic 27): FirmwareDownloadModule.DownloadFileWithProgressAsync has cyclomatic complexity 27 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/FirmwareDownloadModule.vb"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"16c64f7cd964e314abc819ad3430a3f80c6d61b08ea180d4c12add8e0bca3c06"}},{"ruleId":"D1","level":"warning","message":{"text":"PackageManagerForm.MnuPreview_Click (cyclomatic 26): PackageManagerForm.MnuPreview_Click has cyclomatic complexity 26 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb"},"region":{"startLine":863}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d7b4d2b7395b1705d5f4e0378010d336be99b799812401e92d937101f4a8c3d"}},{"ruleId":"D1","level":"warning","message":{"text":"GameLibraryForm.DgvGames_ColumnHeaderMouseClick (cyclomatic 25): GameLibraryForm.DgvGames_ColumnHeaderMouseClick has cyclomatic complexity 25 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb"},"region":{"startLine":618}}}],"partialFingerprints":{"codehealthFindingId/v1":"56b5b973235c19544f34501c3d477bbd09c6a0cb36e4a4df3b17ad4db1f0cc4e"}},{"ruleId":"D1","level":"warning","message":{"text":"RuTrackerProvider.ParseSearchResults (cyclomatic 25): RuTrackerProvider.ParseSearchResults has cyclomatic complexity 25 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/RuTrackerProvider.vb"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c816c51c72c73c9cbfac4a47385d7fecbab07ee43d17344b6b804557d2275b1"}},{"ruleId":"D1","level":"warning","message":{"text":"PackageManagerForm.BtnValidate_Click (cyclomatic 23): PackageManagerForm.BtnValidate_Click has cyclomatic complexity 23 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb"},"region":{"startLine":551}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2c70441d1b47a4fa0a903574a66207e5cf7c4e5e918d91f70a5bd5e5ad6344b"}},{"ruleId":"D1","level":"warning","message":{"text":"ElfPatchingService.PatchFileAsync (cyclomatic 23): ElfPatchingService.PatchFileAsync has cyclomatic complexity 23 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Application/Services/ElfPatchingService.vb"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"50f19c9b7746937c2af743dcf8f56d8d94015fe134f59ac70317f91fff5285df"}},{"ruleId":"D1","level":"warning","message":{"text":"PayloadLibrary.GetStatistics (cyclomatic 23): PayloadLibrary.GetStatistics has cyclomatic complexity 23 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PayloadLibrary.vb"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c1f92e8003252fb63c3db36bd52b0b977565a353094bb53d35d8d7d577944cd"}},{"ruleId":"D1","level":"warning","message":{"text":"ThemeManager.ApplyThemeToControls (cyclomatic 23): ThemeManager.ApplyThemeToControls has cyclomatic complexity 23 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":182}}}],"partialFingerprints":{"codehealthFindingId/v1":"18c7071942745df1b626295f9e455d254ee893631126521116c775ca08e4115d"}},{"ruleId":"D1","level":"warning","message":{"text":"DirectDownloadService.DownloadAkiraboxAsync (cyclomatic 21): DirectDownloadService.DownloadAkiraboxAsync has cyclomatic complexity 21 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":574}}}],"partialFingerprints":{"codehealthFindingId/v1":"85cdfc4abc476f56474b22486e1d792cf48a5febfaedea7614db3d7462d8f35c"}},{"ruleId":"D1","level":"warning","message":{"text":"DLPSGameProvider.SearchAsync (cyclomatic 20): DLPSGameProvider.SearchAsync has cyclomatic complexity 20 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DLPSGameProvider.vb"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"5abe2eab074b090fc31ef454aff8d32cb53a31e2277773fc9f25f251de2971a5"}},{"ruleId":"D1","level":"warning","message":{"text":"RuTrackerProvider.LoginAsync (cyclomatic 20): RuTrackerProvider.LoginAsync has cyclomatic complexity 20 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/RuTrackerProvider.vb"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a05dc29902655f8ce224ba263a2ddb9a6e4be1324d9c1fec06cd86333b50d21"}},{"ruleId":"D1","level":"warning","message":{"text":"ElfInspectorForm.DgvFiles_SelectionChanged (cyclomatic 19): ElfInspectorForm.DgvFiles_SelectionChanged has cyclomatic complexity 19 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":460}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fb17fa5b8d3100b2f9516c14440fa5cc0b339dc28cbae974a90df14311a7ac5"}},{"ruleId":"D1","level":"warning","message":{"text":"ElfInspectorForm.MnuPatch_Click (cyclomatic 18): ElfInspectorForm.MnuPatch_Click has cyclomatic complexity 18 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":922}}}],"partialFingerprints":{"codehealthFindingId/v1":"5857c5e2e16089df99f28c299753b130f0fa6b7452c10d875d6185ed75ed5ec6"}},{"ruleId":"D1","level":"warning","message":{"text":"PirateBayProvider.SearchViaApiAsync (cyclomatic 18): PirateBayProvider.SearchViaApiAsync has cyclomatic complexity 18 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6412671e2211decd64a3681ecc9a410c55fb3da8e887887ce8b9a4b248e7363"}},{"ruleId":"D1","level":"warning","message":{"text":"PirateBayProvider.ParseHtmlResults (cyclomatic 18): PirateBayProvider.ParseHtmlResults has cyclomatic complexity 18 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"2122e677dbc5f045ea2c20388fddd5ae53c6989873a17ab16a36a7ea7e9a09ea"}},{"ruleId":"D1","level":"warning","message":{"text":"SigningService.IsSelfFile (cyclomatic 18): SigningService.IsSelfFile has cyclomatic complexity 18 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/SigningService.vb"},"region":{"startLine":319}}}],"partialFingerprints":{"codehealthFindingId/v1":"3806ac9af1dd6e1641bdf4341ca63efc0d046210c3c6d7f9544a949b64326fd6"}},{"ruleId":"D1","level":"warning","message":{"text":"DirectDownloadService.StreamResponseToFileAsync (cyclomatic 17): DirectDownloadService.StreamResponseToFileAsync has cyclomatic complexity 17 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":845}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b8db6496ce5233457c4e61841f669f742c38456923724703bc76449931cac5e"}},{"ruleId":"D1","level":"warning","message":{"text":"filedownloads.DownloadLatestRelease (cyclomatic 16): filedownloads.DownloadLatestRelease has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01global/filedownloads.vb"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"aee17985afbf911ed1680b549b2f0c55800bdd45f11661e8c7f6e9dfc6b3a86c"}},{"ruleId":"D1","level":"warning","message":{"text":"ElfInspector.ReadInfo (cyclomatic 16): ElfInspector.ReadInfo has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/core/Models/ElfInfo.vb"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbc1818e1c4cc96c07f950a69e018d27fd1a242720592cb52abfc0a4665e0f87"}},{"ruleId":"D1","level":"warning","message":{"text":"PKGMetadata.Load (cyclomatic 16): PKGMetadata.Load has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/core/PKG/PKGMetadata.vb"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5ea9d70610a5eb3a4b1baf0804b071025681476746faf9e6bf820d9b2d736f0"}},{"ruleId":"D1","level":"warning","message":{"text":"DownloadProgressForm.DownloadProgressForm_Shown (cyclomatic 16): DownloadProgressForm.DownloadProgressForm_Shown has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DownloadProgressForm.vb"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd26d7436186eda0432409f083923e15bc4d62c4655ced50f85260d9bb891cad"}},{"ruleId":"D1","level":"warning","message":{"text":"GameSearchForm.DownloadFile_Click (cyclomatic 16): GameSearchForm.DownloadFile_Click has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb"},"region":{"startLine":704}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c448e714ca8ba5288084002677be80aed714586e8a6717d1afe182c88dd98b7"}},{"ruleId":"D1","level":"warning","message":{"text":"DirectDownloadService.Download1FichierAsync (cyclomatic 16): DirectDownloadService.Download1FichierAsync has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":390}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9a2a24aecd331423d2639a662c70929783e1dcd35d0d1f5f1a3cb3c85748b4f"}},{"ruleId":"D1","level":"warning","message":{"text":"DLPSGameProvider.ParseListingPage (cyclomatic 16): DLPSGameProvider.ParseListingPage has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DLPSGameProvider.vb"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"54b7460f7d2d0978ea576ce5f6f2114ccc50b026a3380200e17e7cd6683825fc"}},{"ruleId":"D1","level":"warning","message":{"text":"LeetxProvider.ParseSearchResults (cyclomatic 16): LeetxProvider.ParseSearchResults has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"458090e76a80ef30fac8f04a6276eac3de6679e88c914c2fc5336ef190dd633d"}},{"ruleId":"D1","level":"warning","message":{"text":"OperationReport.GenerateReport (cyclomatic 16): OperationReport.GenerateReport has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/OperationReport.vb"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff23653d6ab11950f59aa40ea56d1fbb1c2e2e940ab85ad284ce1843865f6cbc"}},{"ruleId":"D1","level":"warning","message":{"text":"RemotePkgInstallService.HandleRequest (cyclomatic 16): RemotePkgInstallService.HandleRequest has cyclomatic complexity 16 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function, or replace a long branch ladder over a single value with a data-driven lookup or dispatch table."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RemotePkgInstallService.vb"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce1d8c06ebe7f91a17215612a1d17392466e99b1589b270bf40bb00b7b18bef7"}},{"ruleId":"D2","level":"warning","message":{"text":"SelfFile.ExtractElf (cognitive 92): SelfFile.ExtractElf has cognitive complexity 92 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/SelfUtilCode/SelfFile.vb"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"54a94a9d1779117c16bba8a1051d31b0441ab1af05b887cd69440aaba70619dc"}},{"ruleId":"D2","level":"warning","message":{"text":"DirectDownloadService.DownloadVikingFileAsync (cognitive 64): DirectDownloadService.DownloadVikingFileAsync has cognitive complexity 64 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"54b893ebb79b4ded7f18cfd51de5ec0148dbbae58dbc38add81ceb4e12a6bb87"}},{"ruleId":"D2","level":"warning","message":{"text":"TorrentGalaxyProvider.ParseSearchResults (cognitive 62): TorrentGalaxyProvider.ParseSearchResults has cognitive complexity 62 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3880d8cb8540cd46a7b1649a89d1ee3bdfa127ef9c8857912bcea82c0e82f7e"}},{"ruleId":"D2","level":"warning","message":{"text":"RuTrackerProvider.ParseSearchResults (cognitive 47): RuTrackerProvider.ParseSearchResults has cognitive complexity 47 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/RuTrackerProvider.vb"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf0cea7bf4477af171b291e7fd43b39bb1df073b04b36384f1decaf482dee468"}},{"ruleId":"D2","level":"warning","message":{"text":"PatchingHistoryRepository.GetStatistics (cognitive 43): PatchingHistoryRepository.GetStatistics has cognitive complexity 43 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Repositories/PatchingHistoryRepository.vb"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"93d2867837988a5fea4ad40a7b812758154581c7ef0d7a796cca3711fe5769be"}},{"ruleId":"D2","level":"warning","message":{"text":"PackageManagerForm.MnuPreview_Click (cognitive 40): PackageManagerForm.MnuPreview_Click has cognitive complexity 40 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb"},"region":{"startLine":863}}}],"partialFingerprints":{"codehealthFindingId/v1":"6eb2cc6777089e5c56dfffe7158bd0d49e8b54be1cbc368359d77cadb7866b26"}},{"ruleId":"D2","level":"warning","message":{"text":"PackageManagerForm.BtnValidate_Click (cognitive 39): PackageManagerForm.BtnValidate_Click has cognitive complexity 39 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb"},"region":{"startLine":551}}}],"partialFingerprints":{"codehealthFindingId/v1":"770181d19261f295091a0a6b4e258822eb13dd5df08e3b7a45b73e33c47bc19c"}},{"ruleId":"D2","level":"warning","message":{"text":"GameLibraryForm.DgvGames_ColumnHeaderMouseClick (cognitive 37): GameLibraryForm.DgvGames_ColumnHeaderMouseClick has cognitive complexity 37 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb"},"region":{"startLine":618}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ca139963933223d94d6a6897a1a001b9dd9b348eac9b447be074ceaecb05197"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfInspectorForm.MnuFullPipeline_Click (cognitive 36): ElfInspectorForm.MnuFullPipeline_Click has cognitive complexity 36 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":1214}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d145918e4ae3320781a79a89225f0f9cf3f2c009b9db90d1a802c41bb4332e0"}},{"ruleId":"D2","level":"warning","message":{"text":"FirmwareDownloadModule.DownloadFileWithProgressAsync (cognitive 35): FirmwareDownloadModule.DownloadFileWithProgressAsync has cognitive complexity 35 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/FirmwareDownloadModule.vb"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"555454275ce9049c9f6d9a57c976a32848b22b0002f378cf7875e3704e5227f3"}},{"ruleId":"D2","level":"warning","message":{"text":"PirateBayProvider.ParseHtmlResults (cognitive 34): PirateBayProvider.ParseHtmlResults has cognitive complexity 34 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5181faf15a646592b277e6fe3854dd7e9e0de238227b87a31ad2dd487cd2740"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfInspectorForm.MnuPatch_Click (cognitive 33): ElfInspectorForm.MnuPatch_Click has cognitive complexity 33 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":922}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4a095a4adf6183521949aef3d2faad56c6b39829748c9c2ae4ef3c6a1308ebb"}},{"ruleId":"D2","level":"warning","message":{"text":"ThemeManager.ApplyThemeToControls (cognitive 31): ThemeManager.ApplyThemeToControls has cognitive complexity 31 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":182}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7472b609376510bb4aacf14f8b75e4ecbb58d617e922018f8c57539a7d2a517"}},{"ruleId":"D2","level":"warning","message":{"text":"DirectDownloadService.DownloadAkiraboxAsync (cognitive 29): DirectDownloadService.DownloadAkiraboxAsync has cognitive complexity 29 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":574}}}],"partialFingerprints":{"codehealthFindingId/v1":"65dc1595777c2b541fa6b9a33532156bdc6986102bd58ad15c586a6359eaa25c"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfInspectorForm.MnuDecrypt_Click (cognitive 28): ElfInspectorForm.MnuDecrypt_Click has cognitive complexity 28 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":682}}}],"partialFingerprints":{"codehealthFindingId/v1":"9086dfe67f5a1676bbc7b108c0157e00020dcda7e224a9551517938491fa7d44"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfInspectorForm.MnuSign_Click (cognitive 28): ElfInspectorForm.MnuSign_Click has cognitive complexity 28 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":1117}}}],"partialFingerprints":{"codehealthFindingId/v1":"202b7a685aa1c47a12331e246a6d87023a669cc694a18bf295d8f64fa5763787"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfInspectorForm.DgvFiles_SelectionChanged (cognitive 27): ElfInspectorForm.DgvFiles_SelectionChanged has cognitive complexity 27 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":460}}}],"partialFingerprints":{"codehealthFindingId/v1":"0535bd1dd78315f631a8522f23cee7ed3b87e2542e60906b723f40bc86bb7e9f"}},{"ruleId":"D2","level":"warning","message":{"text":"PirateBayProvider.SearchViaApiAsync (cognitive 26): PirateBayProvider.SearchViaApiAsync has cognitive complexity 26 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea44204049e7ff1719fa3dab7adacee4eb0b4e9bbb91853652ffba245b5b5e8c"}},{"ruleId":"D2","level":"warning","message":{"text":"GameLibraryForm.LoadCoverArtAsync (cognitive 25): GameLibraryForm.LoadCoverArtAsync has cognitive complexity 25 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb"},"region":{"startLine":359}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2ff4a0f19ebc0057b34c2bb95baf0215fd1183d0b8566c201647c32a82af15e"}},{"ruleId":"D2","level":"warning","message":{"text":"LeetxProvider.ParseSearchResults (cognitive 25): LeetxProvider.ParseSearchResults has cognitive complexity 25 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc0a9b1469bddcb87ea6bb1c7bb37c93fd94323b9a04eb9121361b4b15e281d2"}},{"ruleId":"D2","level":"warning","message":{"text":"DirectDownloadService.StreamResponseToFileAsync (cognitive 24): DirectDownloadService.StreamResponseToFileAsync has cognitive complexity 24 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":845}}}],"partialFingerprints":{"codehealthFindingId/v1":"47f917d49d8dac6c76a65be513aed9a37fd45fdaac36edaea1a3e880ce3a8913"}},{"ruleId":"D2","level":"warning","message":{"text":"PayloadLibrary.GetStatistics (cognitive 24): PayloadLibrary.GetStatistics has cognitive complexity 24 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PayloadLibrary.vb"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"b94d64fa6d90b73d3a14d5dbbb6aace3222e2c4e1286728f1aca2606600b9b33"}},{"ruleId":"D2","level":"warning","message":{"text":"PKGMetadata.Load (cognitive 23): PKGMetadata.Load has cognitive complexity 23 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/core/PKG/PKGMetadata.vb"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"f83bd8ba75549a362cf4a47678d6a48d275c672696b2883aeea07a7a8cf6970a"}},{"ruleId":"D2","level":"warning","message":{"text":"DLPSGameProvider.FetchGamePageAsync (cognitive 23): DLPSGameProvider.FetchGamePageAsync has cognitive complexity 23 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DLPSGameProvider.vb"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ce263c3e8a2fe5bfc15e88d96eca22a557ad6a557763245f5c21f1c13831bd0"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfPatchingService.PatchFileAsync (cognitive 22): ElfPatchingService.PatchFileAsync has cognitive complexity 22 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Application/Services/ElfPatchingService.vb"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"8162e8a3cd2ece11a60ecd8695807a89ed4900bce54a95caeecbef30e8918506"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfInspectorService.ExtractLibraryDependencies (cognitive 22): ElfInspectorService.ExtractLibraryDependencies has cognitive complexity 22 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ElfInspector.vb"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f98d1a9f7b27693422604eb499ecd09a00cd77e30d4c51f9ce04405b5f2c7ef"}},{"ruleId":"D2","level":"warning","message":{"text":"SdkDetector.AnalyzeFolderSdkVersions (cognitive 22): SdkDetector.AnalyzeFolderSdkVersions has cognitive complexity 22 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/SdkDetector.vb"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"52358aac35c7afcc3138ffd953a684dbc2de1fb19c266e24df31e1168d75504d"}},{"ruleId":"D2","level":"warning","message":{"text":"DLPSGameProvider.SearchAsync (cognitive 21): DLPSGameProvider.SearchAsync has cognitive complexity 21 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DLPSGameProvider.vb"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"df099908bd04418947bda6bb03abc7f58d229e823a6b2c7a1b2d119b73507adf"}},{"ruleId":"D2","level":"warning","message":{"text":"RemotePkgInstallService.HandleRequest (cognitive 21): RemotePkgInstallService.HandleRequest has cognitive complexity 21 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RemotePkgInstallService.vb"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"37a89a3418b242a2b34ef5cabab7692044ed717afb9980a1dc0cb50a73cb5d4f"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfInspectorForm.MnuDowngrade_Click (cognitive 20): ElfInspectorForm.MnuDowngrade_Click has cognitive complexity 20 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":796}}}],"partialFingerprints":{"codehealthFindingId/v1":"a53e10084d8d50278bb2e4a177454cf399833b41883b777b4976930d4c8f0a98"}},{"ruleId":"D2","level":"warning","message":{"text":"HexViewerForm.RenderHex (cognitive 20): HexViewerForm.RenderHex has cognitive complexity 20 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/HexViewerForm.vb"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"23b6f9516f83e8f7c2fa922dc59aa5982764a922e7aece888ae985a9956d2c98"}},{"ruleId":"D2","level":"warning","message":{"text":"PayloadManagerForm.BtnBatchSend_Click (cognitive 20): PayloadManagerForm.BtnBatchSend_Click has cognitive complexity 20 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PayloadManagerForm.vb"},"region":{"startLine":895}}}],"partialFingerprints":{"codehealthFindingId/v1":"042bcd590c549cdd468f7dbf279ddfb30f07ff3272ddd527a7a0fc2cb12f4a76"}},{"ruleId":"D2","level":"warning","message":{"text":"commonfunctions.PatchPrxString (cognitive 20): commonfunctions.PatchPrxString has cognitive complexity 20 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01global/commonfunctions.vb"},"region":{"startLine":490}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecb6b68ef34105fc2058517c26d40361e2b9b2d19f50cf7420953984d1057712"}},{"ruleId":"D2","level":"warning","message":{"text":"filedownloads.DownloadLatestRelease (cognitive 20): filedownloads.DownloadLatestRelease has cognitive complexity 20 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01global/filedownloads.vb"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"63f8f219074c53f4e1f6eafd9fb059f427ab10289865725b0691bfe895c0dc17"}},{"ruleId":"D2","level":"warning","message":{"text":"BackupServiceAdapter.ListBackupsAsync (cognitive 20): BackupServiceAdapter.ListBackupsAsync has cognitive complexity 20 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Adapters/BackupServiceAdapter.vb"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3d5dfb7b6794a01efeea92528d3dc36421ff5678fc91f6abb7ee263ed9d9923"}},{"ruleId":"D2","level":"warning","message":{"text":"flibs.DownloadAllArchivesAsync (cognitive 20): flibs.DownloadAllArchivesAsync has cognitive complexity 20 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Downloadslibs/flibs.vb"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"532ff09f9b8aae8162ab4a07d51d6b5491b60c1b43b14aaea8041113ae3ff2e7"}},{"ruleId":"D2","level":"warning","message":{"text":"DecryptSignService.ExecuteDecryptSignWorkflow (cognitive 20): DecryptSignService.ExecuteDecryptSignWorkflow has cognitive complexity 20 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/DecryptSignService.vb"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f9c80790773df2de4f88d4c264ab567319948b1fb115d3f27ff58eeb1f95fdd"}},{"ruleId":"D2","level":"warning","message":{"text":"RuTrackerProvider.LoginAsync (cognitive 20): RuTrackerProvider.LoginAsync has cognitive complexity 20 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/RuTrackerProvider.vb"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"090775b96922387a39f306d087dca4b6c2df3af4a33af5ae5ab332c6f393d41e"}},{"ruleId":"D2","level":"warning","message":{"text":"FtpConnectionForm.BtnConnect_Click (cognitive 19): FtpConnectionForm.BtnConnect_Click has cognitive complexity 19 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FtpConnectionForm.vb"},"region":{"startLine":456}}}],"partialFingerprints":{"codehealthFindingId/v1":"145324e8d2887058da36848445c32edf38b2ae678362664ecc3a34132aaa17b9"}},{"ruleId":"D2","level":"warning","message":{"text":"PatchingCoordinator.ExecutePatchingAsync (cognitive 19): PatchingCoordinator.ExecutePatchingAsync has cognitive complexity 19 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Application/Coordinators/PatchingCoordinator.vb"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"661752a89f367393e505d910663dec9a7099f70dc6dfc3c2f6e323ebba3ef39e"}},{"ruleId":"D2","level":"warning","message":{"text":"JsonConfigurationStore.LoadConfig (cognitive 19): JsonConfigurationStore.LoadConfig has cognitive complexity 19 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Adapters/JsonConfigurationStore.vb"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"001b3f0373e7620c7fab43786f82671bf8b93af4b0cb281a0e14366912eb60ad"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfInspector.ReadInfo (cognitive 19): ElfInspector.ReadInfo has cognitive complexity 19 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/core/Models/ElfInfo.vb"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b0ac2d48c7f6caacced0a098052bce2f80807d2f91517ad71e617db1da32ece"}},{"ruleId":"D2","level":"warning","message":{"text":"DownloadProgressForm.DownloadProgressForm_Shown (cognitive 19): DownloadProgressForm.DownloadProgressForm_Shown has cognitive complexity 19 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DownloadProgressForm.vb"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"a49e33dca7f5a297a8e3ce1c89645cc11273e268cfbff7f5d7eb3aaf730be85a"}},{"ruleId":"D2","level":"warning","message":{"text":"PirateBayProvider.SearchViaScrapingAsync (cognitive 19): PirateBayProvider.SearchViaScrapingAsync has cognitive complexity 19 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"260cf0071058f3de213d0027dcafea1bfda8312fc91f7162eaa94f67265ae8ce"}},{"ruleId":"D2","level":"warning","message":{"text":"GameSearchForm.DownloadFile_Click (cognitive 18): GameSearchForm.DownloadFile_Click has cognitive complexity 18 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb"},"region":{"startLine":704}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b5ec41c46b85d61de5c782eca67c11283d87d48ab0798a50113254487a0c50e"}},{"ruleId":"D2","level":"warning","message":{"text":"FirmwareExtractorModule.DownloadToolAsync (cognitive 18): FirmwareExtractorModule.DownloadToolAsync has cognitive complexity 18 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/FirmwareExtractorModule.vb"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"b89e179fa54d6c9a99ca9d5a422215a42dd39739008f29e161551901e3e1e0ba"}},{"ruleId":"D2","level":"warning","message":{"text":"FirmwareExtractorModule.ExtractFirmwareAsync (cognitive 18): FirmwareExtractorModule.ExtractFirmwareAsync has cognitive complexity 18 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/FirmwareExtractorModule.vb"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"fad71f0e61eccb633a0a95c061a9c9ea442d4a6e05cbacda55a86ebd45b6c10c"}},{"ruleId":"D2","level":"warning","message":{"text":"DirectDownloadService.Download1FichierAsync (cognitive 18): DirectDownloadService.Download1FichierAsync has cognitive complexity 18 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":390}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa675f7944eea98b7af5b1d773a7bfc9c1f3494e2fc3791d9a8d6f7f309318a7"}},{"ruleId":"D2","level":"warning","message":{"text":"DirectDownloadService.Try1FichierPost (cognitive 18): DirectDownloadService.Try1FichierPost has cognitive complexity 18 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":502}}}],"partialFingerprints":{"codehealthFindingId/v1":"3059780e69648eaddf325651f4928c51902879b0e25ae1579e166fd77deecc86"}},{"ruleId":"D2","level":"warning","message":{"text":"OperationReport.GenerateReport (cognitive 18): OperationReport.GenerateReport has cognitive complexity 18 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/OperationReport.vb"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"602686609554c97c98a8aa10b97f489aadbc4668127ed2593926552f26dffae8"}},{"ruleId":"D2","level":"warning","message":{"text":"FirmwareManagerForm.LoadArchiveData (cognitive 17): FirmwareManagerForm.LoadArchiveData has cognitive complexity 17 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FirmwareManagerForm.vb"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"44d00d0d8b4a7bfb6bdfe2a80869d08ee5004e03805cd64629eb9cd55659292b"}},{"ruleId":"D2","level":"warning","message":{"text":"PackageManagerForm.ExtractSelectedEntries (cognitive 17): PackageManagerForm.ExtractSelectedEntries has cognitive complexity 17 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb"},"region":{"startLine":805}}}],"partialFingerprints":{"codehealthFindingId/v1":"a90864ede4481dfa434f5e4b11fd372c84f93db82e2eabf4d94c7e5359e7dbc0"}},{"ruleId":"D2","level":"warning","message":{"text":"PayloadManagerForm.BtnSend_Click (cognitive 17): PayloadManagerForm.BtnSend_Click has cognitive complexity 17 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PayloadManagerForm.vb"},"region":{"startLine":736}}}],"partialFingerprints":{"codehealthFindingId/v1":"e445059702510fcf863ac90bcf06783c36485c07877eae1e855f3ff90bd40bb4"}},{"ruleId":"D2","level":"warning","message":{"text":"PKGEntryTable.ResolveFilenames (cognitive 17): PKGEntryTable.ResolveFilenames has cognitive complexity 17 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/core/PKG/PKGEntryTable.vb"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"71a4eea16420bd48447e3a2f34ecc6a34afe79b41f5971fc551d269ed7de7840"}},{"ruleId":"D2","level":"warning","message":{"text":"ElfInspectorForm.AnalyzeFolder (cognitive 16): ElfInspectorForm.AnalyzeFolder has cognitive complexity 16 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":361}}}],"partialFingerprints":{"codehealthFindingId/v1":"759e9ac7b6b38b1124c015393ae657018ecc48198e8afea3cd11f33028d8c876"}},{"ruleId":"D2","level":"warning","message":{"text":"FirmwareManagerForm.LoadFirmwareData (cognitive 16): FirmwareManagerForm.LoadFirmwareData has cognitive complexity 16 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FirmwareManagerForm.vb"},"region":{"startLine":465}}}],"partialFingerprints":{"codehealthFindingId/v1":"a082414106f308f41da3f01d71edc889dd1ce7e16ec6320fc0fb1dfcf5ce2bca"}},{"ruleId":"D2","level":"warning","message":{"text":"SFOViewerForm.FormatHexDump (cognitive 16): SFOViewerForm.FormatHexDump has cognitive complexity 16 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/SFOViewerForm.vb"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"26a9ae7509d4a95a2cf0ea3f9191d80f60eeb3101571ffcdd9eb762838d81368"}},{"ruleId":"D2","level":"warning","message":{"text":"UFS2ImageForm.FormatHexDump (cognitive 16): UFS2ImageForm.FormatHexDump has cognitive complexity 16 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/UFS2ImageForm.vb"},"region":{"startLine":705}}}],"partialFingerprints":{"codehealthFindingId/v1":"c88b4cff57f024025b46a7e99db6b219fd31cc69b2804f581e8e829a5d0f0ba4"}},{"ruleId":"D2","level":"warning","message":{"text":"DownloadAutoFailoverForm.UpdateProgress (cognitive 16): DownloadAutoFailoverForm.UpdateProgress has cognitive complexity 16 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DownloadAutoFailoverForm.vb"},"region":{"startLine":256}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dc7babc38b878a59b2d34565a0fb6b22802b04761dcc5289221b6ad5953dd89"}},{"ruleId":"D2","level":"warning","message":{"text":"DirectDownloadService.DownloadRootzAsync (cognitive 16): DirectDownloadService.DownloadRootzAsync has cognitive complexity 16 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":726}}}],"partialFingerprints":{"codehealthFindingId/v1":"797234d8fd68cd43c3d3eddfede6a7d562d4c041141c96026b3dc761cc1e2ea6"}},{"ruleId":"D2","level":"warning","message":{"text":"DLPSGameProvider.ParseListingPage (cognitive 16): DLPSGameProvider.ParseListingPage has cognitive complexity 16 (threshold 15). To reduce it, flatten the nesting: invert conditions into early returns or guard clauses so the happy path stays at one level, and lift the deepest nested block into its own named function."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DLPSGameProvider.vb"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5758d2a49690f3a3370c1107489be56c3cc8b28e92d7e7738a914316e0e0b69"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: ElfInspectorForm: ClassTooLong \u2014 1053 significant lines (blank, comment-only and punctuation-only lines excluded), 29 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cf6ab059a461e9646a5f3ccd3337782b94ea79836fb7a62c59e58d4a4563a10"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: PS5 BACKPORK KITCHEN/Form1.vb: FileTooLong \u2014 1307 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"193554436d81d0cc47aa48212497d9bfa2b641226c8f3873e87dfeb83fe99b6c"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: FirmwareManagerForm: ClassTooLong \u2014 969 significant lines (blank, comment-only and punctuation-only lines excluded), 29 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FirmwareManagerForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d85e8cbd1ad69e255647311a507f7e6d5cafdad431e16f06b9f134a6454e515"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Form1: TooManyMethods \u2014 1300 significant lines (blank, comment-only and punctuation-only lines excluded), 69 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d29c1e6f154b6a14e2b38f3e733f51552a3de4c2679bae2ac7d84039a0e11a3"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: 01Frms/ElfInspectorForm.vb: FileTooLong \u2014 1056 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7efe2668e5511320f143293b144886afe88bd3a872d1fb45500dbda5b161e9dc"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: 01Frms/FirmwareManagerForm.vb: FileTooLong \u2014 974 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FirmwareManagerForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ce7750e546b4147be2ff7e4ceab1bcac7b926c7a9c6ad65373263868522a686"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: PackageManagerForm: ClassTooLong \u2014 744 significant lines (blank, comment-only and punctuation-only lines excluded), 29 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0314a3d606b9eb1ddfe944d5c79ff2e0a6ecbbcb69daffe05980c38661a7a3c9"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: DirectDownloadService: ClassTooLong \u2014 702 significant lines (blank, comment-only and punctuation-only lines excluded), 20 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d467ba17bb27254b62cb585986c800d4f735e22e86867f0930dd1bfeae981358"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: GameSearchForm: ClassTooLong \u2014 664 significant lines (blank, comment-only and punctuation-only lines excluded), 25 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ab9d42e675df241c12379caff807b60c95032885dd7431c0de5843e4b59aee9"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: PayloadManagerForm: ClassTooLong \u2014 606 significant lines (blank, comment-only and punctuation-only lines excluded), 17 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PayloadManagerForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e2a50fc614b2056bc494ba1fe3a7a8381868d110c25730ca683334a74216b8a"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: 01Frms/PackageManagerForm.vb: FileTooLong \u2014 746 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4491baa82a98105931aebbedc04f4d3c01835f9aeea52fcd44395348274e4d0e"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: UFS2ImageForm: ClassTooLong \u2014 580 significant lines (blank, comment-only and punctuation-only lines excluded), 28 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/UFS2ImageForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"431c4b333d71fe9552a75c967321406811f0388f00dd7a5c3ff357654080dd1d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: GameSearch/DirectDownloadService.vb: FileTooLong \u2014 716 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d0961112d9411c7f23b6f98ed57e117af172ab37db9466a879a824738847a2f"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: GameLibraryForm: ClassTooLong \u2014 538 significant lines (blank, comment-only and punctuation-only lines excluded), 21 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a33771a7b72059ddf14549925c5613f55a16122ff3fe56c2bfefe9caf9ff24f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Forms/GameSearchForm.vb: FileTooLong \u2014 667 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3e84890b325d1e210808c020e60e875c8f78d4b6103ba6c23ae0059f5870344"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: JsonConfigurationStore: TooManyMethods \u2014 171 significant lines (blank, comment-only and punctuation-only lines excluded), 38 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Adapters/JsonConfigurationStore.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"23c11ae2c3c9d94f0f773d15fc5f45867ae341500dfea89821bfa3bea65b4ef7"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: DashboardForm: ClassTooLong \u2014 506 significant lines (blank, comment-only and punctuation-only lines excluded), 19 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DashboardForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea278065e60bd1cc08bd0b33ff4601d0d3d7067141e740e27e82201058c7becb"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: 01Frms/GameLibraryForm.vb: FileTooLong \u2014 615 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8125db44f27db76eb0c67e239e4e05c9796287b34788b271aba29633ddbb0b3c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: 01Frms/PayloadManagerForm.vb: FileTooLong \u2014 611 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PayloadManagerForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9adb3769218eb62f17c18930f2a39441483aca28b0144345e8bb3105fd5a51a"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: CustomLibraryForm: ClassTooLong \u2014 469 significant lines (blank, comment-only and punctuation-only lines excluded), 20 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/CustomLibraryForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3cc9009d2ac93b27b2c17de80d65a621867bffd1d213c36268ceb5925d8610c"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: OperationModeForm: ClassTooLong \u2014 469 significant lines (blank, comment-only and punctuation-only lines excluded), 19 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/OperationModeForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1b07ee654bb6ff4641f92c77cfcc1c837b9c34bd5d32782dc49ae2269776c65"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: 01Frms/UFS2ImageForm.vb: FileTooLong \u2014 582 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/UFS2ImageForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fbc183e2252d425c1c25ed70dae80b6f8efdd9223a38071a57675522f571272"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: LocalizationService: ClassTooLong \u2014 445 significant lines (blank, comment-only and punctuation-only lines excluded), 16 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/LocalizationService.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff7b931dd6eedfb32a64996ebdeb0fa9fb20bb8f127561b0318f3ef873bd33f6"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: commonfunctions: ClassTooLong \u2014 423 significant lines (blank, comment-only and punctuation-only lines excluded), 21 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01global/commonfunctions.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"91d060028bba763db7d896ad57e81d3768ad11efb8be7960d076844c4fd4b0da"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Forms/DashboardForm.vb: FileTooLong \u2014 510 significant lines (blank, comment-only and punctuation-only lines excluded). To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DashboardForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"45638a60d0d099c18a85abdc497b8f93ed10ea7968097ef341f9095df27698b4"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: FirmwareDownloadModule: ClassTooLong \u2014 406 significant lines (blank, comment-only and punctuation-only lines excluded), 16 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/FirmwareDownloadModule.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e75a41e8130af4c7bb0deae77aa974fb624631b4922c03e272d07cd3fad96ec4"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: FPKGBuilderForm: ClassTooLong \u2014 402 significant lines (blank, comment-only and punctuation-only lines excluded), 16 methods. To reduce it, group the members that share the same data into a smaller type of their own and delegate to it, so no single type carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FPKGBuilderForm.vb"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"16c5198494c0869e4125fd7be1ab19040850518c9ea58cd1c9b8998e3d32fc1c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (49 lines \u00D7 2): PS5 BACKPORK KITCHEN/Forms/DownloadAutoFailoverForm.vb:81-129 | PS5 BACKPORK KITCHEN/Forms/DownloadProgressForm.vb:72-122 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DownloadAutoFailoverForm.vb"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0715d4416848ec54a75f940acb1d2b38af59a0786d6b314320eaf9a953434db"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): PS5 BACKPORK KITCHEN/01Frms/CustomLibraryForm.vb:276-293 | PS5 BACKPORK KITCHEN/01Frms/OperationModeForm.vb:290-305 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/CustomLibraryForm.vb"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"2eb4c522ed1f9f2f243a6794100a5062a172464ec96537bc9a4e0a121d66acd5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb:63-78 | PS5 BACKPORK KITCHEN/01Frms/UFS2ImageForm.vb:52-67 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"eaf7e6c00a57cc2e4aeec80a2791e3efe53c075373ac7c8115e8cdb3fc146d9b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb:85-101 | PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb:79-94 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad6ac50e71c41a581964d69259597298f7c97bdee78748a72d80e1f1f4592bbe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 3): PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb:237-251 | PS5 BACKPORK KITCHEN/Services/GameSearch/RuTrackerProvider.vb:339-353 | PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb:265-279 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"d45fce970fe3ea52ca1d3d8313f274243bdc320cdfd2ef76afc429e1f59071e0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb:60-76 | PS5 BACKPORK KITCHEN/01Frms/FPKGBuilderForm.vb:112-126 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once. Read the line range as the matched WINDOW rather than a finished unit: at \u0060PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb:60\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"f62711fa939105aa499342f20478a1ad51e40ea5348191ad5f23436fcab41094"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): PS5 BACKPORK KITCHEN/Services/BackupService.vb:122-136 | PS5 BACKPORK KITCHEN/Services/BackupService.vb:147-161 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060PS5 BACKPORK KITCHEN/Services/BackupService.vb:122\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/BackupService.vb"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e6579cab5af36028ff761b52073fe0161874a59e84729fa7a16158e56288877"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb:105-119 | PS5 BACKPORK KITCHEN/Services/GameSearch/RuTrackerProvider.vb:203-217 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"a41f2a60d996ffa48b75a20ec3519247d1889ad15dd98e8e346c49383868e92e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 3): PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb:266-283 | PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb:355-367 | PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb:292-304 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"ada865914b259290506c51d6ba25dd2b8ff46ed0d5c58bdc864473ea49cabc3e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): PS5 BACKPORK KITCHEN/01Frms/FirmwareManagerForm.vb:956-968 | PS5 BACKPORK KITCHEN/01Frms/FirmwareManagerForm.vb:1070-1082 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060PS5 BACKPORK KITCHEN/01Frms/FirmwareManagerForm.vb:956\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FirmwareManagerForm.vb"},"region":{"startLine":956}}}],"partialFingerprints":{"codehealthFindingId/v1":"43dc6ec8d5f56cb580b09fa496917c297ba343a0f75bb9f8dfff603ea4a44365"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): PS5 BACKPORK KITCHEN/01Frms/SFOViewerForm.vb:211-223 | PS5 BACKPORK KITCHEN/01Frms/UFS2ImageForm.vb:716-728 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/SFOViewerForm.vb"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fee4c0394ea9d6fd03a1fb061a8bf9621ea622f3b0cb0249bf547d707acab15"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): PS5 BACKPORK KITCHEN/Forms/DashboardForm.vb:152-164 | PS5 BACKPORK KITCHEN/Forms/DashboardForm.vb:210-222 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DashboardForm.vb"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d5b12135c7325099e7e4d6d0430a121690062f087e91dc77bb1ccee30f73b3b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): PS5 BACKPORK KITCHEN/Forms/DownloadAutoFailoverForm.vb:257-269 | PS5 BACKPORK KITCHEN/Forms/DownloadProgressForm.vb:194-208 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DownloadAutoFailoverForm.vb"},"region":{"startLine":257}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0d872b0dd2c7365c5496ce044d681fa165cb56af8c6bd2c99ab4a38035d8c1f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): PS5 BACKPORK KITCHEN/01Frms/FPKGBuilderForm.vb:110-121 | PS5 BACKPORK KITCHEN/01Frms/SFOViewerForm.vb:46-57 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FPKGBuilderForm.vb"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"f42023277d0454db585b0a8db5dba8986a50f7774e6ace351748848593107a67"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb:317-328 | PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb:256-267 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":317}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a34c7f0594b6441a3ba82763cfcdfaf29227b652dc92f82f2d20e2bb576a2a3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb:369-379 | PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb:483-494 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":369}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca50267e4704e814bff9ee4fc1a2ac040b64e05465af9e2a9c20863243b05e02"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb:458-467 | PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb:480-489 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb"},"region":{"startLine":458}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe469f210477714b15bd679f7502e63f3466a63039b3cdc369a9a3bb58267124"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): PS5 BACKPORK KITCHEN/01Frms/PayloadManagerForm.vb:159-168 | PS5 BACKPORK KITCHEN/01Frms/StatisticsForm.vb:28-37 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PayloadManagerForm.vb"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"a88a2bea5010d0fabb6eac5f67f2ca39eba5fabb9f41973e233525df07fba044"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb:733-744 | PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb:882-891 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Note that the copies do not run to the end of the range shown: their LAST lines are different code, not the same code under different names \u2014 the matched region ends inside that line. Extract the lines above it, and read the last line of each site separately."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb"},"region":{"startLine":733}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c7626c7f295b2fd6e68c79238d3643d17727c189b5eb89ca82c1583b7d1832c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb:287-297 | PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb:309-318 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"ada261c3d0b0c81376d58a7f8b6fe53e1984f60450fad586cffa7e6b6035d84e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb:105-114 | PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb:109-118 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":105}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4911c331965a74c9618498f9b8122a109a190fe61385f0da525face4afb43d8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 5): PS5 BACKPORK KITCHEN/Services/KeyboardShortcutManager.vb:145-153 | PS5 BACKPORK KITCHEN/Services/KeyboardShortcutManager.vb:197-205 | PS5 BACKPORK KITCHEN/Services/KeyboardShortcutManager.vb:216-224 | PS5 BACKPORK KITCHEN/Services/KeyboardShortcutManager.vb:235-243 | PS5 BACKPORK KITCHEN/Services/KeyboardShortcutManager.vb:254-262 \u2014 all 5 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/KeyboardShortcutManager.vb"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"b21b7add55c79be06bb7883e447fa6ed354a74333cabd3fb5ea9d9a5fbb98402"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb:709-718 | PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb:833-841 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited. Read the line range as the matched WINDOW rather than a finished unit: at \u0060PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb:709\u0060 it does not close everything it opens, so those exact lines cannot be lifted as they stand \u2014 widen the region to the smallest complete statement or declaration that contains it, and extract that."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb"},"region":{"startLine":709}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bc9a9e5e62c1e1cb06946eff3d7d3a4eb786557e77f74f821ec45544fc6bcbe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb:661-668 | PS5 BACKPORK KITCHEN/Services/FirmwareManagerService.vb:463-470 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":661}}}],"partialFingerprints":{"codehealthFindingId/v1":"4963c0bd3acc73300c06374a781617ee7f7a0eca76f6b6bbf0c5b53aaa3924f1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb:594-608 | PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb:739-745 | PS5 BACKPORK KITCHEN/01Frms/UFS2ImageForm.vb:748-754 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/ElfInspectorForm.vb"},"region":{"startLine":594}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3cc9d9ccf616fde49f860209a799ca226eaad3dcb7855651423d386a769f0b6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): PS5 BACKPORK KITCHEN/Services/GameSearch/GameSearchManager.vb:127-133 | PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb:117-123 | PS5 BACKPORK KITCHEN/Services/GameSearch/RuTrackerProvider.vb:215-221 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/GameSearchManager.vb"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"edcfe5ad6fcfca4c52960edd8734d3638983333632727b611022a463cf435f2f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb:314-320 | PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb:400-407 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d00bf03862c04f1a5a3deca3e289ab288effead486366d3c69b2d4e148d669c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb:349-354 | PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb:286-291 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"5415e2e77ea50ed486e2586b667dd9bb456df8263470468ce1a4a2c69f390a30"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): PS5 BACKPORK KITCHEN/core/UFS2/UFS2FileNode.vb:83-87 | PS5 BACKPORK KITCHEN/core/UFS2/UFS2FileNode.vb:88-92 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/core/UFS2/UFS2FileNode.vb"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"8707ddbfd1f86089e617f2a1095530fa9faf793ce9b760b37a4bb1c1f425340d"}},{"ruleId":"D8","level":"error","message":{"text":"No automated tests: No automated tests \u2014 no test code was found in this repository. Untested code is the largest single risk to changing it safely."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3132564c6310e5d01a231f252a02d5d2f5a542c0a8fa29a14c89693f1e3df871"}},{"ruleId":"D9","level":"note","message":{"text":"No tests found: No test suite could be collected \u2014 nothing here references a test framework (xUnit, NUnit or MSTest), so there were no discoverable tests to count. Tests written as plain executables or shell/PowerShell harnesses are not collectible this way and are not scored here."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c9bf64cbb5a4ae13d6bcd01fa3bc8d2879d860c73bc67f176ee3c2cecb8adce3"}},{"ruleId":"D12","level":"error","message":{"text":"Vulnerable: SharpCompress: SharpCompress 0.44.5 \u2014 Moderate severity. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"67ffc44807df412bd06f9998ed2d4c12b87eec6d062859be9d1e996c0f7998b2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: \u0027 TODO: Customize the application\u0027s assembly information in the \u0022Application\u0022 pane of the project \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060\u0027 REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/AboutBox1.vb"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e4a9162fd5260148bf8b54b16d198c6f683758392a99437435c37d5443f9dd5"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/AdvancedSettingsForm.vb"},"region":{"startLine":326}}}],"partialFingerprints":{"codehealthFindingId/v1":"1054c4eb48e58d53e9522f0f5a406a3191cb7763d895efcb99ece15cccd7290b"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/AdvancedSettingsForm.vb"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bfd2e9a2bb2a350c76b135f02a0f0a267cbc37f2e7ee45f496a3b28c324f733"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/CustomLibraryForm.vb"},"region":{"startLine":885}}}],"partialFingerprints":{"codehealthFindingId/v1":"9184f48db553a92b902280d5f3d4def52a3d413894547809dc1c40ec6c65a047"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FPKGBuilderForm.vb"},"region":{"startLine":497}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3b03693dd046b8e3c7bca29fa947822c2a5e692655c81ddb7b1ea2948e5fa58"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/FPKGBuilderForm.vb"},"region":{"startLine":511}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ebf3878ee93ce476848b764eca3fd09a9814886e2107344af8dcaca4614c128"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb"},"region":{"startLine":386}}}],"partialFingerprints":{"codehealthFindingId/v1":"134dd03f63b8697015127c82b134ad96b50a49f49ad22967af2a4dfb42a0401f"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/GameLibraryForm.vb"},"region":{"startLine":705}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fce7285723c05e116a82ea61f8d209be8c6e666acb1a7c8fccf2b30171606b7"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/OperationHistoryForm.vb"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"355ae630b5ba99d0e6df5fd1fc85d29ac5b84e69100894c1b5b46f784abe2770"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/PackageManagerForm.vb"},"region":{"startLine":542}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bbc06df0f86a4c5183e1a29c8c36a865de88d5508d05956e630df85a14aed42"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/RemotePkgInstallForm.vb"},"region":{"startLine":413}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ce188f5bb094bae9b7c8a3f2de9ea234f32e14c9becf9f50b6694a29a51230f"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/RemotePkgInstallForm.vb"},"region":{"startLine":426}}}],"partialFingerprints":{"codehealthFindingId/v1":"0625e2c463b2a29f5b1787eb6c1b6aaa3e88c3a8f5b699fd2de47a9920f3e2c2"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/UFS2ImageForm.vb"},"region":{"startLine":643}}}],"partialFingerprints":{"codehealthFindingId/v1":"d723e28a61e318309d69816b1ca74548d3d5f2043ff88069c5c90623bbbaaaaf"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01global/ModernUIHelpers.vb"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"06ffa436984289a8ba8c03d977e17ac9e636254a0869fad85afa0c40503a37e3"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01global/ModernUIHelpers.vb"},"region":{"startLine":296}}}],"partialFingerprints":{"codehealthFindingId/v1":"6abf78ccf5192aea0646412e8179424dccc7f986ef5a968e423fe42a65775977"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01global/ModernUIHelpers.vb"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"04b03ee79bdaa6c4040e6b5394e46afea0f8e5964c277b44520e60c3ec96b345"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01global/ModernUIHelpers.vb"},"region":{"startLine":356}}}],"partialFingerprints":{"codehealthFindingId/v1":"56132ab2de881d231ab54f7e54248f2db01add310cbc1b09f99c64e392731b77"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Adapters/JsonConfigurationStore.vb"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"8eeaa913946ee98f16a63fcf4021af937fab1f7205618995db466a39ec4b507e"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Adapters/JsonConfigurationStore.vb"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b5a37c81a5338a78bd45159e8f3470bce73c7f72288fb5f6601fb3846903455"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Adapters/LoggerAdapter.vb"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e6241871e0aa5c8e568c62a4e01199e0e51b70f4deb4faec4940f343b67e1b8"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Repositories/PatchingHistoryRepository.vb"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"2becb47af39568d3d8aa6a5be28354613be7e7064ca4ac75e2c316596f6b01e1"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Repositories/PatchingHistoryRepository.vb"},"region":{"startLine":161}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b04563f8a592805bb30b16fd2ca2c30a2a682aced4293f6cf52d23ba3d9b444"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Architecture/Infrastructure/Repositories/PatchingHistoryRepository.vb"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"2abc8f642015469c390e159fcf16b888d2a2ba800822dc022b837bf6fbba5ed2"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":779}}}],"partialFingerprints":{"codehealthFindingId/v1":"5aae9d7763836a73a94f6916fa5eda5cd6c7478c495d5f195dc90c17832a2d3d"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":790}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7560cf282100d55a17081a663142c54e98e1987ce950b7ed8b599dd46ef1572"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":805}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dddb86859d9376aeec14a017a84d6f432bbd4008c478efd6041cd2ec89d3f78"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":1105}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6395f381b0fde2ae2d188253c7e6889c41e364598e4560b5644427ea24d7f27"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":1201}}}],"partialFingerprints":{"codehealthFindingId/v1":"90f208ee004aff7072b6680256d1eaf2a3370f4b8ce64b04a382899b3e4b64bd"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":1708}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f9b6672d8c7b24108c65be31046d8a96d7fc8b823bc994968eef34e81ed362e"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":1741}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d6fa34c2539d374d0b50907f0b7211ff02958cef6efb8d446c06d5e8502e584"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DashboardForm.vb"},"region":{"startLine":363}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec1b332a41041dc6e4cc8f256556e349bdf2fffbbc6a762d81ac9be936326790"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DownloadAutoFailoverForm.vb"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e9996da74fc1988620281eb4fa2d2f9ccb927afbde259642d61171c69ba731f"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DownloadAutoFailoverForm.vb"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1b0b831ca85ff02100f968421d0ec68a7cd669322d787441f51af7f7895bf57"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DownloadProgressForm.vb"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"682e3f740233c60dd6a928b3d402695714004b871063a123132af359f719e341"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/DownloadProgressForm.vb"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c32aa7181a824eba2069f974d9e66462e850216ffb34beb68c9e8e4159e7985"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Forms/GameSearchForm.vb"},"region":{"startLine":573}}}],"partialFingerprints":{"codehealthFindingId/v1":"b93f135c1853202f5216cb319d182cdb6cd77249fb11ae1ad7fd8947f20b5e7b"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/BackupService.vb"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a30444d36b346973540195e81b3824c139dfb09183cc98dd25b954d8e04b8ec"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ConversionService.vb"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"50f962581695ab1bf209b065836dd09246dfb6ce105d93ebaf72d5d4134bddd8"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/CoverArtService.vb"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef9ec12ae3517ef49db0951f1cd481a909b68b3379bed3fe5a51ea7e2f272471"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/CoverArtService.vb"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"735a7210e32b36bb6c4069ad9fa59ea566327448f3b1e5fc7ba8adbcd521df8a"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/DecryptSignService.vb"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbbd494900a5b4da694c7695ba5cc038d2cdaf715421f177e147c26413b2334d"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/DragDropHelper.vb"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ffa638e43210920b24a9d2310b28a86d0219b477186703e0b8be4f3e528d620"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/DragDropHelper.vb"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"4433acff53cd2ad16b8c7c0e8d768bfac10df0b96488e321c9b237c247f23418"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/DragDropHelper.vb"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab3e1a0b1020b292d2fae4474bba46b3b5d680e2ee4777533cb23372210edb53"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/DragDropHelper.vb"},"region":{"startLine":141}}}],"partialFingerprints":{"codehealthFindingId/v1":"19b12e3c0fb05f0106c545f8ef18bce69190a3f076e6d4ae05eda31013041ca5"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/DragDropHelper.vb"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6cc04d26defea178209de6a79ce74e9a7ec80d5eb658b6266c93a199a38f137"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/DragDropHelper.vb"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f59752d77354f6d30f96b5b85638d0aaa2cfa97598a0b58d39dd819a145c59d"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ElfInspector.vb"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"80dd575fac53f7605b722c107eb592ea7a51cf1504146832123b109ba2599c8d"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ElfInspector.vb"},"region":{"startLine":315}}}],"partialFingerprints":{"codehealthFindingId/v1":"5fe1060ddf53e79a27f453087382a936885c516b804b2b7f40ea8ac886f83da6"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/FirmwareExtractorModule.vb"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"257585bf3df1a622d0541639b76aa33b54064a38186b5a6137e7395799d003c7"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameLibraryManager.vb"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"39e74ff06f165c899114351c7b23b2f0a69b22dccb56b945384776b877a29350"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DLPSGameProvider.vb"},"region":{"startLine":444}}}],"partialFingerprints":{"codehealthFindingId/v1":"b73fe81ecb07bc3728ceab6f8be87064a6be9794ffe387b7e819b5e82efde913"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"5db224344bd72bad60817a53df1f37ee1bf93270aadb3279976265833dda64d6"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"007fa0edeae0173afddd1e4ec67d5729dcb7289346e49005afb5411cf00f8a50"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":305}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca8bbcd57ab324ae06b29b24c3541db86a70477b9c9db63e4388a36afb248e1d"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":353}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6df07e0d3e933c7e79ea17daba9849aa738c0c33bbe7c0f6e680e8f01ba3304"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":557}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fee0f2739806f360a19f9834ebfaa60ba24404aeb0f11b8c8e401d432f39b5e"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":947}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1e31b45ba8e4c53da3d00139892bb19b7b2737f98026da2ab5a53c3568865f6"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/DirectDownloadService.vb"},"region":{"startLine":965}}}],"partialFingerprints":{"codehealthFindingId/v1":"eaf465c6a4382d8aca07e25751c54f25fdd8c5a509fc5d535e682ec917ea3317"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/GameSearchManager.vb"},"region":{"startLine":211}}}],"partialFingerprints":{"codehealthFindingId/v1":"87de856531a64c06ec48f710c0ee5fe9b55e5a43211ef1c990c5331f1ed1f5f1"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/GameSearchManager.vb"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"f247ee97915e13714dd6693632ece96bef3dbf6db17ac52e19832a639d38b19a"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/LeetxProvider.vb"},"region":{"startLine":281}}}],"partialFingerprints":{"codehealthFindingId/v1":"4722dd90775c130d14a4a8b2c5989fff91932091b1da1e81fb095c7e58e824bd"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":365}}}],"partialFingerprints":{"codehealthFindingId/v1":"963a5151b184da92a75c56b70ef1d00dfb69677057b1455ff2fa152e050955fa"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/PirateBayProvider.vb"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"86fe4ec2ffa725c5fbfee6c831acb23f7d843caffdb84ca7d621365590bf7fbd"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/RuTrackerProvider.vb"},"region":{"startLine":386}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e78af3fb766cc4f9c87bf8b6116d5e9b714da1d949f22d33023b4610e267eb6"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb"},"region":{"startLine":302}}}],"partialFingerprints":{"codehealthFindingId/v1":"6940d2041a259726e52190c104817979a7b23971979584448233243f4daff9ce"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/GameSearch/TorrentGalaxyProvider.vb"},"region":{"startLine":319}}}],"partialFingerprints":{"codehealthFindingId/v1":"f568ad99d268b972d9621cfea6b37af6ffdbfc4604744d1230258f28ff47cc69"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/InputValidator.vb"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"99407b7f2f58352b4effc4b4c357fc9997344e90dd4869617fb3e5ecc754bae4"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/IntegrityVerifier.vb"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"28f8814726276be0138e19945ec0370cbf4c9b1050a7667c80868f61d93d151f"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/LocalizationService.vb"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee4d6a5ed772fb0d2534fbb5d62c9e1c5f6fbebac3ec35a08de46d51e3bc958b"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/LocalizationService.vb"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d52fd2f2a3c4a6ebc85b53389ff96ace179a3a5a9d8c118d27cb94992967ded"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/Logger.vb"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"2112741e6505ae026802c9c4c807b2910cc8946e9530fe41003e04733f977528"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/Logger.vb"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"1057601a0f8c3f3df010af8026873f6a07c31ce360fcd56bc9f62f06babe6a6e"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/Logger.vb"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"a94a153a1296a0e2f472623f1a62033f380733a5c9a2af2f52331fc296af11f5"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PayloadLibrary.vb"},"region":{"startLine":228}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bcf1986b7126d2abd9dbd48e6faca37716703e4809494b85df85e1327f0a561"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PayloadSenderService.vb"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ffc378dc4040f0da59dfa0b345ff0388ba07534e6a3c1501f5ab9a11486b26d"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PayloadService/PayloadV3.vb"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"d636c548a670aa3c2bd3e879b42e42e904e16a87d3c21485f5a9fae5baaa7cf8"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PresetManager.vb"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4e3058f2485705109e22332bad2c76de4a1a915a9bd80feac0f1ad5a7e47dd1"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PresetManager.vb"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"3aa181512a427897da3a2e54a0bd5e52f06fb0eb6138b02be311c0be25ace441"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PresetManager.vb"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"76cb74d7f5ac0c8def0abfc4423f6b3945141b9efd87f2a4c7de605bb0b9c1ce"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PresetManager.vb"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f9c4b0cb2dec62ad70c721be125443ec151d0f9a84c939607057fd3534b56f2"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/PresetManager.vb"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b547eb3f639e42132145c336bb8747e73ecc37b3131497b1e542b2c6ed9c0cb"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RecentFoldersManager.vb"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f31d5587faf4383b75b12e6c85608e0210823d4fb97721c36092e1b23416210"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RecentFoldersManager.vb"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c37abfb385e073af027d786bbde6fd83161eb32a81342c975a220339d439890"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RecentFoldersManager.vb"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"057f25385cbf1b9d766f02edaad0fa006486ff9315138f08f35226ce45a6d9c7"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RecentFoldersManager.vb"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"f98950e25c28a29e87271139a36e725db837267da2322cff6833f74f6efc6fec"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RecentFoldersManager.vb"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b39dbae2f649171107806f690096b1b0cd9c2219d8fedb811c416bcc3ff590c"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RemotePkgInstallService.vb"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3740976892ffc8dc4913a6e0b3a3f0f27a6782673e3017ba193b1e01037607b"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RemotePkgInstallService.vb"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c13bb58babcc24f37f50ec2136d13cf75593c1927c01261ea6adb078c83355f"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/RemotePkgInstallService.vb"},"region":{"startLine":281}}}],"partialFingerprints":{"codehealthFindingId/v1":"c54079d6f78da5a0b64a2c6a65ead6147076d4cb265ae694852c2ee0a8164051"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/SdkDetector.vb"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4d5c43120fe553ba4e95be5ec3e43ed5d70c3b5294ad50f4c7f3ed62ad75886"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/StatisticsManager.vb"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bfb905619e158b9e156ade0a0074d023a087fa7f1d236b0ec95b686e76bc8b8"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/StatisticsManager.vb"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd39868aff655c7dc4bd2ffd11665b74a1dd3c379bf82806abc133a78d9fd6d0"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/StatisticsManager.vb"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1168b501c28548bf81347aede7bea17152d4e8bd61e7ff522a02fe14e7b2e51"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/StatisticsManager.vb"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ee7c04bad92d2e88347474d4854e7a1115222182d641c34cd7122c8b41d689e"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/StatisticsManager.vb"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"4aee8c26044bd3690f84be275ef07133b9d709b566e18cc9ac06cff858190742"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/StatisticsManager.vb"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f23049996bde36185f69d710ccb3b6619b70b51ea4b467af51409dd8884222f"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"280763c73807e3b04287db024d9c13c85290c1e78ad1726881af6de57168845b"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":272}}}],"partialFingerprints":{"codehealthFindingId/v1":"68899ded2f2bdaa30cbb3953194eb7e28989399bdd2f15f4cf6de252a5fc32fc"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":293}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ed7eec42ba0e75b5f54c9435c872d03f947759b697b21f0afb9fc78c08113bc"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c25f0ef78c3a7c3746a61b5ec67639288cd727097a91fccd3acc6e50f478e79"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":327}}}],"partialFingerprints":{"codehealthFindingId/v1":"60b5d876b7e8469d211e5dbf947527202f583e8ff35015af5952c507e8c0b551"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":350}}}],"partialFingerprints":{"codehealthFindingId/v1":"db46384bead4fbcc8bbff26ecd9056960190043784bccb6c8715c20120e6a3f3"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":380}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ae36d7139303fac0f147c7c868cd23d3e623ffef5c8088920755df1db10eed7"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/ThemeManager.vb"},"region":{"startLine":397}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1cb3affe33950897044a9b7b446e9c143963e73695721f67fa651cc4af63a3e"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Services/UpdateCheckerService.vb"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7cec6c6b097f6319ee299c71f56646b10cb5d81e8758453859e68c799e9d581"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block \u2014 the error is discarded with nothing recorded, so a failure here leaves no trace anywhere. Narrow the catch to the exception you actually expect, record it through whatever this codebase already uses to report problems, or \u2014 where swallowing really is correct, as it often is on a teardown/dispose path where throwing would mask the original failure \u2014 write down WHY in a comment on the catch. The comment has to give the reason: a note that only restates the swallow (\u0022ignored\u0022, \u0022do nothing\u0022) is read as no explanation at all and leaves this row in place. Any of the three makes the decision reviewable; all three clear this row."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/core/PKG/PKGEntryTable.vb"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"75427e6993c6066108a6238994be9601ff7adf2db7f7476a25ec31f99660d4e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: \u0027 TODO: Implement clear all stats in database \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060\u0027 REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01Frms/StatisticsForm.vb"},"region":{"startLine":432}}}],"partialFingerprints":{"codehealthFindingId/v1":"2eb77d747b1dbca37d8fb050312cd0f4b1ded1e46c8aa17ff043506ed3098013"}},{"ruleId":"D17","level":"error","message":{"text":"OnErrorResumeSwallow: On Error Resume Next silently swallows every runtime error until the enclosing method returns \u2014 scope it with a paired \u0060On Error GoTo 0\u0060 and check \u0060Err.Number\u0060, or convert to a \u0060Try\u2026Catch\u0060."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/01global/commonfunctions.vb"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e8b589fc58453d1b516525b8dd5955b1c38ae7017f001426a5627da18ab5803"}},{"ruleId":"D17","level":"error","message":{"text":"OnErrorResumeSwallow: On Error Resume Next silently swallows every runtime error until the enclosing method returns \u2014 scope it with a paired \u0060On Error GoTo 0\u0060 and check \u0060Err.Number\u0060, or convert to a \u0060Try\u2026Catch\u0060."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"PS5 BACKPORK KITCHEN/Form1.vb"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"10e0613bc127f3098bdb6cab608a769c29e2d3053e0b375f57953b48d4e03ba4"}},{"ruleId":"D18","level":"note","message":{"text":"Single-project monolith: The whole codebase lives in one project \u2014 at this size, splitting along clear seams (domain / infrastructure / hosting) would make boundaries explicit and builds faster."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"065f1a0cebbcfa80c7d58bc2d15f0d476208f4ff888aa4725790203f65e3147f"}},{"ruleId":"D26","level":"note","message":{"text":"Split PS5 BACKPORK KITCHEN: A huge 36k-LoC project that is spread over 13 unrelated namespaces despite its size. Suggested: by namespace: BackporkKitchenergies, BackporkBeverages, BackporkFoods"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b20796c75fe392b5272a1495d3a6b306d74ee48aa4916915d5ddff0477d5b8f1"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":0,"secretScannerRunsExcluded":0}}}]}