public bool Equals(ZeroToken other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            bool audEqual = Audiences.Count == other.Audiences.Count &&
                            Audiences.All(other.Audiences.Contains);
            bool claimsEqual = Claims.Count == other.Claims.Count &&
                               Claims.All(other.Claims.Contains);
            bool result = audEqual &&
                          string.Equals(Issuer, other.Issuer) &&
                          CreationTime.Equals(other.CreationTime) &&
                          Lifetime == other.Lifetime &&
                          string.Equals(Type, other.Type) &&
                          string.Equals(ClientId, other.ClientId) &&
                          AccessTokenType == other.AccessTokenType &&
                          claimsEqual &&
                          Version == other.Version;

            return(result);
        }