code: func (proxier *Proxier) getExistingChains(buffer *bytes.Buffer, table utiliptables.Table) map[utiliptables.Chain][]byte {
  	buffer.Reset()
  	err := proxier.iptables.SaveInto(table, buffer)
  	if err != nil { // if we failed to get any rules
  		klog.Errorf("Failed to execute iptables-save, syncing all rules: %v", err)
  	} else { // otherwise parse the output
  		return utiliptables.GetChainLines(table, buffer.Bytes())
  	}
  	return nil
  }
docs: // getExistingChains get iptables-save output so we can check for existing chains and rules.
  // This will be a map of chain name to chain with rules as stored in iptables-save/iptables-restore
  // Result may SHARE memory with contents of buffer.