code: public Multimap<Symbol, Symbol> outputSymbolMap(int sourceIndex)
      {
          return FluentIterable.from(getOutputSymbols())
                  .toMap(outputSymbol -> outputToInputs.get(outputSymbol).get(sourceIndex))
                  .asMultimap()
                  .inverse();
      }
docs: Returns the input to output symbol mapping for the given source channel.
  A single input symbol can map to multiple output symbols, thus requiring a Multimap.