public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = RequestTimeout.GetHashCode();
         hashCode = (hashCode * 397) ^ PingTimeout.GetHashCode();
         hashCode = (hashCode * 397) ^ KeepAliveTime;
         hashCode = (hashCode * 397) ^ KeepAliveInterval;
         hashCode = (hashCode * 397) ^ (RunAs?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ Pipelined.GetHashCode();
         hashCode = (hashCode * 397) ^ HttpCompression.GetHashCode();
         hashCode = (hashCode * 397) ^ (Headers?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (ProxyAddress?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (ProxyUsername?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (ProxyPassword?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ DisableAutomaticProxyDetection.GetHashCode();
         hashCode = (hashCode * 397) ^ (BasicAuthorizationCredentials?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (ConnectionSettings?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (MemoryStreamFactory?.GetHashCode() ?? 0);
         return(hashCode);
     }
 }