{
  "version": 1,
  "generatedAt": "2026-05-25T11:41:33.166Z",
  "fileId": "file:1ain1yo:mainhublayout-razor",
  "executableScope": true,
  "executableSymbolCount": 2,
  "fileNodeId": "file:1ain1yo:mainhublayout-razor",
  "symbolNodeIds": [
    "class:vf4020:mainhublayout",
    "method:p4hxqo:oninitializedasync",
    "method:64smty:handlelogout"
  ],
  "containmentEdgeIds": [
    "edge:1xrahib:contains",
    "edge:18fob91:contains",
    "edge:1j1agjt:contains"
  ],
  "relationshipEdgeIds": [
    "edge:1xrahib:contains",
    "edge:18fob91:contains",
    "edge:1j1agjt:contains"
  ],
  "integrationEdgeIds": [],
  "controlFlowFragments": [
    {
      "fragmentId": "method:p4hxqo:oninitializedasync__fragment",
      "ownerFileId": "file:1ain1yo:mainhublayout-razor",
      "ownerSymbolId": "method:p4hxqo:oninitializedasync",
      "ownerSymbolName": "OnInitializedAsync",
      "entryNodeId": "method:p4hxqo:oninitializedasync__entry",
      "exitNodeIds": [
        "method:p4hxqo:oninitializedasync__implicit_return"
      ],
      "nodes": [
        {
          "id": "method:p4hxqo:oninitializedasync__entry",
          "kind": "entry",
          "label": "OnInitializedAsync entry",
          "line": 94,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.99,
          "detail": "Component initialization: avoids duplicate syncs, checks authentication state, and attempts to sync profile from server if the user is not authenticated."
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
          "kind": "condition",
          "label": "_isSyncing",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7,
          "detail": "if (_isSyncing) return;"
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true",
          "kind": "branch-true",
          "label": "return",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false",
          "kind": "branch-false",
          "label": "continue",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
          "kind": "statement",
          "label": "merge",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
          "kind": "condition",
          "label": "_isSyncing",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.9,
          "detail": "if (_isSyncing) return;"
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
          "kind": "branch-true",
          "label": "exit",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.9
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
          "kind": "branch-false",
          "label": "continue",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.9
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
          "kind": "statement",
          "label": "merge",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.9
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 98,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.81,
          "detail": "var authState = await AuthStateProvider.GetAuthenticationStateAsync();"
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_98_external_call_98__linear",
          "kind": "http-call",
          "label": "Read authentication state",
          "line": 98,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7,
          "detail": "await AuthStateProvider.GetAuthenticationStateAsync() (framework call)"
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
          "kind": "condition",
          "label": "!authState.User.Identity?.IsAuthenticated ?? true",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7,
          "detail": "Sets _isSyncing and attempts a server-side profile sync to reconcile cookie/session state."
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__true",
          "kind": "branch-true",
          "label": "set _isSyncing true",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__false",
          "kind": "branch-false",
          "label": "call IdentityService.GetProfileAsync",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
          "kind": "statement",
          "label": "merge",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
          "kind": "condition",
          "label": "!authState.User.Identity?.IsAuthenticated ?? true",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.78,
          "detail": "if (!authState.User.Identity?.IsAuthenticated ?? true)"
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
          "kind": "branch-true",
          "label": "true",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.78
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
          "kind": "branch-false",
          "label": "false",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.78
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
          "kind": "statement",
          "label": "merge",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.78
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_101_state_change_101__linear",
          "kind": "statement",
          "label": "Mark sync in progress",
          "line": 101,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7,
          "detail": "_isSyncing = true"
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 103,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.81,
          "detail": "await IdentityService.GetProfileAsync();"
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_103_external_call_103__linear",
          "kind": "http-call",
          "label": "Attempt to fetch profile from server",
          "line": 103,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7,
          "detail": "await IdentityService.GetProfileAsync(); (project service)"
        },
        {
          "id": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
          "kind": "call",
          "label": "GetProfileAsync",
          "line": 103,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.88,
          "detail": "none"
        },
        {
          "id": "method:p4hxqo:oninitializedasync__implicit_return",
          "kind": "return",
          "label": "return",
          "line": 105,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.72,
          "detail": "Implicit method exit inferred from method boundary."
        }
      ],
      "edges": [
        {
          "id": "method:p4hxqo:oninitializedasync__entry__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
          "from": "method:p4hxqo:oninitializedasync__entry",
          "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
          "kind": "next",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true",
          "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
          "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true",
          "kind": "condition-true",
          "label": "return",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false",
          "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
          "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false",
          "kind": "condition-false",
          "label": "continue",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
          "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true",
          "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
          "kind": "next",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
          "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false",
          "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
          "kind": "next",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
          "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
          "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
          "kind": "next",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.9
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
          "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
          "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
          "kind": "condition-true",
          "label": "exit",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.9
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
          "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
          "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
          "kind": "condition-false",
          "label": "continue",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.9
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
          "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
          "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
          "kind": "next",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.9
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
          "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
          "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
          "kind": "next",
          "line": 96,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.9
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge__method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await",
          "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
          "to": "method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await",
          "kind": "next",
          "line": 98,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.81
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await__method:p4hxqo:oninitializedasync__action_98_external_call_98__linear",
          "from": "method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await",
          "to": "method:p4hxqo:oninitializedasync__action_98_external_call_98__linear",
          "kind": "next",
          "line": 98,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_98_external_call_98__linear__method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
          "from": "method:p4hxqo:oninitializedasync__action_98_external_call_98__linear",
          "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
          "kind": "next",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition__method:p4hxqo:oninitializedasync__action_99_branch_99__true",
          "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
          "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__true",
          "kind": "condition-true",
          "label": "set _isSyncing true",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition__method:p4hxqo:oninitializedasync__action_99_branch_99__false",
          "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
          "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__false",
          "kind": "condition-false",
          "label": "call IdentityService.GetProfileAsync",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__true__method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
          "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__true",
          "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
          "kind": "next",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__false__method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
          "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__false",
          "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
          "kind": "next",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
          "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
          "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
          "kind": "next",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.78
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
          "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
          "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
          "kind": "condition-true",
          "label": "true",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.78
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
          "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
          "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
          "kind": "condition-false",
          "label": "false",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.78
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
          "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
          "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
          "kind": "next",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.78
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
          "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
          "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
          "kind": "next",
          "line": 99,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.78
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge__method:p4hxqo:oninitializedasync__action_101_state_change_101__linear",
          "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
          "to": "method:p4hxqo:oninitializedasync__action_101_state_change_101__linear",
          "kind": "next",
          "line": 101,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_101_state_change_101__linear__method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await",
          "from": "method:p4hxqo:oninitializedasync__action_101_state_change_101__linear",
          "to": "method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await",
          "kind": "next",
          "line": 103,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.81
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await__method:p4hxqo:oninitializedasync__action_103_external_call_103__linear",
          "from": "method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await",
          "to": "method:p4hxqo:oninitializedasync__action_103_external_call_103__linear",
          "kind": "next",
          "line": 103,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:p4hxqo:oninitializedasync__action_103_external_call_103__linear__call_method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
          "from": "method:p4hxqo:oninitializedasync__action_103_external_call_103__linear",
          "to": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
          "kind": "call",
          "label": "none",
          "line": 103,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.88
        },
        {
          "id": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync__implicit_return",
          "from": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
          "to": "method:p4hxqo:oninitializedasync__implicit_return",
          "kind": "return",
          "line": 105,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.72
        }
      ],
      "jumpTargets": [
        {
          "id": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync__jump_NexusReader_Application_Abstractions_Services_IIdentityService_cs_GetProfileAsync",
          "fromNodeId": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
          "kind": "call-target",
          "targetPath": "NexusReader.Application.Abstractions.Services/IIdentityService.cs",
          "targetHint": "GetProfileAsync",
          "line": 103,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "reason": "Call target GetProfileAsync in NexusReader.Application.Abstractions.Services/IIdentityService.cs could not be matched to an extracted method symbol.",
          "status": "unresolved"
        }
      ],
      "exceptionTargets": [],
      "loopBackEdges": [],
      "mergeNodeIds": [
        "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
        "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
        "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
        "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge"
      ],
      "language": "unknown",
      "confidence": 0.98,
      "lineSpan": {
        "start": 94,
        "end": 105
      },
      "unsupportedConstructs": [],
      "evidence": [
        {
          "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "line": 94,
          "summary": "Control-flow fragment extracted for method OnInitializedAsync.",
          "kind": "file-summary"
        }
      ]
    },
    {
      "fragmentId": "method:64smty:handlelogout__fragment",
      "ownerFileId": "file:1ain1yo:mainhublayout-razor",
      "ownerSymbolId": "method:64smty:handlelogout",
      "ownerSymbolName": "HandleLogout",
      "entryNodeId": "method:64smty:handlelogout__entry",
      "exitNodeIds": [
        "method:64smty:handlelogout__implicit_return"
      ],
      "nodes": [
        {
          "id": "method:64smty:handlelogout__entry",
          "kind": "entry",
          "label": "HandleLogout entry",
          "line": 107,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.99,
          "detail": "Performs logout via the identity service and redirects the browser to a logout form route."
        },
        {
          "id": "method:64smty:handlelogout__action_109_handlelogout_await_109_0__await",
          "kind": "await",
          "label": "Waits for async work",
          "line": 109,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.81,
          "detail": "await IdentityService.LogoutAsync();"
        },
        {
          "id": "method:64smty:handlelogout__action_109_external_call_109__linear",
          "kind": "http-call",
          "label": "Invoke logout on identity service",
          "line": 109,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7,
          "detail": "await IdentityService.LogoutAsync(); (project service)"
        },
        {
          "id": "method:64smty:handlelogout__call_109_LogoutAsync",
          "kind": "call",
          "label": "LogoutAsync",
          "line": 109,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.88,
          "detail": "none"
        },
        {
          "id": "method:64smty:handlelogout__action_110_external_call_110__linear",
          "kind": "http-call",
          "label": "Navigate to logout page",
          "line": 110,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7,
          "detail": "NavigationManager.NavigateTo(\"/account/logout-form\", true) (framework navigation)"
        },
        {
          "id": "method:64smty:handlelogout__implicit_return",
          "kind": "return",
          "label": "return",
          "line": 111,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.72,
          "detail": "Implicit method exit inferred from method boundary."
        }
      ],
      "edges": [
        {
          "id": "method:64smty:handlelogout__entry__method:64smty:handlelogout__action_109_handlelogout_await_109_0__await",
          "from": "method:64smty:handlelogout__entry",
          "to": "method:64smty:handlelogout__action_109_handlelogout_await_109_0__await",
          "kind": "next",
          "line": 109,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.81
        },
        {
          "id": "method:64smty:handlelogout__action_109_handlelogout_await_109_0__await__method:64smty:handlelogout__action_109_external_call_109__linear",
          "from": "method:64smty:handlelogout__action_109_handlelogout_await_109_0__await",
          "to": "method:64smty:handlelogout__action_109_external_call_109__linear",
          "kind": "next",
          "line": 109,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:64smty:handlelogout__action_109_external_call_109__linear__call_method:64smty:handlelogout__call_109_LogoutAsync",
          "from": "method:64smty:handlelogout__action_109_external_call_109__linear",
          "to": "method:64smty:handlelogout__call_109_LogoutAsync",
          "kind": "call",
          "label": "none",
          "line": 109,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.88
        },
        {
          "id": "method:64smty:handlelogout__call_109_LogoutAsync__method:64smty:handlelogout__action_110_external_call_110__linear",
          "from": "method:64smty:handlelogout__call_109_LogoutAsync",
          "to": "method:64smty:handlelogout__action_110_external_call_110__linear",
          "kind": "next",
          "line": 110,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.7
        },
        {
          "id": "method:64smty:handlelogout__action_110_external_call_110__linear__implicit_return",
          "from": "method:64smty:handlelogout__action_110_external_call_110__linear",
          "to": "method:64smty:handlelogout__implicit_return",
          "kind": "return",
          "line": 111,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "confidence": 0.72
        }
      ],
      "jumpTargets": [
        {
          "id": "method:64smty:handlelogout__call_109_LogoutAsync__jump_NexusReader_Application_Abstractions_Services_IIdentityService_cs_LogoutAsync",
          "fromNodeId": "method:64smty:handlelogout__call_109_LogoutAsync",
          "kind": "call-target",
          "targetPath": "NexusReader.Application.Abstractions.Services/IIdentityService.cs",
          "targetHint": "LogoutAsync",
          "line": 109,
          "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "reason": "Call target LogoutAsync in NexusReader.Application.Abstractions.Services/IIdentityService.cs could not be matched to an extracted method symbol.",
          "status": "unresolved"
        }
      ],
      "exceptionTargets": [],
      "loopBackEdges": [],
      "mergeNodeIds": [],
      "language": "unknown",
      "confidence": 0.7999999999999999,
      "lineSpan": {
        "start": 107,
        "end": 111
      },
      "unsupportedConstructs": [],
      "evidence": [
        {
          "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
          "line": 107,
          "summary": "Control-flow fragment extracted for method HandleLogout.",
          "kind": "file-summary"
        }
      ]
    }
  ],
  "unresolvedJumps": [
    {
      "id": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync__jump_NexusReader_Application_Abstractions_Services_IIdentityService_cs_GetProfileAsync",
      "fromNodeId": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
      "kind": "call-target",
      "targetPath": "NexusReader.Application.Abstractions.Services/IIdentityService.cs",
      "targetHint": "GetProfileAsync",
      "line": 103,
      "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
      "reason": "Call target GetProfileAsync in NexusReader.Application.Abstractions.Services/IIdentityService.cs could not be matched to an extracted method symbol.",
      "status": "unresolved"
    },
    {
      "id": "method:64smty:handlelogout__call_109_LogoutAsync__jump_NexusReader_Application_Abstractions_Services_IIdentityService_cs_LogoutAsync",
      "fromNodeId": "method:64smty:handlelogout__call_109_LogoutAsync",
      "kind": "call-target",
      "targetPath": "NexusReader.Application.Abstractions.Services/IIdentityService.cs",
      "targetHint": "LogoutAsync",
      "line": 109,
      "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
      "reason": "Call target LogoutAsync in NexusReader.Application.Abstractions.Services/IIdentityService.cs could not be matched to an extracted method symbol.",
      "status": "unresolved"
    }
  ],
  "diagrams": [
    {
      "id": "file_1ain1yo_mainhublayout_razor_neighborhood_view",
      "purpose": "neighborhood-view",
      "title": "MainHubLayout Neighborhood",
      "required": true,
      "diagram": {
        "id": "file_1ain1yo_mainhublayout_razor_neighborhood_view",
        "kind": "dependency-map",
        "title": "MainHubLayout Neighborhood",
        "direction": "LR",
        "nodes": [
          {
            "id": "file_1ain1yo_mainhublayout_razor",
            "kind": "service",
            "label": "MainHubLayout",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          },
          {
            "id": "class_vf4020_mainhublayout",
            "kind": "service",
            "label": "MainHubLayout",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          },
          {
            "id": "method_p4hxqo_oninitializedasync",
            "kind": "method",
            "label": "OnInitializedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 94
          },
          {
            "id": "method_64smty_handlelogout",
            "kind": "method",
            "label": "HandleLogout()",
            "shape": "subproc",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 107
          }
        ],
        "edges": [],
        "metadata": {
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart LR\n    class_vf4020_mainhublayout(\"MainHubLayout\")\n    file_1ain1yo_mainhublayout_razor(\"MainHubLayout\")\n    method_64smty_handlelogout[[\"HandleLogout()\"]]\n    method_p4hxqo_oninitializedasync[[\"OnInitializedAsync()\"]]",
      "warnings": []
    },
    {
      "id": "file_1ain1yo_mainhublayout_razor_execution_view",
      "purpose": "execution-overview",
      "title": "MainHubLayout Execution Overview",
      "required": true,
      "diagram": {
        "id": "file_1ain1yo_mainhublayout_razor_execution_view",
        "kind": "method-flow",
        "title": "MainHubLayout Execution Overview",
        "direction": "TD",
        "nodes": [
          {
            "id": "class_vf4020_mainhublayout",
            "kind": "service",
            "label": "MainHubLayout",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          },
          {
            "id": "method_p4hxqo_oninitializedasync",
            "kind": "method",
            "label": "OnInitializedAsync()",
            "shape": "subproc",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 94
          },
          {
            "id": "method_64smty_handlelogout",
            "kind": "method",
            "label": "HandleLogout()",
            "shape": "subproc",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 107
          },
          {
            "id": "unresolved_unresolved_17ozmdg_call_target",
            "kind": "prompt",
            "label": "Unresolved: GetProfileAsync",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "unresolved_unresolved_15jy0tl_call_target",
            "kind": "prompt",
            "label": "Unresolved: LogoutAsync",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "unresolved_unresolved_1mo1qcu_interaction_target",
            "kind": "prompt",
            "label": "Unresolved: await AuthStateProvider.GetAuthenticationStateAsync() (framework call)",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 98
          },
          {
            "id": "unresolved_unresolved_6dhnk4_interaction_target",
            "kind": "prompt",
            "label": "Unresolved: await IdentityService.GetProfileAsync(); (project service)",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "unresolved_unresolved_n5pbzn_interaction_target",
            "kind": "prompt",
            "label": "Unresolved: await IdentityService.LogoutAsync(); (project service)",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "unresolved_unresolved_1k8045k_interaction_target",
            "kind": "prompt",
            "label": "Unresolved: NavigationManager.NavigateTo(\\\"/account/logout-form\\\", true) (framework navigation)",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 110
          }
        ],
        "edges": [
          {
            "id": "class_vf4020_mainhublayout_contains_method_p4hxqo_oninitializedasync",
            "from": "class_vf4020_mainhublayout",
            "to": "method_p4hxqo_oninitializedasync",
            "semanticLabel": "contains executable method",
            "visibleLabel": "contains",
            "relation": "calls",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 94
          },
          {
            "id": "class_vf4020_mainhublayout_contains_method_64smty_handlelogout",
            "from": "class_vf4020_mainhublayout",
            "to": "method_64smty_handlelogout",
            "semanticLabel": "contains executable method",
            "visibleLabel": "contains",
            "relation": "calls",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 107
          },
          {
            "id": "unresolved_17ozmdg_call_target_edge",
            "from": "method_p4hxqo_oninitializedasync",
            "to": "unresolved_unresolved_17ozmdg_call_target",
            "semanticLabel": "Call target was discovered in the summary but could not be matched to an extracted method symbol.",
            "visibleLabel": "unresolved call",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "unresolved_15jy0tl_call_target_edge",
            "from": "method_64smty_handlelogout",
            "to": "unresolved_unresolved_15jy0tl_call_target",
            "semanticLabel": "Call target was discovered in the summary but could not be matched to an extracted method symbol.",
            "visibleLabel": "unresolved call",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "unresolved_1mo1qcu_interaction_target_edge",
            "from": "class_vf4020_mainhublayout",
            "to": "unresolved_unresolved_1mo1qcu_interaction_target",
            "semanticLabel": "Interaction was identified in the file summary but does not yet map to a stable V5 target node.",
            "visibleLabel": "unresolved interaction",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 98
          },
          {
            "id": "unresolved_6dhnk4_interaction_target_edge",
            "from": "class_vf4020_mainhublayout",
            "to": "unresolved_unresolved_6dhnk4_interaction_target",
            "semanticLabel": "Interaction was identified in the file summary but does not yet map to a stable V5 target node.",
            "visibleLabel": "unresolved interaction",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "unresolved_n5pbzn_interaction_target_edge",
            "from": "class_vf4020_mainhublayout",
            "to": "unresolved_unresolved_n5pbzn_interaction_target",
            "semanticLabel": "Interaction was identified in the file summary but does not yet map to a stable V5 target node.",
            "visibleLabel": "unresolved interaction",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "unresolved_1k8045k_interaction_target_edge",
            "from": "class_vf4020_mainhublayout",
            "to": "unresolved_unresolved_1k8045k_interaction_target",
            "semanticLabel": "Interaction was identified in the file summary but does not yet map to a stable V5 target node.",
            "visibleLabel": "unresolved interaction",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 110
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "warnings": [
            "Execution overview includes unresolved targets. Use validation artifacts before treating the flow as complete."
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart TD\n    class_vf4020_mainhublayout(\"MainHubLayout\")\n    method_64smty_handlelogout[[\"HandleLogout()\"]]\n    method_p4hxqo_oninitializedasync[[\"OnInitializedAsync()\"]]\n    unresolved_unresolved_15jy0tl_call_target{\"Unresolved: LogoutAsync\"}\n    unresolved_unresolved_17ozmdg_call_target{\"Unresolved: GetProfileAsync\"}\n    unresolved_unresolved_1k8045k_interaction_target{\"Unresolved: NavigationManager.NavigateTo(\\\\\"/account/logout-form\\\\\", true) (framework navigation)\"}\n    unresolved_unresolved_1mo1qcu_interaction_target{\"Unresolved: await AuthStateProvider.GetAuthenticationStateAsync() (framework call)\"}\n    unresolved_unresolved_6dhnk4_interaction_target{\"Unresolved: await IdentityService.GetProfileAsync(); (project service)\"}\n    unresolved_unresolved_n5pbzn_interaction_target{\"Unresolved: await IdentityService.LogoutAsync(); (project service)\"}\n    class_vf4020_mainhublayout -->|contains| method_64smty_handlelogout\n    class_vf4020_mainhublayout -->|contains| method_p4hxqo_oninitializedasync\n    class_vf4020_mainhublayout -->|unresolved interaction| unresolved_unresolved_1k8045k_interaction_target\n    class_vf4020_mainhublayout -->|unresolved interaction| unresolved_unresolved_1mo1qcu_interaction_target\n    class_vf4020_mainhublayout -->|unresolved interaction| unresolved_unresolved_6dhnk4_interaction_target\n    class_vf4020_mainhublayout -->|unresolved interaction| unresolved_unresolved_n5pbzn_interaction_target\n    method_64smty_handlelogout -->|unresolved call| unresolved_unresolved_15jy0tl_call_target\n    method_p4hxqo_oninitializedasync -->|unresolved call| unresolved_unresolved_17ozmdg_call_target",
      "warnings": []
    },
    {
      "id": "method_p4hxqo_oninitializedasync__fragment_diagram",
      "purpose": "control-flow",
      "title": "OnInitializedAsync() Control Flow",
      "required": true,
      "diagram": {
        "id": "method_p4hxqo_oninitializedasync__fragment_diagram",
        "kind": "control-flow",
        "title": "OnInitializedAsync() Control Flow",
        "direction": "TD",
        "nodes": [
          {
            "id": "method_p4hxqo_oninitializedasync__entry",
            "kind": "step",
            "label": "OnInitializedAsync entry",
            "shape": "stadium",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 94
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition",
            "kind": "step",
            "label": "_isSyncing",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__true",
            "kind": "step",
            "label": "return",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__false",
            "kind": "step",
            "label": "continue",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
            "kind": "step",
            "label": "_isSyncing",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
            "kind": "step",
            "label": "exit",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
            "kind": "step",
            "label": "continue",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_98_oninitializedasync_await_98_1__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 98
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_98_external_call_98__linear",
            "kind": "dependency",
            "label": "Read authentication state",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 98
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_branch_99__condition",
            "kind": "step",
            "label": "!authState.User.Identity?.IsAuthenticated ?? true",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_branch_99__true",
            "kind": "step",
            "label": "set _isSyncing true",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_branch_99__false",
            "kind": "step",
            "label": "call IdentityService.GetProfileAsync",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_branch_99__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
            "kind": "step",
            "label": "!authState.User.Identity?.IsAuthenticated ?? true",
            "shape": "diamond",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
            "kind": "step",
            "label": "true",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
            "kind": "step",
            "label": "false",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
            "kind": "step",
            "label": "merge",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_101_state_change_101__linear",
            "kind": "step",
            "label": "Mark sync in progress",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 101
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_103_oninitializedasync_await_103_3__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_103_external_call_103__linear",
            "kind": "dependency",
            "label": "Attempt to fetch profile from server",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "method_p4hxqo_oninitializedasync__call_103_GetProfileAsync",
            "kind": "method",
            "label": "GetProfileAsync",
            "shape": "subproc",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "method_p4hxqo_oninitializedasync__implicit_return",
            "kind": "return",
            "label": "return",
            "shape": "stadium",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 105
          }
        ],
        "edges": [
          {
            "id": "method_p4hxqo_oninitializedasync__entry__method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition",
            "from": "method_p4hxqo_oninitializedasync__entry",
            "to": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition__method_p4hxqo_oninitializedasync__action_96_guard_clause_96__true",
            "from": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition",
            "to": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__true",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "transforms",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition__method_p4hxqo_oninitializedasync__action_96_guard_clause_96__false",
            "from": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition",
            "to": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__false",
            "semanticLabel": "continue",
            "visibleLabel": "continue",
            "relation": "transforms",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__true__method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge",
            "from": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__true",
            "to": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__false__method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge",
            "from": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__false",
            "to": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge__method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
            "from": "method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge",
            "to": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition__method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
            "from": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
            "to": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
            "semanticLabel": "exit",
            "visibleLabel": "exit",
            "relation": "transforms",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition__method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
            "from": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
            "to": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
            "semanticLabel": "continue",
            "visibleLabel": "continue",
            "relation": "transforms",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true__method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
            "from": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
            "to": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false__method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
            "from": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
            "to": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 96
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge__method_p4hxqo_oninitializedasync__action_98_oninitializedasync_await_98_1__await",
            "from": "method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
            "to": "method_p4hxqo_oninitializedasync__action_98_oninitializedasync_await_98_1__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 98
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_98_oninitializedasync_await_98_1__await__method_p4hxqo_oninitializedasync__action_98_external_call_98__linear",
            "from": "method_p4hxqo_oninitializedasync__action_98_oninitializedasync_await_98_1__await",
            "to": "method_p4hxqo_oninitializedasync__action_98_external_call_98__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 98
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_98_external_call_98__linear__method_p4hxqo_oninitializedasync__action_99_branch_99__condition",
            "from": "method_p4hxqo_oninitializedasync__action_98_external_call_98__linear",
            "to": "method_p4hxqo_oninitializedasync__action_99_branch_99__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_branch_99__condition__method_p4hxqo_oninitializedasync__action_99_branch_99__true",
            "from": "method_p4hxqo_oninitializedasync__action_99_branch_99__condition",
            "to": "method_p4hxqo_oninitializedasync__action_99_branch_99__true",
            "semanticLabel": "set _isSyncing true",
            "visibleLabel": "set _isSyncing true",
            "relation": "transforms",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_branch_99__condition__method_p4hxqo_oninitializedasync__action_99_branch_99__false",
            "from": "method_p4hxqo_oninitializedasync__action_99_branch_99__condition",
            "to": "method_p4hxqo_oninitializedasync__action_99_branch_99__false",
            "semanticLabel": "call IdentityService.GetProfileAsync",
            "visibleLabel": "call IdentityService.GetProfileAsync",
            "relation": "transforms",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_branch_99__true__method_p4hxqo_oninitializedasync__action_99_branch_99__merge",
            "from": "method_p4hxqo_oninitializedasync__action_99_branch_99__true",
            "to": "method_p4hxqo_oninitializedasync__action_99_branch_99__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_branch_99__false__method_p4hxqo_oninitializedasync__action_99_branch_99__merge",
            "from": "method_p4hxqo_oninitializedasync__action_99_branch_99__false",
            "to": "method_p4hxqo_oninitializedasync__action_99_branch_99__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_branch_99__merge__method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
            "from": "method_p4hxqo_oninitializedasync__action_99_branch_99__merge",
            "to": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition__method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
            "from": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
            "to": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
            "semanticLabel": "true",
            "visibleLabel": "true",
            "relation": "transforms",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition__method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
            "from": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
            "to": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
            "semanticLabel": "false",
            "visibleLabel": "false",
            "relation": "transforms",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__true__method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
            "from": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
            "to": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__false__method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
            "from": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
            "to": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 99
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge__method_p4hxqo_oninitializedasync__action_101_state_change_101__linear",
            "from": "method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
            "to": "method_p4hxqo_oninitializedasync__action_101_state_change_101__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 101
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_101_state_change_101__linear__method_p4hxqo_oninitializedasync__action_103_oninitializedasync_await_103_3__await",
            "from": "method_p4hxqo_oninitializedasync__action_101_state_change_101__linear",
            "to": "method_p4hxqo_oninitializedasync__action_103_oninitializedasync_await_103_3__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_103_oninitializedasync_await_103_3__await__method_p4hxqo_oninitializedasync__action_103_external_call_103__linear",
            "from": "method_p4hxqo_oninitializedasync__action_103_oninitializedasync_await_103_3__await",
            "to": "method_p4hxqo_oninitializedasync__action_103_external_call_103__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "method_p4hxqo_oninitializedasync__action_103_external_call_103__linear__call_method_p4hxqo_oninitializedasync__call_103_GetProfileAsync",
            "from": "method_p4hxqo_oninitializedasync__action_103_external_call_103__linear",
            "to": "method_p4hxqo_oninitializedasync__call_103_GetProfileAsync",
            "semanticLabel": "none",
            "visibleLabel": "none",
            "relation": "calls",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 103
          },
          {
            "id": "method_p4hxqo_oninitializedasync__call_103_GetProfileAsync__implicit_return",
            "from": "method_p4hxqo_oninitializedasync__call_103_GetProfileAsync",
            "to": "method_p4hxqo_oninitializedasync__implicit_return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 105
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "warnings": [
            "Call target GetProfileAsync in NexusReader.Application.Abstractions.Services/IIdentityService.cs could not be matched to an extracted method symbol."
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "---\nconfig:\n  flowchart:\n    defaultRenderer: \"elk\"\n---\nflowchart TD\n    method_p4hxqo_oninitializedasync__call_103_GetProfileAsync[[\"GetProfileAsync\"]]\n    method_p4hxqo_oninitializedasync__action_101_state_change_101__linear(\"Mark sync in progress\")\n    method_p4hxqo_oninitializedasync__action_103_oninitializedasync_await_103_3__await[[\"Waits for async work\"]]\n    method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition{\"_isSyncing\"}\n    method_p4hxqo_oninitializedasync__action_96_guard_clause_96__false(\"continue\")\n    method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge(\"merge\")\n    method_p4hxqo_oninitializedasync__action_96_guard_clause_96__true(\"return\")\n    method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition{\"_isSyncing\"}\n    method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false(\"continue\")\n    method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge(\"merge\")\n    method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true(\"exit\")\n    method_p4hxqo_oninitializedasync__action_98_oninitializedasync_await_98_1__await[[\"Waits for async work\"]]\n    method_p4hxqo_oninitializedasync__action_99_branch_99__condition{\"!authState.User.Identity?.IsAuthenticated ?? true\"}\n    method_p4hxqo_oninitializedasync__action_99_branch_99__false(\"call IdentityService.GetProfileAsync\")\n    method_p4hxqo_oninitializedasync__action_99_branch_99__merge(\"merge\")\n    method_p4hxqo_oninitializedasync__action_99_branch_99__true(\"set _isSyncing true\")\n    method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition{\"!authState.User.Identity?.IsAuthenticated ?? true\"}\n    method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__false(\"false\")\n    method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge(\"merge\")\n    method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__true(\"true\")\n    method_p4hxqo_oninitializedasync__entry([\"OnInitializedAsync entry\"])\n    method_p4hxqo_oninitializedasync__action_103_external_call_103__linear(\"Attempt to fetch profile from server\")\n    method_p4hxqo_oninitializedasync__action_98_external_call_98__linear(\"Read authentication state\")\n    method_p4hxqo_oninitializedasync__implicit_return([\"return\"])\n    method_p4hxqo_oninitializedasync__action_101_state_change_101__linear -->|next| method_p4hxqo_oninitializedasync__action_103_oninitializedasync_await_103_3__await\n    method_p4hxqo_oninitializedasync__action_103_external_call_103__linear -->|none| method_p4hxqo_oninitializedasync__call_103_GetProfileAsync\n    method_p4hxqo_oninitializedasync__action_103_oninitializedasync_await_103_3__await -->|next| method_p4hxqo_oninitializedasync__action_103_external_call_103__linear\n    method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition -->|continue| method_p4hxqo_oninitializedasync__action_96_guard_clause_96__false\n    method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition -->|return| method_p4hxqo_oninitializedasync__action_96_guard_clause_96__true\n    method_p4hxqo_oninitializedasync__action_96_guard_clause_96__false -->|next| method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge\n    method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge -->|next| method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition\n    method_p4hxqo_oninitializedasync__action_96_guard_clause_96__true -->|next| method_p4hxqo_oninitializedasync__action_96_guard_clause_96__merge\n    method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition -->|continue| method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false\n    method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition -->|exit| method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true\n    method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false -->|next| method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge\n    method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge -->|next| method_p4hxqo_oninitializedasync__action_98_oninitializedasync_await_98_1__await\n    method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true -->|next| method_p4hxqo_oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge\n    method_p4hxqo_oninitializedasync__action_98_external_call_98__linear -->|next| method_p4hxqo_oninitializedasync__action_99_branch_99__condition\n    method_p4hxqo_oninitializedasync__action_98_oninitializedasync_await_98_1__await -->|next| method_p4hxqo_oninitializedasync__action_98_external_call_98__linear\n    method_p4hxqo_oninitializedasync__action_99_branch_99__condition -->|call IdentityService.GetProfileAsync| method_p4hxqo_oninitializedasync__action_99_branch_99__false\n    method_p4hxqo_oninitializedasync__action_99_branch_99__condition -->|set _isSyncing true| method_p4hxqo_oninitializedasync__action_99_branch_99__true\n    method_p4hxqo_oninitializedasync__action_99_branch_99__false -->|next| method_p4hxqo_oninitializedasync__action_99_branch_99__merge\n    method_p4hxqo_oninitializedasync__action_99_branch_99__merge -->|next| method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition\n    method_p4hxqo_oninitializedasync__action_99_branch_99__true -->|next| method_p4hxqo_oninitializedasync__action_99_branch_99__merge\n    method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition -->|false| method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__false\n    method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__condition -->|true| method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__true\n    method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__false -->|next| method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge\n    method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge -->|next| method_p4hxqo_oninitializedasync__action_101_state_change_101__linear\n    method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__true -->|next| method_p4hxqo_oninitializedasync__action_99_oninitializedasync_branch_99_2__merge\n    method_p4hxqo_oninitializedasync__call_103_GetProfileAsync -->|return| method_p4hxqo_oninitializedasync__implicit_return\n    method_p4hxqo_oninitializedasync__entry -->|next| method_p4hxqo_oninitializedasync__action_96_guard_clause_96__condition",
      "warnings": [
        "diagram method_p4hxqo_oninitializedasync__fragment_diagram exceeds preferred complexity thresholds (24 nodes, 27 edges)."
      ]
    },
    {
      "id": "method_64smty_handlelogout__fragment_diagram",
      "purpose": "control-flow",
      "title": "HandleLogout() Control Flow",
      "required": true,
      "diagram": {
        "id": "method_64smty_handlelogout__fragment_diagram",
        "kind": "control-flow",
        "title": "HandleLogout() Control Flow",
        "direction": "TD",
        "nodes": [
          {
            "id": "method_64smty_handlelogout__entry",
            "kind": "step",
            "label": "HandleLogout entry",
            "shape": "stadium",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 107
          },
          {
            "id": "method_64smty_handlelogout__action_109_handlelogout_await_109_0__await",
            "kind": "step",
            "label": "Waits for async work",
            "shape": "subproc",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "method_64smty_handlelogout__action_109_external_call_109__linear",
            "kind": "dependency",
            "label": "Invoke logout on identity service",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "method_64smty_handlelogout__call_109_LogoutAsync",
            "kind": "method",
            "label": "LogoutAsync",
            "shape": "subproc",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "method_64smty_handlelogout__action_110_external_call_110__linear",
            "kind": "dependency",
            "label": "Navigate to logout page",
            "shape": "rounded",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 110
          },
          {
            "id": "method_64smty_handlelogout__implicit_return",
            "kind": "return",
            "label": "return",
            "shape": "stadium",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 111
          }
        ],
        "edges": [
          {
            "id": "method_64smty_handlelogout__entry__method_64smty_handlelogout__action_109_handlelogout_await_109_0__await",
            "from": "method_64smty_handlelogout__entry",
            "to": "method_64smty_handlelogout__action_109_handlelogout_await_109_0__await",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "method_64smty_handlelogout__action_109_handlelogout_await_109_0__await__method_64smty_handlelogout__action_109_external_call_109__linear",
            "from": "method_64smty_handlelogout__action_109_handlelogout_await_109_0__await",
            "to": "method_64smty_handlelogout__action_109_external_call_109__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "method_64smty_handlelogout__action_109_external_call_109__linear__call_method_64smty_handlelogout__call_109_LogoutAsync",
            "from": "method_64smty_handlelogout__action_109_external_call_109__linear",
            "to": "method_64smty_handlelogout__call_109_LogoutAsync",
            "semanticLabel": "none",
            "visibleLabel": "none",
            "relation": "calls",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 109
          },
          {
            "id": "method_64smty_handlelogout__call_109_LogoutAsync__method_64smty_handlelogout__action_110_external_call_110__linear",
            "from": "method_64smty_handlelogout__call_109_LogoutAsync",
            "to": "method_64smty_handlelogout__action_110_external_call_110__linear",
            "semanticLabel": "next",
            "visibleLabel": "next",
            "relation": "uses",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 110
          },
          {
            "id": "method_64smty_handlelogout__action_110_external_call_110__linear__implicit_return",
            "from": "method_64smty_handlelogout__action_110_external_call_110__linear",
            "to": "method_64smty_handlelogout__implicit_return",
            "semanticLabel": "return",
            "visibleLabel": "return",
            "relation": "returns",
            "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
            "sourceLine": 111
          }
        ],
        "metadata": {
          "evidencePaths": [
            "NexusReader.UI.Shared/Layout/MainHubLayout.razor"
          ],
          "warnings": [
            "Call target LogoutAsync in NexusReader.Application.Abstractions.Services/IIdentityService.cs could not be matched to an extracted method symbol."
          ]
        },
        "subgraphs": []
      },
      "mermaidSource": "flowchart TD\n    method_64smty_handlelogout__call_109_LogoutAsync[[\"LogoutAsync\"]]\n    method_64smty_handlelogout__action_109_handlelogout_await_109_0__await[[\"Waits for async work\"]]\n    method_64smty_handlelogout__entry([\"HandleLogout entry\"])\n    method_64smty_handlelogout__action_109_external_call_109__linear(\"Invoke logout on identity service\")\n    method_64smty_handlelogout__action_110_external_call_110__linear(\"Navigate to logout page\")\n    method_64smty_handlelogout__implicit_return([\"return\"])\n    method_64smty_handlelogout__action_109_external_call_109__linear -->|none| method_64smty_handlelogout__call_109_LogoutAsync\n    method_64smty_handlelogout__action_109_handlelogout_await_109_0__await -->|next| method_64smty_handlelogout__action_109_external_call_109__linear\n    method_64smty_handlelogout__action_110_external_call_110__linear -->|return| method_64smty_handlelogout__implicit_return\n    method_64smty_handlelogout__call_109_LogoutAsync -->|next| method_64smty_handlelogout__action_110_external_call_110__linear\n    method_64smty_handlelogout__entry -->|next| method_64smty_handlelogout__action_109_handlelogout_await_109_0__await",
      "warnings": []
    }
  ],
  "renderHints": {
    "preferredSurface": "three-d",
    "defaultDiagramId": "file_1ain1yo_mainhublayout_razor_execution_view",
    "controlFlowDiagramIds": [
      "method_p4hxqo_oninitializedasync__fragment_diagram",
      "method_64smty_handlelogout__fragment_diagram"
    ],
    "defaultControlFlowDiagramIdsBySymbolId": {
      "method:p4hxqo:oninitializedasync": "method_p4hxqo_oninitializedasync__fragment_diagram",
      "method:64smty:handlelogout": "method_64smty_handlelogout__fragment_diagram"
    }
  }
}