diff --git a/src/ZB.MOM.WW.ScadaBridge.Commons/Messages/Streaming/AlarmStateChanged.cs b/src/ZB.MOM.WW.ScadaBridge.Commons/Messages/Streaming/AlarmStateChanged.cs
index 6f38201d..6e94db13 100644
--- a/src/ZB.MOM.WW.ScadaBridge.Commons/Messages/Streaming/AlarmStateChanged.cs
+++ b/src/ZB.MOM.WW.ScadaBridge.Commons/Messages/Streaming/AlarmStateChanged.cs
@@ -85,6 +85,11 @@ public record AlarmStateChanged(
/// null while a native condition is unacknowledged; cleared on re-raise, because a
/// re-raise transition carries Acknowledged = false.
///
+ ///
+ ///
+ /// On the wire: AlarmStateUpdate field 24 (live stream) and
+ /// DebugAlarmStateDto field 21 (debug snapshot, Gitea #84) — absent decodes to null.
+ ///
///
public DateTimeOffset? AckTime { get; init; }
diff --git a/src/ZB.MOM.WW.ScadaBridge.Communication/Grpc/SiteCommandDtoMapper.cs b/src/ZB.MOM.WW.ScadaBridge.Communication/Grpc/SiteCommandDtoMapper.cs
index ca03f534..105c7859 100644
--- a/src/ZB.MOM.WW.ScadaBridge.Communication/Grpc/SiteCommandDtoMapper.cs
+++ b/src/ZB.MOM.WW.ScadaBridge.Communication/Grpc/SiteCommandDtoMapper.cs
@@ -1955,6 +1955,11 @@ public static class SiteCommandDtoMapper
dto.OriginalRaiseTime = Ts(alarm.OriginalRaiseTime.Value);
}
+ if (alarm.AckTime.HasValue)
+ {
+ dto.AckTime = Ts(alarm.AckTime.Value);
+ }
+
return dto;
}
@@ -1985,7 +1990,8 @@ public static class SiteCommandDtoMapper
LimitValue = dto.LimitValue,
NativeSourceCanonicalName = dto.NativeSourceCanonicalName,
IsConfiguredPlaceholder = dto.IsConfiguredPlaceholder,
- IsMesReportable = dto.IsMesReportable
+ IsMesReportable = dto.IsMesReportable,
+ AckTime = DtoOrNull(dto.AckTime)
};
return dto.Condition is null ? alarm : alarm with { Condition = FromProto(dto.Condition) };
diff --git a/src/ZB.MOM.WW.ScadaBridge.Communication/Protos/site_command.proto b/src/ZB.MOM.WW.ScadaBridge.Communication/Protos/site_command.proto
index 8cb3bdcf..9a8a96b2 100644
--- a/src/ZB.MOM.WW.ScadaBridge.Communication/Protos/site_command.proto
+++ b/src/ZB.MOM.WW.ScadaBridge.Communication/Protos/site_command.proto
@@ -657,6 +657,10 @@ message DebugAlarmStateDto {
// MES-reportable flag stamped by the Instance Actor's snapshot (Gitea #60); false for
// native conditions and from a pre-#60 site (proto3 default).
bool is_mes_reportable = 20;
+ // When the alarm was last acknowledged (AlarmStateChanged.AckTime; mirrors
+ // AlarmStateUpdate.ack_time = 24 on the live stream, Gitea #84). Absent => null,
+ // including from a pre-#84 site.
+ google.protobuf.Timestamp ack_time = 21;
}
message DebugViewSnapshotDto {
diff --git a/src/ZB.MOM.WW.ScadaBridge.Communication/SiteCommandGrpc/SiteCommand.cs b/src/ZB.MOM.WW.ScadaBridge.Communication/SiteCommandGrpc/SiteCommand.cs
index cc64edeb..bf7a2f3f 100644
--- a/src/ZB.MOM.WW.ScadaBridge.Communication/SiteCommandGrpc/SiteCommand.cs
+++ b/src/ZB.MOM.WW.ScadaBridge.Communication/SiteCommandGrpc/SiteCommand.cs
@@ -292,7 +292,7 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
"dGgYAiABKAkSFgoOYXR0cmlidXRlX25hbWUYAyABKAkSNQoFdmFsdWUYBCAB",
"KAsyJi5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5Mb29zZVZhbHVlEg8K",
"B3F1YWxpdHkYBSABKAkSLQoJdGltZXN0YW1wGAYgASgLMhouZ29vZ2xlLnBy",
- "b3RvYnVmLlRpbWVzdGFtcCLKBQoSRGVidWdBbGFybVN0YXRlRHRvEhwKFGlu",
+ "b3RvYnVmLlRpbWVzdGFtcCL4BQoSRGVidWdBbGFybVN0YXRlRHRvEhwKFGlu",
"c3RhbmNlX3VuaXF1ZV9uYW1lGAEgASgJEhIKCmFsYXJtX25hbWUYAiABKAkS",
"OAoFc3RhdGUYAyABKA4yKS5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5B",
"bGFybVN0YXRlRHRvEhAKCHByaW9yaXR5GAQgASgFEi0KCXRpbWVzdGFtcBgF",
@@ -308,213 +308,214 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
"dGFtcBIVCg1jdXJyZW50X3ZhbHVlGBAgASgJEhMKC2xpbWl0X3ZhbHVlGBEg",
"ASgJEiQKHG5hdGl2ZV9zb3VyY2VfY2Fub25pY2FsX25hbWUYEiABKAkSIQoZ",
"aXNfY29uZmlndXJlZF9wbGFjZWhvbGRlchgTIAEoCBIZChFpc19tZXNfcmVw",
- "b3J0YWJsZRgUIAEoCCKcAgoURGVidWdWaWV3U25hcHNob3REdG8SHAoUaW5z",
- "dGFuY2VfdW5pcXVlX25hbWUYASABKAkSTAoQYXR0cmlidXRlX3ZhbHVlcxgC",
- "IAMoCzIyLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLkRlYnVnQXR0cmli",
- "dXRlVmFsdWVEdG8SRAoMYWxhcm1fc3RhdGVzGAMgAygLMi4uc2NhZGFicmlk",
- "Z2Uuc2l0ZWNvbW1hbmQudjEuRGVidWdBbGFybVN0YXRlRHRvEjYKEnNuYXBz",
- "aG90X3RpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3Rh",
- "bXASGgoSaW5zdGFuY2Vfbm90X2ZvdW5kGAUgASgIIvACCgxRdWVyeVJlcXVl",
- "c3QSTgoPZXZlbnRfbG9nX3F1ZXJ5GAEgASgLMjMuc2NhZGFicmlkZ2Uuc2l0",
- "ZWNvbW1hbmQudjEuRXZlbnRMb2dRdWVyeVJlcXVlc3REdG9IABJNCg5kZWJ1",
- "Z19zbmFwc2hvdBgCIAEoCzIzLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYx",
- "LkRlYnVnU25hcHNob3RSZXF1ZXN0RHRvSAASWAoUc3Vic2NyaWJlX2RlYnVn",
- "X3ZpZXcYAyABKAsyOC5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5TdWJz",
- "Y3JpYmVEZWJ1Z1ZpZXdSZXF1ZXN0RHRvSAASXAoWdW5zdWJzY3JpYmVfZGVi",
- "dWdfdmlldxgEIAEoCzI6LnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLlVu",
- "c3Vic2NyaWJlRGVidWdWaWV3UmVxdWVzdER0b0gAQgkKB2NvbW1hbmQikQIK",
- "ClF1ZXJ5UmVwbHkSTwoPZXZlbnRfbG9nX3F1ZXJ5GAEgASgLMjQuc2NhZGFi",
- "cmlkZ2Uuc2l0ZWNvbW1hbmQudjEuRXZlbnRMb2dRdWVyeVJlc3BvbnNlRHRv",
- "SAASTwoTZGVidWdfdmlld19zbmFwc2hvdBgCIAEoCzIwLnNjYWRhYnJpZGdl",
- "LnNpdGVjb21tYW5kLnYxLkRlYnVnVmlld1NuYXBzaG90RHRvSAASWAoWdW5z",
- "dWJzY3JpYmVfZGVidWdfdmlldxgDIAEoCzI2LnNjYWRhYnJpZGdlLnNpdGVj",
- "b21tYW5kLnYxLlVuc3Vic2NyaWJlRGVidWdWaWV3QWNrRHRvSABCBwoFcmVw",
- "bHkingEKHFBhcmtlZE1lc3NhZ2VRdWVyeVJlcXVlc3REdG8SFgoOY29ycmVs",
- "YXRpb25faWQYASABKAkSDwoHc2l0ZV9pZBgCIAEoCRITCgtwYWdlX251bWJl",
- "chgDIAEoBRIRCglwYWdlX3NpemUYBCABKAUSLQoJdGltZXN0YW1wGAUgASgL",
- "MhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLyAgoVUGFya2VkTWVzc2Fn",
- "ZUVudHJ5RHRvEhIKCm1lc3NhZ2VfaWQYASABKAkSFQoNdGFyZ2V0X3N5c3Rl",
- "bRgCIAEoCRITCgttZXRob2RfbmFtZRgDIAEoCRIVCg1lcnJvcl9tZXNzYWdl",
- "GAQgASgJEhUKDWF0dGVtcHRfY291bnQYBSABKAUSNgoSb3JpZ2luYWxfdGlt",
- "ZXN0YW1wGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZs",
- "YXN0X2F0dGVtcHRfdGltZXN0YW1wGAcgASgLMhouZ29vZ2xlLnByb3RvYnVm",
- "LlRpbWVzdGFtcBIUCgxtYXhfYXR0ZW1wdHMYCCABKAUSSAoIY2F0ZWdvcnkY",
- "CSABKA4yNi5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5TdG9yZUFuZEZv",
- "cndhcmRDYXRlZ29yeUR0bxIXCg9vcmlnaW5faW5zdGFuY2UYCiABKAkioQIK",
- "HVBhcmtlZE1lc3NhZ2VRdWVyeVJlc3BvbnNlRHRvEhYKDmNvcnJlbGF0aW9u",
- "X2lkGAEgASgJEg8KB3NpdGVfaWQYAiABKAkSQwoIbWVzc2FnZXMYAyADKAsy",
- "MS5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5QYXJrZWRNZXNzYWdlRW50",
- "cnlEdG8SEwoLdG90YWxfY291bnQYBCABKAUSEwoLcGFnZV9udW1iZXIYBSAB",
- "KAUSEQoJcGFnZV9zaXplGAYgASgFEg8KB3N1Y2Nlc3MYByABKAgSFQoNZXJy",
- "b3JfbWVzc2FnZRgIIAEoCRItCgl0aW1lc3RhbXAYCSABKAsyGi5nb29nbGUu",
- "cHJvdG9idWYuVGltZXN0YW1wIooBChxQYXJrZWRNZXNzYWdlUmV0cnlSZXF1",
- "ZXN0RHRvEhYKDmNvcnJlbGF0aW9uX2lkGAEgASgJEg8KB3NpdGVfaWQYAiAB",
- "KAkSEgoKbWVzc2FnZV9pZBgDIAEoCRItCgl0aW1lc3RhbXAYBCABKAsyGi5n",
- "b29nbGUucHJvdG9idWYuVGltZXN0YW1wIl8KHVBhcmtlZE1lc3NhZ2VSZXRy",
- "eVJlc3BvbnNlRHRvEhYKDmNvcnJlbGF0aW9uX2lkGAEgASgJEg8KB3N1Y2Nl",
- "c3MYAiABKAgSFQoNZXJyb3JfbWVzc2FnZRgDIAEoCSKMAQoeUGFya2VkTWVz",
- "c2FnZURpc2NhcmRSZXF1ZXN0RHRvEhYKDmNvcnJlbGF0aW9uX2lkGAEgASgJ",
- "Eg8KB3NpdGVfaWQYAiABKAkSEgoKbWVzc2FnZV9pZBgDIAEoCRItCgl0aW1l",
- "c3RhbXAYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wImEKH1Bh",
- "cmtlZE1lc3NhZ2VEaXNjYXJkUmVzcG9uc2VEdG8SFgoOY29ycmVsYXRpb25f",
- "aWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBIVCg1lcnJvcl9tZXNzYWdlGAMg",
- "ASgJIk8KF1JldHJ5UGFya2VkT3BlcmF0aW9uRHRvEhYKDmNvcnJlbGF0aW9u",
- "X2lkGAEgASgJEhwKFHRyYWNrZWRfb3BlcmF0aW9uX2lkGAIgASgJIlEKGURp",
- "c2NhcmRQYXJrZWRPcGVyYXRpb25EdG8SFgoOY29ycmVsYXRpb25faWQYASAB",
- "KAkSHAoUdHJhY2tlZF9vcGVyYXRpb25faWQYAiABKAkiXQobUGFya2VkT3Bl",
- "cmF0aW9uQWN0aW9uQWNrRHRvEhYKDmNvcnJlbGF0aW9uX2lkGAEgASgJEg8K",
- "B2FwcGxpZWQYAiABKAgSFQoNZXJyb3JfbWVzc2FnZRgDIAEoCSLeAwoNUGFy",
- "a2VkUmVxdWVzdBJYChRwYXJrZWRfbWVzc2FnZV9xdWVyeRgBIAEoCzI4LnNj",
- "YWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLlBhcmtlZE1lc3NhZ2VRdWVyeVJl",
- "cXVlc3REdG9IABJYChRwYXJrZWRfbWVzc2FnZV9yZXRyeRgCIAEoCzI4LnNj",
- "YWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLlBhcmtlZE1lc3NhZ2VSZXRyeVJl",
- "cXVlc3REdG9IABJcChZwYXJrZWRfbWVzc2FnZV9kaXNjYXJkGAMgASgLMjou",
- "c2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQudjEuUGFya2VkTWVzc2FnZURpc2Nh",
- "cmRSZXF1ZXN0RHRvSAASVQoWcmV0cnlfcGFya2VkX29wZXJhdGlvbhgEIAEo",
- "CzIzLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLlJldHJ5UGFya2VkT3Bl",
- "cmF0aW9uRHRvSAASWQoYZGlzY2FyZF9wYXJrZWRfb3BlcmF0aW9uGAUgASgL",
- "MjUuc2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQudjEuRGlzY2FyZFBhcmtlZE9w",
- "ZXJhdGlvbkR0b0gAQgkKB2NvbW1hbmQihwMKC1BhcmtlZFJlcGx5ElkKFHBh",
- "cmtlZF9tZXNzYWdlX3F1ZXJ5GAEgASgLMjkuc2NhZGFicmlkZ2Uuc2l0ZWNv",
- "bW1hbmQudjEuUGFya2VkTWVzc2FnZVF1ZXJ5UmVzcG9uc2VEdG9IABJZChRw",
- "YXJrZWRfbWVzc2FnZV9yZXRyeRgCIAEoCzI5LnNjYWRhYnJpZGdlLnNpdGVj",
- "b21tYW5kLnYxLlBhcmtlZE1lc3NhZ2VSZXRyeVJlc3BvbnNlRHRvSAASXQoW",
- "cGFya2VkX21lc3NhZ2VfZGlzY2FyZBgDIAEoCzI7LnNjYWRhYnJpZGdlLnNp",
- "dGVjb21tYW5kLnYxLlBhcmtlZE1lc3NhZ2VEaXNjYXJkUmVzcG9uc2VEdG9I",
- "ABJaChdwYXJrZWRfb3BlcmF0aW9uX2FjdGlvbhgEIAEoCzI3LnNjYWRhYnJp",
- "ZGdlLnNpdGVjb21tYW5kLnYxLlBhcmtlZE9wZXJhdGlvbkFjdGlvbkFja0R0",
- "b0gAQgcKBXJlcGx5IvwBChVSb3V0ZVRvQ2FsbFJlcXVlc3REdG8SFgoOY29y",
+ "b3J0YWJsZRgUIAEoCBIsCghhY2tfdGltZRgVIAEoCzIaLmdvb2dsZS5wcm90",
+ "b2J1Zi5UaW1lc3RhbXAinAIKFERlYnVnVmlld1NuYXBzaG90RHRvEhwKFGlu",
+ "c3RhbmNlX3VuaXF1ZV9uYW1lGAEgASgJEkwKEGF0dHJpYnV0ZV92YWx1ZXMY",
+ "AiADKAsyMi5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5EZWJ1Z0F0dHJp",
+ "YnV0ZVZhbHVlRHRvEkQKDGFsYXJtX3N0YXRlcxgDIAMoCzIuLnNjYWRhYnJp",
+ "ZGdlLnNpdGVjb21tYW5kLnYxLkRlYnVnQWxhcm1TdGF0ZUR0bxI2ChJzbmFw",
+ "c2hvdF90aW1lc3RhbXAYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0",
+ "YW1wEhoKEmluc3RhbmNlX25vdF9mb3VuZBgFIAEoCCLwAgoMUXVlcnlSZXF1",
+ "ZXN0Ek4KD2V2ZW50X2xvZ19xdWVyeRgBIAEoCzIzLnNjYWRhYnJpZGdlLnNp",
+ "dGVjb21tYW5kLnYxLkV2ZW50TG9nUXVlcnlSZXF1ZXN0RHRvSAASTQoOZGVi",
+ "dWdfc25hcHNob3QYAiABKAsyMy5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52",
+ "MS5EZWJ1Z1NuYXBzaG90UmVxdWVzdER0b0gAElgKFHN1YnNjcmliZV9kZWJ1",
+ "Z192aWV3GAMgASgLMjguc2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQudjEuU3Vi",
+ "c2NyaWJlRGVidWdWaWV3UmVxdWVzdER0b0gAElwKFnVuc3Vic2NyaWJlX2Rl",
+ "YnVnX3ZpZXcYBCABKAsyOi5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5V",
+ "bnN1YnNjcmliZURlYnVnVmlld1JlcXVlc3REdG9IAEIJCgdjb21tYW5kIpEC",
+ "CgpRdWVyeVJlcGx5Ek8KD2V2ZW50X2xvZ19xdWVyeRgBIAEoCzI0LnNjYWRh",
+ "YnJpZGdlLnNpdGVjb21tYW5kLnYxLkV2ZW50TG9nUXVlcnlSZXNwb25zZUR0",
+ "b0gAEk8KE2RlYnVnX3ZpZXdfc25hcHNob3QYAiABKAsyMC5zY2FkYWJyaWRn",
+ "ZS5zaXRlY29tbWFuZC52MS5EZWJ1Z1ZpZXdTbmFwc2hvdER0b0gAElgKFnVu",
+ "c3Vic2NyaWJlX2RlYnVnX3ZpZXcYAyABKAsyNi5zY2FkYWJyaWRnZS5zaXRl",
+ "Y29tbWFuZC52MS5VbnN1YnNjcmliZURlYnVnVmlld0Fja0R0b0gAQgcKBXJl",
+ "cGx5Ip4BChxQYXJrZWRNZXNzYWdlUXVlcnlSZXF1ZXN0RHRvEhYKDmNvcnJl",
+ "bGF0aW9uX2lkGAEgASgJEg8KB3NpdGVfaWQYAiABKAkSEwoLcGFnZV9udW1i",
+ "ZXIYAyABKAUSEQoJcGFnZV9zaXplGAQgASgFEi0KCXRpbWVzdGFtcBgFIAEo",
+ "CzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi8gIKFVBhcmtlZE1lc3Nh",
+ "Z2VFbnRyeUR0bxISCgptZXNzYWdlX2lkGAEgASgJEhUKDXRhcmdldF9zeXN0",
+ "ZW0YAiABKAkSEwoLbWV0aG9kX25hbWUYAyABKAkSFQoNZXJyb3JfbWVzc2Fn",
+ "ZRgEIAEoCRIVCg1hdHRlbXB0X2NvdW50GAUgASgFEjYKEm9yaWdpbmFsX3Rp",
+ "bWVzdGFtcBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoW",
+ "bGFzdF9hdHRlbXB0X3RpbWVzdGFtcBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1",
+ "Zi5UaW1lc3RhbXASFAoMbWF4X2F0dGVtcHRzGAggASgFEkgKCGNhdGVnb3J5",
+ "GAkgASgOMjYuc2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQudjEuU3RvcmVBbmRG",
+ "b3J3YXJkQ2F0ZWdvcnlEdG8SFwoPb3JpZ2luX2luc3RhbmNlGAogASgJIqEC",
+ "Ch1QYXJrZWRNZXNzYWdlUXVlcnlSZXNwb25zZUR0bxIWCg5jb3JyZWxhdGlv",
+ "bl9pZBgBIAEoCRIPCgdzaXRlX2lkGAIgASgJEkMKCG1lc3NhZ2VzGAMgAygL",
+ "MjEuc2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQudjEuUGFya2VkTWVzc2FnZUVu",
+ "dHJ5RHRvEhMKC3RvdGFsX2NvdW50GAQgASgFEhMKC3BhZ2VfbnVtYmVyGAUg",
+ "ASgFEhEKCXBhZ2Vfc2l6ZRgGIAEoBRIPCgdzdWNjZXNzGAcgASgIEhUKDWVy",
+ "cm9yX21lc3NhZ2UYCCABKAkSLQoJdGltZXN0YW1wGAkgASgLMhouZ29vZ2xl",
+ "LnByb3RvYnVmLlRpbWVzdGFtcCKKAQocUGFya2VkTWVzc2FnZVJldHJ5UmVx",
+ "dWVzdER0bxIWCg5jb3JyZWxhdGlvbl9pZBgBIAEoCRIPCgdzaXRlX2lkGAIg",
+ "ASgJEhIKCm1lc3NhZ2VfaWQYAyABKAkSLQoJdGltZXN0YW1wGAQgASgLMhou",
+ "Z29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJfCh1QYXJrZWRNZXNzYWdlUmV0",
+ "cnlSZXNwb25zZUR0bxIWCg5jb3JyZWxhdGlvbl9pZBgBIAEoCRIPCgdzdWNj",
+ "ZXNzGAIgASgIEhUKDWVycm9yX21lc3NhZ2UYAyABKAkijAEKHlBhcmtlZE1l",
+ "c3NhZ2VEaXNjYXJkUmVxdWVzdER0bxIWCg5jb3JyZWxhdGlvbl9pZBgBIAEo",
+ "CRIPCgdzaXRlX2lkGAIgASgJEhIKCm1lc3NhZ2VfaWQYAyABKAkSLQoJdGlt",
+ "ZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJhCh9Q",
+ "YXJrZWRNZXNzYWdlRGlzY2FyZFJlc3BvbnNlRHRvEhYKDmNvcnJlbGF0aW9u",
+ "X2lkGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSFQoNZXJyb3JfbWVzc2FnZRgD",
+ "IAEoCSJPChdSZXRyeVBhcmtlZE9wZXJhdGlvbkR0bxIWCg5jb3JyZWxhdGlv",
+ "bl9pZBgBIAEoCRIcChR0cmFja2VkX29wZXJhdGlvbl9pZBgCIAEoCSJRChlE",
+ "aXNjYXJkUGFya2VkT3BlcmF0aW9uRHRvEhYKDmNvcnJlbGF0aW9uX2lkGAEg",
+ "ASgJEhwKFHRyYWNrZWRfb3BlcmF0aW9uX2lkGAIgASgJIl0KG1BhcmtlZE9w",
+ "ZXJhdGlvbkFjdGlvbkFja0R0bxIWCg5jb3JyZWxhdGlvbl9pZBgBIAEoCRIP",
+ "CgdhcHBsaWVkGAIgASgIEhUKDWVycm9yX21lc3NhZ2UYAyABKAki3gMKDVBh",
+ "cmtlZFJlcXVlc3QSWAoUcGFya2VkX21lc3NhZ2VfcXVlcnkYASABKAsyOC5z",
+ "Y2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5QYXJrZWRNZXNzYWdlUXVlcnlS",
+ "ZXF1ZXN0RHRvSAASWAoUcGFya2VkX21lc3NhZ2VfcmV0cnkYAiABKAsyOC5z",
+ "Y2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5QYXJrZWRNZXNzYWdlUmV0cnlS",
+ "ZXF1ZXN0RHRvSAASXAoWcGFya2VkX21lc3NhZ2VfZGlzY2FyZBgDIAEoCzI6",
+ "LnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLlBhcmtlZE1lc3NhZ2VEaXNj",
+ "YXJkUmVxdWVzdER0b0gAElUKFnJldHJ5X3BhcmtlZF9vcGVyYXRpb24YBCAB",
+ "KAsyMy5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5SZXRyeVBhcmtlZE9w",
+ "ZXJhdGlvbkR0b0gAElkKGGRpc2NhcmRfcGFya2VkX29wZXJhdGlvbhgFIAEo",
+ "CzI1LnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLkRpc2NhcmRQYXJrZWRP",
+ "cGVyYXRpb25EdG9IAEIJCgdjb21tYW5kIocDCgtQYXJrZWRSZXBseRJZChRw",
+ "YXJrZWRfbWVzc2FnZV9xdWVyeRgBIAEoCzI5LnNjYWRhYnJpZGdlLnNpdGVj",
+ "b21tYW5kLnYxLlBhcmtlZE1lc3NhZ2VRdWVyeVJlc3BvbnNlRHRvSAASWQoU",
+ "cGFya2VkX21lc3NhZ2VfcmV0cnkYAiABKAsyOS5zY2FkYWJyaWRnZS5zaXRl",
+ "Y29tbWFuZC52MS5QYXJrZWRNZXNzYWdlUmV0cnlSZXNwb25zZUR0b0gAEl0K",
+ "FnBhcmtlZF9tZXNzYWdlX2Rpc2NhcmQYAyABKAsyOy5zY2FkYWJyaWRnZS5z",
+ "aXRlY29tbWFuZC52MS5QYXJrZWRNZXNzYWdlRGlzY2FyZFJlc3BvbnNlRHRv",
+ "SAASWgoXcGFya2VkX29wZXJhdGlvbl9hY3Rpb24YBCABKAsyNy5zY2FkYWJy",
+ "aWRnZS5zaXRlY29tbWFuZC52MS5QYXJrZWRPcGVyYXRpb25BY3Rpb25BY2tE",
+ "dG9IAEIHCgVyZXBseSL8AQoVUm91dGVUb0NhbGxSZXF1ZXN0RHRvEhYKDmNv",
+ "cnJlbGF0aW9uX2lkGAEgASgJEhwKFGluc3RhbmNlX3VuaXF1ZV9uYW1lGAIg",
+ "ASgJEhMKC3NjcmlwdF9uYW1lGAMgASgJEj0KCnBhcmFtZXRlcnMYBCABKAsy",
+ "KS5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5Mb29zZVZhbHVlTWFwEi0K",
+ "CXRpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAS",
+ "GwoTcGFyZW50X2V4ZWN1dGlvbl9pZBgGIAEoCRINCgV0cmFjZRgHIAEoCCK9",
+ "AgoWUm91dGVUb0NhbGxSZXNwb25zZUR0bxIWCg5jb3JyZWxhdGlvbl9pZBgB",
+ "IAEoCRIPCgdzdWNjZXNzGAIgASgIEjwKDHJldHVybl92YWx1ZRgDIAEoCzIm",
+ "LnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLkxvb3NlVmFsdWUSFQoNZXJy",
+ "b3JfbWVzc2FnZRgEIAEoCRItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUu",
+ "cHJvdG9idWYuVGltZXN0YW1wEhoKEmNoaWxkX2V4ZWN1dGlvbl9pZBgGIAEo",
+ "CRIvCgx0cmFjZV9ldmVudHMYByADKAsyGS5zaXRlc3RyZWFtLkF1ZGl0RXZl",
+ "bnREdG8SEQoJdHJ1bmNhdGVkGAggASgIEhYKDmxvZ3NfdHJ1bmNhdGVkGAkg",
+ "ASgIIrsBCh5Sb3V0ZVRvR2V0QXR0cmlidXRlc1JlcXVlc3REdG8SFgoOY29y",
"cmVsYXRpb25faWQYASABKAkSHAoUaW5zdGFuY2VfdW5pcXVlX25hbWUYAiAB",
- "KAkSEwoLc2NyaXB0X25hbWUYAyABKAkSPQoKcGFyYW1ldGVycxgEIAEoCzIp",
- "LnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLkxvb3NlVmFsdWVNYXASLQoJ",
- "dGltZXN0YW1wGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIb",
- "ChNwYXJlbnRfZXhlY3V0aW9uX2lkGAYgASgJEg0KBXRyYWNlGAcgASgIIr0C",
- "ChZSb3V0ZVRvQ2FsbFJlc3BvbnNlRHRvEhYKDmNvcnJlbGF0aW9uX2lkGAEg",
- "ASgJEg8KB3N1Y2Nlc3MYAiABKAgSPAoMcmV0dXJuX3ZhbHVlGAMgASgLMiYu",
- "c2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQudjEuTG9vc2VWYWx1ZRIVCg1lcnJv",
- "cl9tZXNzYWdlGAQgASgJEi0KCXRpbWVzdGFtcBgFIAEoCzIaLmdvb2dsZS5w",
- "cm90b2J1Zi5UaW1lc3RhbXASGgoSY2hpbGRfZXhlY3V0aW9uX2lkGAYgASgJ",
- "Ei8KDHRyYWNlX2V2ZW50cxgHIAMoCzIZLnNpdGVzdHJlYW0uQXVkaXRFdmVu",
- "dER0bxIRCgl0cnVuY2F0ZWQYCCABKAgSFgoObG9nc190cnVuY2F0ZWQYCSAB",
- "KAgiuwEKHlJvdXRlVG9HZXRBdHRyaWJ1dGVzUmVxdWVzdER0bxIWCg5jb3Jy",
- "ZWxhdGlvbl9pZBgBIAEoCRIcChRpbnN0YW5jZV91bmlxdWVfbmFtZRgCIAEo",
- "CRIXCg9hdHRyaWJ1dGVfbmFtZXMYAyADKAkSLQoJdGltZXN0YW1wGAQgASgL",
- "MhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNwYXJlbnRfZXhlY3V0",
- "aW9uX2lkGAUgASgJIssBCh9Sb3V0ZVRvR2V0QXR0cmlidXRlc1Jlc3BvbnNl",
- "RHRvEhYKDmNvcnJlbGF0aW9uX2lkGAEgASgJEjkKBnZhbHVlcxgCIAEoCzIp",
- "LnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLkxvb3NlVmFsdWVNYXASDwoH",
- "c3VjY2VzcxgDIAEoCBIVCg1lcnJvcl9tZXNzYWdlGAQgASgJEi0KCXRpbWVz",
- "dGFtcBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1AIKHlJv",
- "dXRlVG9TZXRBdHRyaWJ1dGVzUmVxdWVzdER0bxIWCg5jb3JyZWxhdGlvbl9p",
- "ZBgBIAEoCRIcChRpbnN0YW5jZV91bmlxdWVfbmFtZRgCIAEoCRJpChBhdHRy",
- "aWJ1dGVfdmFsdWVzGAMgAygLMk8uc2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQu",
- "djEuUm91dGVUb1NldEF0dHJpYnV0ZXNSZXF1ZXN0RHRvLkF0dHJpYnV0ZVZh",
- "bHVlc0VudHJ5Ei0KCXRpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1",
- "Zi5UaW1lc3RhbXASGwoTcGFyZW50X2V4ZWN1dGlvbl9pZBgFIAEoCRINCgV0",
- "cmFjZRgGIAEoCBo2ChRBdHRyaWJ1dGVWYWx1ZXNFbnRyeRILCgNrZXkYASAB",
- "KAkSDQoFdmFsdWUYAiABKAk6AjgBIpABCh9Sb3V0ZVRvU2V0QXR0cmlidXRl",
- "c1Jlc3BvbnNlRHRvEhYKDmNvcnJlbGF0aW9uX2lkGAEgASgJEg8KB3N1Y2Nl",
- "c3MYAiABKAgSFQoNZXJyb3JfbWVzc2FnZRgDIAEoCRItCgl0aW1lc3RhbXAY",
- "BCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsMCCiFSb3V0ZVRv",
- "V2FpdEZvckF0dHJpYnV0ZVJlcXVlc3REdG8SFgoOY29ycmVsYXRpb25faWQY",
- "ASABKAkSHAoUaW5zdGFuY2VfdW5pcXVlX25hbWUYAiABKAkSFgoOYXR0cmli",
- "dXRlX25hbWUYAyABKAkSOgoUdGFyZ2V0X3ZhbHVlX2VuY29kZWQYBCABKAsy",
- "HC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSKgoHdGltZW91dBgFIAEo",
- "CzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhItCgl0aW1lc3RhbXAYBiAB",
- "KAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE3BhcmVudF9leGVj",
- "dXRpb25faWQYByABKAkSHAoUcmVxdWlyZV9nb29kX3F1YWxpdHkYCCABKAgi",
- "/wEKIlJvdXRlVG9XYWl0Rm9yQXR0cmlidXRlUmVzcG9uc2VEdG8SFgoOY29y",
- "cmVsYXRpb25faWQYASABKAkSDwoHbWF0Y2hlZBgCIAEoCBI1CgV2YWx1ZRgD",
- "IAEoCzImLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLkxvb3NlVmFsdWUS",
- "DwoHcXVhbGl0eRgEIAEoCRIRCgl0aW1lZF9vdXQYBSABKAgSDwoHc3VjY2Vz",
- "cxgGIAEoCBIVCg1lcnJvcl9tZXNzYWdlGAcgASgJEi0KCXRpbWVzdGFtcBgI",
- "IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiiQMKDFJvdXRlUmVx",
- "dWVzdBJKCg1yb3V0ZV90b19jYWxsGAEgASgLMjEuc2NhZGFicmlkZ2Uuc2l0",
- "ZWNvbW1hbmQudjEuUm91dGVUb0NhbGxSZXF1ZXN0RHRvSAASXQoXcm91dGVf",
- "dG9fZ2V0X2F0dHJpYnV0ZXMYAiABKAsyOi5zY2FkYWJyaWRnZS5zaXRlY29t",
- "bWFuZC52MS5Sb3V0ZVRvR2V0QXR0cmlidXRlc1JlcXVlc3REdG9IABJdChdy",
- "b3V0ZV90b19zZXRfYXR0cmlidXRlcxgDIAEoCzI6LnNjYWRhYnJpZGdlLnNp",
- "dGVjb21tYW5kLnYxLlJvdXRlVG9TZXRBdHRyaWJ1dGVzUmVxdWVzdER0b0gA",
- "EmQKG3JvdXRlX3RvX3dhaXRfZm9yX2F0dHJpYnV0ZRgEIAEoCzI9LnNjYWRh",
- "YnJpZGdlLnNpdGVjb21tYW5kLnYxLlJvdXRlVG9XYWl0Rm9yQXR0cmlidXRl",
- "UmVxdWVzdER0b0gAQgkKB2NvbW1hbmQiiQMKClJvdXRlUmVwbHkSSwoNcm91",
- "dGVfdG9fY2FsbBgBIAEoCzIyLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYx",
- "LlJvdXRlVG9DYWxsUmVzcG9uc2VEdG9IABJeChdyb3V0ZV90b19nZXRfYXR0",
- "cmlidXRlcxgCIAEoCzI7LnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLlJv",
- "dXRlVG9HZXRBdHRyaWJ1dGVzUmVzcG9uc2VEdG9IABJeChdyb3V0ZV90b19z",
- "ZXRfYXR0cmlidXRlcxgDIAEoCzI7LnNjYWRhYnJpZGdlLnNpdGVjb21tYW5k",
- "LnYxLlJvdXRlVG9TZXRBdHRyaWJ1dGVzUmVzcG9uc2VEdG9IABJlChtyb3V0",
- "ZV90b193YWl0X2Zvcl9hdHRyaWJ1dGUYBCABKAsyPi5zY2FkYWJyaWRnZS5z",
- "aXRlY29tbWFuZC52MS5Sb3V0ZVRvV2FpdEZvckF0dHJpYnV0ZVJlc3BvbnNl",
- "RHRvSABCBwoFcmVwbHkiQQoWVHJpZ2dlclNpdGVGYWlsb3ZlckR0bxIWCg5j",
- "b3JyZWxhdGlvbl9pZBgBIAEoCRIPCgdzaXRlX2lkGAIgASgJIm0KElNpdGVG",
- "YWlsb3ZlckFja0R0bxIWCg5jb3JyZWxhdGlvbl9pZBgBIAEoCRIQCghhY2Nl",
- "cHRlZBgCIAEoCBIWCg50YXJnZXRfYWRkcmVzcxgDIAEoCRIVCg1lcnJvcl9t",
- "ZXNzYWdlGAQgASgJKssBChNEZXBsb3ltZW50U3RhdHVzRHRvEiUKIURFUExP",
- "WU1FTlRfU1RBVFVTX0RUT19VTlNQRUNJRklFRBAAEiEKHURFUExPWU1FTlRf",
- "U1RBVFVTX0RUT19QRU5ESU5HEAESJQohREVQTE9ZTUVOVF9TVEFUVVNfRFRP",
- "X0lOX1BST0dSRVNTEAISIQodREVQTE9ZTUVOVF9TVEFUVVNfRFRPX1NVQ0NF",
- "U1MQAxIgChxERVBMT1lNRU5UX1NUQVRVU19EVE9fRkFJTEVEEAQqxAEKEkJy",
- "b3dzZU5vZGVDbGFzc0R0bxIlCiFCUk9XU0VfTk9ERV9DTEFTU19EVE9fVU5T",
- "UEVDSUZJRUQQABIgChxCUk9XU0VfTk9ERV9DTEFTU19EVE9fT0JKRUNUEAES",
- "IgoeQlJPV1NFX05PREVfQ0xBU1NfRFRPX1ZBUklBQkxFEAISIAocQlJPV1NF",
- "X05PREVfQ0xBU1NfRFRPX01FVEhPRBADEh8KG0JST1dTRV9OT0RFX0NMQVNT",
- "X0RUT19PVEhFUhAEKqECChRCcm93c2VGYWlsdXJlS2luZER0bxInCiNCUk9X",
- "U0VfRkFJTFVSRV9LSU5EX0RUT19VTlNQRUNJRklFRBAAEjAKLEJST1dTRV9G",
- "QUlMVVJFX0tJTkRfRFRPX0NPTk5FQ1RJT05fTk9UX0ZPVU5EEAESNAowQlJP",
- "V1NFX0ZBSUxVUkVfS0lORF9EVE9fQ09OTkVDVElPTl9OT1RfQ09OTkVDVEVE",
- "EAISKQolQlJPV1NFX0ZBSUxVUkVfS0lORF9EVE9fTk9UX0JST1dTQUJMRRAD",
- "EiMKH0JST1dTRV9GQUlMVVJFX0tJTkRfRFRPX1RJTUVPVVQQBBIoCiRCUk9X",
- "U0VfRkFJTFVSRV9LSU5EX0RUT19TRVJWRVJfRVJST1IQBSqqAgobUmVhZFRh",
- "Z1ZhbHVlc0ZhaWx1cmVLaW5kRHRvEjAKLFJFQURfVEFHX1ZBTFVFU19GQUlM",
- "VVJFX0tJTkRfRFRPX1VOU1BFQ0lGSUVEEAASOQo1UkVBRF9UQUdfVkFMVUVT",
- "X0ZBSUxVUkVfS0lORF9EVE9fQ09OTkVDVElPTl9OT1RfRk9VTkQQARI9CjlS",
- "RUFEX1RBR19WQUxVRVNfRkFJTFVSRV9LSU5EX0RUT19DT05ORUNUSU9OX05P",
- "VF9DT05ORUNURUQQAhIsCihSRUFEX1RBR19WQUxVRVNfRkFJTFVSRV9LSU5E",
- "X0RUT19USU1FT1VUEAMSMQotUkVBRF9UQUdfVkFMVUVTX0ZBSUxVUkVfS0lO",
- "RF9EVE9fU0VSVkVSX0VSUk9SEAQqkwIKFFZlcmlmeUZhaWx1cmVLaW5kRHRv",
- "EicKI1ZFUklGWV9GQUlMVVJFX0tJTkRfRFRPX1VOU1BFQ0lGSUVEEAASJwoj",
- "VkVSSUZZX0ZBSUxVUkVfS0lORF9EVE9fVU5SRUFDSEFCTEUQARInCiNWRVJJ",
- "RllfRkFJTFVSRV9LSU5EX0RUT19BVVRIX0ZBSUxFRBACEjEKLVZFUklGWV9G",
- "QUlMVVJFX0tJTkRfRFRPX1VOVFJVU1RFRF9DRVJUSUZJQ0FURRADEiMKH1ZF",
- "UklGWV9GQUlMVVJFX0tJTkRfRFRPX1RJTUVPVVQQBBIoCiRWRVJJRllfRkFJ",
- "TFVSRV9LSU5EX0RUT19TRVJWRVJfRVJST1IQBSrlAQoaU3RvcmVBbmRGb3J3",
- "YXJkQ2F0ZWdvcnlEdG8SLgoqU1RPUkVfQU5EX0ZPUldBUkRfQ0FURUdPUllf",
- "RFRPX1VOU1BFQ0lGSUVEEAASMgouU1RPUkVfQU5EX0ZPUldBUkRfQ0FURUdP",
- "UllfRFRPX0VYVEVSTkFMX1NZU1RFTRABEi8KK1NUT1JFX0FORF9GT1JXQVJE",
- "X0NBVEVHT1JZX0RUT19OT1RJRklDQVRJT04QAhIyCi5TVE9SRV9BTkRfRk9S",
- "V0FSRF9DQVRFR09SWV9EVE9fQ0FDSEVEX0RCX1dSSVRFEAMqaAoNQWxhcm1T",
- "dGF0ZUR0bxIfChtBTEFSTV9TVEFURV9EVE9fVU5TUEVDSUZJRUQQABIaChZB",
- "TEFSTV9TVEFURV9EVE9fQUNUSVZFEAESGgoWQUxBUk1fU1RBVEVfRFRPX05P",
- "Uk1BTBACKrkBCg1BbGFybUxldmVsRHRvEh8KG0FMQVJNX0xFVkVMX0RUT19V",
- "TlNQRUNJRklFRBAAEhgKFEFMQVJNX0xFVkVMX0RUT19OT05FEAESFwoTQUxB",
- "Uk1fTEVWRUxfRFRPX0xPVxACEhsKF0FMQVJNX0xFVkVMX0RUT19MT1dfTE9X",
- "EAMSGAoUQUxBUk1fTEVWRUxfRFRPX0hJR0gQBBIdChlBTEFSTV9MRVZFTF9E",
- "VE9fSElHSF9ISUdIEAUqkgEKDEFsYXJtS2luZER0bxIeChpBTEFSTV9LSU5E",
- "X0RUT19VTlNQRUNJRklFRBAAEhsKF0FMQVJNX0tJTkRfRFRPX0NPTVBVVEVE",
- "EAESIAocQUxBUk1fS0lORF9EVE9fTkFUSVZFX09QQ19VQRACEiMKH0FMQVJN",
- "X0tJTkRfRFRPX05BVElWRV9NWF9BQ0NFU1MQAyroAQoTQWxhcm1TaGVsdmVT",
- "dGF0ZUR0bxImCiJBTEFSTV9TSEVMVkVfU1RBVEVfRFRPX1VOU1BFQ0lGSUVE",
- "EAASJAogQUxBUk1fU0hFTFZFX1NUQVRFX0RUT19VTlNIRUxWRUQQARIrCidB",
- "TEFSTV9TSEVMVkVfU1RBVEVfRFRPX09ORV9TSE9UX1NIRUxWRUQQAhIoCiRB",
- "TEFSTV9TSEVMVkVfU1RBVEVfRFRPX1RJTUVEX1NIRUxWRUQQAxIsCihBTEFS",
- "TV9TSEVMVkVfU1RBVEVfRFRPX1BFUk1BTkVOVF9TSEVMVkVEEAQyhAUKElNp",
- "dGVDb21tYW5kU2VydmljZRJsChBFeGVjdXRlTGlmZWN5Y2xlEiwuc2NhZGFi",
- "cmlkZ2Uuc2l0ZWNvbW1hbmQudjEuTGlmZWN5Y2xlUmVxdWVzdBoqLnNjYWRh",
- "YnJpZGdlLnNpdGVjb21tYW5kLnYxLkxpZmVjeWNsZVJlcGx5EmAKDEV4ZWN1",
- "dGVPcGNVYRIoLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLk9wY1VhUmVx",
- "dWVzdBomLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLk9wY1VhUmVwbHkS",
- "YAoMRXhlY3V0ZVF1ZXJ5Eiguc2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQudjEu",
- "UXVlcnlSZXF1ZXN0GiYuc2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQudjEuUXVl",
- "cnlSZXBseRJjCg1FeGVjdXRlUGFya2VkEikuc2NhZGFicmlkZ2Uuc2l0ZWNv",
- "bW1hbmQudjEuUGFya2VkUmVxdWVzdBonLnNjYWRhYnJpZGdlLnNpdGVjb21t",
- "YW5kLnYxLlBhcmtlZFJlcGx5EmAKDEV4ZWN1dGVSb3V0ZRIoLnNjYWRhYnJp",
- "ZGdlLnNpdGVjb21tYW5kLnYxLlJvdXRlUmVxdWVzdBomLnNjYWRhYnJpZGdl",
- "LnNpdGVjb21tYW5kLnYxLlJvdXRlUmVwbHkSdQoPVHJpZ2dlckZhaWxvdmVy",
- "EjIuc2NhZGFicmlkZ2Uuc2l0ZWNvbW1hbmQudjEuVHJpZ2dlclNpdGVGYWls",
- "b3ZlckR0bxouLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLlNpdGVGYWls",
- "b3ZlckFja0R0b0IrqgIoWkIuTU9NLldXLlNjYWRhQnJpZGdlLkNvbW11bmlj",
- "YXRpb24uR3JwY2IGcHJvdG8z"));
+ "KAkSFwoPYXR0cmlidXRlX25hbWVzGAMgAygJEi0KCXRpbWVzdGFtcBgEIAEo",
+ "CzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTcGFyZW50X2V4ZWN1",
+ "dGlvbl9pZBgFIAEoCSLLAQofUm91dGVUb0dldEF0dHJpYnV0ZXNSZXNwb25z",
+ "ZUR0bxIWCg5jb3JyZWxhdGlvbl9pZBgBIAEoCRI5CgZ2YWx1ZXMYAiABKAsy",
+ "KS5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5Mb29zZVZhbHVlTWFwEg8K",
+ "B3N1Y2Nlc3MYAyABKAgSFQoNZXJyb3JfbWVzc2FnZRgEIAEoCRItCgl0aW1l",
+ "c3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItQCCh5S",
+ "b3V0ZVRvU2V0QXR0cmlidXRlc1JlcXVlc3REdG8SFgoOY29ycmVsYXRpb25f",
+ "aWQYASABKAkSHAoUaW5zdGFuY2VfdW5pcXVlX25hbWUYAiABKAkSaQoQYXR0",
+ "cmlidXRlX3ZhbHVlcxgDIAMoCzJPLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5k",
+ "LnYxLlJvdXRlVG9TZXRBdHRyaWJ1dGVzUmVxdWVzdER0by5BdHRyaWJ1dGVW",
+ "YWx1ZXNFbnRyeRItCgl0aW1lc3RhbXAYBCABKAsyGi5nb29nbGUucHJvdG9i",
+ "dWYuVGltZXN0YW1wEhsKE3BhcmVudF9leGVjdXRpb25faWQYBSABKAkSDQoF",
+ "dHJhY2UYBiABKAgaNgoUQXR0cmlidXRlVmFsdWVzRW50cnkSCwoDa2V5GAEg",
+ "ASgJEg0KBXZhbHVlGAIgASgJOgI4ASKQAQofUm91dGVUb1NldEF0dHJpYnV0",
+ "ZXNSZXNwb25zZUR0bxIWCg5jb3JyZWxhdGlvbl9pZBgBIAEoCRIPCgdzdWNj",
+ "ZXNzGAIgASgIEhUKDWVycm9yX21lc3NhZ2UYAyABKAkSLQoJdGltZXN0YW1w",
+ "GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLDAgohUm91dGVU",
+ "b1dhaXRGb3JBdHRyaWJ1dGVSZXF1ZXN0RHRvEhYKDmNvcnJlbGF0aW9uX2lk",
+ "GAEgASgJEhwKFGluc3RhbmNlX3VuaXF1ZV9uYW1lGAIgASgJEhYKDmF0dHJp",
+ "YnV0ZV9uYW1lGAMgASgJEjoKFHRhcmdldF92YWx1ZV9lbmNvZGVkGAQgASgL",
+ "MhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlEioKB3RpbWVvdXQYBSAB",
+ "KAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SLQoJdGltZXN0YW1wGAYg",
+ "ASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNwYXJlbnRfZXhl",
+ "Y3V0aW9uX2lkGAcgASgJEhwKFHJlcXVpcmVfZ29vZF9xdWFsaXR5GAggASgI",
+ "Iv8BCiJSb3V0ZVRvV2FpdEZvckF0dHJpYnV0ZVJlc3BvbnNlRHRvEhYKDmNv",
+ "cnJlbGF0aW9uX2lkGAEgASgJEg8KB21hdGNoZWQYAiABKAgSNQoFdmFsdWUY",
+ "AyABKAsyJi5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5Mb29zZVZhbHVl",
+ "Eg8KB3F1YWxpdHkYBCABKAkSEQoJdGltZWRfb3V0GAUgASgIEg8KB3N1Y2Nl",
+ "c3MYBiABKAgSFQoNZXJyb3JfbWVzc2FnZRgHIAEoCRItCgl0aW1lc3RhbXAY",
+ "CCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIokDCgxSb3V0ZVJl",
+ "cXVlc3QSSgoNcm91dGVfdG9fY2FsbBgBIAEoCzIxLnNjYWRhYnJpZGdlLnNp",
+ "dGVjb21tYW5kLnYxLlJvdXRlVG9DYWxsUmVxdWVzdER0b0gAEl0KF3JvdXRl",
+ "X3RvX2dldF9hdHRyaWJ1dGVzGAIgASgLMjouc2NhZGFicmlkZ2Uuc2l0ZWNv",
+ "bW1hbmQudjEuUm91dGVUb0dldEF0dHJpYnV0ZXNSZXF1ZXN0RHRvSAASXQoX",
+ "cm91dGVfdG9fc2V0X2F0dHJpYnV0ZXMYAyABKAsyOi5zY2FkYWJyaWRnZS5z",
+ "aXRlY29tbWFuZC52MS5Sb3V0ZVRvU2V0QXR0cmlidXRlc1JlcXVlc3REdG9I",
+ "ABJkChtyb3V0ZV90b193YWl0X2Zvcl9hdHRyaWJ1dGUYBCABKAsyPS5zY2Fk",
+ "YWJyaWRnZS5zaXRlY29tbWFuZC52MS5Sb3V0ZVRvV2FpdEZvckF0dHJpYnV0",
+ "ZVJlcXVlc3REdG9IAEIJCgdjb21tYW5kIokDCgpSb3V0ZVJlcGx5EksKDXJv",
+ "dXRlX3RvX2NhbGwYASABKAsyMi5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52",
+ "MS5Sb3V0ZVRvQ2FsbFJlc3BvbnNlRHRvSAASXgoXcm91dGVfdG9fZ2V0X2F0",
+ "dHJpYnV0ZXMYAiABKAsyOy5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5S",
+ "b3V0ZVRvR2V0QXR0cmlidXRlc1Jlc3BvbnNlRHRvSAASXgoXcm91dGVfdG9f",
+ "c2V0X2F0dHJpYnV0ZXMYAyABKAsyOy5zY2FkYWJyaWRnZS5zaXRlY29tbWFu",
+ "ZC52MS5Sb3V0ZVRvU2V0QXR0cmlidXRlc1Jlc3BvbnNlRHRvSAASZQobcm91",
+ "dGVfdG9fd2FpdF9mb3JfYXR0cmlidXRlGAQgASgLMj4uc2NhZGFicmlkZ2Uu",
+ "c2l0ZWNvbW1hbmQudjEuUm91dGVUb1dhaXRGb3JBdHRyaWJ1dGVSZXNwb25z",
+ "ZUR0b0gAQgcKBXJlcGx5IkEKFlRyaWdnZXJTaXRlRmFpbG92ZXJEdG8SFgoO",
+ "Y29ycmVsYXRpb25faWQYASABKAkSDwoHc2l0ZV9pZBgCIAEoCSJtChJTaXRl",
+ "RmFpbG92ZXJBY2tEdG8SFgoOY29ycmVsYXRpb25faWQYASABKAkSEAoIYWNj",
+ "ZXB0ZWQYAiABKAgSFgoOdGFyZ2V0X2FkZHJlc3MYAyABKAkSFQoNZXJyb3Jf",
+ "bWVzc2FnZRgEIAEoCSrLAQoTRGVwbG95bWVudFN0YXR1c0R0bxIlCiFERVBM",
+ "T1lNRU5UX1NUQVRVU19EVE9fVU5TUEVDSUZJRUQQABIhCh1ERVBMT1lNRU5U",
+ "X1NUQVRVU19EVE9fUEVORElORxABEiUKIURFUExPWU1FTlRfU1RBVFVTX0RU",
+ "T19JTl9QUk9HUkVTUxACEiEKHURFUExPWU1FTlRfU1RBVFVTX0RUT19TVUND",
+ "RVNTEAMSIAocREVQTE9ZTUVOVF9TVEFUVVNfRFRPX0ZBSUxFRBAEKsQBChJC",
+ "cm93c2VOb2RlQ2xhc3NEdG8SJQohQlJPV1NFX05PREVfQ0xBU1NfRFRPX1VO",
+ "U1BFQ0lGSUVEEAASIAocQlJPV1NFX05PREVfQ0xBU1NfRFRPX09CSkVDVBAB",
+ "EiIKHkJST1dTRV9OT0RFX0NMQVNTX0RUT19WQVJJQUJMRRACEiAKHEJST1dT",
+ "RV9OT0RFX0NMQVNTX0RUT19NRVRIT0QQAxIfChtCUk9XU0VfTk9ERV9DTEFT",
+ "U19EVE9fT1RIRVIQBCqhAgoUQnJvd3NlRmFpbHVyZUtpbmREdG8SJwojQlJP",
+ "V1NFX0ZBSUxVUkVfS0lORF9EVE9fVU5TUEVDSUZJRUQQABIwCixCUk9XU0Vf",
+ "RkFJTFVSRV9LSU5EX0RUT19DT05ORUNUSU9OX05PVF9GT1VORBABEjQKMEJS",
+ "T1dTRV9GQUlMVVJFX0tJTkRfRFRPX0NPTk5FQ1RJT05fTk9UX0NPTk5FQ1RF",
+ "RBACEikKJUJST1dTRV9GQUlMVVJFX0tJTkRfRFRPX05PVF9CUk9XU0FCTEUQ",
+ "AxIjCh9CUk9XU0VfRkFJTFVSRV9LSU5EX0RUT19USU1FT1VUEAQSKAokQlJP",
+ "V1NFX0ZBSUxVUkVfS0lORF9EVE9fU0VSVkVSX0VSUk9SEAUqqgIKG1JlYWRU",
+ "YWdWYWx1ZXNGYWlsdXJlS2luZER0bxIwCixSRUFEX1RBR19WQUxVRVNfRkFJ",
+ "TFVSRV9LSU5EX0RUT19VTlNQRUNJRklFRBAAEjkKNVJFQURfVEFHX1ZBTFVF",
+ "U19GQUlMVVJFX0tJTkRfRFRPX0NPTk5FQ1RJT05fTk9UX0ZPVU5EEAESPQo5",
+ "UkVBRF9UQUdfVkFMVUVTX0ZBSUxVUkVfS0lORF9EVE9fQ09OTkVDVElPTl9O",
+ "T1RfQ09OTkVDVEVEEAISLAooUkVBRF9UQUdfVkFMVUVTX0ZBSUxVUkVfS0lO",
+ "RF9EVE9fVElNRU9VVBADEjEKLVJFQURfVEFHX1ZBTFVFU19GQUlMVVJFX0tJ",
+ "TkRfRFRPX1NFUlZFUl9FUlJPUhAEKpMCChRWZXJpZnlGYWlsdXJlS2luZER0",
+ "bxInCiNWRVJJRllfRkFJTFVSRV9LSU5EX0RUT19VTlNQRUNJRklFRBAAEicK",
+ "I1ZFUklGWV9GQUlMVVJFX0tJTkRfRFRPX1VOUkVBQ0hBQkxFEAESJwojVkVS",
+ "SUZZX0ZBSUxVUkVfS0lORF9EVE9fQVVUSF9GQUlMRUQQAhIxCi1WRVJJRllf",
+ "RkFJTFVSRV9LSU5EX0RUT19VTlRSVVNURURfQ0VSVElGSUNBVEUQAxIjCh9W",
+ "RVJJRllfRkFJTFVSRV9LSU5EX0RUT19USU1FT1VUEAQSKAokVkVSSUZZX0ZB",
+ "SUxVUkVfS0lORF9EVE9fU0VSVkVSX0VSUk9SEAUq5QEKGlN0b3JlQW5kRm9y",
+ "d2FyZENhdGVnb3J5RHRvEi4KKlNUT1JFX0FORF9GT1JXQVJEX0NBVEVHT1JZ",
+ "X0RUT19VTlNQRUNJRklFRBAAEjIKLlNUT1JFX0FORF9GT1JXQVJEX0NBVEVH",
+ "T1JZX0RUT19FWFRFUk5BTF9TWVNURU0QARIvCitTVE9SRV9BTkRfRk9SV0FS",
+ "RF9DQVRFR09SWV9EVE9fTk9USUZJQ0FUSU9OEAISMgouU1RPUkVfQU5EX0ZP",
+ "UldBUkRfQ0FURUdPUllfRFRPX0NBQ0hFRF9EQl9XUklURRADKmgKDUFsYXJt",
+ "U3RhdGVEdG8SHwobQUxBUk1fU1RBVEVfRFRPX1VOU1BFQ0lGSUVEEAASGgoW",
+ "QUxBUk1fU1RBVEVfRFRPX0FDVElWRRABEhoKFkFMQVJNX1NUQVRFX0RUT19O",
+ "T1JNQUwQAiq5AQoNQWxhcm1MZXZlbER0bxIfChtBTEFSTV9MRVZFTF9EVE9f",
+ "VU5TUEVDSUZJRUQQABIYChRBTEFSTV9MRVZFTF9EVE9fTk9ORRABEhcKE0FM",
+ "QVJNX0xFVkVMX0RUT19MT1cQAhIbChdBTEFSTV9MRVZFTF9EVE9fTE9XX0xP",
+ "VxADEhgKFEFMQVJNX0xFVkVMX0RUT19ISUdIEAQSHQoZQUxBUk1fTEVWRUxf",
+ "RFRPX0hJR0hfSElHSBAFKpIBCgxBbGFybUtpbmREdG8SHgoaQUxBUk1fS0lO",
+ "RF9EVE9fVU5TUEVDSUZJRUQQABIbChdBTEFSTV9LSU5EX0RUT19DT01QVVRF",
+ "RBABEiAKHEFMQVJNX0tJTkRfRFRPX05BVElWRV9PUENfVUEQAhIjCh9BTEFS",
+ "TV9LSU5EX0RUT19OQVRJVkVfTVhfQUNDRVNTEAMq6AEKE0FsYXJtU2hlbHZl",
+ "U3RhdGVEdG8SJgoiQUxBUk1fU0hFTFZFX1NUQVRFX0RUT19VTlNQRUNJRklF",
+ "RBAAEiQKIEFMQVJNX1NIRUxWRV9TVEFURV9EVE9fVU5TSEVMVkVEEAESKwon",
+ "QUxBUk1fU0hFTFZFX1NUQVRFX0RUT19PTkVfU0hPVF9TSEVMVkVEEAISKAok",
+ "QUxBUk1fU0hFTFZFX1NUQVRFX0RUT19USU1FRF9TSEVMVkVEEAMSLAooQUxB",
+ "Uk1fU0hFTFZFX1NUQVRFX0RUT19QRVJNQU5FTlRfU0hFTFZFRBAEMoQFChJT",
+ "aXRlQ29tbWFuZFNlcnZpY2USbAoQRXhlY3V0ZUxpZmVjeWNsZRIsLnNjYWRh",
+ "YnJpZGdlLnNpdGVjb21tYW5kLnYxLkxpZmVjeWNsZVJlcXVlc3QaKi5zY2Fk",
+ "YWJyaWRnZS5zaXRlY29tbWFuZC52MS5MaWZlY3ljbGVSZXBseRJgCgxFeGVj",
+ "dXRlT3BjVWESKC5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5PcGNVYVJl",
+ "cXVlc3QaJi5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5PcGNVYVJlcGx5",
+ "EmAKDEV4ZWN1dGVRdWVyeRIoLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYx",
+ "LlF1ZXJ5UmVxdWVzdBomLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLlF1",
+ "ZXJ5UmVwbHkSYwoNRXhlY3V0ZVBhcmtlZBIpLnNjYWRhYnJpZGdlLnNpdGVj",
+ "b21tYW5kLnYxLlBhcmtlZFJlcXVlc3QaJy5zY2FkYWJyaWRnZS5zaXRlY29t",
+ "bWFuZC52MS5QYXJrZWRSZXBseRJgCgxFeGVjdXRlUm91dGUSKC5zY2FkYWJy",
+ "aWRnZS5zaXRlY29tbWFuZC52MS5Sb3V0ZVJlcXVlc3QaJi5zY2FkYWJyaWRn",
+ "ZS5zaXRlY29tbWFuZC52MS5Sb3V0ZVJlcGx5EnUKD1RyaWdnZXJGYWlsb3Zl",
+ "chIyLnNjYWRhYnJpZGdlLnNpdGVjb21tYW5kLnYxLlRyaWdnZXJTaXRlRmFp",
+ "bG92ZXJEdG8aLi5zY2FkYWJyaWRnZS5zaXRlY29tbWFuZC52MS5TaXRlRmFp",
+ "bG92ZXJBY2tEdG9CK6oCKFpCLk1PTS5XVy5TY2FkYUJyaWRnZS5Db21tdW5p",
+ "Y2F0aW9uLkdycGNiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.SitestreamReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.DeploymentStatusDto), typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.BrowseNodeClassDto), typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.BrowseFailureKindDto), typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.ReadTagValuesFailureKindDto), typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.VerifyFailureKindDto), typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.StoreAndForwardCategoryDto), typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.AlarmStateDto), typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.AlarmLevelDto), typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.AlarmKindDto), typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.AlarmShelveStateDto), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -582,7 +583,7 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.UnsubscribeDebugViewAckDto), global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.UnsubscribeDebugViewAckDto.Parser, null, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.AlarmConditionStateDto), global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.AlarmConditionStateDto.Parser, new[]{ "Active", "Acknowledged", "Confirmed", "Shelve", "Suppressed", "Severity" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.DebugAttributeValueDto), global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.DebugAttributeValueDto.Parser, new[]{ "InstanceUniqueName", "AttributePath", "AttributeName", "Value", "Quality", "Timestamp" }, null, null, null, null),
- new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.DebugAlarmStateDto), global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.DebugAlarmStateDto.Parser, new[]{ "InstanceUniqueName", "AlarmName", "State", "Priority", "Timestamp", "Level", "Message", "Kind", "Condition", "SourceReference", "AlarmTypeName", "Category", "OperatorUser", "OperatorComment", "OriginalRaiseTime", "CurrentValue", "LimitValue", "NativeSourceCanonicalName", "IsConfiguredPlaceholder", "IsMesReportable" }, null, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.DebugAlarmStateDto), global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.DebugAlarmStateDto.Parser, new[]{ "InstanceUniqueName", "AlarmName", "State", "Priority", "Timestamp", "Level", "Message", "Kind", "Condition", "SourceReference", "AlarmTypeName", "Category", "OperatorUser", "OperatorComment", "OriginalRaiseTime", "CurrentValue", "LimitValue", "NativeSourceCanonicalName", "IsConfiguredPlaceholder", "IsMesReportable", "AckTime" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.DebugViewSnapshotDto), global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.DebugViewSnapshotDto.Parser, new[]{ "InstanceUniqueName", "AttributeValues", "AlarmStates", "SnapshotTimestamp", "InstanceNotFound" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.QueryRequest), global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.QueryRequest.Parser, new[]{ "EventLogQuery", "DebugSnapshot", "SubscribeDebugView", "UnsubscribeDebugView" }, new[]{ "Command" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.QueryReply), global::ZB.MOM.WW.ScadaBridge.Communication.Grpc.QueryReply.Parser, new[]{ "EventLogQuery", "DebugViewSnapshot", "UnsubscribeDebugView" }, new[]{ "Reply" }, null, null, null),
@@ -22345,6 +22346,7 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
nativeSourceCanonicalName_ = other.nativeSourceCanonicalName_;
isConfiguredPlaceholder_ = other.isConfiguredPlaceholder_;
isMesReportable_ = other.isMesReportable_;
+ ackTime_ = other.ackTime_ != null ? other.ackTime_.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -22606,6 +22608,23 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
}
}
+ /// Field number for the "ack_time" field.
+ public const int AckTimeFieldNumber = 21;
+ private global::Google.Protobuf.WellKnownTypes.Timestamp ackTime_;
+ ///
+ /// When the alarm was last acknowledged (AlarmStateChanged.AckTime; mirrors
+ /// AlarmStateUpdate.ack_time = 24 on the live stream, Gitea #84). Absent => null,
+ /// including from a pre-#84 site.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
+ public global::Google.Protobuf.WellKnownTypes.Timestamp AckTime {
+ get { return ackTime_; }
+ set {
+ ackTime_ = value;
+ }
+ }
+
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
@@ -22641,6 +22660,7 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
if (NativeSourceCanonicalName != other.NativeSourceCanonicalName) return false;
if (IsConfiguredPlaceholder != other.IsConfiguredPlaceholder) return false;
if (IsMesReportable != other.IsMesReportable) return false;
+ if (!object.Equals(AckTime, other.AckTime)) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -22668,6 +22688,7 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
if (NativeSourceCanonicalName.Length != 0) hash ^= NativeSourceCanonicalName.GetHashCode();
if (IsConfiguredPlaceholder != false) hash ^= IsConfiguredPlaceholder.GetHashCode();
if (IsMesReportable != false) hash ^= IsMesReportable.GetHashCode();
+ if (ackTime_ != null) hash ^= AckTime.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -22766,6 +22787,10 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
output.WriteRawTag(160, 1);
output.WriteBool(IsMesReportable);
}
+ if (ackTime_ != null) {
+ output.WriteRawTag(170, 1);
+ output.WriteMessage(AckTime);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -22856,6 +22881,10 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
output.WriteRawTag(160, 1);
output.WriteBool(IsMesReportable);
}
+ if (ackTime_ != null) {
+ output.WriteRawTag(170, 1);
+ output.WriteMessage(AckTime);
+ }
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
@@ -22926,6 +22955,9 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
if (IsMesReportable != false) {
size += 2 + 1;
}
+ if (ackTime_ != null) {
+ size += 2 + pb::CodedOutputStream.ComputeMessageSize(AckTime);
+ }
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -23007,6 +23039,12 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
if (other.IsMesReportable != false) {
IsMesReportable = other.IsMesReportable;
}
+ if (other.ackTime_ != null) {
+ if (ackTime_ == null) {
+ AckTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
+ }
+ AckTime.MergeFrom(other.AckTime);
+ }
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -23115,6 +23153,13 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
IsMesReportable = input.ReadBool();
break;
}
+ case 170: {
+ if (ackTime_ == null) {
+ AckTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
+ }
+ input.ReadMessage(AckTime);
+ break;
+ }
}
}
#endif
@@ -23223,6 +23268,13 @@ namespace ZB.MOM.WW.ScadaBridge.Communication.Grpc {
IsMesReportable = input.ReadBool();
break;
}
+ case 170: {
+ if (ackTime_ == null) {
+ AckTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
+ }
+ input.ReadMessage(AckTime);
+ break;
+ }
}
}
}
diff --git a/tests/ZB.MOM.WW.ScadaBridge.Communication.Tests/SiteCommandSamples.cs b/tests/ZB.MOM.WW.ScadaBridge.Communication.Tests/SiteCommandSamples.cs
index c081dd75..3e003b04 100644
--- a/tests/ZB.MOM.WW.ScadaBridge.Communication.Tests/SiteCommandSamples.cs
+++ b/tests/ZB.MOM.WW.ScadaBridge.Communication.Tests/SiteCommandSamples.cs
@@ -290,7 +290,11 @@ internal static class SiteCommandSamples
IsMesReportable = true
};
- /// A mirrored native alarm: every native enrichment field populated, Condition explicit.
+ ///
+ /// A mirrored native alarm: every native enrichment field populated, Condition explicit.
+ /// Carries an ack time so the golden pins DebugAlarmStateDto field 21 (Gitea #84); the
+ /// computed sample leaves it null, pinning the absent-means-null decode.
+ ///
private static AlarmStateChanged NativeAlarm() =>
new("Site1.Pump1", "Tank01.Level.HiHi", AlarmState.Active, 850, T2)
{
@@ -304,6 +308,7 @@ internal static class SiteCommandSamples
OperatorUser = "multi-role",
OperatorComment = "ack'd at panel",
OriginalRaiseTime = T1,
+ AckTime = T2,
CurrentValue = "91.2",
LimitValue = "90.0",
NativeSourceCanonicalName = "Tank01.TankAlarms",