code: def process_dividends(self, next_session, asset_finder, adjustment_reader):
          
          position_tracker = self.position_tracker
  
          # Earn dividends whose ex_date is the next trading day. We need to
          # check if we own any of these stocks so we know to pay them out when
          # the pay date comes.
          held_sids = set(position_tracker.positions)
          if held_sids:
              cash_dividends = adjustment_reader.get_dividends_with_ex_date(
                  held_sids,
                  next_session,
                  asset_finder
              )
              stock_dividends = (
                  adjustment_reader.get_stock_dividends_with_ex_date(
                      held_sids,
                      next_session,
                      asset_finder
                  )
              )
  
              # Earning a dividend just marks that we need to get paid out on
              # the dividend's pay-date. This does not affect our cash yet.
              position_tracker.earn_dividends(
                  cash_dividends,
                  stock_dividends,
              )
  
          # Pay out the dividends whose pay-date is the next session. This does
          # affect out cash.
          self._cash_flow(
              position_tracker.pay_dividends(
                  next_session,
              ),
          )
docs: Process dividends for the next session.
  
          This will earn us any dividends whose ex-date is the next session as
          well as paying out any dividends whose pay-date is the next session