@kusinta/iot-schema 0.2.0-beta.51 → 0.2.0-beta.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kusinta/iot-schema",
3
- "version": "0.2.0-beta.51",
3
+ "version": "0.2.0-beta.53",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -856,6 +856,205 @@ export declare type RoomHistory = Message<"kusinta.iot.climate.v1.RoomHistory">
856
856
  */
857
857
  export declare const RoomHistorySchema: GenMessage<RoomHistory>;
858
858
 
859
+ /**
860
+ * One bucket of a heat source's history (PlantHistory), of the length PlantHistory.resolution
861
+ * names, from its plant's readings (device.v1.HeatSourceReadings, read from
862
+ * heating.v1.HeatingPlant.readings_device_id while that device is bound to it). Every reading
863
+ * is optional: absent means nothing fresh was known for that bucket, never zero.
864
+ *
865
+ * A mean or a share is weighted by time: each reading counts for as long as it held within the
866
+ * bucket, from its report until the next, carried forward no longer than a reading stays fresh
867
+ * (45 minutes after the time it was known current, device.v1.PropertyUpdate.timestamp); a
868
+ * bucket whose only reading has gone stale knows nothing of it. An hour is made of its quarter
869
+ * hours as RoomHistorySample's are: a mean of the quarter hours' means, a sum of their sums, and
870
+ * for a last value the last one known among its quarter hours.
871
+ *
872
+ * @generated from message kusinta.iot.climate.v1.PlantHistorySample
873
+ */
874
+ export declare type PlantHistorySample = Message<"kusinta.iot.climate.v1.PlantHistorySample"> & {
875
+ /**
876
+ * The start of the bucket.
877
+ *
878
+ * @generated from field: google.protobuf.Timestamp at = 1;
879
+ */
880
+ at?: Timestamp | undefined;
881
+
882
+ /**
883
+ * Means over the bucket, in centidegrees, of the readings of the same names.
884
+ *
885
+ * @generated from field: optional sint32 outdoor_centidegrees = 2;
886
+ */
887
+ outdoorCentidegrees?: number | undefined;
888
+
889
+ /**
890
+ * @generated from field: optional sint32 supply_centidegrees = 3;
891
+ */
892
+ supplyCentidegrees?: number | undefined;
893
+
894
+ /**
895
+ * @generated from field: optional sint32 return_centidegrees = 4;
896
+ */
897
+ returnCentidegrees?: number | undefined;
898
+
899
+ /**
900
+ * @generated from field: optional sint32 calculated_supply_centidegrees = 5;
901
+ */
902
+ calculatedSupplyCentidegrees?: number | undefined;
903
+
904
+ /**
905
+ * @generated from field: optional sint32 hot_water_top_centidegrees = 6;
906
+ */
907
+ hotWaterTopCentidegrees?: number | undefined;
908
+
909
+ /**
910
+ * The lowest and highest outdoor reading held within the bucket, in centidegrees. An hour:
911
+ * the lowest and highest of its quarter hours'.
912
+ *
913
+ * @generated from field: optional sint32 outdoor_min_centidegrees = 7;
914
+ */
915
+ outdoorMinCentidegrees?: number | undefined;
916
+
917
+ /**
918
+ * @generated from field: optional sint32 outdoor_max_centidegrees = 8;
919
+ */
920
+ outdoorMaxCentidegrees?: number | undefined;
921
+
922
+ /**
923
+ * The last degree-minutes reading held in the bucket.
924
+ *
925
+ * @generated from field: optional sint32 degree_minutes = 9;
926
+ */
927
+ degreeMinutes?: number | undefined;
928
+
929
+ /**
930
+ * The mean power of the internal add-on heat over the bucket, in watts.
931
+ *
932
+ * @generated from field: optional uint32 add_on_heat_watts = 10;
933
+ */
934
+ addOnHeatWatts?: number | undefined;
935
+
936
+ /**
937
+ * Shares of the bucket, in thousandths, during which the heat source reported producing
938
+ * space heating, producing hot water, producing nothing (device.v1.HeatSourceProduction), its
939
+ * compressor running, and its compressor blocked (device.v1.CompressorState). Each over the
940
+ * part of the bucket the reading was known for; absent where it was never known.
941
+ *
942
+ * @generated from field: optional uint32 space_heating_permille = 11;
943
+ */
944
+ spaceHeatingPermille?: number | undefined;
945
+
946
+ /**
947
+ * @generated from field: optional uint32 hot_water_permille = 12;
948
+ */
949
+ hotWaterPermille?: number | undefined;
950
+
951
+ /**
952
+ * @generated from field: optional uint32 producing_nothing_permille = 13;
953
+ */
954
+ producingNothingPermille?: number | undefined;
955
+
956
+ /**
957
+ * @generated from field: optional uint32 compressor_running_permille = 14;
958
+ */
959
+ compressorRunningPermille?: number | undefined;
960
+
961
+ /**
962
+ * @generated from field: optional uint32 compressor_blocked_permille = 15;
963
+ */
964
+ compressorBlockedPermille?: number | undefined;
965
+
966
+ /**
967
+ * How many times an alarm began (alarm_active turning true) within the bucket.
968
+ *
969
+ * @generated from field: optional uint32 alarms_begun = 16;
970
+ */
971
+ alarmsBegun?: number | undefined;
972
+
973
+ /**
974
+ * The energy counter of the plant's meter (heating.v1.HeatingPlant.meter) as last read in the
975
+ * bucket, imported, in milliwatt-hours: with the heat delivered, what a coefficient of
976
+ * performance is worked out from. Absent where the plant binds no meter, or where the meter was
977
+ * not read in the bucket.
978
+ *
979
+ * @generated from field: optional uint64 meter_imported_mwh = 17;
980
+ */
981
+ meterImportedMwh?: bigint | undefined;
982
+
983
+ /**
984
+ * The vendor's code (device.v1.HeatSourceReadings.alarm_code) of the last alarm that began in
985
+ * the bucket. Absent where none began, or where the heat source reports no code. Read only as
986
+ * the bucket is: never given to service, who are told of an alarm as a fault alone
987
+ * (device.v1.HeatSourceReadings).
988
+ *
989
+ * @generated from field: optional uint32 last_alarm_code = 18;
990
+ */
991
+ lastAlarmCode?: number | undefined;
992
+ };
993
+
994
+ /**
995
+ * Describes the message kusinta.iot.climate.v1.PlantHistorySample.
996
+ * Use `create(PlantHistorySampleSchema)` to create a new message.
997
+ */
998
+ export declare const PlantHistorySampleSchema: GenMessage<PlantHistorySample>;
999
+
1000
+ /**
1001
+ * A heat source's history at one resolution, in reply to webrtc.v1.GetPlantHistory, read as
1002
+ * RoomHistory is: the same half-open range, kept_from, covered_from and covered_to, the same
1003
+ * cap and paging.
1004
+ *
1005
+ * Whose it is is fixed when each bucket is made, by where the plant was then: a plant in a
1006
+ * home is its household's, and its buckets are read by that home's residents only, from the
1007
+ * start of their current residency, and erased with the home's wipe and its household's Clear
1008
+ * history (webrtc.v1 household.proto, WIPE; ClearClimateHistory); a plant outside homes is the
1009
+ * building's, read by the property owner and the gateway administrators. A bucket made while
1010
+ * the plant was in one place is never read as of another, wherever the plant is now.
1011
+ *
1012
+ * Kept, for every plant, a home's as a building's: quarter hours for 180 days and hours for 25
1013
+ * months, so that a year's coefficient of performance can be set beside the year before. The
1014
+ * gateway's records hold no other tier for a plant.
1015
+ *
1016
+ * @generated from message kusinta.iot.climate.v1.PlantHistory
1017
+ */
1018
+ export declare type PlantHistory = Message<"kusinta.iot.climate.v1.PlantHistory"> & {
1019
+ /**
1020
+ * The plant (heating.v1.HeatingPlant.plant_id).
1021
+ *
1022
+ * @generated from field: string plant_id = 1;
1023
+ */
1024
+ plantId: string;
1025
+
1026
+ /**
1027
+ * @generated from field: google.protobuf.Timestamp kept_from = 2;
1028
+ */
1029
+ keptFrom?: Timestamp | undefined;
1030
+
1031
+ /**
1032
+ * @generated from field: repeated kusinta.iot.climate.v1.PlantHistorySample samples = 3;
1033
+ */
1034
+ samples: PlantHistorySample[];
1035
+
1036
+ /**
1037
+ * @generated from field: kusinta.iot.climate.v1.RoomHistoryResolution resolution = 4;
1038
+ */
1039
+ resolution: RoomHistoryResolution;
1040
+
1041
+ /**
1042
+ * @generated from field: google.protobuf.Timestamp covered_from = 5;
1043
+ */
1044
+ coveredFrom?: Timestamp | undefined;
1045
+
1046
+ /**
1047
+ * @generated from field: google.protobuf.Timestamp covered_to = 6;
1048
+ */
1049
+ coveredTo?: Timestamp | undefined;
1050
+ };
1051
+
1052
+ /**
1053
+ * Describes the message kusinta.iot.climate.v1.PlantHistory.
1054
+ * Use `create(PlantHistorySchema)` to create a new message.
1055
+ */
1056
+ export declare const PlantHistorySchema: GenMessage<PlantHistory>;
1057
+
859
1058
  /**
860
1059
  * An apartment's climate over one period.
861
1060
  *
@@ -11,7 +11,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
11
11
  * Describes the file kusinta/iot/climate/v1/climate.proto.
12
12
  */
13
13
  export const file_kusinta_iot_climate_v1_climate = /*@__PURE__*/
14
- fileDesc("CiRrdXNpbnRhL2lvdC9jbGltYXRlL3YxL2NsaW1hdGUucHJvdG8SFmt1c2ludGEuaW90LmNsaW1hdGUudjEitQEKDFRhcmdldENoYW5nZRImCgJhdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoEdXNlchgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZEgAEjMKBmRldmljZRgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkSAASEQoHbW92ZV9pbhgEIAEoCEgAQgQKAmJ5IqcLCgtSb29tQ2xpbWF0ZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgCIAEoEUgAiAEBEjsKDXRhcmdldF9jaGFuZ2UYAyABKAsyJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlRhcmdldENoYW5nZRIqCh1lZmZlY3RpdmVfdGFyZ2V0X2NlbnRpZGVncmVlcxgEIAEoEUgBiAEBEhYKDm92ZXJyaWRlc19tb2RlGAUgASgIEjcKDW1vZGVfc3BhY2VfaWQYDSABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEiEKEG1pbl9jZW50aWRlZ3JlZXMYBiABKBFCAhgBSAKIAQESIQoQbWF4X2NlbnRpZGVncmVlcxgHIAEoEUICGAFIA4gBARI1CgpzZW5zb3JfaWRzGAggAygLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSGgoSc2Vuc29yc19jb25maWd1cmVkGA4gASgIEiIKFW1lYXN1cmVkX2NlbnRpZGVncmVlcxgJIAEoEUgEiAEBEjYKC21lYXN1cmVkX2J5GAogASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSPwoJY29uZGl0aW9uGAsgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZUNvbmRpdGlvbhIcChRsb2NrX2RldmljZV9jb250cm9scxgMIAEoCBIWCg5zdGF0ZV93aXRoaGVsZBgPIAEoCBJACgxleHBsYW5hdGlvbnMYECADKAsyKi5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvbhI1ChF0YXJnZXRfaGVsZF91bnRpbBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoIcGxhbm5pbmcYEiABKA4yJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21QbGFubmluZxIqCh1jb21mb3J0X2JhbmRfbG93X2NlbnRpZGVncmVlcxgTIAEoEUgFiAEBEisKHmNvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcxgUIAEoEUgGiAEBEj0KDG91dGVyX2xpbWl0cxgVIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJSb29tTGltaXRzEj0KDGlubmVyX2xpbWl0cxgWIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuSW5uZXJSb29tTGltaXRzEkIKEW91dGVyX2xpbWl0X2NsYW1wGBcgASgLMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0Q2xhbXASSgoVb3V0ZXJfbGltaXRzX2NvdmVyYWdlGBggASgOMisua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0c0NvdmVyYWdlEkEKFm91dGVyX2JvdW5kX2RldmljZV9pZHMYGSADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZEIWChRfdGFyZ2V0X2NlbnRpZGVncmVlc0IgCh5fZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXNCEwoRX21pbl9jZW50aWRlZ3JlZXNCEwoRX21heF9jZW50aWRlZ3JlZXNCGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IgCh5fY29tZm9ydF9iYW5kX2xvd19jZW50aWRlZ3JlZXNCIQofX2NvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcyKAAQoKT3V0ZXJMaW1pdBIUCgxjZW50aWRlZ3JlZXMYASABKBESMAoLc2V0X2J5X3JvbGUYAiABKA4yGy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUm9sZRIqCgZzZXRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIr8CCg9PdXRlclJvb21MaW1pdHMSLwoDbWluGAEgASgLMiIua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0Ei8KA21heBgCIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBI0Cghhd2F5X21pbhgDIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBI6Cg5tb3ZlX2luX3RhcmdldBgEIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBIwCiNtaW5fYWNjZXB0ZWRfdGhyZXNob2xkX2NlbnRpZGVncmVlcxgFIAEoEUgAiAEBQiYKJF9taW5fYWNjZXB0ZWRfdGhyZXNob2xkX2NlbnRpZGVncmVlcyJ5Cg9Jbm5lclJvb21MaW1pdHMSHQoQbWluX2NlbnRpZGVncmVlcxgBIAEoEUgAiAEBEh0KEG1heF9jZW50aWRlZ3JlZXMYAiABKBFIAYgBAUITChFfbWluX2NlbnRpZGVncmVlc0ITChFfbWF4X2NlbnRpZGVncmVlcyKIAQoPT3V0ZXJMaW1pdENsYW1wEjUKBWxpbWl0GAEgASgOMiYua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0S2luZBIjChZ1bmNsYW1wZWRfY2VudGlkZWdyZWVzGAIgASgRSACIAQFCGQoXX3VuY2xhbXBlZF9jZW50aWRlZ3JlZXMiwwEKEkNsaW1hdGVFeHBsYW5hdGlvbhI8CgRraW5kGAEgASgOMi4ua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlRXhwbGFuYXRpb25LaW5kEkIKB3N1YmplY3QYAiABKA4yMS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvblN1YmplY3QSKwoHZW5kc19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAigwMKC0NsaW1hdGVNb2RlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI1CgRraW5kGAIgASgOMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZUtpbmQSIQoUc2V0YmFja19jZW50aWRlZ3JlZXMYAyABKBFIAIgBARItCglzdGFydHNfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KBnNldF9ieRgGIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIyCgl3YXJtX2Zyb20YByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCFwoVX3NldGJhY2tfY2VudGlkZWdyZWVzQgwKCl93YXJtX2Zyb20ieQoPUm9vbUNsaW1hdGVMaXN0EjIKBXJvb21zGAEgAygLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZRIyCgVtb2RlcxgCIAMoCzIjLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZU1vZGUisQMKEVJvb21IaXN0b3J5U2FtcGxlEiYKAmF0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIiChVtZWFzdXJlZF9jZW50aWRlZ3JlZXMYAiABKBFIAIgBARIgChN0YXJnZXRfY2VudGlkZWdyZWVzGAMgASgRSAGIAQESKgodZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXMYBCABKBFIAogBARIgChN2YWx2ZV9vcGVuX3Blcm1pbGxlGAUgASgNSAOIAQESHwoSdmFsdmVfb3Blbl9zZWNvbmRzGAYgASgNSASIAQESIgoVZmxvb3JfaGVhdGluZ19zZWNvbmRzGAcgASgNSAWIAQFCGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IWChRfdGFyZ2V0X2NlbnRpZGVncmVlc0IgCh5fZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXNCFgoUX3ZhbHZlX29wZW5fcGVybWlsbGVCFQoTX3ZhbHZlX29wZW5fc2Vjb25kc0IYChZfZmxvb3JfaGVhdGluZ19zZWNvbmRzItACCgtSb29tSGlzdG9yeRIxCgdyb29tX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBItCglrZXB0X2Zyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKB3NhbXBsZXMYAyADKAsyKS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5U2FtcGxlEkEKCnJlc29sdXRpb24YBCABKA4yLS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5UmVzb2x1dGlvbhIwCgxjb3ZlcmVkX2Zyb20YBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNvdmVyZWRfdG8YBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItQCChFDbGltYXRlUGVyaW9kTWVhbhItCglzdGFydHNfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiIKFW1lYXN1cmVkX2NlbnRpZGVncmVlcxgDIAEoEUgAiAEBEiAKE3RhcmdldF9jZW50aWRlZ3JlZXMYBCABKBFIAYgBARIiChptZWFzdXJlZF9jb3ZlcmFnZV9wZXJtaWxsZRgFIAEoDRIgChh0YXJnZXRfY292ZXJhZ2VfcGVybWlsbGUYBiABKA0SFgoOcm9vbXNfbWVhc3VyZWQYByABKA0SDQoFcm9vbXMYCCABKA1CGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IWChRfdGFyZ2V0X2NlbnRpZGVncmVlcyK+AgoXQXBhcnRtZW50Q2xpbWF0ZVN1bW1hcnkSNgoMYXBhcnRtZW50X2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI8CgZwZXJpb2QYAiABKA4yLC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVTdW1tYXJ5UGVyaW9kEkIKCXdlaWdodGluZxgDIAEoDjIvLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZVN1bW1hcnlXZWlnaHRpbmcSLQoJa2VwdF9mcm9tGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6CgdwZXJpb2RzGAUgAygLMikua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlUGVyaW9kTWVhbirVAgoUUm9vbUNsaW1hdGVDb25kaXRpb24SJgoiUk9PTV9DTElNQVRFX0NPTkRJVElPTl9VTlNQRUNJRklFRBAAEiIKHlJPT01fQ0xJTUFURV9DT05ESVRJT05fSE9MRElORxABEiQKIFJPT01fQ0xJTUFURV9DT05ESVRJT05fTk9fVEFSR0VUEAISJgoiUk9PTV9DTElNQVRFX0NPTkRJVElPTl9TRU5TT1JfTE9TVBADEiYKIlJPT01fQ0xJTUFURV9DT05ESVRJT05fV0lORE9XX09QRU4QBBIlCiFST09NX0NMSU1BVEVfQ09ORElUSU9OX05PX0hFQVRJTkcQBRIuCipST09NX0NMSU1BVEVfQ09ORElUSU9OX0hFQVRJTkdfVU5SRUFDSEFCTEUQBhIkCiBST09NX0NMSU1BVEVfQ09ORElUSU9OX05PX1NFTlNPUhAHKoUBCg5PdXRlckxpbWl0S2luZBIgChxPVVRFUl9MSU1JVF9LSU5EX1VOU1BFQ0lGSUVEEAASGAoUT1VURVJfTElNSVRfS0lORF9NSU4QARIYChRPVVRFUl9MSU1JVF9LSU5EX01BWBACEh0KGU9VVEVSX0xJTUlUX0tJTkRfQVdBWV9NSU4QAyqbAQoTT3V0ZXJMaW1pdHNDb3ZlcmFnZRIlCiFPVVRFUl9MSU1JVFNfQ09WRVJBR0VfVU5TUEVDSUZJRUQQABIeChpPVVRFUl9MSU1JVFNfQ09WRVJBR0VfTk9ORRABEh4KGk9VVEVSX0xJTUlUU19DT1ZFUkFHRV9TT01FEAISHQoZT1VURVJfTElNSVRTX0NPVkVSQUdFX0FMTBADKoYBCgxSb29tUGxhbm5pbmcSHQoZUk9PTV9QTEFOTklOR19VTlNQRUNJRklFRBAAEhkKFVJPT01fUExBTk5JTkdfUExBTk5FRBABEh0KGVJPT01fUExBTk5JTkdfTk9UX1BMQU5ORUQQAhIdChlST09NX1BMQU5OSU5HX1VOQVZBSUxBQkxFEAMqgAQKFkNsaW1hdGVFeHBsYW5hdGlvbktpbmQSKAokQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1VOU1BFQ0lGSUVEEAASJQohQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1BSRV9IRUFUEAESJQohQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX0NPQVNUSU5HEAISJwojQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX1BSSUNFX0hJR0gQAxInCiNDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfUEVBS19HVUFSRBAEEi8KK0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9IT1RfV0FURVJfUFJJT1JJVFkQBRIwCixDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfU0hBUkVEX1BPV0VSX0JVREdFVBAGEjIKLkNMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9ESVNUUklDVF9IRUFUSU5HX1BFQUsQBxIvCitDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfQVRfQ09NRk9SVF9DRUlMSU5HEAgSJwojQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX05PX1JFQURJTkcQCRIrCidDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfT1VUU0lERV9XSU5ET1cQCir3AQoZQ2xpbWF0ZUV4cGxhbmF0aW9uU3ViamVjdBIrCidDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfVU5TUEVDSUZJRUQQABIkCiBDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfUk9PTRABEioKJkNMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9GTE9PUl9aT05FEAISLAooQ0xJTUFURV9FWFBMQU5BVElPTl9TVUJKRUNUX0NPTUZPUlRfTE9BRBADEi0KKUNMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9BRERfT05fSEVBVEVSEAQqbwoPQ2xpbWF0ZU1vZGVLaW5kEiEKHUNMSU1BVEVfTU9ERV9LSU5EX1VOU1BFQ0lGSUVEEAASGgoWQ0xJTUFURV9NT0RFX0tJTkRfQVdBWRABEh0KGUNMSU1BVEVfTU9ERV9LSU5EX0hPTElEQVkQAiqMAQoVUm9vbUhpc3RvcnlSZXNvbHV0aW9uEicKI1JPT01fSElTVE9SWV9SRVNPTFVUSU9OX1VOU1BFQ0lGSUVEEAASKAokUk9PTV9ISVNUT1JZX1JFU09MVVRJT05fUVVBUlRFUl9IT1VSEAESIAocUk9PTV9ISVNUT1JZX1JFU09MVVRJT05fSE9VUhACKqEBChRDbGltYXRlU3VtbWFyeVBlcmlvZBImCiJDTElNQVRFX1NVTU1BUllfUEVSSU9EX1VOU1BFQ0lGSUVEEAASHgoaQ0xJTUFURV9TVU1NQVJZX1BFUklPRF9EQVkQARIfChtDTElNQVRFX1NVTU1BUllfUEVSSU9EX1dFRUsQAhIgChxDTElNQVRFX1NVTU1BUllfUEVSSU9EX01PTlRIEAMqbwoXQ2xpbWF0ZVN1bW1hcnlXZWlnaHRpbmcSKQolQ0xJTUFURV9TVU1NQVJZX1dFSUdIVElOR19VTlNQRUNJRklFRBAAEikKJUNMSU1BVEVfU1VNTUFSWV9XRUlHSFRJTkdfUk9PTVNfRVFVQUwQAUICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_identity_v1_identity]);
14
+ fileDesc("CiRrdXNpbnRhL2lvdC9jbGltYXRlL3YxL2NsaW1hdGUucHJvdG8SFmt1c2ludGEuaW90LmNsaW1hdGUudjEitQEKDFRhcmdldENoYW5nZRImCgJhdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoEdXNlchgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZEgAEjMKBmRldmljZRgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkSAASEQoHbW92ZV9pbhgEIAEoCEgAQgQKAmJ5IqcLCgtSb29tQ2xpbWF0ZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgCIAEoEUgAiAEBEjsKDXRhcmdldF9jaGFuZ2UYAyABKAsyJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlRhcmdldENoYW5nZRIqCh1lZmZlY3RpdmVfdGFyZ2V0X2NlbnRpZGVncmVlcxgEIAEoEUgBiAEBEhYKDm92ZXJyaWRlc19tb2RlGAUgASgIEjcKDW1vZGVfc3BhY2VfaWQYDSABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEiEKEG1pbl9jZW50aWRlZ3JlZXMYBiABKBFCAhgBSAKIAQESIQoQbWF4X2NlbnRpZGVncmVlcxgHIAEoEUICGAFIA4gBARI1CgpzZW5zb3JfaWRzGAggAygLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSGgoSc2Vuc29yc19jb25maWd1cmVkGA4gASgIEiIKFW1lYXN1cmVkX2NlbnRpZGVncmVlcxgJIAEoEUgEiAEBEjYKC21lYXN1cmVkX2J5GAogASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSPwoJY29uZGl0aW9uGAsgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZUNvbmRpdGlvbhIcChRsb2NrX2RldmljZV9jb250cm9scxgMIAEoCBIWCg5zdGF0ZV93aXRoaGVsZBgPIAEoCBJACgxleHBsYW5hdGlvbnMYECADKAsyKi5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvbhI1ChF0YXJnZXRfaGVsZF91bnRpbBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoIcGxhbm5pbmcYEiABKA4yJC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21QbGFubmluZxIqCh1jb21mb3J0X2JhbmRfbG93X2NlbnRpZGVncmVlcxgTIAEoEUgFiAEBEisKHmNvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcxgUIAEoEUgGiAEBEj0KDG91dGVyX2xpbWl0cxgVIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJSb29tTGltaXRzEj0KDGlubmVyX2xpbWl0cxgWIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuSW5uZXJSb29tTGltaXRzEkIKEW91dGVyX2xpbWl0X2NsYW1wGBcgASgLMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0Q2xhbXASSgoVb3V0ZXJfbGltaXRzX2NvdmVyYWdlGBggASgOMisua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0c0NvdmVyYWdlEkEKFm91dGVyX2JvdW5kX2RldmljZV9pZHMYGSADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZEIWChRfdGFyZ2V0X2NlbnRpZGVncmVlc0IgCh5fZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXNCEwoRX21pbl9jZW50aWRlZ3JlZXNCEwoRX21heF9jZW50aWRlZ3JlZXNCGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IgCh5fY29tZm9ydF9iYW5kX2xvd19jZW50aWRlZ3JlZXNCIQofX2NvbWZvcnRfYmFuZF9oaWdoX2NlbnRpZGVncmVlcyKAAQoKT3V0ZXJMaW1pdBIUCgxjZW50aWRlZ3JlZXMYASABKBESMAoLc2V0X2J5X3JvbGUYAiABKA4yGy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUm9sZRIqCgZzZXRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIr8CCg9PdXRlclJvb21MaW1pdHMSLwoDbWluGAEgASgLMiIua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0Ei8KA21heBgCIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBI0Cghhd2F5X21pbhgDIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBI6Cg5tb3ZlX2luX3RhcmdldBgEIAEoCzIiLmt1c2ludGEuaW90LmNsaW1hdGUudjEuT3V0ZXJMaW1pdBIwCiNtaW5fYWNjZXB0ZWRfdGhyZXNob2xkX2NlbnRpZGVncmVlcxgFIAEoEUgAiAEBQiYKJF9taW5fYWNjZXB0ZWRfdGhyZXNob2xkX2NlbnRpZGVncmVlcyJ5Cg9Jbm5lclJvb21MaW1pdHMSHQoQbWluX2NlbnRpZGVncmVlcxgBIAEoEUgAiAEBEh0KEG1heF9jZW50aWRlZ3JlZXMYAiABKBFIAYgBAUITChFfbWluX2NlbnRpZGVncmVlc0ITChFfbWF4X2NlbnRpZGVncmVlcyKIAQoPT3V0ZXJMaW1pdENsYW1wEjUKBWxpbWl0GAEgASgOMiYua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5PdXRlckxpbWl0S2luZBIjChZ1bmNsYW1wZWRfY2VudGlkZWdyZWVzGAIgASgRSACIAQFCGQoXX3VuY2xhbXBlZF9jZW50aWRlZ3JlZXMiwwEKEkNsaW1hdGVFeHBsYW5hdGlvbhI8CgRraW5kGAEgASgOMi4ua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlRXhwbGFuYXRpb25LaW5kEkIKB3N1YmplY3QYAiABKA4yMS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVFeHBsYW5hdGlvblN1YmplY3QSKwoHZW5kc19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAigwMKC0NsaW1hdGVNb2RlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI1CgRraW5kGAIgASgOMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZUtpbmQSIQoUc2V0YmFja19jZW50aWRlZ3JlZXMYAyABKBFIAIgBARItCglzdGFydHNfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KBnNldF9ieRgGIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIyCgl3YXJtX2Zyb20YByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCFwoVX3NldGJhY2tfY2VudGlkZWdyZWVzQgwKCl93YXJtX2Zyb20ieQoPUm9vbUNsaW1hdGVMaXN0EjIKBXJvb21zGAEgAygLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tQ2xpbWF0ZRIyCgVtb2RlcxgCIAMoCzIjLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZU1vZGUisQMKEVJvb21IaXN0b3J5U2FtcGxlEiYKAmF0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIiChVtZWFzdXJlZF9jZW50aWRlZ3JlZXMYAiABKBFIAIgBARIgChN0YXJnZXRfY2VudGlkZWdyZWVzGAMgASgRSAGIAQESKgodZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXMYBCABKBFIAogBARIgChN2YWx2ZV9vcGVuX3Blcm1pbGxlGAUgASgNSAOIAQESHwoSdmFsdmVfb3Blbl9zZWNvbmRzGAYgASgNSASIAQESIgoVZmxvb3JfaGVhdGluZ19zZWNvbmRzGAcgASgNSAWIAQFCGAoWX21lYXN1cmVkX2NlbnRpZGVncmVlc0IWChRfdGFyZ2V0X2NlbnRpZGVncmVlc0IgCh5fZWZmZWN0aXZlX3RhcmdldF9jZW50aWRlZ3JlZXNCFgoUX3ZhbHZlX29wZW5fcGVybWlsbGVCFQoTX3ZhbHZlX29wZW5fc2Vjb25kc0IYChZfZmxvb3JfaGVhdGluZ19zZWNvbmRzItACCgtSb29tSGlzdG9yeRIxCgdyb29tX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBItCglrZXB0X2Zyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKB3NhbXBsZXMYAyADKAsyKS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5U2FtcGxlEkEKCnJlc29sdXRpb24YBCABKA4yLS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5UmVzb2x1dGlvbhIwCgxjb3ZlcmVkX2Zyb20YBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNvdmVyZWRfdG8YBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItwIChJQbGFudEhpc3RvcnlTYW1wbGUSJgoCYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiEKFG91dGRvb3JfY2VudGlkZWdyZWVzGAIgASgRSACIAQESIAoTc3VwcGx5X2NlbnRpZGVncmVlcxgDIAEoEUgBiAEBEiAKE3JldHVybl9jZW50aWRlZ3JlZXMYBCABKBFIAogBARIrCh5jYWxjdWxhdGVkX3N1cHBseV9jZW50aWRlZ3JlZXMYBSABKBFIA4gBARInChpob3Rfd2F0ZXJfdG9wX2NlbnRpZGVncmVlcxgGIAEoEUgEiAEBEiUKGG91dGRvb3JfbWluX2NlbnRpZGVncmVlcxgHIAEoEUgFiAEBEiUKGG91dGRvb3JfbWF4X2NlbnRpZGVncmVlcxgIIAEoEUgGiAEBEhsKDmRlZ3JlZV9taW51dGVzGAkgASgRSAeIAQESHgoRYWRkX29uX2hlYXRfd2F0dHMYCiABKA1ICIgBARIjChZzcGFjZV9oZWF0aW5nX3Blcm1pbGxlGAsgASgNSAmIAQESHwoSaG90X3dhdGVyX3Blcm1pbGxlGAwgASgNSAqIAQESJwoacHJvZHVjaW5nX25vdGhpbmdfcGVybWlsbGUYDSABKA1IC4gBARIoChtjb21wcmVzc29yX3J1bm5pbmdfcGVybWlsbGUYDiABKA1IDIgBARIoChtjb21wcmVzc29yX2Jsb2NrZWRfcGVybWlsbGUYDyABKA1IDYgBARIZCgxhbGFybXNfYmVndW4YECABKA1IDogBARIfChJtZXRlcl9pbXBvcnRlZF9td2gYESABKARID4gBARIcCg9sYXN0X2FsYXJtX2NvZGUYEiABKA1IEIgBAUIXChVfb3V0ZG9vcl9jZW50aWRlZ3JlZXNCFgoUX3N1cHBseV9jZW50aWRlZ3JlZXNCFgoUX3JldHVybl9jZW50aWRlZ3JlZXNCIQofX2NhbGN1bGF0ZWRfc3VwcGx5X2NlbnRpZGVncmVlc0IdChtfaG90X3dhdGVyX3RvcF9jZW50aWRlZ3JlZXNCGwoZX291dGRvb3JfbWluX2NlbnRpZGVncmVlc0IbChlfb3V0ZG9vcl9tYXhfY2VudGlkZWdyZWVzQhEKD19kZWdyZWVfbWludXRlc0IUChJfYWRkX29uX2hlYXRfd2F0dHNCGQoXX3NwYWNlX2hlYXRpbmdfcGVybWlsbGVCFQoTX2hvdF93YXRlcl9wZXJtaWxsZUIdChtfcHJvZHVjaW5nX25vdGhpbmdfcGVybWlsbGVCHgocX2NvbXByZXNzb3JfcnVubmluZ19wZXJtaWxsZUIeChxfY29tcHJlc3Nvcl9ibG9ja2VkX3Blcm1pbGxlQg8KDV9hbGFybXNfYmVndW5CFQoTX21ldGVyX2ltcG9ydGVkX213aEISChBfbGFzdF9hbGFybV9jb2RlIrECCgxQbGFudEhpc3RvcnkSEAoIcGxhbnRfaWQYASABKAkSLQoJa2VwdF9mcm9tGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI7CgdzYW1wbGVzGAMgAygLMioua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5QbGFudEhpc3RvcnlTYW1wbGUSQQoKcmVzb2x1dGlvbhgEIAEoDjItLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUhpc3RvcnlSZXNvbHV0aW9uEjAKDGNvdmVyZWRfZnJvbRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKY292ZXJlZF90bxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1AIKEUNsaW1hdGVQZXJpb2RNZWFuEi0KCXN0YXJ0c19hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoHZW5kc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIgoVbWVhc3VyZWRfY2VudGlkZWdyZWVzGAMgASgRSACIAQESIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgEIAEoEUgBiAEBEiIKGm1lYXN1cmVkX2NvdmVyYWdlX3Blcm1pbGxlGAUgASgNEiAKGHRhcmdldF9jb3ZlcmFnZV9wZXJtaWxsZRgGIAEoDRIWCg5yb29tc19tZWFzdXJlZBgHIAEoDRINCgVyb29tcxgIIAEoDUIYChZfbWVhc3VyZWRfY2VudGlkZWdyZWVzQhYKFF90YXJnZXRfY2VudGlkZWdyZWVzIr4CChdBcGFydG1lbnRDbGltYXRlU3VtbWFyeRI2CgxhcGFydG1lbnRfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjwKBnBlcmlvZBgCIAEoDjIsLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZVN1bW1hcnlQZXJpb2QSQgoJd2VpZ2h0aW5nGAMgASgOMi8ua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlU3VtbWFyeVdlaWdodGluZxItCglrZXB0X2Zyb20YBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKB3BlcmlvZHMYBSADKAsyKS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVQZXJpb2RNZWFuKtUCChRSb29tQ2xpbWF0ZUNvbmRpdGlvbhImCiJST09NX0NMSU1BVEVfQ09ORElUSU9OX1VOU1BFQ0lGSUVEEAASIgoeUk9PTV9DTElNQVRFX0NPTkRJVElPTl9IT0xESU5HEAESJAogUk9PTV9DTElNQVRFX0NPTkRJVElPTl9OT19UQVJHRVQQAhImCiJST09NX0NMSU1BVEVfQ09ORElUSU9OX1NFTlNPUl9MT1NUEAMSJgoiUk9PTV9DTElNQVRFX0NPTkRJVElPTl9XSU5ET1dfT1BFThAEEiUKIVJPT01fQ0xJTUFURV9DT05ESVRJT05fTk9fSEVBVElORxAFEi4KKlJPT01fQ0xJTUFURV9DT05ESVRJT05fSEVBVElOR19VTlJFQUNIQUJMRRAGEiQKIFJPT01fQ0xJTUFURV9DT05ESVRJT05fTk9fU0VOU09SEAcqhQEKDk91dGVyTGltaXRLaW5kEiAKHE9VVEVSX0xJTUlUX0tJTkRfVU5TUEVDSUZJRUQQABIYChRPVVRFUl9MSU1JVF9LSU5EX01JThABEhgKFE9VVEVSX0xJTUlUX0tJTkRfTUFYEAISHQoZT1VURVJfTElNSVRfS0lORF9BV0FZX01JThADKpsBChNPdXRlckxpbWl0c0NvdmVyYWdlEiUKIU9VVEVSX0xJTUlUU19DT1ZFUkFHRV9VTlNQRUNJRklFRBAAEh4KGk9VVEVSX0xJTUlUU19DT1ZFUkFHRV9OT05FEAESHgoaT1VURVJfTElNSVRTX0NPVkVSQUdFX1NPTUUQAhIdChlPVVRFUl9MSU1JVFNfQ09WRVJBR0VfQUxMEAMqhgEKDFJvb21QbGFubmluZxIdChlST09NX1BMQU5OSU5HX1VOU1BFQ0lGSUVEEAASGQoVUk9PTV9QTEFOTklOR19QTEFOTkVEEAESHQoZUk9PTV9QTEFOTklOR19OT1RfUExBTk5FRBACEh0KGVJPT01fUExBTk5JTkdfVU5BVkFJTEFCTEUQAyqABAoWQ2xpbWF0ZUV4cGxhbmF0aW9uS2luZBIoCiRDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfVU5TUEVDSUZJRUQQABIlCiFDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfUFJFX0hFQVQQARIlCiFDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfQ09BU1RJTkcQAhInCiNDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfUFJJQ0VfSElHSBADEicKI0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9QRUFLX0dVQVJEEAQSLworQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX0hPVF9XQVRFUl9QUklPUklUWRAFEjAKLENMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9TSEFSRURfUE9XRVJfQlVER0VUEAYSMgouQ0xJTUFURV9FWFBMQU5BVElPTl9LSU5EX0RJU1RSSUNUX0hFQVRJTkdfUEVBSxAHEi8KK0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9BVF9DT01GT1JUX0NFSUxJTkcQCBInCiNDTElNQVRFX0VYUExBTkFUSU9OX0tJTkRfTk9fUkVBRElORxAJEisKJ0NMSU1BVEVfRVhQTEFOQVRJT05fS0lORF9PVVRTSURFX1dJTkRPVxAKKvcBChlDbGltYXRlRXhwbGFuYXRpb25TdWJqZWN0EisKJ0NMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9VTlNQRUNJRklFRBAAEiQKIENMSU1BVEVfRVhQTEFOQVRJT05fU1VCSkVDVF9ST09NEAESKgomQ0xJTUFURV9FWFBMQU5BVElPTl9TVUJKRUNUX0ZMT09SX1pPTkUQAhIsCihDTElNQVRFX0VYUExBTkFUSU9OX1NVQkpFQ1RfQ09NRk9SVF9MT0FEEAMSLQopQ0xJTUFURV9FWFBMQU5BVElPTl9TVUJKRUNUX0FERF9PTl9IRUFURVIQBCpvCg9DbGltYXRlTW9kZUtpbmQSIQodQ0xJTUFURV9NT0RFX0tJTkRfVU5TUEVDSUZJRUQQABIaChZDTElNQVRFX01PREVfS0lORF9BV0FZEAESHQoZQ0xJTUFURV9NT0RFX0tJTkRfSE9MSURBWRACKowBChVSb29tSGlzdG9yeVJlc29sdXRpb24SJwojUk9PTV9ISVNUT1JZX1JFU09MVVRJT05fVU5TUEVDSUZJRUQQABIoCiRST09NX0hJU1RPUllfUkVTT0xVVElPTl9RVUFSVEVSX0hPVVIQARIgChxST09NX0hJU1RPUllfUkVTT0xVVElPTl9IT1VSEAIqoQEKFENsaW1hdGVTdW1tYXJ5UGVyaW9kEiYKIkNMSU1BVEVfU1VNTUFSWV9QRVJJT0RfVU5TUEVDSUZJRUQQABIeChpDTElNQVRFX1NVTU1BUllfUEVSSU9EX0RBWRABEh8KG0NMSU1BVEVfU1VNTUFSWV9QRVJJT0RfV0VFSxACEiAKHENMSU1BVEVfU1VNTUFSWV9QRVJJT0RfTU9OVEgQAypvChdDbGltYXRlU3VtbWFyeVdlaWdodGluZxIpCiVDTElNQVRFX1NVTU1BUllfV0VJR0hUSU5HX1VOU1BFQ0lGSUVEEAASKQolQ0xJTUFURV9TVU1NQVJZX1dFSUdIVElOR19ST09NU19FUVVBTBABQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_identity_v1_identity]);
15
15
 
16
16
  /**
17
17
  * Describes the message kusinta.iot.climate.v1.TargetChange.
@@ -90,19 +90,33 @@ export const RoomHistorySampleSchema = /*@__PURE__*/
90
90
  export const RoomHistorySchema = /*@__PURE__*/
91
91
  messageDesc(file_kusinta_iot_climate_v1_climate, 10);
92
92
 
93
+ /**
94
+ * Describes the message kusinta.iot.climate.v1.PlantHistorySample.
95
+ * Use `create(PlantHistorySampleSchema)` to create a new message.
96
+ */
97
+ export const PlantHistorySampleSchema = /*@__PURE__*/
98
+ messageDesc(file_kusinta_iot_climate_v1_climate, 11);
99
+
100
+ /**
101
+ * Describes the message kusinta.iot.climate.v1.PlantHistory.
102
+ * Use `create(PlantHistorySchema)` to create a new message.
103
+ */
104
+ export const PlantHistorySchema = /*@__PURE__*/
105
+ messageDesc(file_kusinta_iot_climate_v1_climate, 12);
106
+
93
107
  /**
94
108
  * Describes the message kusinta.iot.climate.v1.ClimatePeriodMean.
95
109
  * Use `create(ClimatePeriodMeanSchema)` to create a new message.
96
110
  */
97
111
  export const ClimatePeriodMeanSchema = /*@__PURE__*/
98
- messageDesc(file_kusinta_iot_climate_v1_climate, 11);
112
+ messageDesc(file_kusinta_iot_climate_v1_climate, 13);
99
113
 
100
114
  /**
101
115
  * Describes the message kusinta.iot.climate.v1.ApartmentClimateSummary.
102
116
  * Use `create(ApartmentClimateSummarySchema)` to create a new message.
103
117
  */
104
118
  export const ApartmentClimateSummarySchema = /*@__PURE__*/
105
- messageDesc(file_kusinta_iot_climate_v1_climate, 12);
119
+ messageDesc(file_kusinta_iot_climate_v1_climate, 14);
106
120
 
107
121
  /**
108
122
  * Describes the enum kusinta.iot.climate.v1.RoomClimateCondition.
@@ -488,6 +488,22 @@ export declare type CommissioningTest = Message<"kusinta.iot.commissioning.v1.Co
488
488
  * @generated from field: google.protobuf.Timestamp conclude_by = 14;
489
489
  */
490
490
  concludeBy?: Timestamp | undefined;
491
+
492
+ /**
493
+ * What the heat source reported while an OUTPUT_LEASE test held one of its plant's inputs
494
+ * (heating.v1.HeatPumpControl: an SG Ready input or the add-on heat block), from the
495
+ * plant's bound readings (device.v1.HeatSourceReadings) that arrived between the test's
496
+ * first write and its end, in the order they arrived. Evidence for the person judging the
497
+ * installation, never part of the verdict: the test passes on the output's own state. Empty
498
+ * where none arrived, as a heat source read by polling may report less often than a test
499
+ * lasts. A heat source's readings with their times, which in a home are the household's
500
+ * (never given to service): told only to whoever is shown the test's provenance.by — outside
501
+ * homes, the home's residents, and whoever ran the test — and erased with the home's wipe
502
+ * and with a wipe of people, while the verdict stays.
503
+ *
504
+ * @generated from field: repeated kusinta.iot.commissioning.v1.TestEvidence evidence = 15;
505
+ */
506
+ evidence: TestEvidence[];
491
507
  };
492
508
 
493
509
  /**
@@ -496,6 +512,42 @@ export declare type CommissioningTest = Message<"kusinta.iot.commissioning.v1.Co
496
512
  */
497
513
  export declare const CommissioningTestSchema: GenMessage<CommissioningTest>;
498
514
 
515
+ /**
516
+ * One reading a heat source reported during a test (CommissioningTest.evidence).
517
+ *
518
+ * @generated from message kusinta.iot.commissioning.v1.TestEvidence
519
+ */
520
+ export declare type TestEvidence = Message<"kusinta.iot.commissioning.v1.TestEvidence"> & {
521
+ /**
522
+ * The reading, by its field name in device.v1.HeatSourceReadings, e.g. "compressor_state",
523
+ * "add_on_heat_watts".
524
+ *
525
+ * @generated from field: string reading = 1;
526
+ */
527
+ reading: string;
528
+
529
+ /**
530
+ * Its value, in that field's units; an enum-valued reading by its number, and a yes-or-no
531
+ * reading (e.g. "alarm_active") as 1 for true, 0 for false.
532
+ *
533
+ * @generated from field: sint64 value = 2;
534
+ */
535
+ value: bigint;
536
+
537
+ /**
538
+ * When the heat source reported it.
539
+ *
540
+ * @generated from field: google.protobuf.Timestamp observed_at = 3;
541
+ */
542
+ observedAt?: Timestamp | undefined;
543
+ };
544
+
545
+ /**
546
+ * Describes the message kusinta.iot.commissioning.v1.TestEvidence.
547
+ * Use `create(TestEvidenceSchema)` to create a new message.
548
+ */
549
+ export declare const TestEvidenceSchema: GenMessage<TestEvidence>;
550
+
499
551
  /**
500
552
  * A space's commissioning, in reply to ListCommissioning.
501
553
  *
@@ -11,7 +11,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
11
11
  * Describes the file kusinta/iot/commissioning/v1/commissioning.proto.
12
12
  */
13
13
  export const file_kusinta_iot_commissioning_v1_commissioning = /*@__PURE__*/
14
- fileDesc("CjBrdXNpbnRhL2lvdC9jb21taXNzaW9uaW5nL3YxL2NvbW1pc3Npb25pbmcucHJvdG8SHGt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEizwEKClByb3ZlbmFuY2USMgoFcGFydHkYASABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjgKCGV2aWRlbmNlGAIgASgOMiYua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5FdmlkZW5jZRImCgJhdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoCYnkYBCABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQiLgoKQmluZGluZ1JlZhIRCglyZWNvcmRfaWQYASABKAkSDQoFZmllbGQYAiABKAkiMwoLVGVtcGxhdGVSZWYSEwoLdGVtcGxhdGVfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDSL0BAoRQ29tbWlzc2lvbmluZ0ZhY3QSDwoHZmFjdF9pZBgBIAEoCRIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEQoJcmVjb3JkX2lkGAMgASgJEgsKA2tleRgEIAEoCRI2CgV2YWx1ZRgFIAEoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5BdHRyaWJ1dGVWYWx1ZUgAEhEKB3Vua25vd24YBiABKAhIABI1CghhbnN3ZXJlchgHIAEoDjIjLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUGFydHkSOgoJbmVjZXNzaXR5GAggASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWNlc3NpdHkSNgoHZmVhdHVyZRgJIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI8Cgpwcm92ZW5hbmNlGAogASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlEhAKCHJldmlzaW9uGA0gASgEEkAKDWRldmlhdGVzX2Zyb20YDyABKAsyKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlUmVmEjYKBXRvcGljGBAgASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5GYWN0VG9waWNCCAoGYW5zd2VySgQICxANSgQIDhAPUgVzY29wZVIQdGVtcGxhdGVfdmVyc2lvblILdGVtcGxhdGVfaWQiegoMVGVtcGxhdGVGYWN0EgsKA2tleRgBIAEoCRIVCg1zdWJqZWN0X2xhYmVsGAIgASgJEjQKBXZhbHVlGAMgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlSgQIBBAFUgpwcm92ZW5hbmNlIvMBCg1Ib3VzZVRlbXBsYXRlEhMKC3RlbXBsYXRlX2lkGAEgASgJEjUKC2J1aWxkaW5nX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIMCgRuYW1lGAMgASgJEg8KB3ZlcnNpb24YBCABKA0SOQoFZmFjdHMYBSADKAsyKi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlRmFjdBI8Cgpwcm92ZW5hbmNlGAYgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlItsCCgROZWVkEhIKCGZhY3Rfa2V5GAEgASgJSAASNgoEdGVzdBgCIAEoDjImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEtpbmRIABIyCghzcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoIYW5zd2VyZXIYBSABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjkKB2JpbmRpbmcYByABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSOwoKZmFjdF90b3BpYxgIIAEoDjInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmFjdFRvcGljQgYKBHdoYXRKBAgEEAVKBAgGEAdSCXJlY29yZF9pZFIFZmllbGQi2AEKDEZlYXR1cmVCbG9jaxI5CgZyZWFzb24YASABKA4yKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJsb2NrUmVhc29uEjQKCWRldmljZV9pZBgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjkKB2JpbmRpbmcYBSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWZKBAgCEANKBAgEEAVSCXJlY29yZF9pZFIFZmllbGQi8QEKDUZlYXR1cmVTdGF0dXMSNgoHZmVhdHVyZRgBIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI5CgVzdGF0ZRgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXRlEjEKBW5lZWRzGAMgAygLMiIua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWVkEjoKBmJsb2NrcxgEIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZUJsb2NrIugEChFDb21taXNzaW9uaW5nVGVzdBIPCgd0ZXN0X2lkGAEgASgJEjQKBGtpbmQYAiABKA4yJi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RLaW5kEjkKB2JpbmRpbmcYDSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSNAoJZGV2aWNlX2lkGAUgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSNgoFc3RhdGUYBiABKA4yJy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RTdGF0ZRI6CgdmYWlsdXJlGAcgASgOMikua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5UZXN0RmFpbHVyZRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoKcHJvdmVuYW5jZRgLIAEoCzIoLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUHJvdmVuYW5jZRISCgpzdXBlcnNlZGVkGAwgASgIEi8KC2NvbmNsdWRlX2J5GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAMQBVIJcmVjb3JkX2lkUgVmaWVsZCLzAgoUQ29tbWlzc2lvbmluZ1Byb2ZpbGUSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEj4KBWZhY3RzGAIgAygLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nRmFjdBI+CgV0ZXN0cxgDIAMoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3QSPQoIZmVhdHVyZXMYBCADKAsyKy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkZlYXR1cmVTdGF0dXMSPQoIdGVtcGxhdGUYBiABKAsyKy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkhvdXNlVGVtcGxhdGUSFgoObmVlZHNfd2l0aGhlbGQYByABKAhKBAgFEAZSC3RlbXBsYXRlX2lkIk4KCUhvbWVTZXR1cBIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIOCgZzZXRfdXAYAiABKAgiRAoKSG9tZVNldHVwcxI2CgVob21lcxgBIAMoCzInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG9tZVNldHVwIuIBChNDb21taXNzaW9uaW5nUmVjb3JkEj8KBGZhY3QYASABKAsyLy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdGYWN0SAASPwoEdGVzdBgCIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3RIABI/Cgh0ZW1wbGF0ZRgDIAEoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG91c2VUZW1wbGF0ZUgAQggKBnJlY29yZCKPBAoSQ29tbWlzc2lvbmluZ0dyYW50EhAKCGdyYW50X2lkGAEgASgJEjIKCHNwYWNlX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIyCglpbnN0YWxsZXIYAyABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSFgoOaW5zdGFsbGVyX25hbWUYBCABKAkSRAoFc3RhdGUYBSABKA4yNS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudFN0YXRlEjAKDHJlcXVlc3RlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJc3RhcnRzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpncmFudGVkX2J5GAogASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEi4KCmdyYW50ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIosBChNDb21taXNzaW9uaW5nR3JhbnRzEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBJACgZncmFudHMYAiADKAsyMC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudCK/AQoYQ29tbWlzc2lvbmluZ0dyYW50UmVjb3JkEhYKDmluc3RhbGxlcl9uYW1lGAEgASgJEi4KCmdyYW50ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCXN0YXJ0c19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKnsKBVBhcnR5EhUKEVBBUlRZX1VOU1BFQ0lGSUVEEAASHAoYUEFSVFlfT1dORVJfT1JHQU5JU0FUSU9OEAESEwoPUEFSVFlfSE9VU0VIT0xEEAISEwoPUEFSVFlfSU5TVEFMTEVSEAMSEwoPUEFSVFlfQVVUT01BVElDEAQqcQoJTmVjZXNzaXR5EhkKFU5FQ0VTU0lUWV9VTlNQRUNJRklFRBAAEhYKEk5FQ0VTU0lUWV9SRVFVSVJFRBABEhkKFU5FQ0VTU0lUWV9GT1JfRkVBVFVSRRACEhYKEk5FQ0VTU0lUWV9PUFRJT05BTBADKqgBCghFdmlkZW5jZRIYChRFVklERU5DRV9VTlNQRUNJRklFRBAAEhMKD0VWSURFTkNFX1NUQVRFRBABEhIKDkVWSURFTkNFX1BIT1RPEAISFAoQRVZJREVOQ0VfRFJBV0lORxADEhYKEkVWSURFTkNFX0lOU1BFQ1RFRBAEEhUKEUVWSURFTkNFX01FQVNVUkVEEAUSFAoQRVZJREVOQ0VfREVSSVZFRBAGKqACCglGYWN0VG9waWMSGgoWRkFDVF9UT1BJQ19VTlNQRUNJRklFRBAAEhcKE0ZBQ1RfVE9QSUNfQlVJTERJTkcQARIUChBGQUNUX1RPUElDX1JPT01TEAISGgoWRkFDVF9UT1BJQ19IRUFUX1NPVVJDRRADEhwKGEZBQ1RfVE9QSUNfRkxPT1JfSEVBVElORxAEEhwKGEZBQ1RfVE9QSUNfQ09NRk9SVF9MT0FEUxAFEhoKFkZBQ1RfVE9QSUNfRUxFQ1RSSUNJVFkQBhIfChtGQUNUX1RPUElDX0RJU1RSSUNUX0hFQVRJTkcQBxIbChdGQUNUX1RPUElDX0NPTk5FQ1RJVklUWRAIEhYKEkZBQ1RfVE9QSUNfQ09NRk9SVBAJKqkBCgdGZWF0dXJlEhcKE0ZFQVRVUkVfVU5TUEVDSUZJRUQQABIXChNGRUFUVVJFX0ZMT09SX1pPTkVTEAESEQoNRkVBVFVSRV9QTEFOVBACEhkKFUZFQVRVUkVfQ09NRk9SVF9MT0FEUxADEhAKDEZFQVRVUkVfQ09TVBAEEhYKEkZFQVRVUkVfUEVBS19HVUFSRBAFEhQKEEZFQVRVUkVfUExBTk5JTkcQBiqFAQoMRmVhdHVyZVN0YXRlEh0KGUZFQVRVUkVfU1RBVEVfVU5TUEVDSUZJRUQQABIXChNGRUFUVVJFX1NUQVRFX1dPUktTEAESFwoTRkVBVFVSRV9TVEFURV9ORUVEUxACEiQKIEZFQVRVUkVfU1RBVEVfQkxPQ0tFRF9GT1JfU0FGRVRZEAMqnAIKC0Jsb2NrUmVhc29uEhwKGEJMT0NLX1JFQVNPTl9VTlNQRUNJRklFRBAAEhwKGEJMT0NLX1JFQVNPTl9URVNUX0ZBSUxFRBABEiIKHkJMT0NLX1JFQVNPTl9PVVRQVVRfTk9UX0xFQVNFRBACEiUKIUJMT0NLX1JFQVNPTl9QT1dFUl9PTl9OT1RfQVRfUkVTVBADEhwKGEJMT0NLX1JFQVNPTl9ERVZJQ0VfR09ORRAEEiIKHkJMT0NLX1JFQVNPTl9DT05UUk9MX1JPT01fR09ORRAFEh8KG0JMT0NLX1JFQVNPTl9MRUFTRV9UT09fTE9ORxAGEiMKH0JMT0NLX1JFQVNPTl9ERVZJQ0VfQUNST1NTX0hPTUUQByp+CghUZXN0S2luZBIZChVURVNUX0tJTkRfVU5TUEVDSUZJRUQQABIaChZURVNUX0tJTkRfT1VUUFVUX0xFQVNFEAESGQoVVEVTVF9LSU5EX1pPTkVfRUZGRUNUEAISIAocVEVTVF9LSU5EX1BVTVBfQUxMX1pPTkVTX09GRhADKoUBCglUZXN0U3RhdGUSGgoWVEVTVF9TVEFURV9VTlNQRUNJRklFRBAAEhYKElRFU1RfU1RBVEVfUlVOTklORxABEhUKEVRFU1RfU1RBVEVfUEFTU0VEEAISFQoRVEVTVF9TVEFURV9GQUlMRUQQAxIWChJURVNUX1NUQVRFX0FCT1JURUQQBCqdAgoLVGVzdEZhaWx1cmUSHAoYVEVTVF9GQUlMVVJFX1VOU1BFQ0lGSUVEEAASJQohVEVTVF9GQUlMVVJFX1BPV0VSX09OX05PVF9BVF9SRVNUEAESIAocVEVTVF9GQUlMVVJFX05PX1NUQVRFX0NIQU5HRRACEiIKHlRFU1RfRkFJTFVSRV9MRUFTRV9OT1RfUkVORVdFRBADEicKI1RFU1RfRkFJTFVSRV9ESURfTk9UX1JFVFVSTl9UT19SRVNUEAQSIwofVEVTVF9GQUlMVVJFX0RFVklDRV9VTlJFQUNIQUJMRRAFEhoKFlRFU1RfRkFJTFVSRV9OT19FRkZFQ1QQBhIZChVURVNUX0ZBSUxVUkVfT0JTRVJWRUQQByqUAQoXQ29tbWlzc2lvbmluZ0dyYW50U3RhdGUSKQolQ09NTUlTU0lPTklOR19HUkFOVF9TVEFURV9VTlNQRUNJRklFRBAAEicKI0NPTU1JU1NJT05JTkdfR1JBTlRfU1RBVEVfUkVRVUVTVEVEEAESJQohQ09NTUlTU0lPTklOR19HUkFOVF9TVEFURV9HUkFOVEVEEAJCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_identity_v1_identity]);
14
+ fileDesc("CjBrdXNpbnRhL2lvdC9jb21taXNzaW9uaW5nL3YxL2NvbW1pc3Npb25pbmcucHJvdG8SHGt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEizwEKClByb3ZlbmFuY2USMgoFcGFydHkYASABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjgKCGV2aWRlbmNlGAIgASgOMiYua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5FdmlkZW5jZRImCgJhdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoCYnkYBCABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQiLgoKQmluZGluZ1JlZhIRCglyZWNvcmRfaWQYASABKAkSDQoFZmllbGQYAiABKAkiMwoLVGVtcGxhdGVSZWYSEwoLdGVtcGxhdGVfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDSL0BAoRQ29tbWlzc2lvbmluZ0ZhY3QSDwoHZmFjdF9pZBgBIAEoCRIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEQoJcmVjb3JkX2lkGAMgASgJEgsKA2tleRgEIAEoCRI2CgV2YWx1ZRgFIAEoCzIlLmt1c2ludGEuaW90LmRldmljZS52MS5BdHRyaWJ1dGVWYWx1ZUgAEhEKB3Vua25vd24YBiABKAhIABI1CghhbnN3ZXJlchgHIAEoDjIjLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUGFydHkSOgoJbmVjZXNzaXR5GAggASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWNlc3NpdHkSNgoHZmVhdHVyZRgJIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI8Cgpwcm92ZW5hbmNlGAogASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlEhAKCHJldmlzaW9uGA0gASgEEkAKDWRldmlhdGVzX2Zyb20YDyABKAsyKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlUmVmEjYKBXRvcGljGBAgASgOMicua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5GYWN0VG9waWNCCAoGYW5zd2VySgQICxANSgQIDhAPUgVzY29wZVIQdGVtcGxhdGVfdmVyc2lvblILdGVtcGxhdGVfaWQiegoMVGVtcGxhdGVGYWN0EgsKA2tleRgBIAEoCRIVCg1zdWJqZWN0X2xhYmVsGAIgASgJEjQKBXZhbHVlGAMgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlSgQIBBAFUgpwcm92ZW5hbmNlIvMBCg1Ib3VzZVRlbXBsYXRlEhMKC3RlbXBsYXRlX2lkGAEgASgJEjUKC2J1aWxkaW5nX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIMCgRuYW1lGAMgASgJEg8KB3ZlcnNpb24YBCABKA0SOQoFZmFjdHMYBSADKAsyKi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlbXBsYXRlRmFjdBI8Cgpwcm92ZW5hbmNlGAYgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Qcm92ZW5hbmNlItsCCgROZWVkEhIKCGZhY3Rfa2V5GAEgASgJSAASNgoEdGVzdBgCIAEoDjImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEtpbmRIABIyCghzcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoIYW5zd2VyZXIYBSABKA4yIy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlBhcnR5EjkKB2JpbmRpbmcYByABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSOwoKZmFjdF90b3BpYxgIIAEoDjInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmFjdFRvcGljQgYKBHdoYXRKBAgEEAVKBAgGEAdSCXJlY29yZF9pZFIFZmllbGQi2AEKDEZlYXR1cmVCbG9jaxI5CgZyZWFzb24YASABKA4yKS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJsb2NrUmVhc29uEjQKCWRldmljZV9pZBgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjkKB2JpbmRpbmcYBSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWZKBAgCEANKBAgEEAVSCXJlY29yZF9pZFIFZmllbGQi8QEKDUZlYXR1cmVTdGF0dXMSNgoHZmVhdHVyZRgBIAEoDjIlLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZRI5CgVzdGF0ZRgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZVN0YXRlEjEKBW5lZWRzGAMgAygLMiIua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5OZWVkEjoKBmJsb2NrcxgEIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuRmVhdHVyZUJsb2NrIqYFChFDb21taXNzaW9uaW5nVGVzdBIPCgd0ZXN0X2lkGAEgASgJEjQKBGtpbmQYAiABKA4yJi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RLaW5kEjkKB2JpbmRpbmcYDSABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWYSNAoJZGV2aWNlX2lkGAUgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSNgoFc3RhdGUYBiABKA4yJy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RTdGF0ZRI6CgdmYWlsdXJlGAcgASgOMikua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5UZXN0RmFpbHVyZRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtmaW5pc2hlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoKcHJvdmVuYW5jZRgLIAEoCzIoLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuUHJvdmVuYW5jZRISCgpzdXBlcnNlZGVkGAwgASgIEi8KC2NvbmNsdWRlX2J5GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI8CghldmlkZW5jZRgPIAMoCzIqLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEV2aWRlbmNlSgQIAxAFUglyZWNvcmRfaWRSBWZpZWxkIl8KDFRlc3RFdmlkZW5jZRIPCgdyZWFkaW5nGAEgASgJEg0KBXZhbHVlGAIgASgSEi8KC29ic2VydmVkX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLzAgoUQ29tbWlzc2lvbmluZ1Byb2ZpbGUSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEj4KBWZhY3RzGAIgAygLMi8ua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nRmFjdBI+CgV0ZXN0cxgDIAMoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3QSPQoIZmVhdHVyZXMYBCADKAsyKy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkZlYXR1cmVTdGF0dXMSPQoIdGVtcGxhdGUYBiABKAsyKy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkhvdXNlVGVtcGxhdGUSFgoObmVlZHNfd2l0aGhlbGQYByABKAhKBAgFEAZSC3RlbXBsYXRlX2lkIk4KCUhvbWVTZXR1cBIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIOCgZzZXRfdXAYAiABKAgiRAoKSG9tZVNldHVwcxI2CgVob21lcxgBIAMoCzInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG9tZVNldHVwIuIBChNDb21taXNzaW9uaW5nUmVjb3JkEj8KBGZhY3QYASABKAsyLy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdGYWN0SAASPwoEdGVzdBgCIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3RIABI/Cgh0ZW1wbGF0ZRgDIAEoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG91c2VUZW1wbGF0ZUgAQggKBnJlY29yZCKPBAoSQ29tbWlzc2lvbmluZ0dyYW50EhAKCGdyYW50X2lkGAEgASgJEjIKCHNwYWNlX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIyCglpbnN0YWxsZXIYAyABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSFgoOaW5zdGFsbGVyX25hbWUYBCABKAkSRAoFc3RhdGUYBSABKA4yNS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudFN0YXRlEjAKDHJlcXVlc3RlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJc3RhcnRzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgdlbmRzX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpncmFudGVkX2J5GAogASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEi4KCmdyYW50ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIosBChNDb21taXNzaW9uaW5nR3JhbnRzEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBJACgZncmFudHMYAiADKAsyMC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudCK/AQoYQ29tbWlzc2lvbmluZ0dyYW50UmVjb3JkEhYKDmluc3RhbGxlcl9uYW1lGAEgASgJEi4KCmdyYW50ZWRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCXN0YXJ0c19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIZW5kZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKnsKBVBhcnR5EhUKEVBBUlRZX1VOU1BFQ0lGSUVEEAASHAoYUEFSVFlfT1dORVJfT1JHQU5JU0FUSU9OEAESEwoPUEFSVFlfSE9VU0VIT0xEEAISEwoPUEFSVFlfSU5TVEFMTEVSEAMSEwoPUEFSVFlfQVVUT01BVElDEAQqcQoJTmVjZXNzaXR5EhkKFU5FQ0VTU0lUWV9VTlNQRUNJRklFRBAAEhYKEk5FQ0VTU0lUWV9SRVFVSVJFRBABEhkKFU5FQ0VTU0lUWV9GT1JfRkVBVFVSRRACEhYKEk5FQ0VTU0lUWV9PUFRJT05BTBADKqgBCghFdmlkZW5jZRIYChRFVklERU5DRV9VTlNQRUNJRklFRBAAEhMKD0VWSURFTkNFX1NUQVRFRBABEhIKDkVWSURFTkNFX1BIT1RPEAISFAoQRVZJREVOQ0VfRFJBV0lORxADEhYKEkVWSURFTkNFX0lOU1BFQ1RFRBAEEhUKEUVWSURFTkNFX01FQVNVUkVEEAUSFAoQRVZJREVOQ0VfREVSSVZFRBAGKqACCglGYWN0VG9waWMSGgoWRkFDVF9UT1BJQ19VTlNQRUNJRklFRBAAEhcKE0ZBQ1RfVE9QSUNfQlVJTERJTkcQARIUChBGQUNUX1RPUElDX1JPT01TEAISGgoWRkFDVF9UT1BJQ19IRUFUX1NPVVJDRRADEhwKGEZBQ1RfVE9QSUNfRkxPT1JfSEVBVElORxAEEhwKGEZBQ1RfVE9QSUNfQ09NRk9SVF9MT0FEUxAFEhoKFkZBQ1RfVE9QSUNfRUxFQ1RSSUNJVFkQBhIfChtGQUNUX1RPUElDX0RJU1RSSUNUX0hFQVRJTkcQBxIbChdGQUNUX1RPUElDX0NPTk5FQ1RJVklUWRAIEhYKEkZBQ1RfVE9QSUNfQ09NRk9SVBAJKqkBCgdGZWF0dXJlEhcKE0ZFQVRVUkVfVU5TUEVDSUZJRUQQABIXChNGRUFUVVJFX0ZMT09SX1pPTkVTEAESEQoNRkVBVFVSRV9QTEFOVBACEhkKFUZFQVRVUkVfQ09NRk9SVF9MT0FEUxADEhAKDEZFQVRVUkVfQ09TVBAEEhYKEkZFQVRVUkVfUEVBS19HVUFSRBAFEhQKEEZFQVRVUkVfUExBTk5JTkcQBiqFAQoMRmVhdHVyZVN0YXRlEh0KGUZFQVRVUkVfU1RBVEVfVU5TUEVDSUZJRUQQABIXChNGRUFUVVJFX1NUQVRFX1dPUktTEAESFwoTRkVBVFVSRV9TVEFURV9ORUVEUxACEiQKIEZFQVRVUkVfU1RBVEVfQkxPQ0tFRF9GT1JfU0FGRVRZEAMqnAIKC0Jsb2NrUmVhc29uEhwKGEJMT0NLX1JFQVNPTl9VTlNQRUNJRklFRBAAEhwKGEJMT0NLX1JFQVNPTl9URVNUX0ZBSUxFRBABEiIKHkJMT0NLX1JFQVNPTl9PVVRQVVRfTk9UX0xFQVNFRBACEiUKIUJMT0NLX1JFQVNPTl9QT1dFUl9PTl9OT1RfQVRfUkVTVBADEhwKGEJMT0NLX1JFQVNPTl9ERVZJQ0VfR09ORRAEEiIKHkJMT0NLX1JFQVNPTl9DT05UUk9MX1JPT01fR09ORRAFEh8KG0JMT0NLX1JFQVNPTl9MRUFTRV9UT09fTE9ORxAGEiMKH0JMT0NLX1JFQVNPTl9ERVZJQ0VfQUNST1NTX0hPTUUQByp+CghUZXN0S2luZBIZChVURVNUX0tJTkRfVU5TUEVDSUZJRUQQABIaChZURVNUX0tJTkRfT1VUUFVUX0xFQVNFEAESGQoVVEVTVF9LSU5EX1pPTkVfRUZGRUNUEAISIAocVEVTVF9LSU5EX1BVTVBfQUxMX1pPTkVTX09GRhADKoUBCglUZXN0U3RhdGUSGgoWVEVTVF9TVEFURV9VTlNQRUNJRklFRBAAEhYKElRFU1RfU1RBVEVfUlVOTklORxABEhUKEVRFU1RfU1RBVEVfUEFTU0VEEAISFQoRVEVTVF9TVEFURV9GQUlMRUQQAxIWChJURVNUX1NUQVRFX0FCT1JURUQQBCqdAgoLVGVzdEZhaWx1cmUSHAoYVEVTVF9GQUlMVVJFX1VOU1BFQ0lGSUVEEAASJQohVEVTVF9GQUlMVVJFX1BPV0VSX09OX05PVF9BVF9SRVNUEAESIAocVEVTVF9GQUlMVVJFX05PX1NUQVRFX0NIQU5HRRACEiIKHlRFU1RfRkFJTFVSRV9MRUFTRV9OT1RfUkVORVdFRBADEicKI1RFU1RfRkFJTFVSRV9ESURfTk9UX1JFVFVSTl9UT19SRVNUEAQSIwofVEVTVF9GQUlMVVJFX0RFVklDRV9VTlJFQUNIQUJMRRAFEhoKFlRFU1RfRkFJTFVSRV9OT19FRkZFQ1QQBhIZChVURVNUX0ZBSUxVUkVfT0JTRVJWRUQQByqUAQoXQ29tbWlzc2lvbmluZ0dyYW50U3RhdGUSKQolQ09NTUlTU0lPTklOR19HUkFOVF9TVEFURV9VTlNQRUNJRklFRBAAEicKI0NPTU1JU1NJT05JTkdfR1JBTlRfU1RBVEVfUkVRVUVTVEVEEAESJQohQ09NTUlTU0lPTklOR19HUkFOVF9TVEFURV9HUkFOVEVEEAJCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_identity_v1_identity]);
15
15
 
16
16
  /**
17
17
  * Describes the message kusinta.iot.commissioning.v1.Provenance.
@@ -83,54 +83,61 @@ export const FeatureStatusSchema = /*@__PURE__*/
83
83
  export const CommissioningTestSchema = /*@__PURE__*/
84
84
  messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 9);
85
85
 
86
+ /**
87
+ * Describes the message kusinta.iot.commissioning.v1.TestEvidence.
88
+ * Use `create(TestEvidenceSchema)` to create a new message.
89
+ */
90
+ export const TestEvidenceSchema = /*@__PURE__*/
91
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 10);
92
+
86
93
  /**
87
94
  * Describes the message kusinta.iot.commissioning.v1.CommissioningProfile.
88
95
  * Use `create(CommissioningProfileSchema)` to create a new message.
89
96
  */
90
97
  export const CommissioningProfileSchema = /*@__PURE__*/
91
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 10);
98
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 11);
92
99
 
93
100
  /**
94
101
  * Describes the message kusinta.iot.commissioning.v1.HomeSetup.
95
102
  * Use `create(HomeSetupSchema)` to create a new message.
96
103
  */
97
104
  export const HomeSetupSchema = /*@__PURE__*/
98
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 11);
105
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 12);
99
106
 
100
107
  /**
101
108
  * Describes the message kusinta.iot.commissioning.v1.HomeSetups.
102
109
  * Use `create(HomeSetupsSchema)` to create a new message.
103
110
  */
104
111
  export const HomeSetupsSchema = /*@__PURE__*/
105
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 12);
112
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 13);
106
113
 
107
114
  /**
108
115
  * Describes the message kusinta.iot.commissioning.v1.CommissioningRecord.
109
116
  * Use `create(CommissioningRecordSchema)` to create a new message.
110
117
  */
111
118
  export const CommissioningRecordSchema = /*@__PURE__*/
112
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 13);
119
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 14);
113
120
 
114
121
  /**
115
122
  * Describes the message kusinta.iot.commissioning.v1.CommissioningGrant.
116
123
  * Use `create(CommissioningGrantSchema)` to create a new message.
117
124
  */
118
125
  export const CommissioningGrantSchema = /*@__PURE__*/
119
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 14);
126
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 15);
120
127
 
121
128
  /**
122
129
  * Describes the message kusinta.iot.commissioning.v1.CommissioningGrants.
123
130
  * Use `create(CommissioningGrantsSchema)` to create a new message.
124
131
  */
125
132
  export const CommissioningGrantsSchema = /*@__PURE__*/
126
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 15);
133
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 16);
127
134
 
128
135
  /**
129
136
  * Describes the message kusinta.iot.commissioning.v1.CommissioningGrantRecord.
130
137
  * Use `create(CommissioningGrantRecordSchema)` to create a new message.
131
138
  */
132
139
  export const CommissioningGrantRecordSchema = /*@__PURE__*/
133
- messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 16);
140
+ messageDesc(file_kusinta_iot_commissioning_v1_commissioning, 17);
134
141
 
135
142
  /**
136
143
  * Describes the enum kusinta.iot.commissioning.v1.Party.
@@ -494,6 +494,15 @@ export declare type HeatSourceReadings = Message<"kusinta.iot.device.v1.HeatSour
494
494
  * @generated from field: optional uint32 alarm_code = 11;
495
495
  */
496
496
  alarmCode?: number | undefined;
497
+
498
+ /**
499
+ * The power its internal electric add-on heat (an immersion heater or an electric boiler
500
+ * inside the heat source) draws now, in watts: 0 while it is off or blocked. Absent for a
501
+ * heat source without one, or whose connector cannot read it.
502
+ *
503
+ * @generated from field: optional uint32 add_on_heat_watts = 12;
504
+ */
505
+ addOnHeatWatts?: number | undefined;
497
506
  };
498
507
 
499
508
  /**
@@ -648,6 +657,15 @@ export enum CompressorState {
648
657
  * @generated from enum value: COMPRESSOR_STATE_STOPPING = 4;
649
658
  */
650
659
  STOPPING = 4,
660
+
661
+ /**
662
+ * Stopped and held off: the heat source says its compressor is blocked, for whatever reason
663
+ * it has (an external input, a low outdoor temperature, its own restart delay, an alarm).
664
+ * Not a statement of why.
665
+ *
666
+ * @generated from enum value: COMPRESSOR_STATE_BLOCKED = 5;
667
+ */
668
+ BLOCKED = 5,
651
669
  }
652
670
 
653
671
  /**
@@ -14,7 +14,7 @@ import { file_kusinta_iot_vendor_v1_vendor_options } from "../../vendor/v1/vendo
14
14
  * Describes the file kusinta/iot/device/v1/device.proto.
15
15
  */
16
16
  export const file_kusinta_iot_device_v1_device = /*@__PURE__*/
17
- fileDesc("CiJrdXNpbnRhL2lvdC9kZXZpY2UvdjEvZGV2aWNlLnByb3RvEhVrdXNpbnRhLmlvdC5kZXZpY2UudjEi5QwKCEVuZHBvaW50EhMKC2VuZHBvaW50X2lkGAEgASgNEh0KFW1hdHRlcl9kZXZpY2VfdHlwZV9pZBgCIAEoDRJBCgp0aGVybW9zdGF0GAMgASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRoZXJtb3N0YXRQcm9wZXJ0aWVzSAASUAoSdGVtcGVyYXR1cmVfc2Vuc29yGAQgASgLMjIua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRlbXBlcmF0dXJlU2Vuc29yUHJvcGVydGllc0gAEkoKD2h1bWlkaXR5X3NlbnNvchgFIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5IdW1pZGl0eVNlbnNvclByb3BlcnRpZXNIABJMChBvY2N1cGFuY3lfc2Vuc29yGAYgASgLMjAua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9jY3VwYW5jeVNlbnNvclByb3BlcnRpZXNIABJICg5jb250YWN0X3NlbnNvchgHIAEoCzIuLmt1c2ludGEuaW90LmRldmljZS52MS5Db250YWN0U2Vuc29yUHJvcGVydGllc0gAEkoKD3dpbmRvd19jb3ZlcmluZxgIIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5XaW5kb3dDb3ZlcmluZ1Byb3BlcnRpZXNIABI+Cglkb29yX2xvY2sYCSABKAsyKS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRG9vckxvY2tQcm9wZXJ0aWVzSAASQwoMb25fb2ZmX2xpZ2h0GAogASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9uT2ZmTGlnaHRQcm9wZXJ0aWVzSAASSAoOZGltbWFibGVfbGlnaHQYCyABKAsyLi5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGltbWFibGVMaWdodFByb3BlcnRpZXNIABJSChBjb2xvcl90ZW1wX2xpZ2h0GAwgASgLMjYua3VzaW50YS5pb3QuZGV2aWNlLnYxLkNvbG9yVGVtcGVyYXR1cmVMaWdodFByb3BlcnRpZXNIABJGCg1lbmVyZ3lfc2Vuc29yGA0gASgLMi0ua3VzaW50YS5pb3QuZGV2aWNlLnYxLkVuZXJneVNlbnNvclByb3BlcnRpZXNIABJKCg9wcmVzc3VyZV9zZW5zb3IYDiABKAsyLy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuUHJlc3N1cmVTZW5zb3JQcm9wZXJ0aWVzSAASRAoMcG93ZXJfc291cmNlGA8gASgLMiwua3VzaW50YS5pb3QuZGV2aWNlLnYxLlBvd2VyU291cmNlUHJvcGVydGllc0gAEksKDWhtX3RoZXJtb3N0YXQYMiABKAsyMi5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhtVGhlcm1vc3RhdFByb3BzSAESTQoOaG1fbWFpbnRlbmFuY2UYMyABKAsyMy5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhtTWFpbnRlbmFuY2VQcm9wc0gBEjQKCnJhZGlvX2xpbmsYNCABKAsyIC5rdXNpbnRhLmlvdC5kZXZpY2UudjEuUmFkaW9MaW5rEj4KC2hlYXRfc291cmNlGDUgASgLMikua3VzaW50YS5pb3QuZGV2aWNlLnYxLkhlYXRTb3VyY2VSZWFkaW5ncxI1CghjbHVzdGVycxgQIAMoCzIjLmt1c2ludGEuaW90LmRldmljZS52MS5DbHVzdGVyU3RhdGUSHgoWdmVuZG9yX2F0dHJpYnV0ZV9uYW1lcxgRIAMoCRJjCht2ZW5kb3JfYXR0cmlidXRlX2JlaGF2aW91cnMYEiADKAsyPi5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRW5kcG9pbnQuVmVuZG9yQXR0cmlidXRlQmVoYXZpb3Vyc0VudHJ5GmsKHlZlbmRvckF0dHJpYnV0ZUJlaGF2aW91cnNFbnRyeRILCgNrZXkYASABKAkSOAoFdmFsdWUYAiABKAsyKS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlQmVoYXZpb3VyOgI4AUITChFtYXR0ZXJfcHJvcGVydGllc0ITChF2ZW5kb3JfcHJvcGVydGllcyK6BAoGRGV2aWNlEjsKCmRlc2NyaXB0b3IYASABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRGVzY3JpcHRvchIyCgllbmRwb2ludHMYDiADKAsyHy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRW5kcG9pbnQSJwoabWluX3dyaXRlX2ludGVydmFsX3NlY29uZHMYDyABKA1IAIgBARIkChdtYXhfd3JpdGVfZGVsYXlfc2Vjb25kcxgQIAEoDUgBiAEBEi0KCWxhc3Rfc2VlbhgUIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMbGFzdF91cGRhdGVkGBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIdChtfbWluX3dyaXRlX2ludGVydmFsX3NlY29uZHNCGgoYX21heF93cml0ZV9kZWxheV9zZWNvbmRzSgQIAhAOSgQIMhAzUgp0aGVybW9zdGF0UhJ0ZW1wZXJhdHVyZV9zZW5zb3JSD2h1bWlkaXR5X3NlbnNvclIQb2NjdXBhbmN5X3NlbnNvclIOY29udGFjdF9zZW5zb3JSD3dpbmRvd19jb3ZlcmluZ1IJZG9vcl9sb2NrUgxvbl9vZmZfbGlnaHRSDmRpbW1hYmxlX2xpZ2h0UhBjb2xvcl90ZW1wX2xpZ2h0Ug1lbmVyZ3lfc2Vuc29yUg9wcmVzc3VyZV9zZW5zb3JSCWhvbWVtYXRpYyLhBwoSSGVhdFNvdXJjZVJlYWRpbmdzEj8KFG91dGRvb3JfY2VudGlkZWdyZWVzGAEgASgRQhyitRgUb3V0ZG9vcl9jZW50aWRlZ3JlZXPQtRgFSACIAQESPQoTc3VwcGx5X2NlbnRpZGVncmVlcxgCIAEoEUIborUYE3N1cHBseV9jZW50aWRlZ3JlZXPQtRgFSAGIAQESPQoTcmV0dXJuX2NlbnRpZGVncmVlcxgDIAEoEUIborUYE3JldHVybl9jZW50aWRlZ3JlZXPQtRgFSAKIAQESSwoaaG90X3dhdGVyX3RvcF9jZW50aWRlZ3JlZXMYBCABKBFCIqK1GBpob3Rfd2F0ZXJfdG9wX2NlbnRpZGVncmVlc9C1GAVIA4gBARJVCh9ob3Rfd2F0ZXJfY2hhcmdpbmdfY2VudGlkZWdyZWVzGAUgASgRQieitRgfaG90X3dhdGVyX2NoYXJnaW5nX2NlbnRpZGVncmVlc9C1GAVIBIgBARJTCh5jYWxjdWxhdGVkX3N1cHBseV9jZW50aWRlZ3JlZXMYBiABKBFCJqK1GB5jYWxjdWxhdGVkX3N1cHBseV9jZW50aWRlZ3JlZXPQtRgFSAWIAQESKQoJcHJvZHVjaW5nGAcgASgNQhGitRgJcHJvZHVjaW5n0LUYBUgGiAEBEjcKEGNvbXByZXNzb3Jfc3RhdGUYCCABKA1CGKK1GBBjb21wcmVzc29yX3N0YXRl0LUYBUgHiAEBEjMKDmRlZ3JlZV9taW51dGVzGAkgASgRQhaitRgOZGVncmVlX21pbnV0ZXPQtRgFSAiIAQESLwoMYWxhcm1fYWN0aXZlGAogASgIQhSitRgMYWxhcm1fYWN0aXZl0LUYBUgJiAEBEisKCmFsYXJtX2NvZGUYCyABKA1CEqK1GAphbGFybV9jb2Rl0LUYBUgKiAEBOheqtRgTa3VzaW50YS5oZWF0X3NvdXJjZUIXChVfb3V0ZG9vcl9jZW50aWRlZ3JlZXNCFgoUX3N1cHBseV9jZW50aWRlZ3JlZXNCFgoUX3JldHVybl9jZW50aWRlZ3JlZXNCHQobX2hvdF93YXRlcl90b3BfY2VudGlkZWdyZWVzQiIKIF9ob3Rfd2F0ZXJfY2hhcmdpbmdfY2VudGlkZWdyZWVzQiEKH19jYWxjdWxhdGVkX3N1cHBseV9jZW50aWRlZ3JlZXNCDAoKX3Byb2R1Y2luZ0ITChFfY29tcHJlc3Nvcl9zdGF0ZUIRCg9fZGVncmVlX21pbnV0ZXNCDwoNX2FsYXJtX2FjdGl2ZUINCgtfYWxhcm1fY29kZSK3AQoJUmFkaW9MaW5rEiUKB3F1YWxpdHkYASABKA1CD6K1GAdxdWFsaXR50LUYBUgAiAEBEicKCHJzc2lfZGJtGAIgASgRQhCitRgIcnNzaV9kYm3QtRgFSAGIAQESIwoGc25yX2RiGAMgASgCQg6itRgGc25yX2Ri0LUYBUgCiAEBOhGqtRgNa3VzaW50YS5yYWRpb0IKCghfcXVhbGl0eUILCglfcnNzaV9kYm1CCQoHX3Nucl9kYiqVAgoUSGVhdFNvdXJjZVByb2R1Y3Rpb24SJgoiSEVBVF9TT1VSQ0VfUFJPRFVDVElPTl9VTlNQRUNJRklFRBAAEh4KGkhFQVRfU09VUkNFX1BST0RVQ1RJT05fT0ZGEAESKAokSEVBVF9TT1VSQ0VfUFJPRFVDVElPTl9TUEFDRV9IRUFUSU5HEAISJAogSEVBVF9TT1VSQ0VfUFJPRFVDVElPTl9IT1RfV0FURVIQAxIfChtIRUFUX1NPVVJDRV9QUk9EVUNUSU9OX1BPT0wQBBIiCh5IRUFUX1NPVVJDRV9QUk9EVUNUSU9OX0NPT0xJTkcQBRIgChxIRUFUX1NPVVJDRV9QUk9EVUNUSU9OX09USEVSEAYqrQEKD0NvbXByZXNzb3JTdGF0ZRIgChxDT01QUkVTU09SX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoYQ09NUFJFU1NPUl9TVEFURV9TVE9QUEVEEAESHQoZQ09NUFJFU1NPUl9TVEFURV9TVEFSVElORxACEhwKGENPTVBSRVNTT1JfU1RBVEVfUlVOTklORxADEh0KGUNPTVBSRVNTT1JfU1RBVEVfU1RPUFBJTkcQBCp1CgxSYWRpb1F1YWxpdHkSHQoZUkFESU9fUVVBTElUWV9VTlNQRUNJRklFRBAAEhYKElJBRElPX1FVQUxJVFlfR09PRBABEhYKElJBRElPX1FVQUxJVFlfRkFJUhACEhYKElJBRElPX1FVQUxJVFlfUE9PUhADQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_device_v1_descriptor, file_kusinta_iot_device_v1_properties, file_kusinta_iot_vendor_homematic_v1_homematic, file_kusinta_iot_vendor_v1_vendor_options]);
17
+ fileDesc("CiJrdXNpbnRhL2lvdC9kZXZpY2UvdjEvZGV2aWNlLnByb3RvEhVrdXNpbnRhLmlvdC5kZXZpY2UudjEi5QwKCEVuZHBvaW50EhMKC2VuZHBvaW50X2lkGAEgASgNEh0KFW1hdHRlcl9kZXZpY2VfdHlwZV9pZBgCIAEoDRJBCgp0aGVybW9zdGF0GAMgASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRoZXJtb3N0YXRQcm9wZXJ0aWVzSAASUAoSdGVtcGVyYXR1cmVfc2Vuc29yGAQgASgLMjIua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRlbXBlcmF0dXJlU2Vuc29yUHJvcGVydGllc0gAEkoKD2h1bWlkaXR5X3NlbnNvchgFIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5IdW1pZGl0eVNlbnNvclByb3BlcnRpZXNIABJMChBvY2N1cGFuY3lfc2Vuc29yGAYgASgLMjAua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9jY3VwYW5jeVNlbnNvclByb3BlcnRpZXNIABJICg5jb250YWN0X3NlbnNvchgHIAEoCzIuLmt1c2ludGEuaW90LmRldmljZS52MS5Db250YWN0U2Vuc29yUHJvcGVydGllc0gAEkoKD3dpbmRvd19jb3ZlcmluZxgIIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5XaW5kb3dDb3ZlcmluZ1Byb3BlcnRpZXNIABI+Cglkb29yX2xvY2sYCSABKAsyKS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRG9vckxvY2tQcm9wZXJ0aWVzSAASQwoMb25fb2ZmX2xpZ2h0GAogASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9uT2ZmTGlnaHRQcm9wZXJ0aWVzSAASSAoOZGltbWFibGVfbGlnaHQYCyABKAsyLi5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGltbWFibGVMaWdodFByb3BlcnRpZXNIABJSChBjb2xvcl90ZW1wX2xpZ2h0GAwgASgLMjYua3VzaW50YS5pb3QuZGV2aWNlLnYxLkNvbG9yVGVtcGVyYXR1cmVMaWdodFByb3BlcnRpZXNIABJGCg1lbmVyZ3lfc2Vuc29yGA0gASgLMi0ua3VzaW50YS5pb3QuZGV2aWNlLnYxLkVuZXJneVNlbnNvclByb3BlcnRpZXNIABJKCg9wcmVzc3VyZV9zZW5zb3IYDiABKAsyLy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuUHJlc3N1cmVTZW5zb3JQcm9wZXJ0aWVzSAASRAoMcG93ZXJfc291cmNlGA8gASgLMiwua3VzaW50YS5pb3QuZGV2aWNlLnYxLlBvd2VyU291cmNlUHJvcGVydGllc0gAEksKDWhtX3RoZXJtb3N0YXQYMiABKAsyMi5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhtVGhlcm1vc3RhdFByb3BzSAESTQoOaG1fbWFpbnRlbmFuY2UYMyABKAsyMy5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhtTWFpbnRlbmFuY2VQcm9wc0gBEjQKCnJhZGlvX2xpbmsYNCABKAsyIC5rdXNpbnRhLmlvdC5kZXZpY2UudjEuUmFkaW9MaW5rEj4KC2hlYXRfc291cmNlGDUgASgLMikua3VzaW50YS5pb3QuZGV2aWNlLnYxLkhlYXRTb3VyY2VSZWFkaW5ncxI1CghjbHVzdGVycxgQIAMoCzIjLmt1c2ludGEuaW90LmRldmljZS52MS5DbHVzdGVyU3RhdGUSHgoWdmVuZG9yX2F0dHJpYnV0ZV9uYW1lcxgRIAMoCRJjCht2ZW5kb3JfYXR0cmlidXRlX2JlaGF2aW91cnMYEiADKAsyPi5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRW5kcG9pbnQuVmVuZG9yQXR0cmlidXRlQmVoYXZpb3Vyc0VudHJ5GmsKHlZlbmRvckF0dHJpYnV0ZUJlaGF2aW91cnNFbnRyeRILCgNrZXkYASABKAkSOAoFdmFsdWUYAiABKAsyKS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlQmVoYXZpb3VyOgI4AUITChFtYXR0ZXJfcHJvcGVydGllc0ITChF2ZW5kb3JfcHJvcGVydGllcyK6BAoGRGV2aWNlEjsKCmRlc2NyaXB0b3IYASABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRGVzY3JpcHRvchIyCgllbmRwb2ludHMYDiADKAsyHy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRW5kcG9pbnQSJwoabWluX3dyaXRlX2ludGVydmFsX3NlY29uZHMYDyABKA1IAIgBARIkChdtYXhfd3JpdGVfZGVsYXlfc2Vjb25kcxgQIAEoDUgBiAEBEi0KCWxhc3Rfc2VlbhgUIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMbGFzdF91cGRhdGVkGBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIdChtfbWluX3dyaXRlX2ludGVydmFsX3NlY29uZHNCGgoYX21heF93cml0ZV9kZWxheV9zZWNvbmRzSgQIAhAOSgQIMhAzUgp0aGVybW9zdGF0UhJ0ZW1wZXJhdHVyZV9zZW5zb3JSD2h1bWlkaXR5X3NlbnNvclIQb2NjdXBhbmN5X3NlbnNvclIOY29udGFjdF9zZW5zb3JSD3dpbmRvd19jb3ZlcmluZ1IJZG9vcl9sb2NrUgxvbl9vZmZfbGlnaHRSDmRpbW1hYmxlX2xpZ2h0UhBjb2xvcl90ZW1wX2xpZ2h0Ug1lbmVyZ3lfc2Vuc29yUg9wcmVzc3VyZV9zZW5zb3JSCWhvbWVtYXRpYyKyCAoSSGVhdFNvdXJjZVJlYWRpbmdzEj8KFG91dGRvb3JfY2VudGlkZWdyZWVzGAEgASgRQhyitRgUb3V0ZG9vcl9jZW50aWRlZ3JlZXPQtRgFSACIAQESPQoTc3VwcGx5X2NlbnRpZGVncmVlcxgCIAEoEUIborUYE3N1cHBseV9jZW50aWRlZ3JlZXPQtRgFSAGIAQESPQoTcmV0dXJuX2NlbnRpZGVncmVlcxgDIAEoEUIborUYE3JldHVybl9jZW50aWRlZ3JlZXPQtRgFSAKIAQESSwoaaG90X3dhdGVyX3RvcF9jZW50aWRlZ3JlZXMYBCABKBFCIqK1GBpob3Rfd2F0ZXJfdG9wX2NlbnRpZGVncmVlc9C1GAVIA4gBARJVCh9ob3Rfd2F0ZXJfY2hhcmdpbmdfY2VudGlkZWdyZWVzGAUgASgRQieitRgfaG90X3dhdGVyX2NoYXJnaW5nX2NlbnRpZGVncmVlc9C1GAVIBIgBARJTCh5jYWxjdWxhdGVkX3N1cHBseV9jZW50aWRlZ3JlZXMYBiABKBFCJqK1GB5jYWxjdWxhdGVkX3N1cHBseV9jZW50aWRlZ3JlZXPQtRgFSAWIAQESKQoJcHJvZHVjaW5nGAcgASgNQhGitRgJcHJvZHVjaW5n0LUYBUgGiAEBEjcKEGNvbXByZXNzb3Jfc3RhdGUYCCABKA1CGKK1GBBjb21wcmVzc29yX3N0YXRl0LUYBUgHiAEBEjMKDmRlZ3JlZV9taW51dGVzGAkgASgRQhaitRgOZGVncmVlX21pbnV0ZXPQtRgFSAiIAQESLwoMYWxhcm1fYWN0aXZlGAogASgIQhSitRgMYWxhcm1fYWN0aXZl0LUYBUgJiAEBEisKCmFsYXJtX2NvZGUYCyABKA1CEqK1GAphbGFybV9jb2Rl0LUYBUgKiAEBEjkKEWFkZF9vbl9oZWF0X3dhdHRzGAwgASgNQhmitRgRYWRkX29uX2hlYXRfd2F0dHPQtRgFSAuIAQE6F6q1GBNrdXNpbnRhLmhlYXRfc291cmNlQhcKFV9vdXRkb29yX2NlbnRpZGVncmVlc0IWChRfc3VwcGx5X2NlbnRpZGVncmVlc0IWChRfcmV0dXJuX2NlbnRpZGVncmVlc0IdChtfaG90X3dhdGVyX3RvcF9jZW50aWRlZ3JlZXNCIgogX2hvdF93YXRlcl9jaGFyZ2luZ19jZW50aWRlZ3JlZXNCIQofX2NhbGN1bGF0ZWRfc3VwcGx5X2NlbnRpZGVncmVlc0IMCgpfcHJvZHVjaW5nQhMKEV9jb21wcmVzc29yX3N0YXRlQhEKD19kZWdyZWVfbWludXRlc0IPCg1fYWxhcm1fYWN0aXZlQg0KC19hbGFybV9jb2RlQhQKEl9hZGRfb25faGVhdF93YXR0cyK3AQoJUmFkaW9MaW5rEiUKB3F1YWxpdHkYASABKA1CD6K1GAdxdWFsaXR50LUYBUgAiAEBEicKCHJzc2lfZGJtGAIgASgRQhCitRgIcnNzaV9kYm3QtRgFSAGIAQESIwoGc25yX2RiGAMgASgCQg6itRgGc25yX2Ri0LUYBUgCiAEBOhGqtRgNa3VzaW50YS5yYWRpb0IKCghfcXVhbGl0eUILCglfcnNzaV9kYm1CCQoHX3Nucl9kYiqVAgoUSGVhdFNvdXJjZVByb2R1Y3Rpb24SJgoiSEVBVF9TT1VSQ0VfUFJPRFVDVElPTl9VTlNQRUNJRklFRBAAEh4KGkhFQVRfU09VUkNFX1BST0RVQ1RJT05fT0ZGEAESKAokSEVBVF9TT1VSQ0VfUFJPRFVDVElPTl9TUEFDRV9IRUFUSU5HEAISJAogSEVBVF9TT1VSQ0VfUFJPRFVDVElPTl9IT1RfV0FURVIQAxIfChtIRUFUX1NPVVJDRV9QUk9EVUNUSU9OX1BPT0wQBBIiCh5IRUFUX1NPVVJDRV9QUk9EVUNUSU9OX0NPT0xJTkcQBRIgChxIRUFUX1NPVVJDRV9QUk9EVUNUSU9OX09USEVSEAYqywEKD0NvbXByZXNzb3JTdGF0ZRIgChxDT01QUkVTU09SX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoYQ09NUFJFU1NPUl9TVEFURV9TVE9QUEVEEAESHQoZQ09NUFJFU1NPUl9TVEFURV9TVEFSVElORxACEhwKGENPTVBSRVNTT1JfU1RBVEVfUlVOTklORxADEh0KGUNPTVBSRVNTT1JfU1RBVEVfU1RPUFBJTkcQBBIcChhDT01QUkVTU09SX1NUQVRFX0JMT0NLRUQQBSp1CgxSYWRpb1F1YWxpdHkSHQoZUkFESU9fUVVBTElUWV9VTlNQRUNJRklFRBAAEhYKElJBRElPX1FVQUxJVFlfR09PRBABEhYKElJBRElPX1FVQUxJVFlfRkFJUhACEhYKElJBRElPX1FVQUxJVFlfUE9PUhADQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_device_v1_descriptor, file_kusinta_iot_device_v1_properties, file_kusinta_iot_vendor_homematic_v1_homematic, file_kusinta_iot_vendor_v1_vendor_options]);
18
18
 
19
19
  /**
20
20
  * Describes the message kusinta.iot.device.v1.Endpoint.
@@ -185,6 +185,10 @@ export declare type PropertyUpdate = Message<"kusinta.iot.device.v1.PropertyUpda
185
185
  } | { case: undefined; value?: undefined };
186
186
 
187
187
  /**
188
+ * When the value was known to be current: when it was read or reported, not when it last
189
+ * changed. A source that re-reads an unchanged value says it again with the new time, so a
190
+ * reading is held fresh no longer than it was last confirmed.
191
+ *
188
192
  * @generated from field: google.protobuf.Timestamp timestamp = 9;
189
193
  */
190
194
  timestamp?: Timestamp | undefined;
@@ -284,7 +284,10 @@ export declare type FloorCircuit = Message<"kusinta.iot.heating.v1.FloorCircuit"
284
284
  supplyCapCentidegrees?: number | undefined;
285
285
 
286
286
  /**
287
- * Probes on the supply (after mixing) and the return.
287
+ * Probes on the supply (after mixing) and the return. Each names the Matter Temperature
288
+ * Measurement cluster's MeasuredValue (cluster 0x0402, attribute 0x0000, in centidegrees) on
289
+ * the probe's endpoint; a put naming any other attribute, or a vendor parameter, is refused as
290
+ * INVALID_REQUEST, so that every reading of a probe is a temperature in one unit.
288
291
  *
289
292
  * @generated from field: kusinta.iot.heating.v1.DeviceAttribute supply_probe = 3;
290
293
  */
@@ -9,7 +9,7 @@ import type { AttributeRef } from "../../access/v1/acl_pb.js";
9
9
  import type { Space } from "../../space/v1/space_pb.js";
10
10
  import type { ManagementAck, ManagementRequest, PrivacyDisclosure, SpaceTree } from "./management_pb.js";
11
11
  import type { DeviceLink, DeviceLinkList } from "../../link/v1/link_pb.js";
12
- import type { ApartmentClimateSummary, ClimateMode, RoomClimate, RoomClimateList, RoomHistory } from "../../climate/v1/climate_pb.js";
12
+ import type { ApartmentClimateSummary, ClimateMode, PlantHistory, RoomClimate, RoomClimateList, RoomHistory } from "../../climate/v1/climate_pb.js";
13
13
  import type { IssuedInvite, SpaceInvites } from "./invite_pb.js";
14
14
  import type { GatewayMembers, PromotionRequests } from "./members_pb.js";
15
15
  import type { HeatingLayout, HeatingRecord } from "../../heating/v1/heating_pb.js";
@@ -509,6 +509,14 @@ export declare type ManagementResult = Message<"kusinta.iot.webrtc.v1.Management
509
509
  */
510
510
  value: HouseholdExport;
511
511
  case: "householdExport";
512
+ } | {
513
+ /**
514
+ * get_plant_history
515
+ *
516
+ * @generated from field: kusinta.iot.climate.v1.PlantHistory plant_history = 27;
517
+ */
518
+ value: PlantHistory;
519
+ case: "plantHistory";
512
520
  } | { case: undefined; value?: undefined };
513
521
  };
514
522
 
@@ -27,7 +27,7 @@ import { file_kusinta_iot_webrtc_v1_permission_push } from "./permission_push_pb
27
27
  * Describes the file kusinta/iot/webrtc/v1/envelope.proto.
28
28
  */
29
29
  export const file_kusinta_iot_webrtc_v1_envelope = /*@__PURE__*/
30
- fileDesc("CiRrdXNpbnRhL2lvdC93ZWJydGMvdjEvZW52ZWxvcGUucHJvdG8SFWt1c2ludGEuaW90LndlYnJ0Yy52MSIGCgRQaW5nIgYKBFBvbmciXwoRSGFuZHNoYWtlUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJEjoKBGNvZGUYAiABKA4yLC5rdXNpbnRhLmlvdC53ZWJydGMudjEuSGFuZHNoYWtlUmVqZWN0UmVhc29uIlwKDEFwcEhhbmRzaGFrZRILCgNqd3QYASABKAkSPwoUc3Vic2NyaWJlX2RldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJJChBTdWJzY3JpYmVEZXZpY2VzEjUKCmRldmljZV9pZHMYASADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJLChJVbnN1YnNjcmliZURldmljZXMSNQoKZGV2aWNlX2lkcxgBIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIpMBChNSZWZ1c2VkU3Vic2NyaXB0aW9uEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjUKBGNvZGUYAiABKA4yJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yQ29kZRIPCgdtZXNzYWdlGAMgASgJIpoBCg9TdWJzY3JpcHRpb25BY2sSEwoLaW5fcmVwbHlfdG8YASABKAkSNQoKc3Vic2NyaWJlZBgCIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjsKB3JlZnVzZWQYAyADKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVmdXNlZFN1YnNjcmlwdGlvbiLRAQoTUHJvcGVydHlSZWFkUmVxdWVzdBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCgZ0YXJnZXQYByABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmSgQIAhAHUg5hdHRyaWJ1dGVfbmFtZVIOY2x1c3Rlcl9pZF9oZXhSCmNsdXN0ZXJfaWRSC2VuZHBvaW50X2lkUhB2ZW5kb3JfZXh0ZW5zaW9uIswBCgxHYXRld2F5RXJyb3ISNQoEY29kZRgBIAEoDjInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5RXJyb3JDb2RlEg8KB21lc3NhZ2UYAiABKAkSQwoIbWV0YWRhdGEYAyADKAsyMS5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIs8NChBNYW5hZ2VtZW50UmVzdWx0EhMKC2luX3JlcGx5X3RvGAEgASgJEjQKBWVycm9yGAIgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkdhdGV3YXlFcnJvckgAEiwKBXNwYWNlGAMgASgLMhsua3VzaW50YS5pb3Quc3BhY2UudjEuU3BhY2VIABI2CgpzcGFjZV90cmVlGAQgASgLMiAua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlVHJlZUgAEjMKA2FjaxgFIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NYW5hZ2VtZW50QWNrSAASNAoFbGlua3MYBiABKAsyIy5rdXNpbnRhLmlvdC5saW5rLnYxLkRldmljZUxpbmtMaXN0SAASQAoNcm9vbV9jbGltYXRlcxgHIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUNsaW1hdGVMaXN0SAASOwoMcm9vbV9oaXN0b3J5GAggASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeUgAEkYKEnByaXZhY3lfZGlzY2xvc3VyZRgJIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcml2YWN5RGlzY2xvc3VyZUgAElQKGWFwYXJ0bWVudF9jbGltYXRlX3N1bW1hcnkYCiABKAsyLy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5SAASPAoNaXNzdWVkX2ludml0ZRgLIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Jc3N1ZWRJbnZpdGVIABI8Cg1zcGFjZV9pbnZpdGVzGAwgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlSW52aXRlc0gAEkAKD2dhdGV3YXlfbWVtYmVycxgNIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5TWVtYmVyc0gAEkYKEnByb21vdGlvbl9yZXF1ZXN0cxgOIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9tb3Rpb25SZXF1ZXN0c0gAEj8KDmhlYXRpbmdfbGF5b3V0GA8gASgLMiUua3VzaW50YS5pb3QuaGVhdGluZy52MS5IZWF0aW5nTGF5b3V0SAASPwoOaGVhdGluZ19yZWNvcmQYECABKAsyJS5rdXNpbnRhLmlvdC5oZWF0aW5nLnYxLkhlYXRpbmdSZWNvcmRIABJKChJhY2NvdW50X2xpbmtfbm9uY2UYESABKAsyLC5rdXNpbnRhLmlvdC5hY2NvdW50bGluay52MS5BY2NvdW50TGlua05vbmNlSAASQQoNYWNjb3VudF9saW5rcxgSIAEoCzIoLmt1c2ludGEuaW90LmFjY291bnRsaW5rLnYxLkFjY291bnRMaW5rc0gAElMKFWNvbW1pc3Npb25pbmdfcHJvZmlsZRgTIAEoCzIyLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Byb2ZpbGVIABJRChRjb21taXNzaW9uaW5nX3JlY29yZBgUIAEoCzIxLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1JlY29yZEgAEj8KC2hvbWVfc2V0dXBzGBUgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib21lU2V0dXBzSAASTwoTY29tbWlzc2lvbmluZ19ncmFudBgWIAEoCzIwLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50SAASUQoUY29tbWlzc2lvbmluZ19ncmFudHMYFyABKAsyMS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudHNIABJGChJob3VzZWhvbGRfaGFuZG92ZXIYGCABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuSG91c2Vob2xkSGFuZG92ZXJIABJIChNob3VzZWhvbGRfaGFuZG92ZXJzGBkgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkhvdXNlaG9sZEhhbmRvdmVyc0gAEkIKEGhvdXNlaG9sZF9leHBvcnQYGiABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuSG91c2Vob2xkRXhwb3J0SABCCAoGcmVzdWx0IvsBCgxTdGFydFBhaXJpbmcSOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSNAoGd2luZG93GAIgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdXaW5kb3cSOgoQaW5pdGlhbF9zcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPQoJb3duZXJzaGlwGAQgASgOMioua3VzaW50YS5pb3QuY29tbW9uLnYxLkRldmljZU93bmVyc2hpcFR5cGUijwEKDlBhaXJpbmdTdGFydGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKBWVycm9yGAMgASgLMikua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdFcnJvckRldGFpbCKXAQoPUGFpcmluZ0ZpbmlzaGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEjUKCmRldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBI4CgVlcnJvchgDIAEoCzIpLmt1c2ludGEuaW90LmNvbW1vbi52MS5QYWlyaW5nRXJyb3JEZXRhaWwiTQoLTGlua0NoYW5nZWQSLQoEbGluaxgBIAEoCzIfLmt1c2ludGEuaW90LmxpbmsudjEuRGV2aWNlTGluaxIPCgdyZW1vdmVkGAIgASgIIogDChNDb25uZWN0b3JEZXNjcmlwdG9yEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAMgAygNEhgKEHN1cHBvcnRzX3BhaXJpbmcYBCABKAgSHQoVc3VwcG9ydHNfcHJvdmlzaW9uaW5nGAUgASgIEhUKDWJyb2tlcnNfbGlua3MYBiABKAgSMgoEa2luZBgHIAEoDjIkLmt1c2ludGEuaW90LmNvbW1vbi52MS5Db25uZWN0b3JLaW5kEhMKC2Rlc2NyaXB0aW9uGAggASgJEjwKDmJhY2tlbmRfaGVhbHRoGAkgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLkJhY2tlbmRIZWFsdGgSJQodc3VwcG9ydHNfYmFja2VuZF9yZWluaXRpYWxpemUYCiABKAgiVQoTQ29ubmVjdG9yc0Fubm91bmNlZBI+Cgpjb25uZWN0b3JzGAEgAygLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLkNvbm5lY3RvckRlc2NyaXB0b3IiRwoSUm9vbUNsaW1hdGVDaGFuZ2VkEjEKBHJvb20YASABKAsyIy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21DbGltYXRlIlYKEkNsaW1hdGVNb2RlQ2hhbmdlZBIxCgRtb2RlGAEgASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZRINCgVlbmRlZBgCIAEoCCLJDgoOR2F0ZXdheU1lc3NhZ2USEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJECg5zdGF0ZV9zbmFwc2hvdBgDIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VTdGF0ZVNuYXBzaG90SAASQAoPcHJvcGVydHlfcmVwb3J0GAQgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlByb3BlcnR5UmVwb3J0SAASSAoRcGVybWlzc2lvbl91cGRhdGUYBSABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGl2ZVBlcm1pc3Npb25VcGRhdGVIABI+Cg5jb21tYW5kX3Jlc3VsdBgGIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Db21tYW5kUmVzdWx0SAASKwoEcG9uZxgIIAEoCzIbLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qb25nSAASRgoSaGFuZHNoYWtlX3JlamVjdGVkGAkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLkhhbmRzaGFrZVJlamVjdGVkSAASNAoFZXJyb3IYCiABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9ySAASQgoQc3Vic2NyaXB0aW9uX2FjaxgLIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TdWJzY3JpcHRpb25BY2tIABI6CgxkZXZpY2VfYWRkZWQYDCABKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQWRkZWRIABI+Cg5kZXZpY2VfcmVtb3ZlZBgNIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VSZW1vdmVkSAASRAoRbWFuYWdlbWVudF9yZXN1bHQYDiABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTWFuYWdlbWVudFJlc3VsdEgAEkAKDWRldmljZV9ldmVudHMYECABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRXZlbnRCYXRjaEgAEkAKD3BhaXJpbmdfc3RhcnRlZBgRIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QYWlyaW5nU3RhcnRlZEgAEkIKEHBhaXJpbmdfZmluaXNoZWQYEiABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGFpcmluZ0ZpbmlzaGVkSAASOgoMbGlua19jaGFuZ2VkGBMgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpbmtDaGFuZ2VkSAASSgoUY29ubmVjdG9yc19hbm5vdW5jZWQYFCABKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29ubmVjdG9yc0Fubm91bmNlZEgAEkkKFHJvb21fY2xpbWF0ZV9jaGFuZ2VkGBUgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21DbGltYXRlQ2hhbmdlZEgAEkkKFGNsaW1hdGVfbW9kZV9jaGFuZ2VkGBYgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsaW1hdGVNb2RlQ2hhbmdlZEgAEk0KFnNlcnZpY2Vfc3RhdHVzX2NoYW5nZWQYFyABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2VydmljZVN0YXR1c0NoYW5nZWRIABI8Cg1zcGFjZV9pbnZpdGVzGBggASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlSW52aXRlc0gAEkYKEnByb21vdGlvbl9yZXF1ZXN0cxgZIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9tb3Rpb25SZXF1ZXN0c0gAEk0KEmNvbW1pc3Npb25pbmdfdGVzdBgaIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3RIABJRChRjb21taXNzaW9uaW5nX2dyYW50cxgbIAEoCzIxLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50c0gAEkYKEmhvdXNlaG9sZF9oYW5kb3ZlchgcIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Ib3VzZWhvbGRIYW5kb3ZlckgAEk8KF2NsaW1hdGVfaGlzdG9yeV9jbGVhcmVkGB0gASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsaW1hdGVIaXN0b3J5Q2xlYXJlZEgAQgkKB3BheWxvYWRKBAgPEBBKBAgHEAhSFmF0dHJpYnV0ZV93cml0ZV9yZXN1bHRSDnByb3BlcnR5X2V2ZW50IoMFCgpBcHBNZXNzYWdlEhIKCm1lc3NhZ2VfaWQYASABKAkSKwoHc2VudF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoJaGFuZHNoYWtlGAMgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkFwcEhhbmRzaGFrZUgAEjcKB2NvbW1hbmQYBCABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQ29tbWFuZEgAEkIKDHJlYWRfcmVxdWVzdBgFIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9wZXJ0eVJlYWRSZXF1ZXN0SAASKwoEcGluZxgGIAEoCzIbLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QaW5nSAASPAoJc3Vic2NyaWJlGAcgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLlN1YnNjcmliZURldmljZXNIABJACgt1bnN1YnNjcmliZRgIIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5VbnN1YnNjcmliZURldmljZXNIABI+CgptYW5hZ2VtZW50GAkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk1hbmFnZW1lbnRSZXF1ZXN0SAASRwoPYXR0cmlidXRlX3dyaXRlGAogASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkF0dHJpYnV0ZVdyaXRlUmVxdWVzdEgAEjwKDXN0YXJ0X3BhaXJpbmcYCyABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU3RhcnRQYWlyaW5nSABCCQoHcGF5bG9hZCrRAQoVSGFuZHNoYWtlUmVqZWN0UmVhc29uEicKI0hBTkRTSEFLRV9SRUpFQ1RfUkVBU09OX1VOU1BFQ0lGSUVEEAASLAooSEFORFNIQUtFX1JFSkVDVF9SRUFTT05fSU5WQUxJRF9FTkNPRElORxABEi4KKkhBTkRTSEFLRV9SRUpFQ1RfUkVBU09OX0hBTkRTSEFLRV9SRVFVSVJFRBACEjEKLUhBTkRTSEFLRV9SRUpFQ1RfUkVBU09OX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRBADKqICChBHYXRld2F5RXJyb3JDb2RlEiIKHkdBVEVXQVlfRVJST1JfQ09ERV9VTlNQRUNJRklFRBAAEiMKH0dBVEVXQVlfRVJST1JfQ09ERV9OT1RfRU5USVRMRUQQARImCiJHQVRFV0FZX0VSUk9SX0NPREVfSU5WQUxJRF9SRVFVRVNUEAISIgoeR0FURVdBWV9FUlJPUl9DT0RFX1VOQVZBSUxBQkxFEAMSHwobR0FURVdBWV9FUlJPUl9DT0RFX0lOVEVSTkFMEAQSLAooR0FURVdBWV9FUlJPUl9DT0RFX1NFU1NJT05fTElNSVRfUkVBQ0hFRBAFEioKJkdBVEVXQVlfRVJST1JfQ09ERV9GQUlMRURfUFJFQ09ORElUSU9OEAZCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_acl, file_kusinta_iot_accountlink_v1_account_link, file_kusinta_iot_climate_v1_climate, file_kusinta_iot_commissioning_v1_commissioning, file_kusinta_iot_common_v1_pairing, file_kusinta_iot_common_v1_types, file_kusinta_iot_device_v1_device_event, file_kusinta_iot_heating_v1_heating, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_link_v1_link, file_kusinta_iot_space_v1_space, file_kusinta_iot_webrtc_v1_command, file_kusinta_iot_webrtc_v1_device_state, file_kusinta_iot_webrtc_v1_household, file_kusinta_iot_webrtc_v1_invite, file_kusinta_iot_webrtc_v1_management, file_kusinta_iot_webrtc_v1_members, file_kusinta_iot_webrtc_v1_permission_push]);
30
+ fileDesc("CiRrdXNpbnRhL2lvdC93ZWJydGMvdjEvZW52ZWxvcGUucHJvdG8SFWt1c2ludGEuaW90LndlYnJ0Yy52MSIGCgRQaW5nIgYKBFBvbmciXwoRSGFuZHNoYWtlUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJEjoKBGNvZGUYAiABKA4yLC5rdXNpbnRhLmlvdC53ZWJydGMudjEuSGFuZHNoYWtlUmVqZWN0UmVhc29uIlwKDEFwcEhhbmRzaGFrZRILCgNqd3QYASABKAkSPwoUc3Vic2NyaWJlX2RldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJJChBTdWJzY3JpYmVEZXZpY2VzEjUKCmRldmljZV9pZHMYASADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJLChJVbnN1YnNjcmliZURldmljZXMSNQoKZGV2aWNlX2lkcxgBIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIpMBChNSZWZ1c2VkU3Vic2NyaXB0aW9uEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjUKBGNvZGUYAiABKA4yJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yQ29kZRIPCgdtZXNzYWdlGAMgASgJIpoBCg9TdWJzY3JpcHRpb25BY2sSEwoLaW5fcmVwbHlfdG8YASABKAkSNQoKc3Vic2NyaWJlZBgCIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjsKB3JlZnVzZWQYAyADKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVmdXNlZFN1YnNjcmlwdGlvbiLRAQoTUHJvcGVydHlSZWFkUmVxdWVzdBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCgZ0YXJnZXQYByABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmSgQIAhAHUg5hdHRyaWJ1dGVfbmFtZVIOY2x1c3Rlcl9pZF9oZXhSCmNsdXN0ZXJfaWRSC2VuZHBvaW50X2lkUhB2ZW5kb3JfZXh0ZW5zaW9uIswBCgxHYXRld2F5RXJyb3ISNQoEY29kZRgBIAEoDjInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5RXJyb3JDb2RlEg8KB21lc3NhZ2UYAiABKAkSQwoIbWV0YWRhdGEYAyADKAsyMS5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9yLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIo4OChBNYW5hZ2VtZW50UmVzdWx0EhMKC2luX3JlcGx5X3RvGAEgASgJEjQKBWVycm9yGAIgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkdhdGV3YXlFcnJvckgAEiwKBXNwYWNlGAMgASgLMhsua3VzaW50YS5pb3Quc3BhY2UudjEuU3BhY2VIABI2CgpzcGFjZV90cmVlGAQgASgLMiAua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlVHJlZUgAEjMKA2FjaxgFIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NYW5hZ2VtZW50QWNrSAASNAoFbGlua3MYBiABKAsyIy5rdXNpbnRhLmlvdC5saW5rLnYxLkRldmljZUxpbmtMaXN0SAASQAoNcm9vbV9jbGltYXRlcxgHIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUNsaW1hdGVMaXN0SAASOwoMcm9vbV9oaXN0b3J5GAggASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeUgAEkYKEnByaXZhY3lfZGlzY2xvc3VyZRgJIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcml2YWN5RGlzY2xvc3VyZUgAElQKGWFwYXJ0bWVudF9jbGltYXRlX3N1bW1hcnkYCiABKAsyLy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5SAASPAoNaXNzdWVkX2ludml0ZRgLIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Jc3N1ZWRJbnZpdGVIABI8Cg1zcGFjZV9pbnZpdGVzGAwgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlSW52aXRlc0gAEkAKD2dhdGV3YXlfbWVtYmVycxgNIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HYXRld2F5TWVtYmVyc0gAEkYKEnByb21vdGlvbl9yZXF1ZXN0cxgOIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9tb3Rpb25SZXF1ZXN0c0gAEj8KDmhlYXRpbmdfbGF5b3V0GA8gASgLMiUua3VzaW50YS5pb3QuaGVhdGluZy52MS5IZWF0aW5nTGF5b3V0SAASPwoOaGVhdGluZ19yZWNvcmQYECABKAsyJS5rdXNpbnRhLmlvdC5oZWF0aW5nLnYxLkhlYXRpbmdSZWNvcmRIABJKChJhY2NvdW50X2xpbmtfbm9uY2UYESABKAsyLC5rdXNpbnRhLmlvdC5hY2NvdW50bGluay52MS5BY2NvdW50TGlua05vbmNlSAASQQoNYWNjb3VudF9saW5rcxgSIAEoCzIoLmt1c2ludGEuaW90LmFjY291bnRsaW5rLnYxLkFjY291bnRMaW5rc0gAElMKFWNvbW1pc3Npb25pbmdfcHJvZmlsZRgTIAEoCzIyLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Byb2ZpbGVIABJRChRjb21taXNzaW9uaW5nX3JlY29yZBgUIAEoCzIxLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1JlY29yZEgAEj8KC2hvbWVfc2V0dXBzGBUgASgLMigua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib21lU2V0dXBzSAASTwoTY29tbWlzc2lvbmluZ19ncmFudBgWIAEoCzIwLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50SAASUQoUY29tbWlzc2lvbmluZ19ncmFudHMYFyABKAsyMS5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudHNIABJGChJob3VzZWhvbGRfaGFuZG92ZXIYGCABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuSG91c2Vob2xkSGFuZG92ZXJIABJIChNob3VzZWhvbGRfaGFuZG92ZXJzGBkgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkhvdXNlaG9sZEhhbmRvdmVyc0gAEkIKEGhvdXNlaG9sZF9leHBvcnQYGiABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuSG91c2Vob2xkRXhwb3J0SAASPQoNcGxhbnRfaGlzdG9yeRgbIAEoCzIkLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUGxhbnRIaXN0b3J5SABCCAoGcmVzdWx0IvsBCgxTdGFydFBhaXJpbmcSOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSNAoGd2luZG93GAIgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdXaW5kb3cSOgoQaW5pdGlhbF9zcGFjZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPQoJb3duZXJzaGlwGAQgASgOMioua3VzaW50YS5pb3QuY29tbW9uLnYxLkRldmljZU93bmVyc2hpcFR5cGUijwEKDlBhaXJpbmdTdGFydGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKBWVycm9yGAMgASgLMikua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdFcnJvckRldGFpbCKXAQoPUGFpcmluZ0ZpbmlzaGVkEhMKC2luX3JlcGx5X3RvGAEgASgJEjUKCmRldmljZV9pZHMYAiADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBI4CgVlcnJvchgDIAEoCzIpLmt1c2ludGEuaW90LmNvbW1vbi52MS5QYWlyaW5nRXJyb3JEZXRhaWwiTQoLTGlua0NoYW5nZWQSLQoEbGluaxgBIAEoCzIfLmt1c2ludGEuaW90LmxpbmsudjEuRGV2aWNlTGluaxIPCgdyZW1vdmVkGAIgASgIIogDChNDb25uZWN0b3JEZXNjcmlwdG9yEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAMgAygNEhgKEHN1cHBvcnRzX3BhaXJpbmcYBCABKAgSHQoVc3VwcG9ydHNfcHJvdmlzaW9uaW5nGAUgASgIEhUKDWJyb2tlcnNfbGlua3MYBiABKAgSMgoEa2luZBgHIAEoDjIkLmt1c2ludGEuaW90LmNvbW1vbi52MS5Db25uZWN0b3JLaW5kEhMKC2Rlc2NyaXB0aW9uGAggASgJEjwKDmJhY2tlbmRfaGVhbHRoGAkgASgLMiQua3VzaW50YS5pb3QuY29tbW9uLnYxLkJhY2tlbmRIZWFsdGgSJQodc3VwcG9ydHNfYmFja2VuZF9yZWluaXRpYWxpemUYCiABKAgiVQoTQ29ubmVjdG9yc0Fubm91bmNlZBI+Cgpjb25uZWN0b3JzGAEgAygLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLkNvbm5lY3RvckRlc2NyaXB0b3IiRwoSUm9vbUNsaW1hdGVDaGFuZ2VkEjEKBHJvb20YASABKAsyIy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21DbGltYXRlIlYKEkNsaW1hdGVNb2RlQ2hhbmdlZBIxCgRtb2RlGAEgASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZRINCgVlbmRlZBgCIAEoCCLJDgoOR2F0ZXdheU1lc3NhZ2USEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJECg5zdGF0ZV9zbmFwc2hvdBgDIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VTdGF0ZVNuYXBzaG90SAASQAoPcHJvcGVydHlfcmVwb3J0GAQgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlByb3BlcnR5UmVwb3J0SAASSAoRcGVybWlzc2lvbl91cGRhdGUYBSABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGl2ZVBlcm1pc3Npb25VcGRhdGVIABI+Cg5jb21tYW5kX3Jlc3VsdBgGIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Db21tYW5kUmVzdWx0SAASKwoEcG9uZxgIIAEoCzIbLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qb25nSAASRgoSaGFuZHNoYWtlX3JlamVjdGVkGAkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLkhhbmRzaGFrZVJlamVjdGVkSAASNAoFZXJyb3IYCiABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2F0ZXdheUVycm9ySAASQgoQc3Vic2NyaXB0aW9uX2FjaxgLIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TdWJzY3JpcHRpb25BY2tIABI6CgxkZXZpY2VfYWRkZWQYDCABKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQWRkZWRIABI+Cg5kZXZpY2VfcmVtb3ZlZBgNIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VSZW1vdmVkSAASRAoRbWFuYWdlbWVudF9yZXN1bHQYDiABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTWFuYWdlbWVudFJlc3VsdEgAEkAKDWRldmljZV9ldmVudHMYECABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRXZlbnRCYXRjaEgAEkAKD3BhaXJpbmdfc3RhcnRlZBgRIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QYWlyaW5nU3RhcnRlZEgAEkIKEHBhaXJpbmdfZmluaXNoZWQYEiABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGFpcmluZ0ZpbmlzaGVkSAASOgoMbGlua19jaGFuZ2VkGBMgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpbmtDaGFuZ2VkSAASSgoUY29ubmVjdG9yc19hbm5vdW5jZWQYFCABKAsyKi5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29ubmVjdG9yc0Fubm91bmNlZEgAEkkKFHJvb21fY2xpbWF0ZV9jaGFuZ2VkGBUgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21DbGltYXRlQ2hhbmdlZEgAEkkKFGNsaW1hdGVfbW9kZV9jaGFuZ2VkGBYgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsaW1hdGVNb2RlQ2hhbmdlZEgAEk0KFnNlcnZpY2Vfc3RhdHVzX2NoYW5nZWQYFyABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2VydmljZVN0YXR1c0NoYW5nZWRIABI8Cg1zcGFjZV9pbnZpdGVzGBggASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNwYWNlSW52aXRlc0gAEkYKEnByb21vdGlvbl9yZXF1ZXN0cxgZIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9tb3Rpb25SZXF1ZXN0c0gAEk0KEmNvbW1pc3Npb25pbmdfdGVzdBgaIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Rlc3RIABJRChRjb21taXNzaW9uaW5nX2dyYW50cxgbIAEoCzIxLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50c0gAEkYKEmhvdXNlaG9sZF9oYW5kb3ZlchgcIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Ib3VzZWhvbGRIYW5kb3ZlckgAEk8KF2NsaW1hdGVfaGlzdG9yeV9jbGVhcmVkGB0gASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsaW1hdGVIaXN0b3J5Q2xlYXJlZEgAQgkKB3BheWxvYWRKBAgPEBBKBAgHEAhSFmF0dHJpYnV0ZV93cml0ZV9yZXN1bHRSDnByb3BlcnR5X2V2ZW50IoMFCgpBcHBNZXNzYWdlEhIKCm1lc3NhZ2VfaWQYASABKAkSKwoHc2VudF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoJaGFuZHNoYWtlGAMgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkFwcEhhbmRzaGFrZUgAEjcKB2NvbW1hbmQYBCABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQ29tbWFuZEgAEkIKDHJlYWRfcmVxdWVzdBgFIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm9wZXJ0eVJlYWRSZXF1ZXN0SAASKwoEcGluZxgGIAEoCzIbLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QaW5nSAASPAoJc3Vic2NyaWJlGAcgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLlN1YnNjcmliZURldmljZXNIABJACgt1bnN1YnNjcmliZRgIIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5VbnN1YnNjcmliZURldmljZXNIABI+CgptYW5hZ2VtZW50GAkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk1hbmFnZW1lbnRSZXF1ZXN0SAASRwoPYXR0cmlidXRlX3dyaXRlGAogASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkF0dHJpYnV0ZVdyaXRlUmVxdWVzdEgAEjwKDXN0YXJ0X3BhaXJpbmcYCyABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU3RhcnRQYWlyaW5nSABCCQoHcGF5bG9hZCrRAQoVSGFuZHNoYWtlUmVqZWN0UmVhc29uEicKI0hBTkRTSEFLRV9SRUpFQ1RfUkVBU09OX1VOU1BFQ0lGSUVEEAASLAooSEFORFNIQUtFX1JFSkVDVF9SRUFTT05fSU5WQUxJRF9FTkNPRElORxABEi4KKkhBTkRTSEFLRV9SRUpFQ1RfUkVBU09OX0hBTkRTSEFLRV9SRVFVSVJFRBACEjEKLUhBTkRTSEFLRV9SRUpFQ1RfUkVBU09OX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRBADKqICChBHYXRld2F5RXJyb3JDb2RlEiIKHkdBVEVXQVlfRVJST1JfQ09ERV9VTlNQRUNJRklFRBAAEiMKH0dBVEVXQVlfRVJST1JfQ09ERV9OT1RfRU5USVRMRUQQARImCiJHQVRFV0FZX0VSUk9SX0NPREVfSU5WQUxJRF9SRVFVRVNUEAISIgoeR0FURVdBWV9FUlJPUl9DT0RFX1VOQVZBSUxBQkxFEAMSHwobR0FURVdBWV9FUlJPUl9DT0RFX0lOVEVSTkFMEAQSLAooR0FURVdBWV9FUlJPUl9DT0RFX1NFU1NJT05fTElNSVRfUkVBQ0hFRBAFEioKJkdBVEVXQVlfRVJST1JfQ09ERV9GQUlMRURfUFJFQ09ORElUSU9OEAZCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_acl, file_kusinta_iot_accountlink_v1_account_link, file_kusinta_iot_climate_v1_climate, file_kusinta_iot_commissioning_v1_commissioning, file_kusinta_iot_common_v1_pairing, file_kusinta_iot_common_v1_types, file_kusinta_iot_device_v1_device_event, file_kusinta_iot_heating_v1_heating, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_link_v1_link, file_kusinta_iot_space_v1_space, file_kusinta_iot_webrtc_v1_command, file_kusinta_iot_webrtc_v1_device_state, file_kusinta_iot_webrtc_v1_household, file_kusinta_iot_webrtc_v1_invite, file_kusinta_iot_webrtc_v1_management, file_kusinta_iot_webrtc_v1_members, file_kusinta_iot_webrtc_v1_permission_push]);
31
31
 
32
32
  /**
33
33
  * Describes the message kusinta.iot.webrtc.v1.Ping.
@@ -323,9 +323,10 @@ export declare const HouseholdHandoverSchema: GenMessage<HouseholdHandover>;
323
323
  * before their residency. Every resident of the home loses it, not only the caller, and each is
324
324
  * told (ClimateHistoryCleared). Nothing recorded before the clear is kept, or recorded at or
325
325
  * after it, a late write included: room history begins again with the first bucket that starts
326
- * at or after the clear, and the summary of each length with its first period that starts at or
327
- * after the clear; the gateway learns its models and makes its plans afresh from what is
328
- * recorded at or after it. The household's members, the home's rooms and their settings, its
326
+ * at or after the clear, and so does the history of the home's own heat source
327
+ * (climate.v1.PlantHistory, its buckets made while the plant was the home's), and the summary of
328
+ * each length with its first period that starts at or after the clear; the gateway learns its
329
+ * models and makes its plans afresh from what is recorded at or after it. The household's members, the home's rooms and their settings, its
329
330
  * modes, its commissioning and its heating records stay. It cannot be undone, and the gateway
330
331
  * keeps no copy: an app asks its user to confirm, saying that everyone in the home loses it, and
331
332
  * offers the household's export (EXPORT) first. Later parts of an export under way give nothing
@@ -1118,6 +1118,45 @@ export declare type GetRoomHistory = Message<"kusinta.iot.webrtc.v1.GetRoomHisto
1118
1118
  */
1119
1119
  export declare const GetRoomHistorySchema: GenMessage<GetRoomHistory>;
1120
1120
 
1121
+ /**
1122
+ * Reads a heat source's history at one resolution, answered with a climate.v1.PlantHistory, as
1123
+ * GetRoomHistory reads a room's: the same range, clamping, paging and choice of resolution.
1124
+ * Whose buckets the caller is given is as climate.v1.PlantHistory says: a home's plant to its
1125
+ * residents only, from the start of their current residency; a plant outside homes to the
1126
+ * property owner and the gateway administrators. Anyone else, and a plant that does not exist,
1127
+ * is refused as NOT_ENTITLED with the same metadata, as is a caller who reaches the home only as
1128
+ * service: a heat source's readings with their times are never service's.
1129
+ *
1130
+ * @generated from message kusinta.iot.webrtc.v1.GetPlantHistory
1131
+ */
1132
+ export declare type GetPlantHistory = Message<"kusinta.iot.webrtc.v1.GetPlantHistory"> & {
1133
+ /**
1134
+ * @generated from field: string plant_id = 1;
1135
+ */
1136
+ plantId: string;
1137
+
1138
+ /**
1139
+ * @generated from field: google.protobuf.Timestamp from_time = 2;
1140
+ */
1141
+ fromTime?: Timestamp | undefined;
1142
+
1143
+ /**
1144
+ * @generated from field: google.protobuf.Timestamp to_time = 3;
1145
+ */
1146
+ toTime?: Timestamp | undefined;
1147
+
1148
+ /**
1149
+ * @generated from field: kusinta.iot.climate.v1.RoomHistoryResolution resolution = 4;
1150
+ */
1151
+ resolution: RoomHistoryResolution;
1152
+ };
1153
+
1154
+ /**
1155
+ * Describes the message kusinta.iot.webrtc.v1.GetPlantHistory.
1156
+ * Use `create(GetPlantHistorySchema)` to create a new message.
1157
+ */
1158
+ export declare const GetPlantHistorySchema: GenMessage<GetPlantHistory>;
1159
+
1121
1160
  /**
1122
1161
  * What the parties who do not live in a private space learn of it — the answer to a
1123
1162
  * resident asking who can see what in their home, in reply to GetPrivacyDisclosure.
@@ -1455,8 +1494,8 @@ export declare const ListHeatingSchema: GenMessage<ListHeating>;
1455
1494
  * leave the contact where its role rests.
1456
1495
  * "TEST_RUNNING" a put that would change what a running commissioning test drives
1457
1496
  * or judges: an output binding of a record whose output it drives,
1458
- * or a floor zone's rooms or control room while a test runs on the
1459
- * zone or on its circuit (PUMP_ALL_ZONES_OFF). metadata "record_id"
1497
+ * or a floor zone's rooms, control room or circuit while a test runs
1498
+ * on the zone or on a circuit it leaves or joins (PUMP_ALL_ZONES_OFF). metadata "record_id"
1460
1499
  * names the test's record. A name, an area share or a supply cap
1461
1500
  * may change meanwhile.
1462
1501
  *
@@ -2547,6 +2586,12 @@ export declare type ManagementRequest = Message<"kusinta.iot.webrtc.v1.Managemen
2547
2586
  */
2548
2587
  value: SetInnerRoomLimits;
2549
2588
  case: "setInnerRoomLimits";
2589
+ } | {
2590
+ /**
2591
+ * @generated from field: kusinta.iot.webrtc.v1.GetPlantHistory get_plant_history = 71;
2592
+ */
2593
+ value: GetPlantHistory;
2594
+ case: "getPlantHistory";
2550
2595
  } | { case: undefined; value?: undefined };
2551
2596
  };
2552
2597
 
@@ -23,7 +23,7 @@ import { file_kusinta_iot_webrtc_v1_members } from "./members_pb.js";
23
23
  * Describes the file kusinta/iot/webrtc/v1/management.proto.
24
24
  */
25
25
  export const file_kusinta_iot_webrtc_v1_management = /*@__PURE__*/
26
- fileDesc("CiZrdXNpbnRhL2lvdC93ZWJydGMvdjEvbWFuYWdlbWVudC5wcm90bxIVa3VzaW50YS5pb3Qud2VicnRjLnYxItYBCgtDcmVhdGVTcGFjZRI0CgpzcGFjZV90eXBlGAEgASgOMiAua3VzaW50YS5pb3QuY29tbW9uLnYxLlNwYWNlVHlwZRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg0KBWZsb29yGAQgASgFEjkKD3BhcmVudF9zcGFjZV9pZBgFIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSFgoJdGltZV96b25lGAYgASgJSACIAQFCDAoKX3RpbWVfem9uZSL1AgoLVXBkYXRlU3BhY2USMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjkKCnNwYWNlX3R5cGUYAiABKA4yIC5rdXNpbnRhLmlvdC5jb21tb24udjEuU3BhY2VUeXBlSAGIAQESEQoEbmFtZRgDIAEoCUgCiAEBEhgKC2Rlc2NyaXB0aW9uGAQgASgJSAOIAQESEgoFZmxvb3IYBSABKAVIBIgBARI7Cg9wYXJlbnRfc3BhY2VfaWQYBiABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkSAASEAoGZGV0YWNoGAcgASgISAASFgoJdGltZV96b25lGAggASgJSAWIAQFCDwoNcGFyZW50X2NoYW5nZUINCgtfc3BhY2VfdHlwZUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCAoGX2Zsb29yQgwKCl90aW1lX3pvbmUiUgoLRGVsZXRlU3BhY2USMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEg8KB2Nhc2NhZGUYAiABKAgivAEKEUFzc2lnblVzZXJUb1NwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIwCgd1c2VyX2lkGAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEjsKCHJlbGF0aW9uGAQgASgOMikua3VzaW50YS5pb3QuYWNjZXNzLnYxLk1lbWJlcnNoaXBSZWxhdGlvbkoECAMQBCJ7ChNSZW1vdmVVc2VyRnJvbVNwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIwCgd1c2VyX2lkGAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkIn4KElBsYWNlRGV2aWNlSW5TcGFjZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQigQEKFVJlbW92ZURldmljZUZyb21TcGFjZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQi2AEKC0NsYWltRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEj0KCW93bmVyc2hpcBgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1vbi52MS5EZXZpY2VPd25lcnNoaXBUeXBlEjoKEGluaXRpYWxfc3BhY2VfaWQYAyABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEhgKEHBvc3Nlc3Npb25fcHJvb2YYBCABKAkiRQoNUmVsZWFzZURldmljZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCKjAQoPUHJvdmlzaW9uRGV2aWNlEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEkUKB2xvcmF3YW4YAiABKAsyMi5rdXNpbnRhLmlvdC52ZW5kb3IubG9yYXdhbi52MS5Mb3Jhd2FuUHJvdmlzaW9uaW5nSABCDQoLY3JlZGVudGlhbHMiRQoKTGlzdFNwYWNlcxI3Cg1yb290X3NwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZCI4CglTcGFjZVRyZWUSKwoGc3BhY2VzGAEgAygLMhsua3VzaW50YS5pb3Quc3BhY2UudjEuU3BhY2UiDwoNTWFuYWdlbWVudEFjayKRAgoQQ3JlYXRlRGV2aWNlTGluaxIxCgZzZW5kZXIYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCghyZWNlaXZlchgCIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjMKCGZ1bmN0aW9uGAMgASgOMiEua3VzaW50YS5pb3QubGluay52MS5MaW5rRnVuY3Rpb24SKwoEbW9kZRgEIAEoDjIdLmt1c2ludGEuaW90LmxpbmsudjEuTGlua01vZGUSMwoIc2V0dGluZ3MYBSABKAsyIS5rdXNpbnRhLmlvdC5saW5rLnYxLkxpbmtTZXR0aW5ncyIjChBSZW1vdmVEZXZpY2VMaW5rEg8KB2xpbmtfaWQYASABKAkiWAoQVXBkYXRlRGV2aWNlTGluaxIPCgdsaW5rX2lkGAEgASgJEjMKCHNldHRpbmdzGAIgASgLMiEua3VzaW50YS5pb3QubGluay52MS5MaW5rU2V0dGluZ3MiRwoPTGlzdERldmljZUxpbmtzEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkInwKDVNldFJvb21UYXJnZXQSMQoHcm9vbV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgCIAEoEUgAiAEBQhYKFF90YXJnZXRfY2VudGlkZWdyZWVzIkQKC1Jvb21TZW5zb3JzEjUKCnNlbnNvcl9pZHMYASADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJ0CgpSb29tTGltaXRzEh0KEG1pbl9jZW50aWRlZ3JlZXMYASABKBFIAIgBARIdChBtYXhfY2VudGlkZWdyZWVzGAIgASgRSAGIAQFCEwoRX21pbl9jZW50aWRlZ3JlZXNCEwoRX21heF9jZW50aWRlZ3JlZXMiPAoOUm9vbUxpbWl0VmFsdWUSGQoMY2VudGlkZWdyZWVzGAEgASgRSACIAQFCDwoNX2NlbnRpZGVncmVlcyKFAwoUQ29uZmlndXJlUm9vbUNsaW1hdGUSMQoHcm9vbV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSMQoGbGltaXRzGAIgASgLMiEua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21MaW1pdHMSMwoHc2Vuc29ycxgDIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Sb29tU2Vuc29ycxIhChRsb2NrX2RldmljZV9jb250cm9scxgEIAEoCEgAiAEBEjcKCGF3YXlfbWluGAUgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21MaW1pdFZhbHVlEj0KDm1vdmVfaW5fdGFyZ2V0GAYgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21MaW1pdFZhbHVlEh4KFmFjY2VwdF9iZWxvd190aHJlc2hvbGQYByABKAhCFwoVX2xvY2tfZGV2aWNlX2NvbnRyb2xzIoABChJTZXRJbm5lclJvb21MaW1pdHMSMQoHcm9vbV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNwoGbGltaXRzGAIgASgLMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Jbm5lclJvb21MaW1pdHMikwIKDlNldENsaW1hdGVNb2RlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI1CgRraW5kGAIgASgOMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZUtpbmQSIQoUc2V0YmFja19jZW50aWRlZ3JlZXMYAyABKBFIAIgBARItCglzdGFydHNfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhcKFV9zZXRiYWNrX2NlbnRpZGVncmVlcyJLChBMaXN0Um9vbUNsaW1hdGVzEjcKDXJvb3Rfc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIuIBCg5HZXRSb29tSGlzdG9yeRIxCgdyb29tX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBItCglmcm9tX3RpbWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB3RvX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkEKCnJlc29sdXRpb24YBCABKA4yLS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5UmVzb2x1dGlvbiKtAwoRUHJpdmFjeURpc2Nsb3N1cmUSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjwKD3NlcnZpY2VfcGFydGllcxgFIAMoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TZXJ2aWNlUGFydHkSTAoWY2xpbWF0ZV9zdW1tYXJ5X3BlcmlvZBgEIAEoDjIsLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQ2xpbWF0ZVN1bW1hcnlQZXJpb2QSHwoXb3duZXJfb3JnYW5pc2F0aW9uX25hbWUYBiABKAkSFgoObmFtZXNfd2l0aGhlbGQYByABKAgSQwoSc3RhZmZfYXBwb2ludG1lbnRzGAggAygLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLlN0YWZmQXBwb2ludG1lbnQSVAoUY29tbWlzc2lvbmluZ19ncmFudHMYCSADKAsyNi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdHcmFudFJlY29yZEoECAIQBCJ/CgxTZXJ2aWNlUGFydHkSKQoEcm9sZRgBIAEoDjIbLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Sb2xlEjUKB3NpZ25hbHMYAiADKA4yJC5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuU2VydmljZVNpZ25hbBINCgVuYW1lcxgDIAMoCSJKChRHZXRQcml2YWN5RGlzY2xvc3VyZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQi7gEKGkdldEFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5EjYKDGFwYXJ0bWVudF9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPAoGcGVyaW9kGAIgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlU3VtbWFyeVBlcmlvZBItCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIlAKElJlY29ubmVjdENvbm5lY3RvchI6Cgxjb25uZWN0b3JfaWQYASABKAsyJC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Db25uZWN0b3JJZCJGCgtMaXN0SGVhdGluZxI3Cg1yb290X3NwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZCJGCg9QdXRIZWF0aW5nUGxhbnQSMwoFcGxhbnQYASABKAsyJC5rdXNpbnRhLmlvdC5oZWF0aW5nLnYxLkhlYXRpbmdQbGFudCJMChFQdXRIZWF0aW5nQ2lyY3VpdBI3CgdjaXJjdWl0GAEgASgLMiYua3VzaW50YS5pb3QuaGVhdGluZy52MS5IZWF0aW5nQ2lyY3VpdCI/CgxQdXRGbG9vclpvbmUSLwoEem9uZRgBIAEoCzIhLmt1c2ludGEuaW90LmhlYXRpbmcudjEuRmxvb3Jab25lIksKDlB1dENvbWZvcnRMb2FkEjkKDGNvbWZvcnRfbG9hZBgBIAEoCzIjLmt1c2ludGEuaW90LmhlYXRpbmcudjEuQ29tZm9ydExvYWQiMwoTUmVtb3ZlSGVhdGluZ1JlY29yZBIKCgJpZBgBIAEoCRIQCghyZXZpc2lvbhgCIAEoBCKYAQoRU2V0Q29tZm9ydFdpbmRvd3MSFwoPY29tZm9ydF9sb2FkX2lkGAEgASgJEjYKB3dpbmRvd3MYAiADKAsyJS5rdXNpbnRhLmlvdC5oZWF0aW5nLnYxLkNvbWZvcnRXaW5kb3cSHQoQd2luZG93c19yZXZpc2lvbhgDIAEoBEgAiAEBQhMKEV93aW5kb3dzX3JldmlzaW9uIogBChdSZXF1ZXN0QWNjb3VudExpbmtOb25jZRIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI6CgdzZXJ2aWNlGAIgASgOMikua3VzaW50YS5pb3QuYWNjb3VudGxpbmsudjEuTGlua2VkU2VydmljZSJFChBMaXN0QWNjb3VudExpbmtzEjEKB2hvbWVfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIn4KDVVubGlua0FjY291bnQSMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSOgoHc2VydmljZRgCIAEoDjIpLmt1c2ludGEuaW90LmFjY291bnRsaW5rLnYxLkxpbmtlZFNlcnZpY2UiRwoRTGlzdENvbW1pc3Npb25pbmcSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIlUKFFB1dENvbW1pc3Npb25pbmdGYWN0Ej0KBGZhY3QYASABKAsyLy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkNvbW1pc3Npb25pbmdGYWN0IjwKF1JlbW92ZUNvbW1pc3Npb25pbmdGYWN0Eg8KB2ZhY3RfaWQYASABKAkSEAoIcmV2aXNpb24YAiABKAQiUQoQUHV0SG91c2VUZW1wbGF0ZRI9Cgh0ZW1wbGF0ZRgBIAEoCzIrLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuSG91c2VUZW1wbGF0ZSJZCg9TZXRIb21lVGVtcGxhdGUSMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEwoLdGVtcGxhdGVfaWQYAiABKAkinwEKFFJ1bkNvbW1pc3Npb25pbmdUZXN0EjQKBGtpbmQYASABKA4yJi5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RLaW5kEjkKB2JpbmRpbmcYBCABKAsyKC5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLkJpbmRpbmdSZWZKBAgCEARSCXJlY29yZF9pZFIFZmllbGQiZgoZQ29uY2x1ZGVDb21taXNzaW9uaW5nVGVzdBIPCgd0ZXN0X2lkGAEgASgJEjgKB3ZlcmRpY3QYAiABKA4yJy5rdXNpbnRhLmlvdC5jb21taXNzaW9uaW5nLnYxLlRlc3RTdGF0ZSJJCg5MaXN0SG9tZVNldHVwcxI3Cg1yb290X3NwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZCJPChlSZXF1ZXN0Q29tbWlzc2lvbmluZ0dyYW50EjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZCKYAQoYQW5zd2VyQ29tbWlzc2lvbmluZ0dyYW50EhAKCGdyYW50X2lkGAEgASgJEg4KBmFjY2VwdBgCIAEoCBItCglzdGFydHNfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIikKFUVuZENvbW1pc3Npb25pbmdHcmFudBIQCghncmFudF9pZBgBIAEoCSJSChdMaXN0Q29tbWlzc2lvbmluZ0dyYW50cxI3Cg1yb290X3NwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZCJ9Cg1TZXRBc3NldE93bmVyEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjYKC2Fzc2V0X293bmVyGAIgASgLMiEua3VzaW50YS5pb3QuY29tbW9uLnYxLkFzc2V0T3duZXIikCgKEU1hbmFnZW1lbnRSZXF1ZXN0EjoKDGNyZWF0ZV9zcGFjZRgBIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5DcmVhdGVTcGFjZUgAEjoKDHVwZGF0ZV9zcGFjZRgCIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5VcGRhdGVTcGFjZUgAEjoKDGRlbGV0ZV9zcGFjZRgDIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZWxldGVTcGFjZUgAEkgKFGFzc2lnbl91c2VyX3RvX3NwYWNlGAQgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLkFzc2lnblVzZXJUb1NwYWNlSAASTAoWcmVtb3ZlX3VzZXJfZnJvbV9zcGFjZRgFIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZW1vdmVVc2VyRnJvbVNwYWNlSAASSgoVcGxhY2VfZGV2aWNlX2luX3NwYWNlGAYgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLlBsYWNlRGV2aWNlSW5TcGFjZUgAElAKGHJlbW92ZV9kZXZpY2VfZnJvbV9zcGFjZRgHIAEoCzIsLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZW1vdmVEZXZpY2VGcm9tU3BhY2VIABI6CgxjbGFpbV9kZXZpY2UYCCABKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ2xhaW1EZXZpY2VIABI+Cg5yZWxlYXNlX2RldmljZRgJIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZWxlYXNlRGV2aWNlSAASOAoLbGlzdF9zcGFjZXMYCiABKAsyIS5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGlzdFNwYWNlc0gAEkUKEmNyZWF0ZV9kZXZpY2VfbGluaxgLIAEoCzInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5DcmVhdGVEZXZpY2VMaW5rSAASRQoScmVtb3ZlX2RldmljZV9saW5rGAwgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlbW92ZURldmljZUxpbmtIABJDChFsaXN0X2RldmljZV9saW5rcxgNIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0RGV2aWNlTGlua3NIABJFChJ1cGRhdGVfZGV2aWNlX2xpbmsYDiABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuVXBkYXRlRGV2aWNlTGlua0gAEkIKEHByb3Zpc2lvbl9kZXZpY2UYDyABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUHJvdmlzaW9uRGV2aWNlSAASPwoPc2V0X3Jvb21fdGFyZ2V0GBAgASgLMiQua3VzaW50YS5pb3Qud2VicnRjLnYxLlNldFJvb21UYXJnZXRIABJNChZjb25maWd1cmVfcm9vbV9jbGltYXRlGBEgASgLMisua3VzaW50YS5pb3Qud2VicnRjLnYxLkNvbmZpZ3VyZVJvb21DbGltYXRlSAASQQoQc2V0X2NsaW1hdGVfbW9kZRgSIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TZXRDbGltYXRlTW9kZUgAEkUKEmxpc3Rfcm9vbV9jbGltYXRlcxgTIAEoCzInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0Um9vbUNsaW1hdGVzSAASQQoQZ2V0X3Jvb21faGlzdG9yeRgUIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HZXRSb29tSGlzdG9yeUgAEk0KFmdldF9wcml2YWN5X2Rpc2Nsb3N1cmUYFSABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2V0UHJpdmFjeURpc2Nsb3N1cmVIABJaCh1nZXRfYXBhcnRtZW50X2NsaW1hdGVfc3VtbWFyeRgWIAEoCzIxLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HZXRBcGFydG1lbnRDbGltYXRlU3VtbWFyeUgAEkgKE3JlY29ubmVjdF9jb25uZWN0b3IYFyABKAsyKS5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVjb25uZWN0Q29ubmVjdG9ySAASPAoNY3JlYXRlX2ludml0ZRgYIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5DcmVhdGVJbnZpdGVIABI8Cg1yZXNlbmRfaW52aXRlGBkgASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlc2VuZEludml0ZUgAEjwKDXJldm9rZV9pbnZpdGUYGiABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmV2b2tlSW52aXRlSAASTAoWbWFya19pbnZpdGVfZW1haWxfc2VudBgbIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NYXJrSW52aXRlRW1haWxTZW50SAASRQoSbGlzdF9zcGFjZV9pbnZpdGVzGBwgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpc3RTcGFjZUludml0ZXNIABJJChRhcHByb3ZlX2pvaW5fcmVxdWVzdBgdIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5BcHByb3ZlSm9pblJlcXVlc3RIABJDChFkZW55X2pvaW5fcmVxdWVzdBgeIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZW55Sm9pblJlcXVlc3RIABJJChRsaXN0X2dhdGV3YXlfbWVtYmVycxgfIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0R2F0ZXdheU1lbWJlcnNIABI/Cg9zZXRfbWVtYmVyX3JvbGUYICABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2V0TWVtYmVyUm9sZUgAEkcKE3JlbW92ZV9mcm9tX2dhdGV3YXkYISABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVtb3ZlRnJvbUdhdGV3YXlIABJBChBzZXRfYWNjZXNzX3VudGlsGCIgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlNldEFjY2Vzc1VudGlsSAASUQoWc2V0X293bmVyX29yZ2FuaXNhdGlvbhgjIAEoCzIrLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TZXRPd25lck9yZ2FuaXNhdGlvbkICGAFIABJEChFyZXF1ZXN0X3Byb21vdGlvbhgkIAEoCzInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZXF1ZXN0UHJvbW90aW9uSAASQgoQYW5zd2VyX3Byb21vdGlvbhglIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5BbnN3ZXJQcm9tb3Rpb25IABJPChdsaXN0X3Byb21vdGlvbl9yZXF1ZXN0cxgmIAEoCzIsLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0UHJvbW90aW9uUmVxdWVzdHNIABI6CgxsaXN0X2hlYXRpbmcYJyABKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGlzdEhlYXRpbmdIABJDChFwdXRfaGVhdGluZ19wbGFudBgoIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QdXRIZWF0aW5nUGxhbnRIABJHChNwdXRfaGVhdGluZ19jaXJjdWl0GCkgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLlB1dEhlYXRpbmdDaXJjdWl0SAASPQoOcHV0X2Zsb29yX3pvbmUYKiABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUHV0Rmxvb3Jab25lSAASQQoQcHV0X2NvbWZvcnRfbG9hZBgrIAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QdXRDb21mb3J0TG9hZEgAEksKFXJlbW92ZV9oZWF0aW5nX3JlY29yZBgsIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZW1vdmVIZWF0aW5nUmVjb3JkSAASRwoTc2V0X2NvbWZvcnRfd2luZG93cxgtIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TZXRDb21mb3J0V2luZG93c0gAElQKGnJlcXVlc3RfYWNjb3VudF9saW5rX25vbmNlGC4gASgLMi4ua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlcXVlc3RBY2NvdW50TGlua05vbmNlSAASRQoSbGlzdF9hY2NvdW50X2xpbmtzGC8gASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpc3RBY2NvdW50TGlua3NIABI+Cg51bmxpbmtfYWNjb3VudBgwIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5VbmxpbmtBY2NvdW50SAASRgoSbGlzdF9jb21taXNzaW9uaW5nGDEgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpc3RDb21taXNzaW9uaW5nSAASTQoWcHV0X2NvbW1pc3Npb25pbmdfZmFjdBgyIAEoCzIrLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QdXRDb21taXNzaW9uaW5nRmFjdEgAElMKGXJlbW92ZV9jb21taXNzaW9uaW5nX2ZhY3QYMyABKAsyLi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVtb3ZlQ29tbWlzc2lvbmluZ0ZhY3RIABJFChJwdXRfaG91c2VfdGVtcGxhdGUYNCABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUHV0SG91c2VUZW1wbGF0ZUgAEkMKEXNldF9ob21lX3RlbXBsYXRlGDUgASgLMiYua3VzaW50YS5pb3Qud2VicnRjLnYxLlNldEhvbWVUZW1wbGF0ZUgAEk0KFnJ1bl9jb21taXNzaW9uaW5nX3Rlc3QYNiABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUnVuQ29tbWlzc2lvbmluZ1Rlc3RIABJXChtjb25jbHVkZV9jb21taXNzaW9uaW5nX3Rlc3QYNyABKAsyMC5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29uY2x1ZGVDb21taXNzaW9uaW5nVGVzdEgAEkEKEGxpc3RfaG9tZV9zZXR1cHMYOCABKAsyJS5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGlzdEhvbWVTZXR1cHNIABJXChtyZXF1ZXN0X2NvbW1pc3Npb25pbmdfZ3JhbnQYOSABKAsyMC5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVxdWVzdENvbW1pc3Npb25pbmdHcmFudEgAElUKGmFuc3dlcl9jb21taXNzaW9uaW5nX2dyYW50GDogASgLMi8ua3VzaW50YS5pb3Qud2VicnRjLnYxLkFuc3dlckNvbW1pc3Npb25pbmdHcmFudEgAEk8KF2VuZF9jb21taXNzaW9uaW5nX2dyYW50GDsgASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkVuZENvbW1pc3Npb25pbmdHcmFudEgAElMKGWxpc3RfY29tbWlzc2lvbmluZ19ncmFudHMYPCABKAsyLi5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGlzdENvbW1pc3Npb25pbmdHcmFudHNIABI/Cg9zZXRfYXNzZXRfb3duZXIYPSABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2V0QXNzZXRPd25lckgAEk0KFmRlbW90ZV9ob3VzZWhvbGRfYWRtaW4YPiABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGVtb3RlSG91c2Vob2xkQWRtaW5IABJRChhzdGFydF9ob3VzZWhvbGRfaGFuZG92ZXIYPyABKAsyLS5rdXNpbnRhLmlvdC53ZWJydGMudjEuU3RhcnRIb3VzZWhvbGRIYW5kb3ZlckgAElUKGmNvbmZpcm1faG91c2Vob2xkX2hhbmRvdmVyGEAgASgLMi8ua3VzaW50YS5pb3Qud2VicnRjLnYxLkNvbmZpcm1Ib3VzZWhvbGRIYW5kb3ZlckgAElMKGWNhbmNlbF9ob3VzZWhvbGRfaGFuZG92ZXIYQSABKAsyLi5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ2FuY2VsSG91c2Vob2xkSGFuZG92ZXJIABJRChhsaXN0X2hvdXNlaG9sZF9oYW5kb3ZlcnMYQiABKAsyLS5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGlzdEhvdXNlaG9sZEhhbmRvdmVyc0gAEksKFWV4cG9ydF9ob3VzZWhvbGRfZGF0YRhDIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5FeHBvcnRIb3VzZWhvbGREYXRhSAASOwoNc2V0X2hvbWVfbmFtZRhEIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TZXRIb21lTmFtZUgAEksKFWNsZWFyX2NsaW1hdGVfaGlzdG9yeRhFIAEoCzIqLmt1c2ludGEuaW90LndlYnJ0Yy52MS5DbGVhckNsaW1hdGVIaXN0b3J5SAASSgoVc2V0X2lubmVyX3Jvb21fbGltaXRzGEYgASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLlNldElubmVyUm9vbUxpbWl0c0gAQgkKB3JlcXVlc3RCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_acl, file_kusinta_iot_access_v1_roles, file_kusinta_iot_accountlink_v1_account_link, file_kusinta_iot_climate_v1_climate, file_kusinta_iot_commissioning_v1_commissioning, file_kusinta_iot_common_v1_types, file_kusinta_iot_heating_v1_heating, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_link_v1_link, file_kusinta_iot_space_v1_space, file_kusinta_iot_vendor_lorawan_v1_lorawan, file_kusinta_iot_webrtc_v1_household, file_kusinta_iot_webrtc_v1_invite, file_kusinta_iot_webrtc_v1_members]);
26
+ fileDesc("CiZrdXNpbnRhL2lvdC93ZWJydGMvdjEvbWFuYWdlbWVudC5wcm90bxIVa3VzaW50YS5pb3Qud2VicnRjLnYxItYBCgtDcmVhdGVTcGFjZRI0CgpzcGFjZV90eXBlGAEgASgOMiAua3VzaW50YS5pb3QuY29tbW9uLnYxLlNwYWNlVHlwZRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg0KBWZsb29yGAQgASgFEjkKD3BhcmVudF9zcGFjZV9pZBgFIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSFgoJdGltZV96b25lGAYgASgJSACIAQFCDAoKX3RpbWVfem9uZSL1AgoLVXBkYXRlU3BhY2USMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjkKCnNwYWNlX3R5cGUYAiABKA4yIC5rdXNpbnRhLmlvdC5jb21tb24udjEuU3BhY2VUeXBlSAGIAQESEQoEbmFtZRgDIAEoCUgCiAEBEhgKC2Rlc2NyaXB0aW9uGAQgASgJSAOIAQESEgoFZmxvb3IYBSABKAVIBIgBARI7Cg9wYXJlbnRfc3BhY2VfaWQYBiABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkSAASEAoGZGV0YWNoGAcgASgISAASFgoJdGltZV96b25lGAggASgJSAWIAQFCDwoNcGFyZW50X2NoYW5nZUINCgtfc3BhY2VfdHlwZUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CCAoGX2Zsb29yQgwKCl90aW1lX3pvbmUiUgoLRGVsZXRlU3BhY2USMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEg8KB2Nhc2NhZGUYAiABKAgivAEKEUFzc2lnblVzZXJUb1NwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIwCgd1c2VyX2lkGAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEjsKCHJlbGF0aW9uGAQgASgOMikua3VzaW50YS5pb3QuYWNjZXNzLnYxLk1lbWJlcnNoaXBSZWxhdGlvbkoECAMQBCJ7ChNSZW1vdmVVc2VyRnJvbVNwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIwCgd1c2VyX2lkGAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkIn4KElBsYWNlRGV2aWNlSW5TcGFjZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQigQEKFVJlbW92ZURldmljZUZyb21TcGFjZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIyCghzcGFjZV9pZBgCIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQi2AEKC0NsYWltRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEj0KCW93bmVyc2hpcBgCIAEoDjIqLmt1c2ludGEuaW90LmNvbW1vbi52MS5EZXZpY2VPd25lcnNoaXBUeXBlEjoKEGluaXRpYWxfc3BhY2VfaWQYAyABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEhgKEHBvc3Nlc3Npb25fcHJvb2YYBCABKAkiRQoNUmVsZWFzZURldmljZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCKjAQoPUHJvdmlzaW9uRGV2aWNlEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEkUKB2xvcmF3YW4YAiABKAsyMi5rdXNpbnRhLmlvdC52ZW5kb3IubG9yYXdhbi52MS5Mb3Jhd2FuUHJvdmlzaW9uaW5nSABCDQoLY3JlZGVudGlhbHMiRQoKTGlzdFNwYWNlcxI3Cg1yb290X3NwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZCI4CglTcGFjZVRyZWUSKwoGc3BhY2VzGAEgAygLMhsua3VzaW50YS5pb3Quc3BhY2UudjEuU3BhY2UiDwoNTWFuYWdlbWVudEFjayKRAgoQQ3JlYXRlRGV2aWNlTGluaxIxCgZzZW5kZXIYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCghyZWNlaXZlchgCIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjMKCGZ1bmN0aW9uGAMgASgOMiEua3VzaW50YS5pb3QubGluay52MS5MaW5rRnVuY3Rpb24SKwoEbW9kZRgEIAEoDjIdLmt1c2ludGEuaW90LmxpbmsudjEuTGlua01vZGUSMwoIc2V0dGluZ3MYBSABKAsyIS5rdXNpbnRhLmlvdC5saW5rLnYxLkxpbmtTZXR0aW5ncyIjChBSZW1vdmVEZXZpY2VMaW5rEg8KB2xpbmtfaWQYASABKAkiWAoQVXBkYXRlRGV2aWNlTGluaxIPCgdsaW5rX2lkGAEgASgJEjMKCHNldHRpbmdzGAIgASgLMiEua3VzaW50YS5pb3QubGluay52MS5MaW5rU2V0dGluZ3MiRwoPTGlzdERldmljZUxpbmtzEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkInwKDVNldFJvb21UYXJnZXQSMQoHcm9vbV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSIAoTdGFyZ2V0X2NlbnRpZGVncmVlcxgCIAEoEUgAiAEBQhYKFF90YXJnZXRfY2VudGlkZWdyZWVzIkQKC1Jvb21TZW5zb3JzEjUKCnNlbnNvcl9pZHMYASADKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJ0CgpSb29tTGltaXRzEh0KEG1pbl9jZW50aWRlZ3JlZXMYASABKBFIAIgBARIdChBtYXhfY2VudGlkZWdyZWVzGAIgASgRSAGIAQFCEwoRX21pbl9jZW50aWRlZ3JlZXNCEwoRX21heF9jZW50aWRlZ3JlZXMiPAoOUm9vbUxpbWl0VmFsdWUSGQoMY2VudGlkZWdyZWVzGAEgASgRSACIAQFCDwoNX2NlbnRpZGVncmVlcyKFAwoUQ29uZmlndXJlUm9vbUNsaW1hdGUSMQoHcm9vbV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSMQoGbGltaXRzGAIgASgLMiEua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21MaW1pdHMSMwoHc2Vuc29ycxgDIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Sb29tU2Vuc29ycxIhChRsb2NrX2RldmljZV9jb250cm9scxgEIAEoCEgAiAEBEjcKCGF3YXlfbWluGAUgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21MaW1pdFZhbHVlEj0KDm1vdmVfaW5fdGFyZ2V0GAYgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlJvb21MaW1pdFZhbHVlEh4KFmFjY2VwdF9iZWxvd190aHJlc2hvbGQYByABKAhCFwoVX2xvY2tfZGV2aWNlX2NvbnRyb2xzIoABChJTZXRJbm5lclJvb21MaW1pdHMSMQoHcm9vbV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNwoGbGltaXRzGAIgASgLMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Jbm5lclJvb21MaW1pdHMikwIKDlNldENsaW1hdGVNb2RlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI1CgRraW5kGAIgASgOMicua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlTW9kZUtpbmQSIQoUc2V0YmFja19jZW50aWRlZ3JlZXMYAyABKBFIAIgBARItCglzdGFydHNfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB2VuZHNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhcKFV9zZXRiYWNrX2NlbnRpZGVncmVlcyJLChBMaXN0Um9vbUNsaW1hdGVzEjcKDXJvb3Rfc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIuIBCg5HZXRSb29tSGlzdG9yeRIxCgdyb29tX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBItCglmcm9tX3RpbWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKB3RvX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkEKCnJlc29sdXRpb24YBCABKA4yLS5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21IaXN0b3J5UmVzb2x1dGlvbiLCAQoPR2V0UGxhbnRIaXN0b3J5EhAKCHBsYW50X2lkGAEgASgJEi0KCWZyb21fdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoHdG9fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoKcmVzb2x1dGlvbhgEIAEoDjItLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUhpc3RvcnlSZXNvbHV0aW9uIq0DChFQcml2YWN5RGlzY2xvc3VyZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSPAoPc2VydmljZV9wYXJ0aWVzGAUgAygLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLlNlcnZpY2VQYXJ0eRJMChZjbGltYXRlX3N1bW1hcnlfcGVyaW9kGAQgASgOMiwua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5DbGltYXRlU3VtbWFyeVBlcmlvZBIfChdvd25lcl9vcmdhbmlzYXRpb25fbmFtZRgGIAEoCRIWCg5uYW1lc193aXRoaGVsZBgHIAEoCBJDChJzdGFmZl9hcHBvaW50bWVudHMYCCADKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuU3RhZmZBcHBvaW50bWVudBJUChRjb21taXNzaW9uaW5nX2dyYW50cxgJIAMoCzI2Lmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0dyYW50UmVjb3JkSgQIAhAEIn8KDFNlcnZpY2VQYXJ0eRIpCgRyb2xlGAEgASgOMhsua3VzaW50YS5pb3QuYWNjZXNzLnYxLlJvbGUSNQoHc2lnbmFscxgCIAMoDjIkLmt1c2ludGEuaW90LmFjY2Vzcy52MS5TZXJ2aWNlU2lnbmFsEg0KBW5hbWVzGAMgAygJIkoKFEdldFByaXZhY3lEaXNjbG9zdXJlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZCLuAQoaR2V0QXBhcnRtZW50Q2xpbWF0ZVN1bW1hcnkSNgoMYXBhcnRtZW50X2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI8CgZwZXJpb2QYAiABKA4yLC5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkNsaW1hdGVTdW1tYXJ5UGVyaW9kEi0KCWZyb21fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiUAoSUmVjb25uZWN0Q29ubmVjdG9yEjoKDGNvbm5lY3Rvcl9pZBgBIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkIkYKC0xpc3RIZWF0aW5nEjcKDXJvb3Rfc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIkYKD1B1dEhlYXRpbmdQbGFudBIzCgVwbGFudBgBIAEoCzIkLmt1c2ludGEuaW90LmhlYXRpbmcudjEuSGVhdGluZ1BsYW50IkwKEVB1dEhlYXRpbmdDaXJjdWl0EjcKB2NpcmN1aXQYASABKAsyJi5rdXNpbnRhLmlvdC5oZWF0aW5nLnYxLkhlYXRpbmdDaXJjdWl0Ij8KDFB1dEZsb29yWm9uZRIvCgR6b25lGAEgASgLMiEua3VzaW50YS5pb3QuaGVhdGluZy52MS5GbG9vclpvbmUiSwoOUHV0Q29tZm9ydExvYWQSOQoMY29tZm9ydF9sb2FkGAEgASgLMiMua3VzaW50YS5pb3QuaGVhdGluZy52MS5Db21mb3J0TG9hZCIzChNSZW1vdmVIZWF0aW5nUmVjb3JkEgoKAmlkGAEgASgJEhAKCHJldmlzaW9uGAIgASgEIpgBChFTZXRDb21mb3J0V2luZG93cxIXCg9jb21mb3J0X2xvYWRfaWQYASABKAkSNgoHd2luZG93cxgCIAMoCzIlLmt1c2ludGEuaW90LmhlYXRpbmcudjEuQ29tZm9ydFdpbmRvdxIdChB3aW5kb3dzX3JldmlzaW9uGAMgASgESACIAQFCEwoRX3dpbmRvd3NfcmV2aXNpb24iiAEKF1JlcXVlc3RBY2NvdW50TGlua05vbmNlEjEKB2hvbWVfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjoKB3NlcnZpY2UYAiABKA4yKS5rdXNpbnRhLmlvdC5hY2NvdW50bGluay52MS5MaW5rZWRTZXJ2aWNlIkUKEExpc3RBY2NvdW50TGlua3MSMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQifgoNVW5saW5rQWNjb3VudBIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI6CgdzZXJ2aWNlGAIgASgOMikua3VzaW50YS5pb3QuYWNjb3VudGxpbmsudjEuTGlua2VkU2VydmljZSJHChFMaXN0Q29tbWlzc2lvbmluZxIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQiVQoUUHV0Q29tbWlzc2lvbmluZ0ZhY3QSPQoEZmFjdBgBIAEoCzIvLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ0ZhY3QiPAoXUmVtb3ZlQ29tbWlzc2lvbmluZ0ZhY3QSDwoHZmFjdF9pZBgBIAEoCRIQCghyZXZpc2lvbhgCIAEoBCJRChBQdXRIb3VzZVRlbXBsYXRlEj0KCHRlbXBsYXRlGAEgASgLMisua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Ib3VzZVRlbXBsYXRlIlkKD1NldEhvbWVUZW1wbGF0ZRIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBITCgt0ZW1wbGF0ZV9pZBgCIAEoCSKfAQoUUnVuQ29tbWlzc2lvbmluZ1Rlc3QSNAoEa2luZBgBIAEoDjImLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdEtpbmQSOQoHYmluZGluZxgEIAEoCzIoLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQmluZGluZ1JlZkoECAIQBFIJcmVjb3JkX2lkUgVmaWVsZCJmChlDb25jbHVkZUNvbW1pc3Npb25pbmdUZXN0Eg8KB3Rlc3RfaWQYASABKAkSOAoHdmVyZGljdBgCIAEoDjInLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuVGVzdFN0YXRlIkkKDkxpc3RIb21lU2V0dXBzEjcKDXJvb3Rfc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIk8KGVJlcXVlc3RDb21taXNzaW9uaW5nR3JhbnQSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIpgBChhBbnN3ZXJDb21taXNzaW9uaW5nR3JhbnQSEAoIZ3JhbnRfaWQYASABKAkSDgoGYWNjZXB0GAIgASgIEi0KCXN0YXJ0c19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoHZW5kc19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiKQoVRW5kQ29tbWlzc2lvbmluZ0dyYW50EhAKCGdyYW50X2lkGAEgASgJIlIKF0xpc3RDb21taXNzaW9uaW5nR3JhbnRzEjcKDXJvb3Rfc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIn0KDVNldEFzc2V0T3duZXISNAoJZGV2aWNlX2lkGAEgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSNgoLYXNzZXRfb3duZXIYAiABKAsyIS5rdXNpbnRhLmlvdC5jb21tb24udjEuQXNzZXRPd25lciLVKAoRTWFuYWdlbWVudFJlcXVlc3QSOgoMY3JlYXRlX3NwYWNlGAEgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkNyZWF0ZVNwYWNlSAASOgoMdXBkYXRlX3NwYWNlGAIgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLlVwZGF0ZVNwYWNlSAASOgoMZGVsZXRlX3NwYWNlGAMgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLkRlbGV0ZVNwYWNlSAASSAoUYXNzaWduX3VzZXJfdG9fc3BhY2UYBCABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuQXNzaWduVXNlclRvU3BhY2VIABJMChZyZW1vdmVfdXNlcl9mcm9tX3NwYWNlGAUgASgLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlbW92ZVVzZXJGcm9tU3BhY2VIABJKChVwbGFjZV9kZXZpY2VfaW5fc3BhY2UYBiABKAsyKS5rdXNpbnRhLmlvdC53ZWJydGMudjEuUGxhY2VEZXZpY2VJblNwYWNlSAASUAoYcmVtb3ZlX2RldmljZV9mcm9tX3NwYWNlGAcgASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlbW92ZURldmljZUZyb21TcGFjZUgAEjoKDGNsYWltX2RldmljZRgIIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5DbGFpbURldmljZUgAEj4KDnJlbGVhc2VfZGV2aWNlGAkgASgLMiQua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlbGVhc2VEZXZpY2VIABI4CgtsaXN0X3NwYWNlcxgKIAEoCzIhLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0U3BhY2VzSAASRQoSY3JlYXRlX2RldmljZV9saW5rGAsgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLkNyZWF0ZURldmljZUxpbmtIABJFChJyZW1vdmVfZGV2aWNlX2xpbmsYDCABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVtb3ZlRGV2aWNlTGlua0gAEkMKEWxpc3RfZGV2aWNlX2xpbmtzGA0gASgLMiYua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpc3REZXZpY2VMaW5rc0gAEkUKEnVwZGF0ZV9kZXZpY2VfbGluaxgOIAEoCzInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5VcGRhdGVEZXZpY2VMaW5rSAASQgoQcHJvdmlzaW9uX2RldmljZRgPIAEoCzImLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Qcm92aXNpb25EZXZpY2VIABI/Cg9zZXRfcm9vbV90YXJnZXQYECABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2V0Um9vbVRhcmdldEgAEk0KFmNvbmZpZ3VyZV9yb29tX2NsaW1hdGUYESABKAsyKy5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29uZmlndXJlUm9vbUNsaW1hdGVIABJBChBzZXRfY2xpbWF0ZV9tb2RlGBIgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlNldENsaW1hdGVNb2RlSAASRQoSbGlzdF9yb29tX2NsaW1hdGVzGBMgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpc3RSb29tQ2xpbWF0ZXNIABJBChBnZXRfcm9vbV9oaXN0b3J5GBQgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLkdldFJvb21IaXN0b3J5SAASTQoWZ2V0X3ByaXZhY3lfZGlzY2xvc3VyZRgVIAEoCzIrLmt1c2ludGEuaW90LndlYnJ0Yy52MS5HZXRQcml2YWN5RGlzY2xvc3VyZUgAEloKHWdldF9hcGFydG1lbnRfY2xpbWF0ZV9zdW1tYXJ5GBYgASgLMjEua3VzaW50YS5pb3Qud2VicnRjLnYxLkdldEFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5SAASSAoTcmVjb25uZWN0X2Nvbm5lY3RvchgXIAEoCzIpLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZWNvbm5lY3RDb25uZWN0b3JIABI8Cg1jcmVhdGVfaW52aXRlGBggASgLMiMua3VzaW50YS5pb3Qud2VicnRjLnYxLkNyZWF0ZUludml0ZUgAEjwKDXJlc2VuZF9pbnZpdGUYGSABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVzZW5kSW52aXRlSAASPAoNcmV2b2tlX2ludml0ZRgaIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZXZva2VJbnZpdGVIABJMChZtYXJrX2ludml0ZV9lbWFpbF9zZW50GBsgASgLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLk1hcmtJbnZpdGVFbWFpbFNlbnRIABJFChJsaXN0X3NwYWNlX2ludml0ZXMYHCABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGlzdFNwYWNlSW52aXRlc0gAEkkKFGFwcHJvdmVfam9pbl9yZXF1ZXN0GB0gASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkFwcHJvdmVKb2luUmVxdWVzdEgAEkMKEWRlbnlfam9pbl9yZXF1ZXN0GB4gASgLMiYua3VzaW50YS5pb3Qud2VicnRjLnYxLkRlbnlKb2luUmVxdWVzdEgAEkkKFGxpc3RfZ2F0ZXdheV9tZW1iZXJzGB8gASgLMikua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpc3RHYXRld2F5TWVtYmVyc0gAEj8KD3NldF9tZW1iZXJfcm9sZRggIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TZXRNZW1iZXJSb2xlSAASRwoTcmVtb3ZlX2Zyb21fZ2F0ZXdheRghIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZW1vdmVGcm9tR2F0ZXdheUgAEkEKEHNldF9hY2Nlc3NfdW50aWwYIiABKAsyJS5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2V0QWNjZXNzVW50aWxIABJRChZzZXRfb3duZXJfb3JnYW5pc2F0aW9uGCMgASgLMisua3VzaW50YS5pb3Qud2VicnRjLnYxLlNldE93bmVyT3JnYW5pc2F0aW9uQgIYAUgAEkQKEXJlcXVlc3RfcHJvbW90aW9uGCQgASgLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlcXVlc3RQcm9tb3Rpb25IABJCChBhbnN3ZXJfcHJvbW90aW9uGCUgASgLMiYua3VzaW50YS5pb3Qud2VicnRjLnYxLkFuc3dlclByb21vdGlvbkgAEk8KF2xpc3RfcHJvbW90aW9uX3JlcXVlc3RzGCYgASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkxpc3RQcm9tb3Rpb25SZXF1ZXN0c0gAEjoKDGxpc3RfaGVhdGluZxgnIAEoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0SGVhdGluZ0gAEkMKEXB1dF9oZWF0aW5nX3BsYW50GCggASgLMiYua3VzaW50YS5pb3Qud2VicnRjLnYxLlB1dEhlYXRpbmdQbGFudEgAEkcKE3B1dF9oZWF0aW5nX2NpcmN1aXQYKSABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuUHV0SGVhdGluZ0NpcmN1aXRIABI9Cg5wdXRfZmxvb3Jfem9uZRgqIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QdXRGbG9vclpvbmVIABJBChBwdXRfY29tZm9ydF9sb2FkGCsgASgLMiUua3VzaW50YS5pb3Qud2VicnRjLnYxLlB1dENvbWZvcnRMb2FkSAASSwoVcmVtb3ZlX2hlYXRpbmdfcmVjb3JkGCwgASgLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLlJlbW92ZUhlYXRpbmdSZWNvcmRIABJHChNzZXRfY29tZm9ydF93aW5kb3dzGC0gASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLlNldENvbWZvcnRXaW5kb3dzSAASVAoacmVxdWVzdF9hY2NvdW50X2xpbmtfbm9uY2UYLiABKAsyLi5rdXNpbnRhLmlvdC53ZWJydGMudjEuUmVxdWVzdEFjY291bnRMaW5rTm9uY2VIABJFChJsaXN0X2FjY291bnRfbGlua3MYLyABKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGlzdEFjY291bnRMaW5rc0gAEj4KDnVubGlua19hY2NvdW50GDAgASgLMiQua3VzaW50YS5pb3Qud2VicnRjLnYxLlVubGlua0FjY291bnRIABJGChJsaXN0X2NvbW1pc3Npb25pbmcYMSABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuTGlzdENvbW1pc3Npb25pbmdIABJNChZwdXRfY29tbWlzc2lvbmluZ19mYWN0GDIgASgLMisua3VzaW50YS5pb3Qud2VicnRjLnYxLlB1dENvbW1pc3Npb25pbmdGYWN0SAASUwoZcmVtb3ZlX2NvbW1pc3Npb25pbmdfZmFjdBgzIAEoCzIuLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZW1vdmVDb21taXNzaW9uaW5nRmFjdEgAEkUKEnB1dF9ob3VzZV90ZW1wbGF0ZRg0IAEoCzInLmt1c2ludGEuaW90LndlYnJ0Yy52MS5QdXRIb3VzZVRlbXBsYXRlSAASQwoRc2V0X2hvbWVfdGVtcGxhdGUYNSABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2V0SG9tZVRlbXBsYXRlSAASTQoWcnVuX2NvbW1pc3Npb25pbmdfdGVzdBg2IAEoCzIrLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SdW5Db21taXNzaW9uaW5nVGVzdEgAElcKG2NvbmNsdWRlX2NvbW1pc3Npb25pbmdfdGVzdBg3IAEoCzIwLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Db25jbHVkZUNvbW1pc3Npb25pbmdUZXN0SAASQQoQbGlzdF9ob21lX3NldHVwcxg4IAEoCzIlLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0SG9tZVNldHVwc0gAElcKG3JlcXVlc3RfY29tbWlzc2lvbmluZ19ncmFudBg5IAEoCzIwLmt1c2ludGEuaW90LndlYnJ0Yy52MS5SZXF1ZXN0Q29tbWlzc2lvbmluZ0dyYW50SAASVQoaYW5zd2VyX2NvbW1pc3Npb25pbmdfZ3JhbnQYOiABKAsyLy5rdXNpbnRhLmlvdC53ZWJydGMudjEuQW5zd2VyQ29tbWlzc2lvbmluZ0dyYW50SAASTwoXZW5kX2NvbW1pc3Npb25pbmdfZ3JhbnQYOyABKAsyLC5rdXNpbnRhLmlvdC53ZWJydGMudjEuRW5kQ29tbWlzc2lvbmluZ0dyYW50SAASUwoZbGlzdF9jb21taXNzaW9uaW5nX2dyYW50cxg8IAEoCzIuLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0Q29tbWlzc2lvbmluZ0dyYW50c0gAEj8KD3NldF9hc3NldF9vd25lchg9IAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TZXRBc3NldE93bmVySAASTQoWZGVtb3RlX2hvdXNlaG9sZF9hZG1pbhg+IAEoCzIrLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZW1vdGVIb3VzZWhvbGRBZG1pbkgAElEKGHN0YXJ0X2hvdXNlaG9sZF9oYW5kb3Zlchg/IAEoCzItLmt1c2ludGEuaW90LndlYnJ0Yy52MS5TdGFydEhvdXNlaG9sZEhhbmRvdmVySAASVQoaY29uZmlybV9ob3VzZWhvbGRfaGFuZG92ZXIYQCABKAsyLy5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29uZmlybUhvdXNlaG9sZEhhbmRvdmVySAASUwoZY2FuY2VsX2hvdXNlaG9sZF9oYW5kb3ZlchhBIAEoCzIuLmt1c2ludGEuaW90LndlYnJ0Yy52MS5DYW5jZWxIb3VzZWhvbGRIYW5kb3ZlckgAElEKGGxpc3RfaG91c2Vob2xkX2hhbmRvdmVycxhCIAEoCzItLmt1c2ludGEuaW90LndlYnJ0Yy52MS5MaXN0SG91c2Vob2xkSGFuZG92ZXJzSAASSwoVZXhwb3J0X2hvdXNlaG9sZF9kYXRhGEMgASgLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLkV4cG9ydEhvdXNlaG9sZERhdGFIABI7Cg1zZXRfaG9tZV9uYW1lGEQgASgLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLlNldEhvbWVOYW1lSAASSwoVY2xlYXJfY2xpbWF0ZV9oaXN0b3J5GEUgASgLMioua3VzaW50YS5pb3Qud2VicnRjLnYxLkNsZWFyQ2xpbWF0ZUhpc3RvcnlIABJKChVzZXRfaW5uZXJfcm9vbV9saW1pdHMYRiABKAsyKS5rdXNpbnRhLmlvdC53ZWJydGMudjEuU2V0SW5uZXJSb29tTGltaXRzSAASQwoRZ2V0X3BsYW50X2hpc3RvcnkYRyABKAsyJi5rdXNpbnRhLmlvdC53ZWJydGMudjEuR2V0UGxhbnRIaXN0b3J5SABCCQoHcmVxdWVzdEICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_acl, file_kusinta_iot_access_v1_roles, file_kusinta_iot_accountlink_v1_account_link, file_kusinta_iot_climate_v1_climate, file_kusinta_iot_commissioning_v1_commissioning, file_kusinta_iot_common_v1_types, file_kusinta_iot_heating_v1_heating, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_link_v1_link, file_kusinta_iot_space_v1_space, file_kusinta_iot_vendor_lorawan_v1_lorawan, file_kusinta_iot_webrtc_v1_household, file_kusinta_iot_webrtc_v1_invite, file_kusinta_iot_webrtc_v1_members]);
27
27
 
28
28
  /**
29
29
  * Describes the message kusinta.iot.webrtc.v1.CreateSpace.
@@ -207,206 +207,213 @@ export const ListRoomClimatesSchema = /*@__PURE__*/
207
207
  export const GetRoomHistorySchema = /*@__PURE__*/
208
208
  messageDesc(file_kusinta_iot_webrtc_v1_management, 25);
209
209
 
210
+ /**
211
+ * Describes the message kusinta.iot.webrtc.v1.GetPlantHistory.
212
+ * Use `create(GetPlantHistorySchema)` to create a new message.
213
+ */
214
+ export const GetPlantHistorySchema = /*@__PURE__*/
215
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 26);
216
+
210
217
  /**
211
218
  * Describes the message kusinta.iot.webrtc.v1.PrivacyDisclosure.
212
219
  * Use `create(PrivacyDisclosureSchema)` to create a new message.
213
220
  */
214
221
  export const PrivacyDisclosureSchema = /*@__PURE__*/
215
- messageDesc(file_kusinta_iot_webrtc_v1_management, 26);
222
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 27);
216
223
 
217
224
  /**
218
225
  * Describes the message kusinta.iot.webrtc.v1.ServiceParty.
219
226
  * Use `create(ServicePartySchema)` to create a new message.
220
227
  */
221
228
  export const ServicePartySchema = /*@__PURE__*/
222
- messageDesc(file_kusinta_iot_webrtc_v1_management, 27);
229
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 28);
223
230
 
224
231
  /**
225
232
  * Describes the message kusinta.iot.webrtc.v1.GetPrivacyDisclosure.
226
233
  * Use `create(GetPrivacyDisclosureSchema)` to create a new message.
227
234
  */
228
235
  export const GetPrivacyDisclosureSchema = /*@__PURE__*/
229
- messageDesc(file_kusinta_iot_webrtc_v1_management, 28);
236
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 29);
230
237
 
231
238
  /**
232
239
  * Describes the message kusinta.iot.webrtc.v1.GetApartmentClimateSummary.
233
240
  * Use `create(GetApartmentClimateSummarySchema)` to create a new message.
234
241
  */
235
242
  export const GetApartmentClimateSummarySchema = /*@__PURE__*/
236
- messageDesc(file_kusinta_iot_webrtc_v1_management, 29);
243
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 30);
237
244
 
238
245
  /**
239
246
  * Describes the message kusinta.iot.webrtc.v1.ReconnectConnector.
240
247
  * Use `create(ReconnectConnectorSchema)` to create a new message.
241
248
  */
242
249
  export const ReconnectConnectorSchema = /*@__PURE__*/
243
- messageDesc(file_kusinta_iot_webrtc_v1_management, 30);
250
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 31);
244
251
 
245
252
  /**
246
253
  * Describes the message kusinta.iot.webrtc.v1.ListHeating.
247
254
  * Use `create(ListHeatingSchema)` to create a new message.
248
255
  */
249
256
  export const ListHeatingSchema = /*@__PURE__*/
250
- messageDesc(file_kusinta_iot_webrtc_v1_management, 31);
257
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 32);
251
258
 
252
259
  /**
253
260
  * Describes the message kusinta.iot.webrtc.v1.PutHeatingPlant.
254
261
  * Use `create(PutHeatingPlantSchema)` to create a new message.
255
262
  */
256
263
  export const PutHeatingPlantSchema = /*@__PURE__*/
257
- messageDesc(file_kusinta_iot_webrtc_v1_management, 32);
264
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 33);
258
265
 
259
266
  /**
260
267
  * Describes the message kusinta.iot.webrtc.v1.PutHeatingCircuit.
261
268
  * Use `create(PutHeatingCircuitSchema)` to create a new message.
262
269
  */
263
270
  export const PutHeatingCircuitSchema = /*@__PURE__*/
264
- messageDesc(file_kusinta_iot_webrtc_v1_management, 33);
271
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 34);
265
272
 
266
273
  /**
267
274
  * Describes the message kusinta.iot.webrtc.v1.PutFloorZone.
268
275
  * Use `create(PutFloorZoneSchema)` to create a new message.
269
276
  */
270
277
  export const PutFloorZoneSchema = /*@__PURE__*/
271
- messageDesc(file_kusinta_iot_webrtc_v1_management, 34);
278
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 35);
272
279
 
273
280
  /**
274
281
  * Describes the message kusinta.iot.webrtc.v1.PutComfortLoad.
275
282
  * Use `create(PutComfortLoadSchema)` to create a new message.
276
283
  */
277
284
  export const PutComfortLoadSchema = /*@__PURE__*/
278
- messageDesc(file_kusinta_iot_webrtc_v1_management, 35);
285
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 36);
279
286
 
280
287
  /**
281
288
  * Describes the message kusinta.iot.webrtc.v1.RemoveHeatingRecord.
282
289
  * Use `create(RemoveHeatingRecordSchema)` to create a new message.
283
290
  */
284
291
  export const RemoveHeatingRecordSchema = /*@__PURE__*/
285
- messageDesc(file_kusinta_iot_webrtc_v1_management, 36);
292
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 37);
286
293
 
287
294
  /**
288
295
  * Describes the message kusinta.iot.webrtc.v1.SetComfortWindows.
289
296
  * Use `create(SetComfortWindowsSchema)` to create a new message.
290
297
  */
291
298
  export const SetComfortWindowsSchema = /*@__PURE__*/
292
- messageDesc(file_kusinta_iot_webrtc_v1_management, 37);
299
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 38);
293
300
 
294
301
  /**
295
302
  * Describes the message kusinta.iot.webrtc.v1.RequestAccountLinkNonce.
296
303
  * Use `create(RequestAccountLinkNonceSchema)` to create a new message.
297
304
  */
298
305
  export const RequestAccountLinkNonceSchema = /*@__PURE__*/
299
- messageDesc(file_kusinta_iot_webrtc_v1_management, 38);
306
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 39);
300
307
 
301
308
  /**
302
309
  * Describes the message kusinta.iot.webrtc.v1.ListAccountLinks.
303
310
  * Use `create(ListAccountLinksSchema)` to create a new message.
304
311
  */
305
312
  export const ListAccountLinksSchema = /*@__PURE__*/
306
- messageDesc(file_kusinta_iot_webrtc_v1_management, 39);
313
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 40);
307
314
 
308
315
  /**
309
316
  * Describes the message kusinta.iot.webrtc.v1.UnlinkAccount.
310
317
  * Use `create(UnlinkAccountSchema)` to create a new message.
311
318
  */
312
319
  export const UnlinkAccountSchema = /*@__PURE__*/
313
- messageDesc(file_kusinta_iot_webrtc_v1_management, 40);
320
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 41);
314
321
 
315
322
  /**
316
323
  * Describes the message kusinta.iot.webrtc.v1.ListCommissioning.
317
324
  * Use `create(ListCommissioningSchema)` to create a new message.
318
325
  */
319
326
  export const ListCommissioningSchema = /*@__PURE__*/
320
- messageDesc(file_kusinta_iot_webrtc_v1_management, 41);
327
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 42);
321
328
 
322
329
  /**
323
330
  * Describes the message kusinta.iot.webrtc.v1.PutCommissioningFact.
324
331
  * Use `create(PutCommissioningFactSchema)` to create a new message.
325
332
  */
326
333
  export const PutCommissioningFactSchema = /*@__PURE__*/
327
- messageDesc(file_kusinta_iot_webrtc_v1_management, 42);
334
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 43);
328
335
 
329
336
  /**
330
337
  * Describes the message kusinta.iot.webrtc.v1.RemoveCommissioningFact.
331
338
  * Use `create(RemoveCommissioningFactSchema)` to create a new message.
332
339
  */
333
340
  export const RemoveCommissioningFactSchema = /*@__PURE__*/
334
- messageDesc(file_kusinta_iot_webrtc_v1_management, 43);
341
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 44);
335
342
 
336
343
  /**
337
344
  * Describes the message kusinta.iot.webrtc.v1.PutHouseTemplate.
338
345
  * Use `create(PutHouseTemplateSchema)` to create a new message.
339
346
  */
340
347
  export const PutHouseTemplateSchema = /*@__PURE__*/
341
- messageDesc(file_kusinta_iot_webrtc_v1_management, 44);
348
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 45);
342
349
 
343
350
  /**
344
351
  * Describes the message kusinta.iot.webrtc.v1.SetHomeTemplate.
345
352
  * Use `create(SetHomeTemplateSchema)` to create a new message.
346
353
  */
347
354
  export const SetHomeTemplateSchema = /*@__PURE__*/
348
- messageDesc(file_kusinta_iot_webrtc_v1_management, 45);
355
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 46);
349
356
 
350
357
  /**
351
358
  * Describes the message kusinta.iot.webrtc.v1.RunCommissioningTest.
352
359
  * Use `create(RunCommissioningTestSchema)` to create a new message.
353
360
  */
354
361
  export const RunCommissioningTestSchema = /*@__PURE__*/
355
- messageDesc(file_kusinta_iot_webrtc_v1_management, 46);
362
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 47);
356
363
 
357
364
  /**
358
365
  * Describes the message kusinta.iot.webrtc.v1.ConcludeCommissioningTest.
359
366
  * Use `create(ConcludeCommissioningTestSchema)` to create a new message.
360
367
  */
361
368
  export const ConcludeCommissioningTestSchema = /*@__PURE__*/
362
- messageDesc(file_kusinta_iot_webrtc_v1_management, 47);
369
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 48);
363
370
 
364
371
  /**
365
372
  * Describes the message kusinta.iot.webrtc.v1.ListHomeSetups.
366
373
  * Use `create(ListHomeSetupsSchema)` to create a new message.
367
374
  */
368
375
  export const ListHomeSetupsSchema = /*@__PURE__*/
369
- messageDesc(file_kusinta_iot_webrtc_v1_management, 48);
376
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 49);
370
377
 
371
378
  /**
372
379
  * Describes the message kusinta.iot.webrtc.v1.RequestCommissioningGrant.
373
380
  * Use `create(RequestCommissioningGrantSchema)` to create a new message.
374
381
  */
375
382
  export const RequestCommissioningGrantSchema = /*@__PURE__*/
376
- messageDesc(file_kusinta_iot_webrtc_v1_management, 49);
383
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 50);
377
384
 
378
385
  /**
379
386
  * Describes the message kusinta.iot.webrtc.v1.AnswerCommissioningGrant.
380
387
  * Use `create(AnswerCommissioningGrantSchema)` to create a new message.
381
388
  */
382
389
  export const AnswerCommissioningGrantSchema = /*@__PURE__*/
383
- messageDesc(file_kusinta_iot_webrtc_v1_management, 50);
390
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 51);
384
391
 
385
392
  /**
386
393
  * Describes the message kusinta.iot.webrtc.v1.EndCommissioningGrant.
387
394
  * Use `create(EndCommissioningGrantSchema)` to create a new message.
388
395
  */
389
396
  export const EndCommissioningGrantSchema = /*@__PURE__*/
390
- messageDesc(file_kusinta_iot_webrtc_v1_management, 51);
397
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 52);
391
398
 
392
399
  /**
393
400
  * Describes the message kusinta.iot.webrtc.v1.ListCommissioningGrants.
394
401
  * Use `create(ListCommissioningGrantsSchema)` to create a new message.
395
402
  */
396
403
  export const ListCommissioningGrantsSchema = /*@__PURE__*/
397
- messageDesc(file_kusinta_iot_webrtc_v1_management, 52);
404
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 53);
398
405
 
399
406
  /**
400
407
  * Describes the message kusinta.iot.webrtc.v1.SetAssetOwner.
401
408
  * Use `create(SetAssetOwnerSchema)` to create a new message.
402
409
  */
403
410
  export const SetAssetOwnerSchema = /*@__PURE__*/
404
- messageDesc(file_kusinta_iot_webrtc_v1_management, 53);
411
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 54);
405
412
 
406
413
  /**
407
414
  * Describes the message kusinta.iot.webrtc.v1.ManagementRequest.
408
415
  * Use `create(ManagementRequestSchema)` to create a new message.
409
416
  */
410
417
  export const ManagementRequestSchema = /*@__PURE__*/
411
- messageDesc(file_kusinta_iot_webrtc_v1_management, 54);
418
+ messageDesc(file_kusinta_iot_webrtc_v1_management, 55);
412
419