graph TD
BegCash["Beginning Cash Balance"]
%% Operating Cash Flow
BegCash --> NetIncome["Net Income"]
NetIncome --> Depr["Depreciation & Amortization"]
NetIncome --> OtherNonCash["Other Non-Cash Items"]
%% Working Capital Changes
NetIncome --> WC["Working Capital Changes"]
WC --> ARchg["Δ Accounts Receivable"]
WC --> APchg["Δ Accounts Payable"]
WC --> Invchg["Δ Inventory"]
WC --> OtherWC["Other Working Capital Items"]
%% Total Operating Cash Flow
Depr --> OpCF["Operating Cash Flow"]
OtherNonCash --> OpCF
WC --> OpCF
%% Investing Cash Flow
OpCF --> CapEx["Capital Expenditures"]
OpCF --> AcqDis["Acquisitions/Divestitures"]
OpCF --> InvSec["Investment in Securities"]
OpCF --> OtherInv["Other Investing Activities"]
%% Total Investing Cash Flow
CapEx --> InvCF["Investing Cash Flow"]
AcqDis --> InvCF
InvSec --> InvCF
OtherInv --> InvCF
%% Financing Cash Flow
InvCF --> DebtIss["Debt Issuance"]
InvCF --> DebtRep["Debt Repayment"]
InvCF --> DivPaid["Dividends Paid"]
InvCF --> ShareRep["Share Repurchases"]
InvCF --> ShareIss["Share Issuance"]
InvCF --> OtherFin["Other Financing Activities"]
%% Total Financing Cash Flow
DebtIss --> FinCF["Financing Cash Flow"]
DebtRep --> FinCF
DivPaid --> FinCF
ShareRep --> FinCF
ShareIss --> FinCF
OtherFin --> FinCF
%% Final Cash Flow & Ending Cash Balance
FinCF --> EndCash["Ending Cash Balance"]
%% Free Cash Flow Calculation
OpCF --> FreeCF["Free Cash Flow"]
CapEx --> FreeCF
%% Class Definitions for Coloring
classDef ocf fill:#2E7D32,stroke:#333,stroke-width:1px,color:#fff;
classDef icf fill:#C62828,stroke:#333,stroke-width:1px,color:#fff;
classDef fcf fill:#1565C0,stroke:#333,stroke-width:1px,color:#fff;
classDef cash fill:#FF8F00,stroke:#333,stroke-width:2px,color:#fff;
class BegCash,EndCash cash;
class NetIncome,Depr,WC,ARchg,APchg,Invchg,OtherWC,OtherNonCash,OpCF ocf;
class InvCF,CapEx,AcqDis,InvSec,OtherInv icf;
class FinCF,DebtIss,DebtRep,DivPaid,ShareRep,ShareIss,OtherFin fcf;
class FreeCF cash;