public override IHeaders <AsciiString, ICharSequence> Add(IHeaders <AsciiString, ICharSequence> headers) { // Override the fast-copy mechanism used by DefaultHeaders if (ReferenceEquals(headers, this)) { ThrowHelper.ThrowArgumentException_HeadCantAddSelf(); } if (headers is CombinedHttpHeadersImpl) { if (this.IsEmpty) { // Can use the fast underlying copy this.AddImpl(headers); } else { // Values are already escaped so don't escape again foreach (HeaderEntry <AsciiString, ICharSequence> header in headers) { _ = this.AddEscapedValue(header.Key, header.Value); } } } else { foreach (HeaderEntry <AsciiString, ICharSequence> header in headers) { _ = this.Add(header.Key, header.Value); } } return(this); }