public override int GetHashCode()
        {
            int hash = 1;

            if (certificateUuid_ != null)
            {
                hash ^= CertificateUuid.GetHashCode();
            }
            if (rootGuid_ != null)
            {
                hash ^= RootGuid.GetHashCode();
            }
            if (CertType != 0)
            {
                hash ^= CertType.GetHashCode();
            }
            if (IsSigner != false)
            {
                hash ^= IsSigner.GetHashCode();
            }
            if (DistinguisedName.Length != 0)
            {
                hash ^= DistinguisedName.GetHashCode();
            }
            if (signerUuid_ != null)
            {
                hash ^= SignerUuid.GetHashCode();
            }
            if (Signature.Length != 0)
            {
                hash ^= Signature.GetHashCode();
            }
            if (startTime_ != null)
            {
                hash ^= StartTime.GetHashCode();
            }
            if (endTime_ != null)
            {
                hash ^= EndTime.GetHashCode();
            }
            if (CertificateBody.Length != 0)
            {
                hash ^= CertificateBody.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
 public void MergeFrom(Certificate other)
 {
     if (other == null)
     {
         return;
     }
     if (other.certificateUuid_ != null)
     {
         if (certificateUuid_ == null)
         {
             CertificateUuid = new global::VRWorlds.Schemas.Browser.Standards.UUID();
         }
         CertificateUuid.MergeFrom(other.CertificateUuid);
     }
     if (other.rootGuid_ != null)
     {
         if (rootGuid_ == null)
         {
             RootGuid = new global::VRWorlds.Schemas.Browser.Standards.UUID();
         }
         RootGuid.MergeFrom(other.RootGuid);
     }
     if (other.CertType != 0)
     {
         CertType = other.CertType;
     }
     if (other.IsSigner != false)
     {
         IsSigner = other.IsSigner;
     }
     if (other.DistinguisedName.Length != 0)
     {
         DistinguisedName = other.DistinguisedName;
     }
     if (other.signerUuid_ != null)
     {
         if (signerUuid_ == null)
         {
             SignerUuid = new global::VRWorlds.Schemas.Browser.Standards.UUID();
         }
         SignerUuid.MergeFrom(other.SignerUuid);
     }
     if (other.Signature.Length != 0)
     {
         Signature = other.Signature;
     }
     if (other.startTime_ != null)
     {
         if (startTime_ == null)
         {
             StartTime = new global::VRWorlds.Schemas.Browser.Standards.DateTimeOffset();
         }
         StartTime.MergeFrom(other.StartTime);
     }
     if (other.endTime_ != null)
     {
         if (endTime_ == null)
         {
             EndTime = new global::VRWorlds.Schemas.Browser.Standards.DateTimeOffset();
         }
         EndTime.MergeFrom(other.EndTime);
     }
     if (other.CertificateBody.Length != 0)
     {
         CertificateBody = other.CertificateBody;
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }