@openkaiden/opnshll-sdk 0.0.115 → 0.1.1

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.
@@ -2,13 +2,13 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
4
4
  import { file_datamodel } from "./datamodel_pb.js";
5
- import { file_google_protobuf_struct } from "@bufbuild/protobuf/wkt";
5
+ import { file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
6
6
  import { file_options } from "./options_pb.js";
7
7
  import { file_sandbox } from "./sandbox_pb.js";
8
8
  /**
9
9
  * Describes the file openshell.proto.
10
10
  */
11
- export const file_openshell = /*@__PURE__*/ fileDesc("Cg9vcGVuc2hlbGwucHJvdG8SDG9wZW5zaGVsbC52MSIaChhJc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QiRwoZSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZRITCgV0b2tlbhgBIAEoCUIEiLUYARIVCg1leHBpcmVzX2F0X21zGAIgASgDIj0KGlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Eh8KF2V4dGVuc2lvbl9zZXJ2aWNlX25hbWVzGAEgAygJIpIBChtSZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2USEwoFdG9rZW4YASABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgCIAEoAxJHChVleHRlbnNpb25fY3JlZGVudGlhbHMYAyADKAsyKC5vcGVuc2hlbGwudjEuRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwiDwoNSGVhbHRoUmVxdWVzdCJOCg5IZWFsdGhSZXNwb25zZRIrCgZzdGF0dXMYASABKA4yGy5vcGVuc2hlbGwudjEuU2VydmljZVN0YXR1cxIPCgd2ZXJzaW9uGAIgASgJIhcKFUdldEN1cnJlbnRVc2VyUmVxdWVzdCJ5ChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg0KBXJvbGVzGAMgAygJEg4KBnNjb3BlcxgEIAMoCRIZChFpZGVudGl0eV9wcm92aWRlchgFIAEoCSIXChVHZXRHYXRld2F5SW5mb1JlcXVlc3QimAEKFkdldEdhdGV3YXlJbmZvUmVzcG9uc2USKwoGc3RhdHVzGAEgASgOMhsub3BlbnNoZWxsLnYxLlNlcnZpY2VTdGF0dXMSFwoPZ2F0ZXdheV92ZXJzaW9uGAIgASgJEjgKD2NvbXB1dGVfZHJpdmVycxgDIAMoCzIfLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVySW5mbyJgChFDb21wdXRlRHJpdmVySW5mbxIMCgRuYW1lGAEgASgJEj0KDGNhcGFiaWxpdGllcxgCIAEoCzInLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzIkgKGUNvbXB1dGVEcml2ZXJDYXBhYmlsaXRpZXMSEwoLZHJpdmVyX25hbWUYASABKAkSFgoOZHJpdmVyX3ZlcnNpb24YAiABKAkiwAEKB1NhbmRib3gSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESJwoEc3BlYxgCIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIrCgZzdGF0dXMYAyABKAsyGy5vcGVuc2hlbGwudjEuU2FuZGJveFN0YXR1c0oECAQQBUoECAUQBlIFcGhhc2VSFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24inwMKC1NhbmRib3hTcGVjEhEKCWxvZ19sZXZlbBgBIAEoCRI/CgtlbnZpcm9ubWVudBgFIAMoCzIqLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYy5FbnZpcm9ubWVudEVudHJ5Ei8KCHRlbXBsYXRlGAYgASgLMh0ub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZRIzCgZwb2xpY3kYByABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EhEKCXByb3ZpZGVycxgIIAMoCRJBChVyZXNvdXJjZV9yZXF1aXJlbWVudHMYCSABKAsyIi5vcGVuc2hlbGwudjEuUmVzb3VyY2VSZXF1aXJlbWVudHMSDwoHY29tbWFuZBgMIAMoCRILCgN0dHkYDSABKAgaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIChALSgQICxAMUgpncHVfZGV2aWNlUhZwcm9wb3NhbF9hcHByb3ZhbF9tb2RlIkoKFFJlc291cmNlUmVxdWlyZW1lbnRzEjIKA2dwdRgBIAEoCzIlLm9wZW5zaGVsbC52MS5HcHVSZXNvdXJjZVJlcXVpcmVtZW50cyI3ChdHcHVSZXNvdXJjZVJlcXVpcmVtZW50cxISCgVjb3VudBgBIAEoDUgAiAEBQggKBl9jb3VudCLaBAoPU2FuZGJveFRlbXBsYXRlEg0KBWltYWdlGAEgASgJEhoKEnJ1bnRpbWVfY2xhc3NfbmFtZRgCIAEoCRIUCgxhZ2VudF9zb2NrZXQYAyABKAkSOQoGbGFiZWxzGAQgAygLMikub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZS5MYWJlbHNFbnRyeRJDCgthbm5vdGF0aW9ucxgFIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuQW5ub3RhdGlvbnNFbnRyeRJDCgtlbnZpcm9ubWVudBgGIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuRW52aXJvbm1lbnRFbnRyeRIqCglyZXNvdXJjZXMYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhwKD3VzZXJfbmFtZXNwYWNlcxgKIAEoCEgAiAEBEi4KDWRyaXZlcl9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUISChBfdXNlcl9uYW1lc3BhY2VzSgQICRAKUhZ2b2x1bWVfY2xhaW1fdGVtcGxhdGVzIqUCCg1TYW5kYm94U3RhdHVzEhQKDHNhbmRib3hfbmFtZRgBIAEoCRIRCglhZ2VudF9wb2QYAiABKAkSEAoIYWdlbnRfZmQYAyABKAkSEgoKc2FuZGJveF9mZBgEIAEoCRIyCgpjb25kaXRpb25zGAUgAygLMh4ub3BlbnNoZWxsLnYxLlNhbmRib3hDb25kaXRpb24SKQoFcGhhc2UYBiABKA4yGi5vcGVuc2hlbGwudjEuU2FuZGJveFBoYXNlEh4KFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24YByABKA0SIAoYbWFpbl9wcm9jZXNzX2luc3RhbmNlX2lkGAggASgJEhYKCWV4aXRfY29kZRgJIAEoBUgAiAEBQgwKCl9leGl0X2NvZGUibwoQU2FuZGJveENvbmRpdGlvbhIMCgR0eXBlGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIOCgZyZWFzb24YAyABKAkSDwoHbWVzc2FnZRgEIAEoCRIcChRsYXN0X3RyYW5zaXRpb25fdGltZRgFIAEoCSLSAQoNUGxhdGZvcm1FdmVudBIUCgx0aW1lc3RhbXBfbXMYASABKAMSDgoGc291cmNlGAIgASgJEgwKBHR5cGUYAyABKAkSDgoGcmVhc29uGAQgASgJEg8KB21lc3NhZ2UYBSABKAkSOwoIbWV0YWRhdGEYBiADKAsyKS5vcGVuc2hlbGwudjEuUGxhdGZvcm1FdmVudC5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLNAgoUQ3JlYXRlU2FuZGJveFJlcXVlc3QSJwoEc3BlYxgBIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIMCgRuYW1lGAIgASgJEj4KBmxhYmVscxgDIAMoCzIuLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5MYWJlbHNFbnRyeRJICgthbm5vdGF0aW9ucxgEIAMoCzIzLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5Bbm5vdGF0aW9uc0VudHJ5EhEKCXdvcmtzcGFjZRgFIAEoCRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0ChFHZXRTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJ4ChRMaXN0U2FuZGJveGVzUmVxdWVzdBINCgVsaW1pdBgBIAEoDRIOCgZvZmZzZXQYAiABKA0SFgoObGFiZWxfc2VsZWN0b3IYAyABKAkSEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIkYKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBIUCgxzYW5kYm94X25hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIoEBChxBdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIoEBChxEZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIjcKFERlbGV0ZVNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjUKElN0b3BTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSI2ChNTdGFydFNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjkKD1NhbmRib3hSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3giQQoVTGlzdFNhbmRib3hlc1Jlc3BvbnNlEigKCXNhbmRib3hlcxgBIAMoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94IlMKHExpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJZCh1BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIYXR0YWNoZWQYAiABKAgiWQodRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhAKCGRldGFjaGVkGAIgASgIIigKFURlbGV0ZVNhbmRib3hSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIi0KF0NyZWF0ZVNzaFNlc3Npb25SZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkivAEKGENyZWF0ZVNzaFNlc3Npb25SZXNwb25zZRISCgpzYW5kYm94X2lkGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhQKDGdhdGV3YXlfaG9zdBgDIAEoCRIUCgxnYXRld2F5X3BvcnQYBCABKA0SFgoOZ2F0ZXdheV9zY2hlbWUYBSABKAkSHAoUaG9zdF9rZXlfZmluZ2VycHJpbnQYByABKAkSFQoNZXhwaXJlc19hdF9tcxgIIAEoAyJwChRFeHBvc2VTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEwoLdGFyZ2V0X3BvcnQYAyABKA0SDgoGZG9tYWluGAQgASgIEhEKCXdvcmtzcGFjZRgFIAEoCSJIChFHZXRTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJInAKE0xpc3RTZXJ2aWNlc1JlcXVlc3QSDwoHc2FuZGJveBgBIAEoCRINCgVsaW1pdBgCIAEoDRIOCgZvZmZzZXQYAyABKA0SEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIk8KFExpc3RTZXJ2aWNlc1Jlc3BvbnNlEjcKCHNlcnZpY2VzGAEgAygLMiUub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludFJlc3BvbnNlIksKFERlbGV0ZVNlcnZpY2VSZXF1ZXN0Eg8KB3NhbmRib3gYASABKAkSDwoHc2VydmljZRgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkiKAoVRGVsZXRlU2VydmljZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgirAEKD1NlcnZpY2VFbmRwb2ludBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEhQKDHNhbmRib3hfbmFtZRgDIAEoCRIUCgxzZXJ2aWNlX25hbWUYBCABKAkSEwoLdGFyZ2V0X3BvcnQYBSABKA0SDgoGZG9tYWluGAYgASgIIlcKF1NlcnZpY2VFbmRwb2ludFJlc3BvbnNlEi8KCGVuZHBvaW50GAEgASgLMh0ub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludBILCgN1cmwYAiABKAkiLgoXUmV2b2tlU3NoU2Vzc2lvblJlcXVlc3QSEwoFdG9rZW4YASABKAlCBIi1GAEiKwoYUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlEg8KB3Jldm9rZWQYASABKAgilwIKEkV4ZWNTYW5kYm94UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg8KB2NvbW1hbmQYAiADKAkSDwoHd29ya2RpchgDIAEoCRJGCgtlbnZpcm9ubWVudBgEIAMoCzIxLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3QuRW52aXJvbm1lbnRFbnRyeRIXCg90aW1lb3V0X3NlY29uZHMYBSABKA0SDQoFc3RkaW4YBiABKAwSCwoDdHR5GAcgASgIEgwKBGNvbHMYCCABKA0SDAoEcm93cxgJIAEoDRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiIQoRRXhlY1NhbmRib3hTdGRvdXQSDAoEZGF0YRgBIAEoDCIhChFFeGVjU2FuZGJveFN0ZGVychIMCgRkYXRhGAEgASgMIiQKD0V4ZWNTYW5kYm94RXhpdBIRCglleGl0X2NvZGUYASABKAUisgEKEEV4ZWNTYW5kYm94RXZlbnQSMQoGc3Rkb3V0GAEgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3Rkb3V0SAASMQoGc3RkZXJyGAIgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3RkZXJySAASLQoEZXhpdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV4aXRIAEIJCgdwYXlsb2FkIr8BCg5UY3BGb3J3YXJkSW5pdBISCgpzYW5kYm94X2lkGAEgASgJEhIKCnNlcnZpY2VfaWQYBCABKAkSKwoDc3NoGAUgASgLMhwub3BlbnNoZWxsLnYxLlNzaFJlbGF5VGFyZ2V0SAASKwoDdGNwGAYgASgLMhwub3BlbnNoZWxsLnYxLlRjcFJlbGF5VGFyZ2V0SAASIQoTYXV0aG9yaXphdGlvbl90b2tlbhgHIAEoCUIEiLUYAUIICgZ0YXJnZXQiWgoPVGNwRm9yd2FyZEZyYW1lEiwKBGluaXQYASABKAsyHC5vcGVuc2hlbGwudjEuVGNwRm9yd2FyZEluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCKaAQoQRXhlY1NhbmRib3hJbnB1dBIxCgVzdGFydBgBIAEoCzIgLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3RIABIPCgVzdGRpbhgCIAEoDEgAEjcKBnJlc2l6ZRgDIAEoCzIlLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFdpbmRvd1Jlc2l6ZUgAQgkKB3BheWxvYWQiNQoXRXhlY1NhbmRib3hXaW5kb3dSZXNpemUSDAoEY29scxgBIAEoDRIMCgRyb3dzGAIgASgNIpMBCgpTc2hTZXNzaW9uEjQKCG1ldGFkYXRhGAEgASgLMiIub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5PYmplY3RNZXRhEhIKCnNhbmRib3hfaWQYAiABKAkSEwoFdG9rZW4YAyABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgEIAEoAxIPCgdyZXZva2VkGAUgASgIIuwBChNXYXRjaFNhbmRib3hSZXF1ZXN0EgoKAmlkGAEgASgJEhUKDWZvbGxvd19zdGF0dXMYAiABKAgSEwoLZm9sbG93X2xvZ3MYAyABKAgSFQoNZm9sbG93X2V2ZW50cxgEIAEoCBIWCg5sb2dfdGFpbF9saW5lcxgFIAEoDRISCgpldmVudF90YWlsGAYgASgNEhgKEHN0b3Bfb25fdGVybWluYWwYByABKAgSFAoMbG9nX3NpbmNlX21zGAggASgDEhMKC2xvZ19zb3VyY2VzGAkgAygJEhUKDWxvZ19taW5fbGV2ZWwYCiABKAkimwIKElNhbmRib3hTdHJlYW1FdmVudBIoCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3hIABIrCgNsb2cYAiABKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmVIABIsCgVldmVudBgDIAEoCzIbLm9wZW5zaGVsbC52MS5QbGF0Zm9ybUV2ZW50SAASNQoHd2FybmluZxgEIAEoCzIiLm9wZW5zaGVsbC52MS5TYW5kYm94U3RyZWFtV2FybmluZ0gAEj4KE2RyYWZ0X3BvbGljeV91cGRhdGUYBSABKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRQb2xpY3lVcGRhdGVIAEIJCgdwYXlsb2FkIuMBCg5TYW5kYm94TG9nTGluZRISCgpzYW5kYm94X2lkGAEgASgJEhQKDHRpbWVzdGFtcF9tcxgCIAEoAxINCgVsZXZlbBgDIAEoCRIOCgZ0YXJnZXQYBCABKAkSDwoHbWVzc2FnZRgFIAEoCRIOCgZzb3VyY2UYBiABKAkSOAoGZmllbGRzGAcgAygLMigub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiJwoUU2FuZGJveFN0cmVhbVdhcm5pbmcSDwoHbWVzc2FnZRgBIAEoCSJeChVDcmVhdGVQcm92aWRlclJlcXVlc3QSMgoIcHJvdmlkZXIYASABKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEhEKCXdvcmtzcGFjZRgCIAEoCSI1ChJHZXRQcm92aWRlclJlcXVlc3QSDAoEbmFtZRgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkiYAoUTGlzdFByb3ZpZGVyc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCRIWCg5hbGxfd29ya3NwYWNlcxgEIAEoCCL+AQoVVXBkYXRlUHJvdmlkZXJSZXF1ZXN0EjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchJgChhjcmVkZW50aWFsX2V4cGlyZXNfYXRfbXMYAiADKAsyPi5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0LkNyZWRlbnRpYWxFeHBpcmVzQXRNc0VudHJ5EhEKCXdvcmtzcGFjZRgDIAEoCRo8ChpDcmVkZW50aWFsRXhwaXJlc0F0TXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIjgKFURlbGV0ZVByb3ZpZGVyUmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJGChBQcm92aWRlclJlc3BvbnNlEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJMChVMaXN0UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJPChtMaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCSI6ChlHZXRQcm92aWRlclByb2ZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJbChlQcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEi4KB3Byb2ZpbGUYASABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEg4KBnNvdXJjZRgCIAEoCSJxChlQcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEg4KBnNvdXJjZRgBIAEoCRISCgpwcm9maWxlX2lkGAIgASgJEg0KBWZpZWxkGAMgASgJEg8KB21lc3NhZ2UYBCABKAkSEAoIc2V2ZXJpdHkYBSABKAkiegosUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEgwKBHBhdGgYAyABKAkSEAoIYXVkaWVuY2UYBCABKAkSDgoGc2NvcGVzGAUgAygJImoKKFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRTdWJqZWN0VG9rZW4SDgoGc291cmNlGAEgASgJEhIKCmNyZWRlbnRpYWwYAiABKAkSGgoSc3ViamVjdF90b2tlbl90eXBlGAMgASgJIrYDChxQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50EhYKDnRva2VuX2VuZHBvaW50GAEgASgJEhAKCGF1ZGllbmNlGAIgASgJEhkKEWp3dF9zdmlkX2F1ZGllbmNlGAYgASgJEg4KBnNjb3BlcxgDIAMoCRIZChFjYWNoZV90dGxfc2Vjb25kcxgEIAEoAxJWChJhdWRpZW5jZV9vdmVycmlkZXMYBSADKAsyOi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSHQoVY2xpZW50X2Fzc2VydGlvbl90eXBlGAcgASgJEkIKCmdyYW50X3R5cGUYCCABKA4yLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudFR5cGUSTQoNc3ViamVjdF90b2tlbhgJIAEoCzI2Lm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50U3ViamVjdFRva2VuEhwKFHJlcXVlc3RlZF90b2tlbl90eXBlGAogASgJIrICChlQcm92aWRlclByb2ZpbGVDcmVkZW50aWFsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIZW52X3ZhcnMYAyADKAkSEAoIcmVxdWlyZWQYBCABKAgSEgoKYXV0aF9zdHlsZRgFIAEoCRITCgtoZWFkZXJfbmFtZRgGIAEoCRITCgtxdWVyeV9wYXJhbRgHIAEoCRI4CgdyZWZyZXNoGAggASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2gSFQoNcGF0aF90ZW1wbGF0ZRgJIAEoCRI/Cgt0b2tlbl9ncmFudBgKIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50ImgKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hNYXRlcmlhbBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCHJlcXVpcmVkGAMgASgIEg4KBnNlY3JldBgEIAEoCCJFCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0Eg4KBm91dHB1dBgBIAEoCRISCgpjcmVkZW50aWFsGAIgASgJIs0CChlQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoEkEKCHN0cmF0ZWd5GAEgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRIRCgl0b2tlbl91cmwYAiABKAkSDgoGc2NvcGVzGAMgAygJEh4KFnJlZnJlc2hfYmVmb3JlX3NlY29uZHMYBCABKAMSHAoUbWF4X2xpZmV0aW1lX3NlY29uZHMYBSABKAMSQQoIbWF0ZXJpYWwYBiADKAsyLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE1hdGVyaWFsEkkKEmFkZGl0aW9uYWxfb3V0cHV0cxgHIAMoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0IrsDCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzEhUKDXByb3ZpZGVyX25hbWUYASABKAkSEwoLcHJvdmlkZXJfaWQYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSQQoIc3RyYXRlZ3kYBCABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5Eg4KBnN0YXR1cxgFIAEoCRIVCg1leHBpcmVzX2F0X21zGAYgASgDEhoKEm5leHRfcmVmcmVzaF9hdF9tcxgHIAEoAxIaChJsYXN0X3JlZnJlc2hfYXRfbXMYCCABKAMSEgoKbGFzdF9lcnJvchgJIAEoCRJOCg9yZWNvdmVyeV9hY3Rpb24YCiABKA4yNS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFJlY292ZXJ5QWN0aW9uEhQKDGZhaWx1cmVfY29kZRgLIAEoCRIeChZwcm92aWRlcl9lcnJvcl9zdWJ0eXBlGAwgASgJEhgKEGxhc3RfZXJyb3JfYXRfbXMYDSABKAMiLwoYUHJvdmlkZXJQcm9maWxlRGlzY292ZXJ5EhMKC2NyZWRlbnRpYWxzGAEgAygJIu8JCiRTdG9yZWRQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdGUSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESEwoLcHJvdmlkZXJfaWQYAiABKAkSFQoNcHJvdmlkZXJfbmFtZRgDIAEoCRIWCg5jcmVkZW50aWFsX2tleRgEIAEoCRJBCghzdHJhdGVneRgFIAEoDjIvLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RyYXRlZ3kSWAoIbWF0ZXJpYWwYBiADKAsyQC5vcGVuc2hlbGwudjEuU3RvcmVkUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXRlLk1hdGVyaWFsRW50cnlCBIi1GAESHAoUc2VjcmV0X21hdGVyaWFsX2tleXMYByADKAkSFQoNZXhwaXJlc19hdF9tcxgIIAEoAxIaChJuZXh0X3JlZnJlc2hfYXRfbXMYCSABKAMSGgoSbGFzdF9yZWZyZXNoX2F0X21zGAogASgDEg4KBnN0YXR1cxgLIAEoCRISCgpsYXN0X2Vycm9yGAwgASgJEhEKCXRva2VuX3VybBgNIAEoCRIOCgZzY29wZXMYDiADKAkSHgoWcmVmcmVzaF9iZWZvcmVfc2Vjb25kcxgPIAEoAxIcChRtYXhfbGlmZXRpbWVfc2Vjb25kcxgQIAEoAxJsChZhZGRpdGlvbmFsX291dHB1dF9rZXlzGBEgAygLMkwub3BlbnNoZWxsLnYxLlN0b3JlZFByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0ZS5BZGRpdGlvbmFsT3V0cHV0S2V5c0VudHJ5EhsKE2F1dGhvcml6YXRpb25fZXBvY2gYEiABKAkSbgoXc2VjcmV0X21hdGVyaWFsX2hhbmRsZXMYEyADKAsyTS5vcGVuc2hlbGwudjEuU3RvcmVkUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXRlLlNlY3JldE1hdGVyaWFsSGFuZGxlc0VudHJ5Ek0KGHBlbmRpbmdfc2VjcmV0X2RlbGV0aW9ucxgUIAMoCzIrLm9wZW5zaGVsbC52MS5TdG9yZWRSZWZyZXNoTWF0ZXJpYWxEZWxldGlvbhJOCg9yZWNvdmVyeV9hY3Rpb24YFSABKA4yNS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFJlY292ZXJ5QWN0aW9uEhQKDGZhaWx1cmVfY29kZRgWIAEoCRIeChZwcm92aWRlcl9lcnJvcl9zdWJ0eXBlGBcgASgJEhgKEGxhc3RfZXJyb3JfYXRfbXMYGCABKAMaLwoNTWF0ZXJpYWxFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjsKGUFkZGl0aW9uYWxPdXRwdXRLZXlzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpmChpTZWNyZXRNYXRlcmlhbEhhbmRsZXNFbnRyeRILCgNrZXkYASABKAkSNwoFdmFsdWUYAiABKAsyKC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLkNyZWRlbnRpYWxIYW5kbGU6AjgBIm8KHVN0b3JlZFJlZnJlc2hNYXRlcmlhbERlbGV0aW9uEhQKDG1hdGVyaWFsX2tleRgBIAEoCRI4CgZoYW5kbGUYAiABKAsyKC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLkNyZWRlbnRpYWxIYW5kbGUiXgofR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVxdWVzdBIQCghwcm92aWRlchgBIAEoCRIWCg5jcmVkZW50aWFsX2tleRgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkiZgogR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVzcG9uc2USQgoLY3JlZGVudGlhbHMYASADKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyLzAgofQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBIQCghwcm92aWRlchgBIAEoCRIWCg5jcmVkZW50aWFsX2tleRgCIAEoCRJBCghzdHJhdGVneRgDIAEoDjIvLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RyYXRlZ3kSUwoIbWF0ZXJpYWwYBCADKAsyOy5vcGVuc2hlbGwudjEuQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdC5NYXRlcmlhbEVudHJ5QgSItRgBEhwKFHNlY3JldF9tYXRlcmlhbF9rZXlzGAUgAygJEhoKDWV4cGlyZXNfYXRfbXMYBiABKANIAIgBARIRCgl3b3Jrc3BhY2UYByABKAkaLwoNTWF0ZXJpYWxFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQhAKDl9leHBpcmVzX2F0X21zImEKIENvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlEj0KBnN0YXR1cxgBIAEoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzIl4KH1JvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJImEKIFJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlc3BvbnNlEj0KBnN0YXR1cxgBIAEoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzIlsKHERlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJIjAKHURlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgiuAQKD1Byb3ZpZGVyUHJvZmlsZRIKCgJpZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSNwoIY2F0ZWdvcnkYBCABKA4yJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ2F0ZWdvcnkSPAoLY3JlZGVudGlhbHMYBSADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbBI4CgllbmRwb2ludHMYBiADKAsyJS5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrRW5kcG9pbnQSNQoIYmluYXJpZXMYByADKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrQmluYXJ5EhkKEWluZmVyZW5jZV9jYXBhYmxlGAggASgIEjkKCWRpc2NvdmVyeRgJIAEoCzImLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaXNjb3ZlcnkSGAoQcmVzb3VyY2VfdmVyc2lvbhgKIAEoBBJDCgthbm5vdGF0aW9ucxgLIAMoCzIuLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUuQW5ub3RhdGlvbnNFbnRyeRIOCgZzb3VyY2UYDCABKAkSDQoFc2NvcGUYDSABKAkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIn0KFVN0b3JlZFByb3ZpZGVyUHJvZmlsZRI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRIuCgdwcm9maWxlGAIgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZSJJChdQcm92aWRlclByb2ZpbGVSZXNwb25zZRIuCgdwcm9maWxlGAEgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZSJPChxMaXN0UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlEi8KCHByb2ZpbGVzGAEgAygLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZSJtCh1JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEhEKCXdvcmtzcGFjZRgCIAEoCSKhAQoeSW1wb3J0UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlEjwKC2RpYWdub3N0aWNzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSLwoIcHJvZmlsZXMYAiADKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEhAKCGltcG9ydGVkGAMgASgIIpsBCh1VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVxdWVzdBI4Cgdwcm9maWxlGAEgASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0SIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgCIAEoBBIKCgJpZBgDIAEoCRIRCgl3b3Jrc3BhY2UYBCABKAkinwEKHlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi4KB3Byb2ZpbGUYAiABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEg8KB3VwZGF0ZWQYAyABKAgiawobTGludFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0EjkKCHByb2ZpbGVzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0SEQoJd29ya3NwYWNlGAIgASgJImsKHExpbnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxINCgV2YWxpZBgCIAEoCCIpChZEZWxldGVQcm92aWRlclJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgiPQocRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkiMAodRGVsZXRlUHJvdmlkZXJQcm9maWxlUmVzcG9uc2USDwoHZGVsZXRlZBgBIAEoCCJnCiRHZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIrCiNzdXBwb3J0c19zdGF0aWNfY3JlZGVudGlhbF9iaW5kaW5ncxgCIAEoCCJLCh9TdGF0aWNDcmVkZW50aWFsRW5kcG9pbnRCaW5kaW5nEgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDRIMCgRwYXRoGAMgASgJIpwBChdTdGF0aWNDcmVkZW50aWFsQmluZGluZxJACgllbmRwb2ludHMYASADKAsyLS5vcGVuc2hlbGwudjEuU3RhdGljQ3JlZGVudGlhbEVuZHBvaW50QmluZGluZxIbChNjcmVkZW50aWFsX2lkZW50aXR5GAIgASgJEiIKGndvcmtsb2FkX2NyZWRlbnRpYWxfaGFuZGxlGAMgASgJIt0GCiVHZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlEl8KC2Vudmlyb25tZW50GAEgAygLMkQub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuRW52aXJvbm1lbnRFbnRyeUIEiLUYARIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YAiABKAQScAoYY3JlZGVudGlhbF9leHBpcmVzX2F0X21zGAMgAygLMk4ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuQ3JlZGVudGlhbEV4cGlyZXNBdE1zRW50cnkSaAoTZHluYW1pY19jcmVkZW50aWFscxgEIAMoCzJLLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkR5bmFtaWNDcmVkZW50aWFsc0VudHJ5EnUKGnN0YXRpY19jcmVkZW50aWFsX2JpbmRpbmdzGAUgAygLMlEub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSIwobbm9uX3NlY3JldF9lbnZpcm9ubWVudF9rZXlzGAYgAygJGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo8ChpDcmVkZW50aWFsRXhwaXJlc0F0TXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBGmIKF0R5bmFtaWNDcmVkZW50aWFsc0VudHJ5EgsKA2tleRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDcmVkZW50aWFsOgI4ARpmCh1TdGF0aWNDcmVkZW50aWFsQmluZGluZ3NFbnRyeRILCgNrZXkYASABKAkSNAoFdmFsdWUYAiABKAsyJS5vcGVuc2hlbGwudjEuU3RhdGljQ3JlZGVudGlhbEJpbmRpbmc6AjgBIoYBCiNFeGNoYW5nZVByb3ZpZGVyU3ViamVjdFRva2VuUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEhAKCHByb3ZpZGVyGAIgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAMgASgJEiEKE3N1cGVydmlzb3Jfand0X3N2aWQYBCABKAlCBIi1GAEiagokRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlc3BvbnNlEhoKDGFjY2Vzc190b2tlbhgBIAEoCUIEiLUYARISCgpleHBpcmVzX2luGAIgASgDEhIKCnRva2VuX3R5cGUYAyABKAkiwQMKE1VwZGF0ZUNvbmZpZ1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIzCgZwb2xpY3kYAiABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EhMKC3NldHRpbmdfa2V5GAMgASgJEjkKDXNldHRpbmdfdmFsdWUYBCABKAsyIi5vcGVuc2hlbGwuc2FuZGJveC52MS5TZXR0aW5nVmFsdWUSFgoOZGVsZXRlX3NldHRpbmcYBSABKAgSDgoGZ2xvYmFsGAYgASgIEjwKEG1lcmdlX29wZXJhdGlvbnMYByADKAsyIi5vcGVuc2hlbGwudjEuUG9saWN5TWVyZ2VPcGVyYXRpb24SIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgIIAEoBBJHCgthbm5vdGF0aW9ucxgJIAMoCzIyLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXF1ZXN0LkFubm90YXRpb25zRW50cnkSEQoJd29ya3NwYWNlGAogASgJGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL3AgoUUG9saWN5TWVyZ2VPcGVyYXRpb24SMAoIYWRkX3J1bGUYASABKAsyHC5vcGVuc2hlbGwudjEuQWRkTmV0d29ya1J1bGVIABI+Cg9yZW1vdmVfZW5kcG9pbnQYAiABKAsyIy5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya0VuZHBvaW50SAASNgoLcmVtb3ZlX3J1bGUYAyABKAsyHy5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya1J1bGVIABI0Cg5hZGRfZGVueV9ydWxlcxgEIAEoCzIaLm9wZW5zaGVsbC52MS5BZGREZW55UnVsZXNIABI2Cg9hZGRfYWxsb3dfcnVsZXMYBSABKAsyGy5vcGVuc2hlbGwudjEuQWRkQWxsb3dSdWxlc0gAEjoKDXJlbW92ZV9iaW5hcnkYBiABKAsyIS5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya0JpbmFyeUgAQgsKCW9wZXJhdGlvbiJaCg5BZGROZXR3b3JrUnVsZRIRCglydWxlX25hbWUYASABKAkSNQoEcnVsZRgCIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlIkYKFVJlbW92ZU5ldHdvcmtFbmRwb2ludBIRCglydWxlX25hbWUYASABKAkSDAoEaG9zdBgCIAEoCRIMCgRwb3J0GAMgASgNIiYKEVJlbW92ZU5ldHdvcmtSdWxlEhEKCXJ1bGVfbmFtZRgBIAEoCSJgCgxBZGREZW55UnVsZXMSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEjQKCmRlbnlfcnVsZXMYAyADKAsyIC5vcGVuc2hlbGwuc2FuZGJveC52MS5MN0RlbnlSdWxlIlgKDUFkZEFsbG93UnVsZXMSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEisKBXJ1bGVzGAMgAygLMhwub3BlbnNoZWxsLnNhbmRib3gudjEuTDdSdWxlIj0KE1JlbW92ZU5ldHdvcmtCaW5hcnkSEQoJcnVsZV9uYW1lGAEgASgJEhMKC2JpbmFyeV9wYXRoGAIgASgJIuYBChRVcGRhdGVDb25maWdSZXNwb25zZRIPCgd2ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJEhkKEXNldHRpbmdzX3JldmlzaW9uGAMgASgEEg8KB2RlbGV0ZWQYBCABKAgSSAoLYW5ub3RhdGlvbnMYBSADKAsyMy5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVzcG9uc2UuQW5ub3RhdGlvbnNFbnRyeRoyChBBbm5vdGF0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiYQodR2V0U2FuZGJveFBvbGljeVN0YXR1c1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIPCgd2ZXJzaW9uGAIgASgNEg4KBmdsb2JhbBgDIAEoCBIRCgl3b3Jrc3BhY2UYBCABKAkibwoeR2V0U2FuZGJveFBvbGljeVN0YXR1c1Jlc3BvbnNlEjUKCHJldmlzaW9uGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbhIWCg5hY3RpdmVfdmVyc2lvbhgCIAEoDSJsChpMaXN0U2FuZGJveFBvbGljaWVzUmVxdWVzdBIMCgRuYW1lGAEgASgJEg0KBWxpbWl0GAIgASgNEg4KBm9mZnNldBgDIAEoDRIOCgZnbG9iYWwYBCABKAgSEQoJd29ya3NwYWNlGAUgASgJIlUKG0xpc3RTYW5kYm94UG9saWNpZXNSZXNwb25zZRI2CglyZXZpc2lvbnMYASADKAsyIy5vcGVuc2hlbGwudjEuU2FuZGJveFBvbGljeVJldmlzaW9uIoABChlSZXBvcnRQb2xpY3lTdGF0dXNSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSDwoHdmVyc2lvbhgCIAEoDRIqCgZzdGF0dXMYAyABKA4yGi5vcGVuc2hlbGwudjEuUG9saWN5U3RhdHVzEhIKCmxvYWRfZXJyb3IYBCABKAkiHAoaUmVwb3J0UG9saWN5U3RhdHVzUmVzcG9uc2Ui2wIKFVNhbmRib3hQb2xpY3lSZXZpc2lvbhIPCgd2ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJEioKBnN0YXR1cxgDIAEoDjIaLm9wZW5zaGVsbC52MS5Qb2xpY3lTdGF0dXMSEgoKbG9hZF9lcnJvchgEIAEoCRIVCg1jcmVhdGVkX2F0X21zGAUgASgDEhQKDGxvYWRlZF9hdF9tcxgGIAEoAxIzCgZwb2xpY3kYByABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EkcKCnByb3ZlbmFuY2UYCCADKAsyMy5vcGVuc2hlbGwudjEuU2FuZGJveFBvbGljeVJldmlzaW9uLlByb3ZlbmFuY2VFbnRyeRoxCg9Qcm92ZW5hbmNlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKDAQoVR2V0U2FuZGJveExvZ3NSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSDQoFbGluZXMYAiABKA0SEAoIc2luY2VfbXMYAyABKAMSDwoHc291cmNlcxgEIAMoCRIRCgltaW5fbGV2ZWwYBSABKAkSEQoJd29ya3NwYWNlGAYgASgJIlgKFlB1c2hTYW5kYm94TG9nc1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIqCgRsb2dzGAIgAygLMhwub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lIhkKF1B1c2hTYW5kYm94TG9nc1Jlc3BvbnNlIloKFkdldFNhbmRib3hMb2dzUmVzcG9uc2USKgoEbG9ncxgBIAMoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94TG9nTGluZRIUCgxidWZmZXJfdG90YWwYAiABKA0i8wEKEVN1cGVydmlzb3JNZXNzYWdlEi4KBWhlbGxvGAEgASgLMh0ub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JIZWxsb0gAEjYKCWhlYXJ0YmVhdBgCIAEoCzIhLm9wZW5zaGVsbC52MS5TdXBlcnZpc29ySGVhcnRiZWF0SAASOgoRcmVsYXlfb3Blbl9yZXN1bHQYAyABKAsyHS5vcGVuc2hlbGwudjEuUmVsYXlPcGVuUmVzdWx0SAASLwoLcmVsYXlfY2xvc2UYBCABKAsyGC5vcGVuc2hlbGwudjEuUmVsYXlDbG9zZUgAQgkKB3BheWxvYWQipgIKDkdhdGV3YXlNZXNzYWdlEjkKEHNlc3Npb25fYWNjZXB0ZWQYASABKAsyHS5vcGVuc2hlbGwudjEuU2Vzc2lvbkFjY2VwdGVkSAASOQoQc2Vzc2lvbl9yZWplY3RlZBgCIAEoCzIdLm9wZW5zaGVsbC52MS5TZXNzaW9uUmVqZWN0ZWRIABIzCgloZWFydGJlYXQYAyABKAsyHi5vcGVuc2hlbGwudjEuR2F0ZXdheUhlYXJ0YmVhdEgAEi0KCnJlbGF5X29wZW4YBCABKAsyFy5vcGVuc2hlbGwudjEuUmVsYXlPcGVuSAASLwoLcmVsYXlfY2xvc2UYBSABKAsyGC5vcGVuc2hlbGwudjEuUmVsYXlDbG9zZUgAQgkKB3BheWxvYWQiOgoPU3VwZXJ2aXNvckhlbGxvEhIKCnNhbmRib3hfaWQYASABKAkSEwoLaW5zdGFuY2VfaWQYAiABKAkiRgoPU2Vzc2lvbkFjY2VwdGVkEhIKCnNlc3Npb25faWQYASABKAkSHwoXaGVhcnRiZWF0X2ludGVydmFsX3NlY3MYAiABKA0iIQoPU2Vzc2lvblJlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSIVChNTdXBlcnZpc29ySGVhcnRiZWF0IhIKEEdhdGV3YXlIZWFydGJlYXQiWgocUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJEhEKCWV4aXRfY29kZRgDIAEoBSIfCh1SZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXNwb25zZSKXAQoJUmVsYXlPcGVuEhIKCmNoYW5uZWxfaWQYASABKAkSKwoDc3NoGAIgASgLMhwub3BlbnNoZWxsLnYxLlNzaFJlbGF5VGFyZ2V0SAASKwoDdGNwGAMgASgLMhwub3BlbnNoZWxsLnYxLlRjcFJlbGF5VGFyZ2V0SAASEgoKc2VydmljZV9pZBgFIAEoCUIICgZ0YXJnZXQiEAoOU3NoUmVsYXlUYXJnZXQiLAoOVGNwUmVsYXlUYXJnZXQSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNIh8KCVJlbGF5SW5pdBISCgpjaGFubmVsX2lkGAEgASgJIlAKClJlbGF5RnJhbWUSJwoEaW5pdBgBIAEoCzIXLm9wZW5zaGVsbC52MS5SZWxheUluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCJFCg9SZWxheU9wZW5SZXN1bHQSEgoKY2hhbm5lbF9pZBgBIAEoCRIPCgdzdWNjZXNzGAIgASgIEg0KBWVycm9yGAMgASgJIjAKClJlbGF5Q2xvc2USEgoKY2hhbm5lbF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkiUAoPTDdSZXF1ZXN0U2FtcGxlEg4KBm1ldGhvZBgBIAEoCRIMCgRwYXRoGAIgASgJEhAKCGRlY2lzaW9uGAMgASgJEg0KBWNvdW50GAQgASgNIpUDCg1EZW5pYWxTdW1tYXJ5EhIKCnNhbmRib3hfaWQYASABKAkSDAoEaG9zdBgCIAEoCRIMCgRwb3J0GAMgASgNEg4KBmJpbmFyeRgEIAEoCRIRCglhbmNlc3RvcnMYBSADKAkSEwoLZGVueV9yZWFzb24YBiABKAkSFQoNZmlyc3Rfc2Vlbl9tcxgHIAEoAxIUCgxsYXN0X3NlZW5fbXMYCCABKAMSDQoFY291bnQYCSABKA0SGAoQc3VwcHJlc3NlZF9jb3VudBgKIAEoDRITCgt0b3RhbF9jb3VudBgLIAEoDRIXCg9zYW1wbGVfY21kbGluZXMYDCADKAkSFQoNYmluYXJ5X3NoYTI1NhgNIAEoCRISCgpwZXJzaXN0ZW50GA4gASgIEhQKDGRlbmlhbF9zdGFnZRgPIAEoCRI5ChJsN19yZXF1ZXN0X3NhbXBsZXMYECADKAsyHS5vcGVuc2hlbGwudjEuTDdSZXF1ZXN0U2FtcGxlEhwKFGw3X2luc3BlY3Rpb25fYWN0aXZlGBEgASgIIjwKEERlbmlhbEdyb3VwQ291bnQSEgoKZGVueV9ncm91cBgBIAEoCRIUCgxkZW5pZWRfY291bnQYAiABKA0ijwEKFk5ldHdvcmtBY3Rpdml0eVN1bW1hcnkSHgoWbmV0d29ya19hY3Rpdml0eV9jb3VudBgBIAEoDRIbChNkZW5pZWRfYWN0aW9uX2NvdW50GAIgASgNEjgKEGRlbmlhbHNfYnlfZ3JvdXAYAyADKAsyHi5vcGVuc2hlbGwudjEuRGVuaWFsR3JvdXBDb3VudCLHBQoLUG9saWN5Q2h1bmsSCgoCaWQYASABKAkSDgoGc3RhdHVzGAIgASgJEhEKCXJ1bGVfbmFtZRgDIAEoCRI+Cg1wcm9wb3NlZF9ydWxlGAQgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUSEQoJcmF0aW9uYWxlGAUgASgJEhYKDnNlY3VyaXR5X25vdGVzGAYgASgJEhIKCmNvbmZpZGVuY2UYByABKAISGgoSZGVuaWFsX3N1bW1hcnlfaWRzGAggAygJEhUKDWNyZWF0ZWRfYXRfbXMYCSABKAMSFQoNZGVjaWRlZF9hdF9tcxgKIAEoAxINCgVzdGFnZRgLIAEoCRIbChNzdXBlcnNlZGVzX2NodW5rX2lkGAwgASgJEhEKCWhpdF9jb3VudBgNIAEoBRIVCg1maXJzdF9zZWVuX21zGA4gASgDEhQKDGxhc3Rfc2Vlbl9tcxgPIAEoAxIOCgZiaW5hcnkYECABKAkSGQoRdmFsaWRhdGlvbl9yZXN1bHQYESABKAkSGAoQcmVqZWN0aW9uX3JlYXNvbhgSIAEoCRIZChFhcHBsaWNhdGlvbl9lcnJvchgTIAEoCRIUCgxyZXZpZXdfdG9rZW4YFCABKAkSJQodY3VycmVudF9lZmZlY3RpdmVfcG9saWN5X2hhc2gYFSABKAkSJwofY2FuZGlkYXRlX2VmZmVjdGl2ZV9wb2xpY3lfaGFzaBgWIAEoCRJFChhjdXJyZW50X2VmZmVjdGl2ZV9wb2xpY3kYFyABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EkcKGmNhbmRpZGF0ZV9lZmZlY3RpdmVfcG9saWN5GBggASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeSJmChFEcmFmdFBvbGljeVVwZGF0ZRIVCg1kcmFmdF92ZXJzaW9uGAEgASgEEhIKCm5ld19jaHVua3MYAiABKA0SFQoNdG90YWxfcGVuZGluZxgDIAEoDRIPCgdzdW1tYXJ5GAQgASgJIoMCChtTdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QSLgoJc3VtbWFyaWVzGAEgAygLMhsub3BlbnNoZWxsLnYxLkRlbmlhbFN1bW1hcnkSMgoPcHJvcG9zZWRfY2h1bmtzGAIgAygLMhkub3BlbnNoZWxsLnYxLlBvbGljeUNodW5rEhUKDWFuYWx5c2lzX21vZGUYAyABKAkSDAoEbmFtZRgEIAEoCRJIChpuZXR3b3JrX2FjdGl2aXR5X3N1bW1hcmllcxgFIAMoCzIkLm9wZW5zaGVsbC52MS5OZXR3b3JrQWN0aXZpdHlTdW1tYXJ5EhEKCXdvcmtzcGFjZRgGIAEoCSKHAQocU3VibWl0UG9saWN5QW5hbHlzaXNSZXNwb25zZRIXCg9hY2NlcHRlZF9jaHVua3MYASABKA0SFwoPcmVqZWN0ZWRfY2h1bmtzGAIgASgNEhkKEXJlamVjdGlvbl9yZWFzb25zGAMgAygJEhoKEmFjY2VwdGVkX2NodW5rX2lkcxgEIAMoCSJPChVHZXREcmFmdFBvbGljeVJlcXVlc3QSDAoEbmFtZRgBIAEoCRIVCg1zdGF0dXNfZmlsdGVyGAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSKQAQoWR2V0RHJhZnRQb2xpY3lSZXNwb25zZRIpCgZjaHVua3MYASADKAsyGS5vcGVuc2hlbGwudjEuUG9saWN5Q2h1bmsSFwoPcm9sbGluZ19zdW1tYXJ5GAIgASgJEhUKDWRyYWZ0X3ZlcnNpb24YAyABKAQSGwoTbGFzdF9hbmFseXplZF9hdF9tcxgEIAEoAyJjChhBcHByb3ZlRHJhZnRDaHVua1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIQCghjaHVua19pZBgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkSFAoMcmV2aWV3X3Rva2VuGAQgASgJIkgKGUFwcHJvdmVEcmFmdENodW5rUmVzcG9uc2USFgoOcG9saWN5X3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkiXAoXUmVqZWN0RHJhZnRDaHVua1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIQCghjaHVua19pZBgCIAEoCRIOCgZyZWFzb24YAyABKAkSEQoJd29ya3NwYWNlGAQgASgJIhoKGFJlamVjdERyYWZ0Q2h1bmtSZXNwb25zZSI8ChJEcmFmdENodW5rQXBwcm92YWwSEAoIY2h1bmtfaWQYASABKAkSFAoMcmV2aWV3X3Rva2VuGAIgASgJIpYBChxBcHByb3ZlQWxsRHJhZnRDaHVua3NSZXF1ZXN0EgwKBG5hbWUYASABKAkSIAoYaW5jbHVkZV9zZWN1cml0eV9mbGFnZ2VkGAIgASgIEhEKCXdvcmtzcGFjZRgDIAEoCRIzCglhcHByb3ZhbHMYBCADKAsyIC5vcGVuc2hlbGwudjEuRHJhZnRDaHVua0FwcHJvdmFsIn0KHUFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJEhcKD2NodW5rc19hcHByb3ZlZBgDIAEoDRIWCg5jaHVua3Nfc2tpcHBlZBgEIAEoDSKKAQoVRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0EgwKBG5hbWUYASABKAkSEAoIY2h1bmtfaWQYAiABKAkSPgoNcHJvcG9zZWRfcnVsZRgDIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEhEKCXdvcmtzcGFjZRgEIAEoCSIYChZFZGl0RHJhZnRDaHVua1Jlc3BvbnNlIkoKFVVuZG9EcmFmdENodW5rUmVxdWVzdBIMCgRuYW1lGAEgASgJEhAKCGNodW5rX2lkGAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSJFChZVbmRvRHJhZnRDaHVua1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJIjoKF0NsZWFyRHJhZnRDaHVua3NSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjIKGENsZWFyRHJhZnRDaHVua3NSZXNwb25zZRIWCg5jaHVua3NfY2xlYXJlZBgBIAEoDSI5ChZHZXREcmFmdEhpc3RvcnlSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJImQKEURyYWZ0SGlzdG9yeUVudHJ5EhQKDHRpbWVzdGFtcF9tcxgBIAEoAxISCgpldmVudF90eXBlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhAKCGNodW5rX2lkGAQgASgJIksKF0dldERyYWZ0SGlzdG9yeVJlc3BvbnNlEjAKB2VudHJpZXMYASADKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRIaXN0b3J5RW50cnkigAIKFVBvbGljeVJldmlzaW9uUGF5bG9hZBIzCgZwb2xpY3kYASABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EgwKBGhhc2gYAiABKAkSEgoKbG9hZF9lcnJvchgDIAEoCRIUCgxsb2FkZWRfYXRfbXMYBCABKAMSRwoKcHJvdmVuYW5jZRgFIAMoCzIzLm9wZW5zaGVsbC52MS5Qb2xpY3lSZXZpc2lvblBheWxvYWQuUHJvdmVuYW5jZUVudHJ5GjEKD1Byb3ZlbmFuY2VFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIsUEChFEcmFmdENodW5rUGF5bG9hZBIRCglydWxlX25hbWUYASABKAkSPgoNcHJvcG9zZWRfcnVsZRgCIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEhEKCXJhdGlvbmFsZRgDIAEoCRIWCg5zZWN1cml0eV9ub3RlcxgEIAEoCRISCgpjb25maWRlbmNlGAUgASgCEhUKDWRlY2lkZWRfYXRfbXMYBiABKAMSDAoEaG9zdBgHIAEoCRIMCgRwb3J0GAggASgFEg4KBmJpbmFyeRgJIAEoCRIVCg1kcmFmdF92ZXJzaW9uGAogASgDEhkKEXZhbGlkYXRpb25fcmVzdWx0GAsgASgJEhgKEHJlamVjdGlvbl9yZWFzb24YDCABKAkSGQoRYXBwbGljYXRpb25fZXJyb3IYDSABKAkSFAoMcmV2aWV3X3Rva2VuGA4gASgJEiUKHWN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeV9oYXNoGA8gASgJEicKH2NhbmRpZGF0ZV9lZmZlY3RpdmVfcG9saWN5X2hhc2gYECABKAkSRQoYY3VycmVudF9lZmZlY3RpdmVfcG9saWN5GBEgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHChpjYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeRgSIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3ki6gIKFFN0b3JlZFBvbGljeVJldmlzaW9uEgoKAmlkGAEgASgJEhIKCnNhbmRib3hfaWQYAiABKAkSDwoHdmVyc2lvbhgDIAEoAxIWCg5wb2xpY3lfcGF5bG9hZBgEIAEoDBITCgtwb2xpY3lfaGFzaBgFIAEoCRIOCgZzdGF0dXMYBiABKAkSFwoKbG9hZF9lcnJvchgHIAEoCUgAiAEBEhUKDWNyZWF0ZWRfYXRfbXMYCCABKAMSGQoMbG9hZGVkX2F0X21zGAkgASgDSAGIAQESRgoKcHJvdmVuYW5jZRgKIAMoCzIyLm9wZW5zaGVsbC52MS5TdG9yZWRQb2xpY3lSZXZpc2lvbi5Qcm92ZW5hbmNlRW50cnkaMQoPUHJvdmVuYW5jZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDQoLX2xvYWRfZXJyb3JCDwoNX2xvYWRlZF9hdF9tcyK5BQoQU3RvcmVkRHJhZnRDaHVuaxIKCgJpZBgBIAEoCRISCgpzYW5kYm94X2lkGAIgASgJEhUKDWRyYWZ0X3ZlcnNpb24YAyABKAMSDgoGc3RhdHVzGAQgASgJEhEKCXJ1bGVfbmFtZRgFIAEoCRIVCg1wcm9wb3NlZF9ydWxlGAYgASgMEhEKCXJhdGlvbmFsZRgHIAEoCRIWCg5zZWN1cml0eV9ub3RlcxgIIAEoCRISCgpjb25maWRlbmNlGAkgASgBEhUKDWNyZWF0ZWRfYXRfbXMYCiABKAMSGgoNZGVjaWRlZF9hdF9tcxgLIAEoA0gAiAEBEgwKBGhvc3QYDCABKAkSDAoEcG9ydBgNIAEoBRIOCgZiaW5hcnkYDiABKAkSEQoJaGl0X2NvdW50GA8gASgFEhUKDWZpcnN0X3NlZW5fbXMYECABKAMSFAoMbGFzdF9zZWVuX21zGBEgASgDEhkKEXZhbGlkYXRpb25fcmVzdWx0GBIgASgJEhgKEHJlamVjdGlvbl9yZWFzb24YEyABKAkSGQoRYXBwbGljYXRpb25fZXJyb3IYFCABKAkSFAoMcmV2aWV3X3Rva2VuGBUgASgJEiUKHWN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBYgASgJEicKH2NhbmRpZGF0ZV9lZmZlY3RpdmVfcG9saWN5X2hhc2gYFyABKAkSRQoYY3VycmVudF9lZmZlY3RpdmVfcG9saWN5GBggASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHChpjYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeRgZIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3lCEAoOX2RlY2lkZWRfYXRfbXMilwEKFkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCRJACgZsYWJlbHMYAiADKAsyMC5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVxdWVzdC5MYWJlbHNFbnRyeRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIk8KF0NyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlEjQKCXdvcmtzcGFjZRgBIAEoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlIiMKE0dldFdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCSJMChRHZXRXb3Jrc3BhY2VSZXNwb25zZRI0Cgl3b3Jrc3BhY2UYASABKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSJOChVMaXN0V29ya3NwYWNlc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhYKDmxhYmVsX3NlbGVjdG9yGAMgASgJIk8KFkxpc3RXb3Jrc3BhY2VzUmVzcG9uc2USNQoKd29ya3NwYWNlcxgBIAMoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlIiYKFkRlbGV0ZVdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCSIqChdEZWxldGVXb3Jrc3BhY2VSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIo0BCg9Xb3Jrc3BhY2VNZW1iZXISNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkSKQoEcm9sZRgDIAEoDjIbLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VSb2xlInQKGUFkZFdvcmtzcGFjZU1lbWJlclJlcXVlc3QSEQoJd29ya3NwYWNlGAEgASgJEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJEikKBHJvbGUYAyABKA4yGy5vcGVuc2hlbGwudjEuV29ya3NwYWNlUm9sZSJLChpBZGRXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZRItCgZtZW1iZXIYASABKAsyHS5vcGVuc2hlbGwudjEuV29ya3NwYWNlTWVtYmVyIkwKHFJlbW92ZVdvcmtzcGFjZU1lbWJlclJlcXVlc3QSEQoJd29ya3NwYWNlGAEgASgJEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJIjAKHVJlbW92ZVdvcmtzcGFjZU1lbWJlclJlc3BvbnNlEg8KB3JlbW92ZWQYASABKAgiTwobTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXF1ZXN0EhEKCXdvcmtzcGFjZRgBIAEoCRINCgVsaW1pdBgCIAEoDRIOCgZvZmZzZXQYAyABKA0iTgocTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXNwb25zZRIuCgdtZW1iZXJzGAEgAygLMh0ub3BlbnNoZWxsLnYxLldvcmtzcGFjZU1lbWJlciJeChpFeHRlbnNpb25TZXJ2aWNlQ3JlZGVudGlhbBIUCgxzZXJ2aWNlX25hbWUYASABKAkSEwoFdG9rZW4YAiABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgDIAEoAyqJAgoMU2FuZGJveFBoYXNlEh0KGVNBTkRCT1hfUEhBU0VfVU5TUEVDSUZJRUQQABIeChpTQU5EQk9YX1BIQVNFX1BST1ZJU0lPTklORxABEhcKE1NBTkRCT1hfUEhBU0VfUkVBRFkQAhIXChNTQU5EQk9YX1BIQVNFX0VSUk9SEAMSGgoWU0FOREJPWF9QSEFTRV9ERUxFVElORxAEEhkKFVNBTkRCT1hfUEhBU0VfVU5LTk9XThAFEhoKFlNBTkRCT1hfUEhBU0VfU1RPUFBJTkcQBhIZChVTQU5EQk9YX1BIQVNFX1NUT1BQRUQQBxIaChZTQU5EQk9YX1BIQVNFX1NUQVJUSU5HEAgqzgEKIFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRUeXBlEjQKMFBST1ZJREVSX0NSRURFTlRJQUxfVE9LRU5fR1JBTlRfVFlQRV9VTlNQRUNJRklFRBAAEjsKN1BST1ZJREVSX0NSRURFTlRJQUxfVE9LRU5fR1JBTlRfVFlQRV9DTElFTlRfQ1JFREVOVElBTFMQARI3CjNQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfVE9LRU5fRVhDSEFOR0UQAirDAwohUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5EjQKMFBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9VTlNQRUNJRklFRBAAEi8KK1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9TVEFUSUMQARIxCi1QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfRVhURVJOQUwQAhI9CjlQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfT0FVVEgyX1JFRlJFU0hfVE9LRU4QAxJCCj5QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfT0FVVEgyX0NMSUVOVF9DUkVERU5USUFMUxAEEkMKP1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9HT09HTEVfU0VSVklDRV9BQ0NPVU5UX0pXVBAFEjwKOFBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9TVFJBVEVHWV9BV1NfU1RTX0FTU1VNRV9ST0xFEAYq2wIKF1Byb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EikKJVBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfVU5TUEVDSUZJRUQQABIjCh9QUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX09USEVSEAESJwojUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9JTkZFUkVOQ0UQAhIjCh9QUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX0FHRU5UEAMSLAooUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9TT1VSQ0VfQ09OVFJPTBAEEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfTUVTU0FHSU5HEAUSIgoeUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9EQVRBEAYSJwojUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9LTk9XTEVER0UQByqaAQoMUG9saWN5U3RhdHVzEh0KGVBPTElDWV9TVEFUVVNfVU5TUEVDSUZJRUQQABIZChVQT0xJQ1lfU1RBVFVTX1BFTkRJTkcQARIYChRQT0xJQ1lfU1RBVFVTX0xPQURFRBACEhgKFFBPTElDWV9TVEFUVVNfRkFJTEVEEAMSHAoYUE9MSUNZX1NUQVRVU19TVVBFUlNFREVEEAQqhgEKDVNlcnZpY2VTdGF0dXMSHgoaU0VSVklDRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZTRVJWSUNFX1NUQVRVU19IRUFMVEhZEAESGwoXU0VSVklDRV9TVEFUVVNfREVHUkFERUQQAhIcChhTRVJWSUNFX1NUQVRVU19VTkhFQUxUSFkQAypiCg1Xb3Jrc3BhY2VSb2xlEh4KGldPUktTUEFDRV9ST0xFX1VOU1BFQ0lGSUVEEAASFwoTV09SS1NQQUNFX1JPTEVfVVNFUhABEhgKFFdPUktTUEFDRV9ST0xFX0FETUlOEAIq2gIKJ1Byb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hSZWNvdmVyeUFjdGlvbhI7CjdQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX1VOU1BFQ0lGSUVEEAASNQoxUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9SRVRSWRABEjsKN1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9SRUNPVkVSWV9BQ1RJT05fUkVBVVRIT1JJWkUQAhJBCj1QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX0ZJWF9DT05GSUdVUkFUSU9OEAMSOwo3UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9JTlZFU1RJR0FURRAEMqxGCglPcGVuU2hlbGwSWgoGSGVhbHRoEhsub3BlbnNoZWxsLnYxLkhlYWx0aFJlcXVlc3QaHC5vcGVuc2hlbGwudjEuSGVhbHRoUmVzcG9uc2UiFYK1GBEKD3VuYXV0aGVudGljYXRlZBJpCg5HZXRDdXJyZW50VXNlchIjLm9wZW5zaGVsbC52MS5HZXRDdXJyZW50VXNlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0Q3VycmVudFVzZXJSZXNwb25zZSIMgrUYCAoGYmVhcmVyEoYBCg5HZXRHYXRld2F5SW5mbxIjLm9wZW5zaGVsbC52MS5HZXRHYXRld2F5SW5mb1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0R2F0ZXdheUluZm9SZXNwb25zZSIpgrUYJQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiILY29uZmlnOnJlYWQSdQoNQ3JlYXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJuCgpHZXRTYW5kYm94Eh8ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hSZXF1ZXN0Gh0ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSegoNTGlzdFNhbmRib3hlcxIiLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEo8BChRMaXN0U2FuZGJveFByb3ZpZGVycxIpLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFByb3ZpZGVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQcm92aWRlcnNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSkwEKFUF0dGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkF0dGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSkwEKFURldGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRldGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSewoNRGVsZXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVxdWVzdBojLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJxCgtTdG9wU2FuZGJveBIgLm9wZW5zaGVsbC52MS5TdG9wU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUScwoMU3RhcnRTYW5kYm94EiEub3BlbnNoZWxsLnYxLlN0YXJ0U2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEENyZWF0ZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSfQoNRXhwb3NlU2VydmljZRIiLm9wZW5zaGVsbC52MS5FeHBvc2VTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnYKCkdldFNlcnZpY2USHy5vcGVuc2hlbGwudjEuR2V0U2VydmljZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEncKDExpc3RTZXJ2aWNlcxIhLm9wZW5zaGVsbC52MS5MaXN0U2VydmljZXNSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ7Cg1EZWxldGVTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEoQBChBSZXZva2VTc2hTZXNzaW9uEiUub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXF1ZXN0GiYub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnQKC0V4ZWNTYW5kYm94EiAub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94UmVxdWVzdBoeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV2ZW50IiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUwARJxCgpGb3J3YXJkVGNwEh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZRodLm9wZW5zaGVsbC52MS5UY3BGb3J3YXJkRnJhbWUiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESfwoWRXhlY1NhbmRib3hJbnRlcmFjdGl2ZRIeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveElucHV0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESegoOQ3JlYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuQ3JlYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEnIKC0dldFByb3ZpZGVyEiAub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVxdWVzdBoeLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSewoNTGlzdFByb3ZpZGVycxIiLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKQAQoUTGlzdFByb3ZpZGVyUHJvZmlsZXMSKS5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKHAQoSR2V0UHJvdmlkZXJQcm9maWxlEicub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUHJvZmlsZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKYAQoWSW1wb3J0UHJvdmlkZXJQcm9maWxlcxIrLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBosLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpgBChZVcGRhdGVQcm92aWRlclByb2ZpbGVzEisub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSkAEKFExpbnRQcm92aWRlclByb2ZpbGVzEikub3BlbnNoZWxsLnYxLkxpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5MaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSegoOVXBkYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpwBChhHZXRQcm92aWRlclJlZnJlc2hTdGF0dXMSLS5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVxdWVzdBouLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEp4BChhDb25maWd1cmVQcm92aWRlclJlZnJlc2gSLS5vcGVuc2hlbGwudjEuQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBouLm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSngEKGFJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbBItLm9wZW5zaGVsbC52MS5Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLlJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKVAQoVRGVsZXRlUHJvdmlkZXJSZWZyZXNoEioub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEoABCg5EZWxldGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSlQEKFURlbGV0ZVByb3ZpZGVyUHJvZmlsZRIqLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclByb2ZpbGVSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKQAQoQR2V0U2FuZGJveENvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldFNhbmRib3hDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0U2FuZGJveENvbmZpZ1Jlc3BvbnNlIh2CtRgZCgRkdWFsEgR1c2VyIgtjb25maWc6cmVhZBKMAQoQR2V0R2F0ZXdheUNvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldEdhdGV3YXlDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0R2F0ZXdheUNvbmZpZ1Jlc3BvbnNlIhmCtRgVCgZiZWFyZXIiC2NvbmZpZzpyZWFkEnYKDFVwZGF0ZUNvbmZpZxIhLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlIh+CtRgbCgRkdWFsEgVhZG1pbiIMY29uZmlnOndyaXRlEpUBChZHZXRTYW5kYm94UG9saWN5U3RhdHVzEisub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSjAEKE0xpc3RTYW5kYm94UG9saWNpZXMSKC5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QaKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ2ChJSZXBvcnRQb2xpY3lTdGF0dXMSJy5vcGVuc2hlbGwudjEuUmVwb3J0UG9saWN5U3RhdHVzUmVxdWVzdBooLm9wZW5zaGVsbC52MS5SZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBKXAQodR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnQSMi5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0GjMub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSlAEKHEV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW4SMS5vcGVuc2hlbGwudjEuRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlcXVlc3QaMi5vcGVuc2hlbGwudjEuRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94En0KDkdldFNhbmRib3hMb2dzEiMub3BlbnNoZWxsLnYxLkdldFNhbmRib3hMb2dzUmVxdWVzdBokLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94TG9nc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJvCg9QdXNoU2FuZGJveExvZ3MSJC5vcGVuc2hlbGwudjEuUHVzaFNhbmRib3hMb2dzUmVxdWVzdBolLm9wZW5zaGVsbC52MS5QdXNoU2FuZGJveExvZ3NSZXNwb25zZSINgrUYCQoHc2FuZGJveCgBEmUKEUNvbm5lY3RTdXBlcnZpc29yEh8ub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JNZXNzYWdlGhwub3BlbnNoZWxsLnYxLkdhdGV3YXlNZXNzYWdlIg2CtRgJCgdzYW5kYm94KAEwARJ/ChVSZXBvcnRNYWluUHJvY2Vzc0V4aXQSKi5vcGVuc2hlbGwudjEuUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVxdWVzdBorLm9wZW5zaGVsbC52MS5SZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXNwb25zZSINgrUYCQoHc2FuZGJveBJUCgtSZWxheVN0cmVhbRIYLm9wZW5zaGVsbC52MS5SZWxheUZyYW1lGhgub3BlbnNoZWxsLnYxLlJlbGF5RnJhbWUiDYK1GAkKB3NhbmRib3goATABEncKDFdhdGNoU2FuZGJveBIhLm9wZW5zaGVsbC52MS5XYXRjaFNhbmRib3hSZXF1ZXN0GiAub3BlbnNoZWxsLnYxLlNhbmRib3hTdHJlYW1FdmVudCIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQwARJ8ChRTdWJtaXRQb2xpY3lBbmFseXNpcxIpLm9wZW5zaGVsbC52MS5TdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuU3VibWl0UG9saWN5QW5hbHlzaXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBJ6Cg5HZXREcmFmdFBvbGljeRIjLm9wZW5zaGVsbC52MS5HZXREcmFmdFBvbGljeVJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0RHJhZnRQb2xpY3lSZXNwb25zZSIdgrUYGQoEZHVhbBIEdXNlciILY29uZmlnOnJlYWQShwEKEUFwcHJvdmVEcmFmdENodW5rEiYub3BlbnNoZWxsLnYxLkFwcHJvdmVEcmFmdENodW5rUmVxdWVzdBonLm9wZW5zaGVsbC52MS5BcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUShAEKEFJlamVjdERyYWZ0Q2h1bmsSJS5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1JlcXVlc3QaJi5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSkwEKFUFwcHJvdmVBbGxEcmFmdENodW5rcxIqLm9wZW5zaGVsbC52MS5BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfgoORWRpdERyYWZ0Q2h1bmsSIy5vcGVuc2hlbGwudjEuRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkVkaXREcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ+Cg5VbmRvRHJhZnRDaHVuaxIjLm9wZW5zaGVsbC52MS5VbmRvRHJhZnRDaHVua1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuVW5kb0RyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEoQBChBDbGVhckRyYWZ0Q2h1bmtzEiUub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXF1ZXN0GiYub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEn8KD0dldERyYWZ0SGlzdG9yeRIkLm9wZW5zaGVsbC52MS5HZXREcmFmdEhpc3RvcnlSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLkdldERyYWZ0SGlzdG9yeVJlc3BvbnNlIh+CtRgbCgZiZWFyZXISBHVzZXIiC2NvbmZpZzpyZWFkEnMKEUlzc3VlU2FuZGJveFRva2VuEiYub3BlbnNoZWxsLnYxLklzc3VlU2FuZGJveFRva2VuUmVxdWVzdBonLm9wZW5zaGVsbC52MS5Jc3N1ZVNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnkKE1JlZnJlc2hTYW5kYm94VG9rZW4SKC5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlcXVlc3QaKS5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94Eo0BCg9DcmVhdGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEnkKDEdldFdvcmtzcGFjZRIhLm9wZW5zaGVsbC52MS5HZXRXb3Jrc3BhY2VSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkdldFdvcmtzcGFjZVJlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEn8KDkxpc3RXb3Jrc3BhY2VzEiMub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VzUmVxdWVzdBokLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlc1Jlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEo0BCg9EZWxldGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuRGVsZXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5EZWxldGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEo0BChJBZGRXb3Jrc3BhY2VNZW1iZXISJy5vcGVuc2hlbGwudjEuQWRkV29ya3NwYWNlTWVtYmVyUmVxdWVzdBooLm9wZW5zaGVsbC52MS5BZGRXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpYBChVSZW1vdmVXb3Jrc3BhY2VNZW1iZXISKi5vcGVuc2hlbGwudjEuUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpEBChRMaXN0V29ya3NwYWNlTWVtYmVycxIpLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlTWVtYmVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXNwb25zZSIigrUYHgoGYmVhcmVyEgR1c2VyIg53b3Jrc3BhY2U6cmVhZGIGcHJvdG8z", [file_datamodel, file_google_protobuf_struct, file_options, file_sandbox]);
11
+ export const file_openshell = /*@__PURE__*/ fileDesc("Cg9vcGVuc2hlbGwucHJvdG8SDG9wZW5zaGVsbC52MSIaChhJc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QiegoZSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZRITCgV0b2tlbhgBIAEoCUIEiLUYARIzCg9leHBpcmF0aW9uX3RpbWUYZiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIAhADUg1leHBpcmVzX2F0X21zIj0KGlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Eh8KF2V4dGVuc2lvbl9zZXJ2aWNlX25hbWVzGAEgAygJIuoCChtSZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2USEwoFdG9rZW4YASABKAlCBIi1GAESMwoPZXhwaXJhdGlvbl90aW1lGGYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJHChVleHRlbnNpb25fY3JlZGVudGlhbHMYAyADKAsyKC5vcGVuc2hlbGwudjEuRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwSGwoNc2FuZGJveF90b2tlbhgEIAEoCUIEiLUYARI7ChdzYW5kYm94X2V4cGlyYXRpb25fdGltZRhpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKc2Vzc2lvbl9pZBgGIAEoCRIYChBjcmVkZW50aWFsX2Vwb2NoGAcgASgESgQIAhADSgQIBRAGUg1leHBpcmVzX2F0X21zUhVzYW5kYm94X2V4cGlyZXNfYXRfbXMiDwoNSGVhbHRoUmVxdWVzdCJOCg5IZWFsdGhSZXNwb25zZRIrCgZzdGF0dXMYASABKA4yGy5vcGVuc2hlbGwudjEuU2VydmljZVN0YXR1cxIPCgd2ZXJzaW9uGAIgASgJIhcKFUdldEN1cnJlbnRVc2VyUmVxdWVzdCJ5ChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg0KBXJvbGVzGAMgAygJEg4KBnNjb3BlcxgEIAMoCRIZChFpZGVudGl0eV9wcm92aWRlchgFIAEoCSIXChVHZXRHYXRld2F5SW5mb1JlcXVlc3Qi0wEKFkdldEdhdGV3YXlJbmZvUmVzcG9uc2USKwoGc3RhdHVzGAEgASgOMhsub3BlbnNoZWxsLnYxLlNlcnZpY2VTdGF0dXMSFwoPZ2F0ZXdheV92ZXJzaW9uGAIgASgJEjgKD2NvbXB1dGVfZHJpdmVycxgDIAMoCzIfLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVySW5mbxI5CgpleHRlbnNpb25zGAQgAygLMiUub3BlbnNoZWxsLnYxLk5lZ290aWF0ZWRFeHRlbnNpb25JbmZvIokCChdOZWdvdGlhdGVkRXh0ZW5zaW9uSW5mbxIpCgRraW5kGAEgASgOMhsub3BlbnNoZWxsLnYxLkV4dGVuc2lvbktpbmQSFwoPY29uZmlndXJlZF9uYW1lGAIgASgJEhsKE2ltcGxlbWVudGF0aW9uX25hbWUYAyABKAkSHgoWaW1wbGVtZW50YXRpb25fdmVyc2lvbhgEIAEoCRIWCg5wcm90b2NvbF9tYWpvchgFIAEoDRIWCg5wcm90b2NvbF9taW5vchgGIAEoDRIeChZzdXBwb3J0ZWRfY2FwYWJpbGl0aWVzGAcgAygJEh0KFXJlcXVpcmVkX2NhcGFiaWxpdGllcxgIIAMoCSJgChFDb21wdXRlRHJpdmVySW5mbxIMCgRuYW1lGAEgASgJEj0KDGNhcGFiaWxpdGllcxgCIAEoCzInLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzIosBChlDb21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzEhMKC2RyaXZlcl9uYW1lGAEgASgJEhYKDmRyaXZlcl92ZXJzaW9uGAIgASgJEkEKFXJlc291cmNlX2NhcGFiaWxpdGllcxgDIAEoCzIiLm9wZW5zaGVsbC52MS5SZXNvdXJjZUNhcGFiaWxpdGllcyK4AQoUUmVzb3VyY2VDYXBhYmlsaXRpZXMSMgoDY3B1GAEgASgLMiUub3BlbnNoZWxsLnYxLkNwdVJlc291cmNlQ2FwYWJpbGl0aWVzEjgKBm1lbW9yeRgCIAEoCzIoLm9wZW5zaGVsbC52MS5NZW1vcnlSZXNvdXJjZUNhcGFiaWxpdGllcxIyCgNncHUYAyABKAsyJS5vcGVuc2hlbGwudjEuR3B1UmVzb3VyY2VDYXBhYmlsaXRpZXMiMgoXQ3B1UmVzb3VyY2VDYXBhYmlsaXRpZXMSFwoPbGltaXRfc3VwcG9ydGVkGAEgASgIIjUKGk1lbW9yeVJlc291cmNlQ2FwYWJpbGl0aWVzEhcKD2xpbWl0X3N1cHBvcnRlZBgBIAEoCCJhChdHcHVSZXNvdXJjZUNhcGFiaWxpdGllcxIjChtkZWZhdWx0X3NlbGVjdGlvbl9zdXBwb3J0ZWQYASABKAgSIQoZY291bnRfc2VsZWN0aW9uX3N1cHBvcnRlZBgCIAEoCCKZAgoHU2FuZGJveBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRInCgRzcGVjGAIgASgLMhkub3BlbnNoZWxsLnYxLlNhbmRib3hTcGVjEisKBnN0YXR1cxgDIAEoCzIbLm9wZW5zaGVsbC52MS5TYW5kYm94U3RhdHVzElcKHmNyZWF0ZWRfZnJvbV93b3JrbG9hZF90ZW1wbGF0ZRgUIAEoCzIvLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZVByb3ZlbmFuY2VKBAgEEAVKBAgFEAZSBXBoYXNlUhZjdXJyZW50X3BvbGljeV92ZXJzaW9uIsIDCgtTYW5kYm94U3BlYxIRCglsb2dfbGV2ZWwYASABKAkSPwoLZW52aXJvbm1lbnQYBSADKAsyKi5vcGVuc2hlbGwudjEuU2FuZGJveFNwZWMuRW52aXJvbm1lbnRFbnRyeRIvCgh0ZW1wbGF0ZRgGIAEoCzIdLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUSMwoGcG9saWN5GAcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRIRCglwcm92aWRlcnMYCCADKAkSQQoVcmVzb3VyY2VfcmVxdWlyZW1lbnRzGAkgASgLMiIub3BlbnNoZWxsLnYxLlJlc291cmNlUmVxdWlyZW1lbnRzEg8KB2NvbW1hbmQYDCADKAkSCwoDdHR5GA0gASgIEiEKGXByb3ZpZGVyX2F0dGFjaG1lbnRfZXBvY2gYDiABKAkaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIChALSgQICxAMUgpncHVfZGV2aWNlUhZwcm9wb3NhbF9hcHByb3ZhbF9tb2RlIkoKFFJlc291cmNlUmVxdWlyZW1lbnRzEjIKA2dwdRgBIAEoCzIlLm9wZW5zaGVsbC52MS5HcHVSZXNvdXJjZVJlcXVpcmVtZW50cyI3ChdHcHVSZXNvdXJjZVJlcXVpcmVtZW50cxISCgVjb3VudBgBIAEoDUgAiAEBQggKBl9jb3VudCLaBAoPU2FuZGJveFRlbXBsYXRlEg0KBWltYWdlGAEgASgJEhoKEnJ1bnRpbWVfY2xhc3NfbmFtZRgCIAEoCRIUCgxhZ2VudF9zb2NrZXQYAyABKAkSOQoGbGFiZWxzGAQgAygLMikub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZS5MYWJlbHNFbnRyeRJDCgthbm5vdGF0aW9ucxgFIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuQW5ub3RhdGlvbnNFbnRyeRJDCgtlbnZpcm9ubWVudBgGIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuRW52aXJvbm1lbnRFbnRyeRIqCglyZXNvdXJjZXMYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhwKD3VzZXJfbmFtZXNwYWNlcxgKIAEoCEgAiAEBEi4KDWRyaXZlcl9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUISChBfdXNlcl9uYW1lc3BhY2VzSgQICRAKUhZ2b2x1bWVfY2xhaW1fdGVtcGxhdGVzIogBChdTYW5kYm94V29ya2xvYWRUZW1wbGF0ZRI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRI3CgRzcGVjGAIgASgLMikub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZFRlbXBsYXRlU3BlYyLGAQobU2FuZGJveFdvcmtsb2FkVGVtcGxhdGVTcGVjEjUKCHdvcmtsb2FkGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZENvbmZpZxIuCg1kcml2ZXJfY29uZmlnGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBJAChVkZXNpcmVkX3NlcnZpY2VfbGV2ZWwYAyABKAsyIS5vcGVuc2hlbGwudjEuU2FuZGJveFNlcnZpY2VMZXZlbCLYAQoVU2FuZGJveFdvcmtsb2FkQ29uZmlnEg0KBWltYWdlGAEgASgJEkkKC2Vudmlyb25tZW50GAIgAygLMjQub3BlbnNoZWxsLnYxLlNhbmRib3hXb3JrbG9hZENvbmZpZy5FbnZpcm9ubWVudEVudHJ5EjEKCXJlc291cmNlcxgDIAEoCzIeLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzb3VyY2VzGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJjChBTYW5kYm94UmVzb3VyY2VzEgsKA2NwdRgBIAEoCRIOCgZtZW1vcnkYAiABKAkSMgoDZ3B1GAMgASgLMiUub3BlbnNoZWxsLnYxLkdwdVJlc291cmNlUmVxdWlyZW1lbnRzIkQKE1NhbmRib3hTZXJ2aWNlTGV2ZWwSLQoHc3RhcnR1cBgBIAEoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94U3RhcnR1cCJUCg5TYW5kYm94U3RhcnR1cBIvCgxyZWFkeV93aXRoaW4YASABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SEQoJbWF4X2J1cnN0GAIgASgNIksKIVNhbmRib3hXb3JrbG9hZFRlbXBsYXRlUHJvdmVuYW5jZRIMCgRuYW1lGAEgASgJEhgKEHJlc291cmNlX3ZlcnNpb24YAiABKAkikQQKDVNhbmRib3hTdGF0dXMSEQoJYWdlbnRfcG9kGAIgASgJEhAKCGFnZW50X2ZkGAMgASgJEhIKCnNhbmRib3hfZmQYBCABKAkSMgoKY29uZGl0aW9ucxgFIAMoCzIeLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZGl0aW9uEikKBXBoYXNlGAYgASgOMhoub3BlbnNoZWxsLnYxLlNhbmRib3hQaGFzZRIeChZjdXJyZW50X3BvbGljeV92ZXJzaW9uGAcgASgNEiAKGG1haW5fcHJvY2Vzc19pbnN0YW5jZV9pZBgIIAEoCRIWCglleGl0X2NvZGUYCSABKAVIAIgBARI3ChFlbmRwb2ludF9zdGF0dXNlcxgKIAMoCzIcLm9wZW5zaGVsbC52MS5FbmRwb2ludFN0YXR1cxJMChdjb25maWd1cmF0aW9uX2FkbWlzc2lvbhgLIAEoCzIrLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhIkChdjb25maWd1cmF0aW9uX2FjdGl2YXRlZBgMIAEoCEgBiAEBEjcKDHByb3Zpc2lvbmluZxgNIAEoCzIhLm9wZW5zaGVsbC52MS5TYW5kYm94UHJvdmlzaW9uaW5nQgwKCl9leGl0X2NvZGVCGgoYX2NvbmZpZ3VyYXRpb25fYWN0aXZhdGVkIqIBChBTYW5kYm94Q29uZGl0aW9uEgwKBHR5cGUYASABKAkSDgoGc3RhdHVzGAIgASgJEg4KBnJlYXNvbhgDIAEoCRIPCgdtZXNzYWdlGAQgASgJEjMKD3RyYW5zaXRpb25fdGltZRhpIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgFEAZSFGxhc3RfdHJhbnNpdGlvbl90aW1lIoACCg1QbGF0Zm9ybUV2ZW50Ei4KCmV2ZW50X3RpbWUYZSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBnNvdXJjZRgCIAEoCRIMCgR0eXBlGAMgASgJEg4KBnJlYXNvbhgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEjsKCG1ldGFkYXRhGAYgAygLMikub3BlbnNoZWxsLnYxLlBsYXRmb3JtRXZlbnQuTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgBEAJSDHRpbWVzdGFtcF9tcyKVBAoUQ3JlYXRlU2FuZGJveFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAcgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchInCgRzcGVjGAEgASgLMhkub3BlbnNoZWxsLnYxLlNhbmRib3hTcGVjEgwKBG5hbWUYAiABKAkSPgoGbGFiZWxzGAMgAygLMi4ub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hSZXF1ZXN0LkxhYmVsc0VudHJ5EkgKC2Fubm90YXRpb25zGAQgAygLMjMub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hSZXF1ZXN0LkFubm90YXRpb25zRW50cnkSJQodYXdhaXRfbWFpbl9wcm9jZXNzX2F0dGFjaG1lbnQYBSABKAgSGQoRd29ya2xvYWRfdGVtcGxhdGUYBiABKAkSEgoKcmVxdWVzdF9pZBgIIAEoCRI/ChFzZXJ2aWNlX2V4cG9zdXJlcxgJIAMoCzIkLm9wZW5zaGVsbC52MS5TYW5kYm94U2VydmljZUV4cG9zdXJlGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIq8BChxDcmVhdGVTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISNwoIdGVtcGxhdGUYASABKAsyJS5vcGVuc2hlbGwudjEuU2FuZGJveFdvcmtsb2FkVGVtcGxhdGUSEgoKcmVxdWVzdF9pZBgDIAEoCSJtChlHZXRTYW5kYm94VGVtcGxhdGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCSKgAQobTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimwEKHERlbGV0ZVNhbmRib3hUZW1wbGF0ZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAEgASgJEhUKDWFsbG93X21pc3NpbmcYAyABKAgSEgoKcmVxdWVzdF9pZBgEIAEoCSJSChdTYW5kYm94VGVtcGxhdGVSZXNwb25zZRI3Cgh0ZW1wbGF0ZRgBIAEoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZSJxChxMaXN0U2FuZGJveFRlbXBsYXRlc1Jlc3BvbnNlEjgKCXRlbXBsYXRlcxgBIAMoCzIlLm9wZW5zaGVsbC52MS5TYW5kYm94V29ya2xvYWRUZW1wbGF0ZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiXgodRGVsZXRlU2FuZGJveFRlbXBsYXRlUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQiiQEKHEJlZ2luUm9vdGZzVGFyU3RhZ2luZ1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglmaWxlX25hbWUYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoBCKoAQodQmVnaW5Sb290ZnNUYXJTdGFnaW5nUmVzcG9uc2USFQoNc3RhZ2luZ190b2tlbhgBIAEoCRITCgt1cGxvYWRfcGF0aBgCIAEoCRIRCgltYXhfYnl0ZXMYAyABKAQSMwoPZXhwaXJhdGlvbl90aW1lGGggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAQQBVINZXhwaXJlc19hdF9tcyJlChFHZXRTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkimQEKFExpc3RTYW5kYm94ZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSFgoObGFiZWxfc2VsZWN0b3IYAyABKAkimQEKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEQoJcGFnZV9zaXplGAMgASgFEhIKCnBhZ2VfdG9rZW4YBCABKAkivAEKHEF0dGFjaFNhbmRib3hQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEhAKCHByb3ZpZGVyGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEgoKcmVxdWVzdF9pZBgFIAEoCSK8AQocRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgDIAEoBBISCgpyZXF1ZXN0X2lkGAUgASgJIpMBChREZWxldGVTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSFQoNYWxsb3dfbWlzc2luZxgDIAEoCBISCgpyZXF1ZXN0X2lkGAQgASgJInoKElN0b3BTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSJ7ChNTdGFydFNhbmRib3hSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDAoEbmFtZRgBIAEoCRISCgpyZXF1ZXN0X2lkGAMgASgJIrMBCg9TYW5kYm94UmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EkQKDHNlcnZpY2VfdXJscxgCIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UuU2VydmljZVVybHNFbnRyeRoyChBTZXJ2aWNlVXJsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiWgoVTGlzdFNhbmRib3hlc1Jlc3BvbnNlEigKCXNhbmRib3hlcxgBIAMoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSJsChxMaXN0U2FuZGJveFByb3ZpZGVyc1Jlc3BvbnNlEjMKCXByb3ZpZGVycxgBIAMoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIpEBCh1BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIYXR0YWNoZWQYAiABKAgSNgoHcmVjZWlwdBgDIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uUmVjZWlwdCKRAQodRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhAKCGRldGFjaGVkGAIgASgIEjYKB3JlY2VpcHQYAyABKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQi3QEKF1Byb3ZpZGVyRGVzaXJlZElkZW50aXR5EhIKCnNhbmRib3hfaWQYASABKAkSDwoHc2FuZGJveBgCIAEoCRIYChBhdHRhY2htZW50X2Vwb2NoGAMgASgJEhMKC3Byb3ZpZGVyX2lkGAQgASgJEiEKGXByb3ZpZGVyX3Jlc291cmNlX3ZlcnNpb24YBSABKAQSHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAYgASgEEhcKD2NvbmZpZ19yZXZpc2lvbhgHIAEoBBITCgtwb2xpY3lfaGFzaBgIIAEoCSLGAQoWQ29uZmlnU25hcHNob3RSZXZpc2lvbhI9Cg5zYW5kYm94X2NvbmZpZxgBIAEoCzIjLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlnUmV2aXNpb25IABIeChRwcm92aWRlcl9lbnZpcm9ubWVudBgCIAEoBEgAEkAKD3Byb3ZpZGVyX3RhcmdldBgDIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlckRlc2lyZWRJZGVudGl0eUgAQgsKCWNvbXBvbmVudCK9AQoVU2FuZGJveENvbmZpZ1JldmlzaW9uEhcKD2NvbmZpZ19yZXZpc2lvbhgBIAEoBBIWCg5wb2xpY3lfdmVyc2lvbhgCIAEoDRI5Cg1wb2xpY3lfc291cmNlGAMgASgOMiIub3BlbnNoZWxsLnNhbmRib3gudjEuUG9saWN5U291cmNlEh0KFWdsb2JhbF9wb2xpY3lfdmVyc2lvbhgEIAEoDRIZChFzZXR0aW5nc19yZXZpc2lvbhgFIAEoBCKQBAoVQ29uZmlnVXBkYXRlT3BlcmF0aW9uEhQKDG9wZXJhdGlvbl9pZBgBIAEoCRISCgpzYW5kYm94X2lkGAIgASgJEjAKCWNvbXBvbmVudBgDIAEoDjIdLm9wZW5zaGVsbC52MS5Db25maWdDb21wb25lbnQSPQoPdGFyZ2V0X3JldmlzaW9uGAQgASgLMiQub3BlbnNoZWxsLnYxLkNvbmZpZ1NuYXBzaG90UmV2aXNpb24SNwoFc3RhdGUYBSABKA4yKC5vcGVuc2hlbGwudjEuQ29uZmlnVXBkYXRlT3BlcmF0aW9uU3RhdGUSMQoHb3V0Y29tZRgGIAEoDjIgLm9wZW5zaGVsbC52MS5Db25maWdBcHBseU91dGNvbWUSFwoPc2FuaXRpemVkX2Vycm9yGAcgASgJEjAKDGNyZWF0ZWRfdGltZRhsIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMdXBkYXRlZF90aW1lGG0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5jb21wbGV0ZWRfdGltZRhuIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgIEAlKBAgJEApKBAgKEAtSDWNyZWF0ZWRfYXRfbXNSDXVwZGF0ZWRfYXRfbXNSD2NvbXBsZXRlZF9hdF9tcyKcAgoXUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQSEgoKcmVjZWlwdF9pZBgBIAEoCRITCgttdXRhdGlvbl9pZBgCIAEoCRIQCghwcm92aWRlchgDIAEoCRIRCgl3b3Jrc3BhY2UYBCABKAkSMAoEa2luZBgFIAEoDjIiLm9wZW5zaGVsbC52MS5Qcm92aWRlck11dGF0aW9uS2luZBI2CgdkZXNpcmVkGAYgASgLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyRGVzaXJlZElkZW50aXR5EjIKDnBlcnNpc3RlZF90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAcQCFIPcGVyc2lzdGVkX2F0X21zItsCChxQcm92aWRlclJlYWRpbmVzc09ic2VydmF0aW9uEhIKCnNlc3Npb25faWQYASABKAkSEAoIc2VxdWVuY2UYAiABKAQSGAoQYXR0YWNobWVudF9lcG9jaBgDIAEoCRIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YBCABKAQSFwoPY29uZmlnX3JldmlzaW9uGAUgASgEEhMKC3BvbGljeV9oYXNoGAYgASgJEh0KFWNyZWRlbnRpYWxzX2luc3RhbGxlZBgHIAEoCBIVCg1wb2xpY3lfYWN0aXZlGAggASgIEiQKHGxhdW5jaF9lbnZpcm9ubWVudF9pbnN0YWxsZWQYCSABKAgSGwoTcHJvY2Vzc19pbnN0YW5jZV9pZBgKIAEoCRI1CgZyZWFzb24YCyABKA4yJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NSZWFzb24i5AMKF1Byb3ZpZGVyUmVhZGluZXNzU3RhdHVzEjYKB3JlY2VpcHQYASABKAsyJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJNdXRhdGlvblJlY2VpcHQSMwoFc3RhdGUYAiABKA4yJC5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NTdGF0ZRI1CgZyZWFzb24YAyABKA4yJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NSZWFzb24SPAoIb2JzZXJ2ZWQYBCABKAsyKi5vcGVuc2hlbGwudjEuUHJvdmlkZXJSZWFkaW5lc3NPYnNlcnZhdGlvbhIbChNuZXR3b3JrX2luc3RhbmNlX2lkGAUgASgJEjEKDW9ic2VydmVkX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmV2YWx1YXRlZF90aW1lGGsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI2CglvcGVyYXRpb24YCCABKAsyIy5vcGVuc2hlbGwudjEuQ29uZmlnVXBkYXRlT3BlcmF0aW9uSgQIBhAHSgQIBxAIUg5vYnNlcnZlZF9hdF9tc1IPZXZhbHVhdGVkX2F0X21zIpwBCh9HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCRIQCghwcm92aWRlchgCIAEoCRISCgpyZWNlaXB0X2lkGAMgASgJIlkKIEdldFNhbmRib3hQcm92aWRlclN0YXR1c1Jlc3BvbnNlEjUKBnN0YXR1cxgBIAEoCzIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1N0YXR1cyJ1Ch5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRI/CgtvYnNlcnZhdGlvbhgCIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc09ic2VydmF0aW9uIuIBCh9SZXBvcnRQcm92aWRlclJlYWRpbmVzc1Jlc3BvbnNlEhkKEWFjY2VwdGVkX3NlcXVlbmNlGAEgASgEEjIKD3JlcG9ydF9pbnRlcnZhbBhmIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIyCg9vYnNlcnZhdGlvbl90dGwYZyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25KBAgCEANKBAgDEARSF3JlcG9ydF9pbnRlcnZhbF9zZWNvbmRzUhdvYnNlcnZhdGlvbl90dGxfc2Vjb25kcyJqChVEZWxldGVTYW5kYm94UmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWUSEgoKc2FuZGJveF9pZBgDIAEoCUoECAEQAlIHZGVsZXRlZCJuChdDcmVhdGVTc2hTZXNzaW9uUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAki7wEKGENyZWF0ZVNzaFNlc3Npb25SZXNwb25zZRISCgpzYW5kYm94X2lkGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhQKDGdhdGV3YXlfaG9zdBgDIAEoCRIUCgxnYXRld2F5X3BvcnQYBCABKA0SFgoOZ2F0ZXdheV9zY2hlbWUYBSABKAkSHAoUaG9zdF9rZXlfZmluZ2VycHJpbnQYByABKAkSMwoPZXhwaXJhdGlvbl90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAgQCVINZXhwaXJlc19hdF9tcyKyAQoURXhwb3NlU2VydmljZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAUgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAIgASgJEhMKC3RhcmdldF9wb3J0GAMgASgNEg4KBmRvbWFpbhgEIAEoCBIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBiABKAkidgoRR2V0U2VydmljZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAIgASgJEg8KB3NhbmRib3gYASABKAkikQEKE0xpc3RTZXJ2aWNlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCRIPCgdzYW5kYm94GAEgASgJImgKFExpc3RTZXJ2aWNlc1Jlc3BvbnNlEjcKCHNlcnZpY2VzGAEgAygLMiUub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludFJlc3BvbnNlEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKkAQoURGVsZXRlU2VydmljZVJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAIgASgJEg8KB3NhbmRib3gYASABKAkSFQoNYWxsb3dfbWlzc2luZxgEIAEoCBISCgpyZXF1ZXN0X2lkGAUgASgJIlYKFURlbGV0ZVNlcnZpY2VSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHZGVsZXRlZCKfAQoPU2VydmljZUVuZHBvaW50EjQKCG1ldGFkYXRhGAEgASgLMiIub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5PYmplY3RNZXRhEhIKCnNhbmRib3hfaWQYAiABKAkSDwoHc2FuZGJveBgDIAEoCRIMCgRuYW1lGAQgASgJEhMKC3RhcmdldF9wb3J0GAUgASgNEg4KBmRvbWFpbhgGIAEoCCJXChdTZXJ2aWNlRW5kcG9pbnRSZXNwb25zZRIvCghlbmRwb2ludBgBIAEoCzIdLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnQSCwoDdXJsGAIgASgJIkUKF1Jldm9rZVNzaFNlc3Npb25SZXF1ZXN0EhMKBXRva2VuGAEgASgJQgSItRgBEhUKDWFsbG93X21pc3NpbmcYAiABKAgiWQoYUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdyZXZva2VkIrgDChJFeGVjU2FuZGJveFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAwgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIPCgdzYW5kYm94GAEgASgJEg8KB2NvbW1hbmQYAiADKAkSDwoHd29ya2RpchgDIAEoCRJGCgtlbnZpcm9ubWVudBgEIAMoCzIxLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3QuRW52aXJvbm1lbnRFbnRyeRI0ChFleGVjdXRpb25fdGltZW91dBhpIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhINCgVzdGRpbhgGIAEoDBILCgN0dHkYByABKAgSDAoEY29scxgIIAEoDRIMCgRyb3dzGAkgASgNEhYKDm5vX2xvZ2luX3NoZWxsGAogASgIEhIKCnJlcXVlc3RfaWQYCyABKAkaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBRAGUg90aW1lb3V0X3NlY29uZHMiIQoRRXhlY1NhbmRib3hTdGRvdXQSDAoEZGF0YRgBIAEoDCIhChFFeGVjU2FuZGJveFN0ZGVychIMCgRkYXRhGAEgASgMIiQKD0V4ZWNTYW5kYm94RXhpdBIRCglleGl0X2NvZGUYASABKAUisgEKEEV4ZWNTYW5kYm94RXZlbnQSMQoGc3Rkb3V0GAEgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3Rkb3V0SAASMQoGc3RkZXJyGAIgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3RkZXJySAASLQoEZXhpdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV4aXRIAEIJCgdwYXlsb2FkIs8BCg5UY3BGb3J3YXJkSW5pdBIPCgdzYW5kYm94GAEgASgJEhEKCXdvcmtzcGFjZRgDIAEoCRISCgpzZXJ2aWNlX2lkGAQgASgJEisKA3NzaBgFIAEoCzIcLm9wZW5zaGVsbC52MS5Tc2hSZWxheVRhcmdldEgAEisKA3RjcBgGIAEoCzIcLm9wZW5zaGVsbC52MS5UY3BSZWxheVRhcmdldEgAEiEKE2F1dGhvcml6YXRpb25fdG9rZW4YByABKAlCBIi1GAFCCAoGdGFyZ2V0IloKD1RjcEZvcndhcmRGcmFtZRIsCgRpbml0GAEgASgLMhwub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRJbml0SAASDgoEZGF0YRgCIAEoDEgAQgkKB3BheWxvYWQimgEKEEV4ZWNTYW5kYm94SW5wdXQSMQoFc3RhcnQYASABKAsyIC5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hSZXF1ZXN0SAASDwoFc3RkaW4YAiABKAxIABI3CgZyZXNpemUYAyABKAsyJS5vcGVuc2hlbGwudjEuRXhlY1NhbmRib3hXaW5kb3dSZXNpemVIAEIJCgdwYXlsb2FkIjUKF0V4ZWNTYW5kYm94V2luZG93UmVzaXplEgwKBGNvbHMYASABKA0SDAoEcm93cxgCIAEoDSLGAQoKU3NoU2Vzc2lvbhI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEhMKBXRva2VuGAMgASgJQgSItRgBEjMKD2V4cGlyYXRpb25fdGltZRhoIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHcmV2b2tlZBgFIAEoCEoECAQQBVINZXhwaXJlc19hdF9tcyKAAwoTV2F0Y2hTYW5kYm94UmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYCyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3NhbmRib3gYASABKAkSFQoNZm9sbG93X3N0YXR1cxgCIAEoCBITCgtmb2xsb3dfbG9ncxgDIAEoCBIVCg1mb2xsb3dfZXZlbnRzGAQgASgIEhYKDmxvZ190YWlsX2xpbmVzGAUgASgNEhIKCmV2ZW50X3RhaWwYBiABKA0SGAoQc3RvcF9vbl90ZXJtaW5hbBgHIAEoCBIuCgpzaW5jZV90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtsb2dfc291cmNlcxgJIAMoCRIVCg1sb2dfbWluX2xldmVsGAogASgJEhsKE3Jlc3VtZV9hZnRlcl9jdXJzb3IYDCABKAlKBAgIEAlSDGxvZ19zaW5jZV9tcyKrAgoSU2FuZGJveFN0cmVhbUV2ZW50EigKB3NhbmRib3gYASABKAsyFS5vcGVuc2hlbGwudjEuU2FuZGJveEgAEisKA2xvZxgCIAEoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94TG9nTGluZUgAEiwKBWV2ZW50GAMgASgLMhsub3BlbnNoZWxsLnYxLlBsYXRmb3JtRXZlbnRIABI1Cgd3YXJuaW5nGAQgASgLMiIub3BlbnNoZWxsLnYxLlNhbmRib3hTdHJlYW1XYXJuaW5nSAASPgoTZHJhZnRfcG9saWN5X3VwZGF0ZRgFIAEoCzIfLm9wZW5zaGVsbC52MS5EcmFmdFBvbGljeVVwZGF0ZUgAEg4KBmN1cnNvchgGIAEoCUIJCgdwYXlsb2FkIpECCg5TYW5kYm94TG9nTGluZRISCgpzYW5kYm94X2lkGAEgASgJEi4KCmV2ZW50X3RpbWUYZiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBWxldmVsGAMgASgJEg4KBnRhcmdldBgEIAEoCRIPCgdtZXNzYWdlGAUgASgJEg4KBnNvdXJjZRgGIAEoCRI4CgZmaWVsZHMYByADKAsyKC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUuRmllbGRzRW50cnkaLQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAIQA1IMdGltZXN0YW1wX21zIicKFFNhbmRib3hTdHJlYW1XYXJuaW5nEg8KB21lc3NhZ2UYASABKAkiowEKFUNyZWF0ZVByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchISCgpyZXF1ZXN0X2lkGAMgASgJImYKEkdldFByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgwKBG5hbWUYASABKAkigQEKFExpc3RQcm92aWRlcnNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkitAMKFVVwZGF0ZVByb3ZpZGVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchJnChtjcmVkZW50aWFsX2V4cGlyYXRpb25fdGltZXMYZiADKAsyQi5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0LkNyZWRlbnRpYWxFeHBpcmF0aW9uVGltZXNFbnRyeRIoCiBjbGVhcl9jcmVkZW50aWFsX2V4cGlyYXRpb25fa2V5cxhnIAMoCRISCgpyZXF1ZXN0X2lkGAQgASgJGlwKHkNyZWRlbnRpYWxFeHBpcmF0aW9uVGltZXNFbnRyeRILCgNrZXkYASABKAkSKQoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wOgI4AUoECAIQA1IYY3JlZGVudGlhbF9leHBpcmVzX2F0X21zIpQBChVEZWxldGVQcm92aWRlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIMCgRuYW1lGAEgASgJEhUKDWFsbG93X21pc3NpbmcYBCABKAgSEgoKcmVxdWVzdF9pZBgFIAEoCSKbAQoQUHJvdmlkZXJSZXNwb25zZRIyCghwcm92aWRlchgBIAEoCzIgLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuUHJvdmlkZXISPgoPdGFyZ2V0X3JlY2VpcHRzGAIgAygLMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyTXV0YXRpb25SZWNlaXB0EhMKC211dGF0aW9uX2lkGAMgASgJImUKFUxpc3RQcm92aWRlcnNSZXNwb25zZRIzCglwcm92aWRlcnMYASADKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKIAQobTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkiawoZR2V0UHJvdmlkZXJQcm9maWxlUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEgoKAmlkGAEgASgJIlsKGVByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0SLgoHcHJvZmlsZRgBIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUSDgoGc291cmNlGAIgASgJInEKGVByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSDgoGc291cmNlGAEgASgJEhIKCnByb2ZpbGVfaWQYAiABKAkSDQoFZmllbGQYAyABKAkSDwoHbWVzc2FnZRgEIAEoCRIQCghzZXZlcml0eRgFIAEoCSJ6CixQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50QXVkaWVuY2VPdmVycmlkZRIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SDAoEcGF0aBgDIAEoCRIQCghhdWRpZW5jZRgEIAEoCRIOCgZzY29wZXMYBSADKAkiagooUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudFN1YmplY3RUb2tlbhIOCgZzb3VyY2UYASABKAkSEgoKY3JlZGVudGlhbBgCIAEoCRIaChJzdWJqZWN0X3Rva2VuX3R5cGUYAyABKAki4gMKHFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnQSFgoOdG9rZW5fZW5kcG9pbnQYASABKAkSEAoIYXVkaWVuY2UYAiABKAkSGQoRand0X3N2aWRfYXVkaWVuY2UYBiABKAkSDgoGc2NvcGVzGAMgAygJEiwKCWNhY2hlX3R0bBhoIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhJWChJhdWRpZW5jZV9vdmVycmlkZXMYBSADKAsyOi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSHQoVY2xpZW50X2Fzc2VydGlvbl90eXBlGAcgASgJEkIKCmdyYW50X3R5cGUYCCABKA4yLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudFR5cGUSTQoNc3ViamVjdF90b2tlbhgJIAEoCzI2Lm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50U3ViamVjdFRva2VuEhwKFHJlcXVlc3RlZF90b2tlbl90eXBlGAogASgJSgQIBBAFUhFjYWNoZV90dGxfc2Vjb25kcyKyAgoZUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCGVudl92YXJzGAMgAygJEhAKCHJlcXVpcmVkGAQgASgIEhIKCmF1dGhfc3R5bGUYBSABKAkSEwoLaGVhZGVyX25hbWUYBiABKAkSEwoLcXVlcnlfcGFyYW0YByABKAkSOAoHcmVmcmVzaBgIIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoEhUKDXBhdGhfdGVtcGxhdGUYCSABKAkSPwoLdG9rZW5fZ3JhbnQYCiABKAsyKi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudCJoCiFQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoTWF0ZXJpYWwSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIQCghyZXF1aXJlZBgDIAEoCBIOCgZzZWNyZXQYBCABKAgiRQofUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE91dHB1dBIOCgZvdXRwdXQYASABKAkSEgoKY3JlZGVudGlhbBgCIAEoCSKtAwoZUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaBJBCghzdHJhdGVneRgBIAEoDjIvLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RyYXRlZ3kSEQoJdG9rZW5fdXJsGAIgASgJEg4KBnNjb3BlcxgDIAMoCRIxCg5yZWZyZXNoX2JlZm9yZRhoIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIvCgxtYXhfbGlmZXRpbWUYaSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SQQoIbWF0ZXJpYWwYBiADKAsyLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE1hdGVyaWFsEkkKEmFkZGl0aW9uYWxfb3V0cHV0cxgHIAMoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0SgQIBBAFSgQIBRAGUhZyZWZyZXNoX2JlZm9yZV9zZWNvbmRzUhRtYXhfbGlmZXRpbWVfc2Vjb25kcyKGBQofUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cxIQCghwcm92aWRlchgBIAEoCRITCgtwcm92aWRlcl9pZBgCIAEoCRIWCg5jcmVkZW50aWFsX2tleRgDIAEoCRJBCghzdHJhdGVneRgEIAEoDjIvLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RyYXRlZ3kSDgoGc3RhdHVzGAUgASgJEjMKD2V4cGlyYXRpb25fdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoRbmV4dF9yZWZyZXNoX3RpbWUYayABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKEWxhc3RfcmVmcmVzaF90aW1lGGwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpsYXN0X2Vycm9yGAkgASgJEk4KD3JlY292ZXJ5X2FjdGlvbhgKIAEoDjI1Lm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoUmVjb3ZlcnlBY3Rpb24SFAoMZmFpbHVyZV9jb2RlGAsgASgJEh4KFnByb3ZpZGVyX2Vycm9yX3N1YnR5cGUYDCABKAkSMwoPbGFzdF9lcnJvcl90aW1lGHEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAYQB0oECAcQCEoECAgQCUoECA0QDlINZXhwaXJlc19hdF9tc1ISbmV4dF9yZWZyZXNoX2F0X21zUhJsYXN0X3JlZnJlc2hfYXRfbXNSEGxhc3RfZXJyb3JfYXRfbXMiLwoYUHJvdmlkZXJQcm9maWxlRGlzY292ZXJ5EhMKC2NyZWRlbnRpYWxzGAEgAygJIo8BCh9HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkiZgogR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVzcG9uc2USQgoLY3JlZGVudGlhbHMYASADKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyLUAwofQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYByABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEkEKCHN0cmF0ZWd5GAMgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRJTCghtYXRlcmlhbBgEIAMoCzI7Lm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXF1ZXN0Lk1hdGVyaWFsRW50cnlCBIi1GAESHAoUc2VjcmV0X21hdGVyaWFsX2tleXMYBSADKAkSMwoPZXhwaXJhdGlvbl90aW1lGGogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpyZXF1ZXN0X2lkGAggASgJGi8KDU1hdGVyaWFsRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAYQB1INZXhwaXJlc19hdF9tcyJhCiBDb25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyKjAQofUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYAyABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhIKCnJlcXVlc3RfaWQYBCABKAkiYQogUm90YXRlUHJvdmlkZXJDcmVkZW50aWFsUmVzcG9uc2USPQoGc3RhdHVzGAEgASgLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMitwEKHERlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghwcm92aWRlchgBIAEoCRIWCg5jcmVkZW50aWFsX2tleRgCIAEoCRIVCg1hbGxvd19taXNzaW5nGAUgASgIEhIKCnJlcXVlc3RfaWQYBiABKAkiXgodRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB2RlbGV0ZWQiuAQKD1Byb3ZpZGVyUHJvZmlsZRIKCgJpZBgBIAEoCRIUCgxkaXNwbGF5X25hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSNwoIY2F0ZWdvcnkYBCABKA4yJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ2F0ZWdvcnkSPAoLY3JlZGVudGlhbHMYBSADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbBI4CgllbmRwb2ludHMYBiADKAsyJS5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrRW5kcG9pbnQSNQoIYmluYXJpZXMYByADKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrQmluYXJ5EhkKEWluZmVyZW5jZV9jYXBhYmxlGAggASgIEjkKCWRpc2NvdmVyeRgJIAEoCzImLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaXNjb3ZlcnkSGAoQcmVzb3VyY2VfdmVyc2lvbhgKIAEoBBJDCgthbm5vdGF0aW9ucxgLIAMoCzIuLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUuQW5ub3RhdGlvbnNFbnRyeRIOCgZzb3VyY2UYDCABKAkSDQoFc2NvcGUYDSABKAkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkkKF1Byb3ZpZGVyUHJvZmlsZVJlc3BvbnNlEi4KB3Byb2ZpbGUYASABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlImgKHExpc3RQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USLwoIcHJvZmlsZXMYASADKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKyAQodSW1wb3J0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEhIKCnJlcXVlc3RfaWQYAyABKAkioQEKHkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi8KCHByb2ZpbGVzGAIgAygLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIQCghpbXBvcnRlZBgDIAEoCCLgAQodVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAQgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchI4Cgdwcm9maWxlGAEgASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUltcG9ydEl0ZW0SIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgCIAEoBBIKCgJpZBgDIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIp8BCh5VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxIuCgdwcm9maWxlGAIgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIPCgd1cGRhdGVkGAMgASgIIpwBChtMaW50UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAIgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtImsKHExpbnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxINCgV2YWxpZBgCIAEoCCJXChZEZWxldGVQcm92aWRlclJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkIpkBChxEZWxldGVQcm92aWRlclByb2ZpbGVSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISCgoCaWQYASABKAkSFQoNYWxsb3dfbWlzc2luZxgDIAEoCBISCgpyZXF1ZXN0X2lkGAQgASgJIl4KHURlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlEi4KB291dGNvbWUYAiABKA4yHS5vcGVuc2hlbGwudjEuRGVsZXRpb25PdXRjb21lSgQIARACUgdkZWxldGVkImcKJEdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEisKI3N1cHBvcnRzX3N0YXRpY19jcmVkZW50aWFsX2JpbmRpbmdzGAIgASgIIksKH1N0YXRpY0NyZWRlbnRpYWxFbmRwb2ludEJpbmRpbmcSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEgwKBHBhdGgYAyABKAkinAEKF1N0YXRpY0NyZWRlbnRpYWxCaW5kaW5nEkAKCWVuZHBvaW50cxgBIAMoCzItLm9wZW5zaGVsbC52MS5TdGF0aWNDcmVkZW50aWFsRW5kcG9pbnRCaW5kaW5nEhsKE2NyZWRlbnRpYWxfaWRlbnRpdHkYAiABKAkSIgoad29ya2xvYWRfY3JlZGVudGlhbF9oYW5kbGUYAyABKAkinQgKJUdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2USXwoLZW52aXJvbm1lbnQYASADKAsyRC5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5FbnZpcm9ubWVudEVudHJ5QgSItRgBEh0KFXByb3ZpZGVyX2Vudl9yZXZpc2lvbhgCIAEoBBJ3ChtjcmVkZW50aWFsX2V4cGlyYXRpb25fdGltZXMYZyADKAsyUi5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5DcmVkZW50aWFsRXhwaXJhdGlvblRpbWVzRW50cnkSaAoTZHluYW1pY19jcmVkZW50aWFscxgEIAMoCzJLLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkR5bmFtaWNDcmVkZW50aWFsc0VudHJ5EnUKGnN0YXRpY19jcmVkZW50aWFsX2JpbmRpbmdzGAUgAygLMlEub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UuU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSIwobbm9uX3NlY3JldF9lbnZpcm9ubWVudF9rZXlzGAYgAygJEiEKGXByb3ZpZGVyX2F0dGFjaG1lbnRfZXBvY2gYByABKAkSEwoLcG9saWN5X2hhc2gYCCABKAkSPwoQcmVhZGluZXNzX3JlYXNvbhgJIAEoDjIlLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlYWRpbmVzc1JlYXNvbhoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaXAoeQ3JlZGVudGlhbEV4cGlyYXRpb25UaW1lc0VudHJ5EgsKA2tleRgBIAEoCRIpCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXA6AjgBGmIKF0R5bmFtaWNDcmVkZW50aWFsc0VudHJ5EgsKA2tleRgBIAEoCRI2CgV2YWx1ZRgCIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVDcmVkZW50aWFsOgI4ARpmCh1TdGF0aWNDcmVkZW50aWFsQmluZGluZ3NFbnRyeRILCgNrZXkYASABKAkSNAoFdmFsdWUYAiABKAsyJS5vcGVuc2hlbGwudjEuU3RhdGljQ3JlZGVudGlhbEJpbmRpbmc6AjgBSgQIAxAEUhhjcmVkZW50aWFsX2V4cGlyZXNfYXRfbXMihgEKI0V4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSIQoTc3VwZXJ2aXNvcl9qd3Rfc3ZpZBgEIAEoCUIEiLUYASKaAQokRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlc3BvbnNlEhoKDGFjY2Vzc190b2tlbhgBIAEoCUIEiLUYARIwCg1leHBpcmVzX2FmdGVyGGYgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEhIKCnRva2VuX3R5cGUYAyABKAlKBAgCEANSCmV4cGlyZXNfaW4iiQQKE1VwZGF0ZUNvbmZpZ1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAogASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIzCgZwb2xpY3kYAiABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EhMKC3NldHRpbmdfa2V5GAMgASgJEjkKDXNldHRpbmdfdmFsdWUYBCABKAsyIi5vcGVuc2hlbGwuc2FuZGJveC52MS5TZXR0aW5nVmFsdWUSFgoOZGVsZXRlX3NldHRpbmcYBSABKAgSDgoGZ2xvYmFsGAYgASgIEjwKEG1lcmdlX29wZXJhdGlvbnMYByADKAsyIi5vcGVuc2hlbGwudjEuUG9saWN5TWVyZ2VPcGVyYXRpb24SIQoZZXhwZWN0ZWRfcmVzb3VyY2VfdmVyc2lvbhgIIAEoBBJHCgthbm5vdGF0aW9ucxgJIAMoCzIyLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXF1ZXN0LkFubm90YXRpb25zRW50cnkSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAsgASgJGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL3AgoUUG9saWN5TWVyZ2VPcGVyYXRpb24SMAoIYWRkX3J1bGUYASABKAsyHC5vcGVuc2hlbGwudjEuQWRkTmV0d29ya1J1bGVIABI+Cg9yZW1vdmVfZW5kcG9pbnQYAiABKAsyIy5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya0VuZHBvaW50SAASNgoLcmVtb3ZlX3J1bGUYAyABKAsyHy5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya1J1bGVIABI0Cg5hZGRfZGVueV9ydWxlcxgEIAEoCzIaLm9wZW5zaGVsbC52MS5BZGREZW55UnVsZXNIABI2Cg9hZGRfYWxsb3dfcnVsZXMYBSABKAsyGy5vcGVuc2hlbGwudjEuQWRkQWxsb3dSdWxlc0gAEjoKDXJlbW92ZV9iaW5hcnkYBiABKAsyIS5vcGVuc2hlbGwudjEuUmVtb3ZlTmV0d29ya0JpbmFyeUgAQgsKCW9wZXJhdGlvbiJaCg5BZGROZXR3b3JrUnVsZRIRCglydWxlX25hbWUYASABKAkSNQoEcnVsZRgCIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlIkYKFVJlbW92ZU5ldHdvcmtFbmRwb2ludBIRCglydWxlX25hbWUYASABKAkSDAoEaG9zdBgCIAEoCRIMCgRwb3J0GAMgASgNIiYKEVJlbW92ZU5ldHdvcmtSdWxlEhEKCXJ1bGVfbmFtZRgBIAEoCSKlAQoMTDdSdWxlVGFyZ2V0EhEKCXJ1bGVfbmFtZRgBIAEoCRIMCgRob3N0GAIgASgJEg0KBXBvcnRzGAMgAygNEhEKBHBhdGgYBCABKAlIAIgBARI1CghiaW5hcmllcxgFIAMoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtCaW5hcnkSEgoKYW55X2JpbmFyeRgGIAEoCEIHCgVfcGF0aCKIAQoMQWRkRGVueVJ1bGVzEjQKCmRlbnlfcnVsZXMYAyADKAsyIC5vcGVuc2hlbGwuc2FuZGJveC52MS5MN0RlbnlSdWxlEioKBnRhcmdldBgEIAEoCzIaLm9wZW5zaGVsbC52MS5MN1J1bGVUYXJnZXRKBAgBEAJKBAgCEANSBGhvc3RSBHBvcnQigAEKDUFkZEFsbG93UnVsZXMSKwoFcnVsZXMYAyADKAsyHC5vcGVuc2hlbGwuc2FuZGJveC52MS5MN1J1bGUSKgoGdGFyZ2V0GAQgASgLMhoub3BlbnNoZWxsLnYxLkw3UnVsZVRhcmdldEoECAEQAkoECAIQA1IEaG9zdFIEcG9ydCI9ChNSZW1vdmVOZXR3b3JrQmluYXJ5EhEKCXJ1bGVfbmFtZRgBIAEoCRITCgtiaW5hcnlfcGF0aBgCIAEoCSLmAQoUVXBkYXRlQ29uZmlnUmVzcG9uc2USDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIZChFzZXR0aW5nc19yZXZpc2lvbhgDIAEoBBIPCgdkZWxldGVkGAQgASgIEkgKC2Fubm90YXRpb25zGAUgAygLMjMub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlLkFubm90YXRpb25zRW50cnkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpUBCh1HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEg8KB3ZlcnNpb24YAiABKA0SDgoGZ2xvYmFsGAMgASgIEg8KB3NhbmRib3gYASABKAkibwoeR2V0U2FuZGJveFBvbGljeVN0YXR1c1Jlc3BvbnNlEjUKCHJldmlzaW9uGAEgASgLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbhIWCg5hY3RpdmVfdmVyc2lvbhgCIAEoDSKoAQoaTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAUgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIRCglwYWdlX3NpemUYAiABKAUSEgoKcGFnZV90b2tlbhgDIAEoCRIOCgZnbG9iYWwYBCABKAgSDwoHc2FuZGJveBgBIAEoCSJuChtMaXN0U2FuZGJveFBvbGljaWVzUmVzcG9uc2USNgoJcmV2aXNpb25zGAEgAygLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkigAEKGVJlcG9ydFBvbGljeVN0YXR1c1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgNEioKBnN0YXR1cxgDIAEoDjIaLm9wZW5zaGVsbC52MS5Qb2xpY3lTdGF0dXMSEgoKbG9hZF9lcnJvchgEIAEoCSIcChpSZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSLiAQodU2FuZGJveENvbmZpZ3VyYXRpb25BZG1pc3Npb24SEwoLaW5zdGFuY2VfaWQYASABKAkSOAoFc3RhdGUYAiABKA4yKS5vcGVuc2hlbGwudjEuQ29uZmlndXJhdGlvbkFkbWlzc2lvblN0YXRlEhYKDnBvbGljeV92ZXJzaW9uGAMgASgNEhMKC3BvbGljeV9oYXNoGAQgASgJEhcKD2NvbmZpZ19yZXZpc2lvbhgFIAEoBBIdChVwcm92aWRlcl9lbnZfcmV2aXNpb24YBiABKAQSDQoFZXJyb3IYByABKAkilQEKIVJlcG9ydFNhbmRib3hDb25maWd1cmF0aW9uUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEj4KCWFkbWlzc2lvbhgCIAEoCzIrLm9wZW5zaGVsbC52MS5TYW5kYm94Q29uZmlndXJhdGlvbkFkbWlzc2lvbhIcChRleHBlY3RlZF9pbnN0YW5jZV9pZBgDIAEoCSIkCiJSZXBvcnRTYW5kYm94Q29uZmlndXJhdGlvblJlc3BvbnNlIroDChVTYW5kYm94UG9saWN5UmV2aXNpb24SDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIqCgZzdGF0dXMYAyABKA4yGi5vcGVuc2hlbGwudjEuUG9saWN5U3RhdHVzEhIKCmxvYWRfZXJyb3IYBCABKAkSMAoMY3JlYXRlZF90aW1lGGkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtsb2FkZWRfdGltZRhqIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMwoGcG9saWN5GAcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHCgpwcm92ZW5hbmNlGAggAygLMjMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbi5Qcm92ZW5hbmNlRW50cnkaMQoPUHJvdmVuYW5jZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgFEAZKBAgGEAdSDWNyZWF0ZWRfYXRfbXNSDGxvYWRlZF9hdF9tcyLfAQoVR2V0U2FuZGJveExvZ3NSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgGIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCRINCgVsaW5lcxgCIAEoDRIuCgpzaW5jZV90aW1lGGcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIPCgdzb3VyY2VzGAQgAygJEhEKCW1pbl9sZXZlbBgFIAEoCUoECAMQBFIIc2luY2VfbXMiWAoWUHVzaFNhbmRib3hMb2dzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEioKBGxvZ3MYAiADKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUiGQoXUHVzaFNhbmRib3hMb2dzUmVzcG9uc2UiWgoWR2V0U2FuZGJveExvZ3NSZXNwb25zZRIqCgRsb2dzGAEgAygLMhwub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lEhQKDGJ1ZmZlcl90b3RhbBgCIAEoDSLzAQoRU3VwZXJ2aXNvck1lc3NhZ2USLgoFaGVsbG8YASABKAsyHS5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvckhlbGxvSAASNgoJaGVhcnRiZWF0GAIgASgLMiEub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JIZWFydGJlYXRIABI6ChFyZWxheV9vcGVuX3Jlc3VsdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5SZWxheU9wZW5SZXN1bHRIABIvCgtyZWxheV9jbG9zZRgEIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSABCCQoHcGF5bG9hZCKmAgoOR2F0ZXdheU1lc3NhZ2USOQoQc2Vzc2lvbl9hY2NlcHRlZBgBIAEoCzIdLm9wZW5zaGVsbC52MS5TZXNzaW9uQWNjZXB0ZWRIABI5ChBzZXNzaW9uX3JlamVjdGVkGAIgASgLMh0ub3BlbnNoZWxsLnYxLlNlc3Npb25SZWplY3RlZEgAEjMKCWhlYXJ0YmVhdBgDIAEoCzIeLm9wZW5zaGVsbC52MS5HYXRld2F5SGVhcnRiZWF0SAASLQoKcmVsYXlfb3BlbhgEIAEoCzIXLm9wZW5zaGVsbC52MS5SZWxheU9wZW5IABIvCgtyZWxheV9jbG9zZRgFIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSABCCQoHcGF5bG9hZCJ5Cg9TdXBlcnZpc29ySGVsbG8SEgoKc2FuZGJveF9pZBgBIAEoCRITCgtpbnN0YW5jZV9pZBgCIAEoCRIYChBjb25uZWN0aW9uX2Vwb2NoGAMgASgEEiMKG3N1cHBvcnRzX3Byb3ZpZGVyX3JlYWRpbmVzcxgEIAEoCCJ7Cg9TZXNzaW9uQWNjZXB0ZWQSEgoKc2Vzc2lvbl9pZBgBIAEoCRI1ChJoZWFydGJlYXRfaW50ZXJ2YWwYZiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25KBAgCEANSF2hlYXJ0YmVhdF9pbnRlcnZhbF9zZWNzIiEKD1Nlc3Npb25SZWplY3RlZBIOCgZyZWFzb24YASABKAkiFQoTU3VwZXJ2aXNvckhlYXJ0YmVhdCISChBHYXRld2F5SGVhcnRiZWF0IloKHFJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRITCgtpbnN0YW5jZV9pZBgCIAEoCRIRCglleGl0X2NvZGUYAyABKAUiHwodUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVzcG9uc2UiSQoeRmluYWxpemVNYWluUHJvY2Vzc0V4aXRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSEwoLaW5zdGFuY2VfaWQYAiABKAkiIQofRmluYWxpemVNYWluUHJvY2Vzc0V4aXRSZXNwb25zZSKXAQoJUmVsYXlPcGVuEhIKCmNoYW5uZWxfaWQYASABKAkSKwoDc3NoGAIgASgLMhwub3BlbnNoZWxsLnYxLlNzaFJlbGF5VGFyZ2V0SAASKwoDdGNwGAMgASgLMhwub3BlbnNoZWxsLnYxLlRjcFJlbGF5VGFyZ2V0SAASEgoKc2VydmljZV9pZBgFIAEoCUIICgZ0YXJnZXQiEAoOU3NoUmVsYXlUYXJnZXQiLAoOVGNwUmVsYXlUYXJnZXQSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNIh8KCVJlbGF5SW5pdBISCgpjaGFubmVsX2lkGAEgASgJIlAKClJlbGF5RnJhbWUSJwoEaW5pdBgBIAEoCzIXLm9wZW5zaGVsbC52MS5SZWxheUluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCJuCg1QZWVyUmVsYXlJbml0EhIKCnNhbmRib3hfaWQYASABKAkSKwoKcmVsYXlfb3BlbhgCIAEoCzIXLm9wZW5zaGVsbC52MS5SZWxheU9wZW4SHAoUcmVxdWVzdGVyX3JlcGxpY2FfaWQYAyABKAkiWAoOUGVlclJlbGF5RnJhbWUSKwoEaW5pdBgBIAEoCzIbLm9wZW5zaGVsbC52MS5QZWVyUmVsYXlJbml0SAASDgoEZGF0YRgCIAEoDEgAQgkKB3BheWxvYWQiRQoPUmVsYXlPcGVuUmVzdWx0EhIKCmNoYW5uZWxfaWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBINCgVlcnJvchgDIAEoCSIwCgpSZWxheUNsb3NlEhIKCmNoYW5uZWxfaWQYASABKAkSDgoGcmVhc29uGAIgASgJIlAKD0w3UmVxdWVzdFNhbXBsZRIOCgZtZXRob2QYASABKAkSDAoEcGF0aBgCIAEoCRIQCghkZWNpc2lvbhgDIAEoCRINCgVjb3VudBgEIAEoDSL6AwoNRGVuaWFsU3VtbWFyeRISCgpzYW5kYm94X2lkGAEgASgJEgwKBGhvc3QYAiABKAkSDAoEcG9ydBgDIAEoDRIOCgZiaW5hcnkYBCABKAkSEQoJYW5jZXN0b3JzGAUgAygJEhMKC2RlbnlfcmVhc29uGAYgASgJEjMKD2ZpcnN0X3NlZW5fdGltZRhrIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoObGFzdF9zZWVuX3RpbWUYbCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBWNvdW50GAkgASgNEhgKEHN1cHByZXNzZWRfY291bnQYCiABKA0SEwoLdG90YWxfY291bnQYCyABKA0SFwoPc2FtcGxlX2NtZGxpbmVzGAwgAygJEhUKDWJpbmFyeV9zaGEyNTYYDSABKAkSEgoKcGVyc2lzdGVudBgOIAEoCBIUCgxkZW5pYWxfc3RhZ2UYDyABKAkSOQoSbDdfcmVxdWVzdF9zYW1wbGVzGBAgAygLMh0ub3BlbnNoZWxsLnYxLkw3UmVxdWVzdFNhbXBsZRIcChRsN19pbnNwZWN0aW9uX2FjdGl2ZRgRIAEoCEoECAcQCEoECAgQCVINZmlyc3Rfc2Vlbl9tc1IMbGFzdF9zZWVuX21zIjwKEERlbmlhbEdyb3VwQ291bnQSEgoKZGVueV9ncm91cBgBIAEoCRIUCgxkZW5pZWRfY291bnQYAiABKA0ijwEKFk5ldHdvcmtBY3Rpdml0eVN1bW1hcnkSHgoWbmV0d29ya19hY3Rpdml0eV9jb3VudBgBIAEoDRIbChNkZW5pZWRfYWN0aW9uX2NvdW50GAIgASgNEjgKEGRlbmlhbHNfYnlfZ3JvdXAYAyADKAsyHi5vcGVuc2hlbGwudjEuRGVuaWFsR3JvdXBDb3VudCKMBwoLUG9saWN5Q2h1bmsSCgoCaWQYASABKAkSDgoGc3RhdHVzGAIgASgJEhEKCXJ1bGVfbmFtZRgDIAEoCRI+Cg1wcm9wb3NlZF9ydWxlGAQgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUSEQoJcmF0aW9uYWxlGAUgASgJEhYKDnNlY3VyaXR5X25vdGVzGAYgASgJEhIKCmNvbmZpZGVuY2UYByABKAISGgoSZGVuaWFsX3N1bW1hcnlfaWRzGAggAygJEjAKDGNyZWF0ZWRfdGltZRhtIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMZGVjaWRlZF90aW1lGG4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVzdGFnZRgLIAEoCRIbChNzdXBlcnNlZGVzX2NodW5rX2lkGAwgASgJEhEKCWhpdF9jb3VudBgNIAEoBRIzCg9maXJzdF9zZWVuX3RpbWUYciABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmxhc3Rfc2Vlbl90aW1lGHMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZiaW5hcnkYECABKAkSGQoRdmFsaWRhdGlvbl9yZXN1bHQYESABKAkSGAoQcmVqZWN0aW9uX3JlYXNvbhgSIAEoCRIZChFhcHBsaWNhdGlvbl9lcnJvchgTIAEoCRIUCgxyZXZpZXdfdG9rZW4YFCABKAkSJQodY3VycmVudF9lZmZlY3RpdmVfcG9saWN5X2hhc2gYFSABKAkSJwofY2FuZGlkYXRlX2VmZmVjdGl2ZV9wb2xpY3lfaGFzaBgWIAEoCRJFChhjdXJyZW50X2VmZmVjdGl2ZV9wb2xpY3kYFyABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EkcKGmNhbmRpZGF0ZV9lZmZlY3RpdmVfcG9saWN5GBggASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeUoECAkQCkoECAoQC0oECA4QD0oECA8QEFINY3JlYXRlZF9hdF9tc1INZGVjaWRlZF9hdF9tc1INZmlyc3Rfc2Vlbl9tc1IMbGFzdF9zZWVuX21zImYKEURyYWZ0UG9saWN5VXBkYXRlEhUKDWRyYWZ0X3ZlcnNpb24YASABKAQSEgoKbmV3X2NodW5rcxgCIAEoDRIVCg10b3RhbF9wZW5kaW5nGAMgASgNEg8KB3N1bW1hcnkYBCABKAkitAIKG1N1Ym1pdFBvbGljeUFuYWx5c2lzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBiABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEi4KCXN1bW1hcmllcxgBIAMoCzIbLm9wZW5zaGVsbC52MS5EZW5pYWxTdW1tYXJ5EjIKD3Byb3Bvc2VkX2NodW5rcxgCIAMoCzIZLm9wZW5zaGVsbC52MS5Qb2xpY3lDaHVuaxIVCg1hbmFseXNpc19tb2RlGAMgASgJEgwKBG5hbWUYBCABKAkSSAoabmV0d29ya19hY3Rpdml0eV9zdW1tYXJpZXMYBSADKAsyJC5vcGVuc2hlbGwudjEuTmV0d29ya0FjdGl2aXR5U3VtbWFyeSKHAQocU3VibWl0UG9saWN5QW5hbHlzaXNSZXNwb25zZRIXCg9hY2NlcHRlZF9jaHVua3MYASABKA0SFwoPcmVqZWN0ZWRfY2h1bmtzGAIgASgNEhkKEXJlamVjdGlvbl9yZWFzb25zGAMgAygJEhoKEmFjY2VwdGVkX2NodW5rX2lkcxgEIAMoCSKDAQoVR2V0RHJhZnRQb2xpY3lSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISFQoNc3RhdHVzX2ZpbHRlchgCIAEoCRIPCgdzYW5kYm94GAEgASgJIsYBChZHZXREcmFmdFBvbGljeVJlc3BvbnNlEikKBmNodW5rcxgBIAMoCzIZLm9wZW5zaGVsbC52MS5Qb2xpY3lDaHVuaxIXCg9yb2xsaW5nX3N1bW1hcnkYAiABKAkSFQoNZHJhZnRfdmVyc2lvbhgDIAEoBBI2ChJsYXN0X2FuYWx5emVkX3RpbWUYaCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIBBAFUhNsYXN0X2FuYWx5emVkX2F0X21zIqsBChhBcHByb3ZlRHJhZnRDaHVua1JlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAMgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIQCghjaHVua19pZBgCIAEoCRIUCgxyZXZpZXdfdG9rZW4YBCABKAkSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAUgASgJIkgKGUFwcHJvdmVEcmFmdENodW5rUmVzcG9uc2USFgoOcG9saWN5X3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkipAEKF1JlamVjdERyYWZ0Q2h1bmtSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgEIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIY2h1bmtfaWQYAiABKAkSDgoGcmVhc29uGAMgASgJEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgFIAEoCSIaChhSZWplY3REcmFmdENodW5rUmVzcG9uc2UiPAoSRHJhZnRDaHVua0FwcHJvdmFsEhAKCGNodW5rX2lkGAEgASgJEhQKDHJldmlld190b2tlbhgCIAEoCSLeAQocQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEiAKGGluY2x1ZGVfc2VjdXJpdHlfZmxhZ2dlZBgCIAEoCBIzCglhcHByb3ZhbHMYAyADKAsyIC5vcGVuc2hlbGwudjEuRHJhZnRDaHVua0FwcHJvdmFsEg8KB3NhbmRib3gYASABKAkSEgoKcmVxdWVzdF9pZBgFIAEoCSJ9Ch1BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIXCg9jaHVua3NfYXBwcm92ZWQYAyABKA0SFgoOY2h1bmtzX3NraXBwZWQYBCABKA0i0gEKFUVkaXREcmFmdENodW5rUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYBCABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhAKCGNodW5rX2lkGAIgASgJEj4KDXByb3Bvc2VkX3J1bGUYAyABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZRIPCgdzYW5kYm94GAEgASgJEhIKCnJlcXVlc3RfaWQYBSABKAkiGAoWRWRpdERyYWZ0Q2h1bmtSZXNwb25zZSKSAQoVVW5kb0RyYWZ0Q2h1bmtSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgDIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISEAoIY2h1bmtfaWQYAiABKAkSDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAQgASgJIkUKFlVuZG9EcmFmdENodW5rUmVzcG9uc2USFgoOcG9saWN5X3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkiggEKF0NsZWFyRHJhZnRDaHVua3NSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCRISCgpyZXF1ZXN0X2lkGAMgASgJIjIKGENsZWFyRHJhZnRDaHVua3NSZXNwb25zZRIWCg5jaHVua3NfY2xlYXJlZBgBIAEoDSJtChZHZXREcmFmdEhpc3RvcnlSZXF1ZXN0EkIKD3dvcmtzcGFjZV9zY29wZRgCIAEoCzIpLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlU2VsZWN0b3ISDwoHc2FuZGJveBgBIAEoCSKSAQoRRHJhZnRIaXN0b3J5RW50cnkSLgoKZXZlbnRfdGltZRhlIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKZXZlbnRfdHlwZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIQCghjaHVua19pZBgEIAEoCUoECAEQAlIMdGltZXN0YW1wX21zIksKF0dldERyYWZ0SGlzdG9yeVJlc3BvbnNlEjAKB2VudHJpZXMYASADKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRIaXN0b3J5RW50cnkiqwEKFkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCRJACgZsYWJlbHMYAiADKAsyMC5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVxdWVzdC5MYWJlbHNFbnRyeRISCgpyZXF1ZXN0X2lkGAMgASgJGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiTwoXQ3JlYXRlV29ya3NwYWNlUmVzcG9uc2USNAoJd29ya3NwYWNlGAEgASgLMiEub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2UiIwoTR2V0V29ya3NwYWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJIkwKFEdldFdvcmtzcGFjZVJlc3BvbnNlEjQKCXdvcmtzcGFjZRgBIAEoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlIlYKFUxpc3RXb3Jrc3BhY2VzUmVxdWVzdBIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCRIWCg5sYWJlbF9zZWxlY3RvchgDIAEoCSJoChZMaXN0V29ya3NwYWNlc1Jlc3BvbnNlEjUKCndvcmtzcGFjZXMYASADKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiUQoWRGVsZXRlV29ya3NwYWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJEhUKDWFsbG93X21pc3NpbmcYAiABKAgSEgoKcmVxdWVzdF9pZBgDIAEoCSJYChdEZWxldGVXb3Jrc3BhY2VSZXNwb25zZRIuCgdvdXRjb21lGAIgASgOMh0ub3BlbnNoZWxsLnYxLkRlbGV0aW9uT3V0Y29tZUoECAEQAlIHZGVsZXRlZCKNAQoPV29ya3NwYWNlTWVtYmVyEjQKCG1ldGFkYXRhGAEgASgLMiIub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5PYmplY3RNZXRhEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJEikKBHJvbGUYAyABKA4yGy5vcGVuc2hlbGwudjEuV29ya3NwYWNlUm9sZSK5AQoZQWRkV29ya3NwYWNlTWVtYmVyUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYASABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJEikKBHJvbGUYAyABKA4yGy5vcGVuc2hlbGwudjEuV29ya3NwYWNlUm9sZRISCgpyZXF1ZXN0X2lkGAQgASgJIksKGkFkZFdvcmtzcGFjZU1lbWJlclJlc3BvbnNlEi0KBm1lbWJlchgBIAEoCzIdLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VNZW1iZXIiqAEKHFJlbW92ZVdvcmtzcGFjZU1lbWJlclJlcXVlc3QSQgoPd29ya3NwYWNlX3Njb3BlGAEgASgLMikub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2VTZWxlY3RvchIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCRIVCg1hbGxvd19taXNzaW5nGAMgASgIEhIKCnJlcXVlc3RfaWQYBCABKAkiXgodUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVzcG9uc2USLgoHb3V0Y29tZRgCIAEoDjIdLm9wZW5zaGVsbC52MS5EZWxldGlvbk91dGNvbWVKBAgBEAJSB3JlbW92ZWQiiAEKG0xpc3RXb3Jrc3BhY2VNZW1iZXJzUmVxdWVzdBJCCg93b3Jrc3BhY2Vfc2NvcGUYASABKAsyKS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZVNlbGVjdG9yEhEKCXBhZ2Vfc2l6ZRgCIAEoBRISCgpwYWdlX3Rva2VuGAMgASgJImcKHExpc3RXb3Jrc3BhY2VNZW1iZXJzUmVzcG9uc2USLgoHbWVtYmVycxgBIAMoCzIdLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VNZW1iZXISFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJIpEBChpFeHRlbnNpb25TZXJ2aWNlQ3JlZGVudGlhbBIUCgxzZXJ2aWNlX25hbWUYASABKAkSEwoFdG9rZW4YAiABKAlCBIi1GAESMwoPZXhwaXJhdGlvbl90aW1lGGcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEoECAMQBFINZXhwaXJlc19hdF9tcyJYChNFbmRwb2ludE9ic2VydmF0aW9uEhMKC2VuZHBvaW50X2lkGAEgASgJEiwKBnJlc3VsdBgCIAEoDjIcLm9wZW5zaGVsbC52MS5FbmRwb2ludFJlc3VsdCL1AQobUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSEwoLcG9saWN5X2hhc2gYAiABKAkSHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAMgASgEEjcKDG9ic2VydmF0aW9ucxgEIAMoCzIhLm9wZW5zaGVsbC52MS5FbmRwb2ludE9ic2VydmF0aW9uEh0KFW9ic2VydmVkX2VuZHBvaW50X2lkcxgFIAMoCRIdChVzdXBlcnZpc29yX3Nlc3Npb25faWQYBiABKAkSFwoPcmVwb3J0X3NlcXVlbmNlGAcgASgEIh4KHFJlcG9ydEVuZHBvaW50U3RhdHVzUmVzcG9uc2Ui0wEKDkVuZHBvaW50U3RhdHVzEhMKC2VuZHBvaW50X2lkGAEgASgJEgwKBGhvc3QYAiABKAkSDQoFcG9ydHMYAyADKA0SDAoEcGF0aBgEIAEoCRIxCgtsYXN0X3Jlc3VsdBgFIAEoDjIcLm9wZW5zaGVsbC52MS5FbmRwb2ludFJlc3VsdBI2ChJsYXN0X3JlcG9ydGVkX3RpbWUYaiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSgQIBhAHUhBsYXN0X3JlcG9ydGVkX2F0IogEChNTYW5kYm94UHJvdmlzaW9uaW5nEhIKCmF0dGVtcHRfaWQYASABKAkSHwoXY29uZmlndXJhdGlvbl9jaGFuZ2VfaWQYAiABKAkSPQoZY29uZmlndXJhdGlvbl9jaGFuZ2VfdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoUZmlyc3RfcmVqZWN0aW9uX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKCGRlYWRsaW5lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgx0aW1lb3V0X3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKFmNsZWFudXBfY29tcGxldGVkX3RpbWUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhUKDWNsZWFudXBfZXJyb3IYCCABKAkSNgoSY2xlYW51cF9yZXRyeV90aW1lGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIcChRhdHRhY2htZW50X2NoYW5nZV9pZBgKIAEoCRI6ChZhdHRhY2htZW50X2NoYW5nZV90aW1lGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCI+ChZTYW5kYm94U2VydmljZUV4cG9zdXJlEg8KB3NlcnZpY2UYASABKAkSEwoLdGFyZ2V0X3BvcnQYAiABKA0qygEKDUV4dGVuc2lvbktpbmQSHgoaRVhURU5TSU9OX0tJTkRfVU5TUEVDSUZJRUQQABIhCh1FWFRFTlNJT05fS0lORF9DT01QVVRFX0RSSVZFUhABEiQKIEVYVEVOU0lPTl9LSU5EX0NSRURFTlRJQUxfRFJJVkVSEAISJgoiRVhURU5TSU9OX0tJTkRfR0FURVdBWV9JTlRFUkNFUFRPUhADEigKJEVYVEVOU0lPTl9LSU5EX1NVUEVSVklTT1JfTUlERExFV0FSRRAEKqYCCgxTYW5kYm94UGhhc2USHQoZU0FOREJPWF9QSEFTRV9VTlNQRUNJRklFRBAAEh4KGlNBTkRCT1hfUEhBU0VfUFJPVklTSU9OSU5HEAESFwoTU0FOREJPWF9QSEFTRV9SRUFEWRACEhcKE1NBTkRCT1hfUEhBU0VfRVJST1IQAxIaChZTQU5EQk9YX1BIQVNFX0RFTEVUSU5HEAQSGQoVU0FOREJPWF9QSEFTRV9VTktOT1dOEAUSGgoWU0FOREJPWF9QSEFTRV9TVE9QUElORxAGEhkKFVNBTkRCT1hfUEhBU0VfU1RPUFBFRBAHEhoKFlNBTkRCT1hfUEhBU0VfU1RBUlRJTkcQCBIbChdTQU5EQk9YX1BIQVNFX0NPTVBMRVRFRBAJKssBChRQcm92aWRlck11dGF0aW9uS2luZBImCiJQUk9WSURFUl9NVVRBVElPTl9LSU5EX1VOU1BFQ0lGSUVEEAASIQodUFJPVklERVJfTVVUQVRJT05fS0lORF9BVFRBQ0gQARIhCh1QUk9WSURFUl9NVVRBVElPTl9LSU5EX0RFVEFDSBACEiEKHVBST1ZJREVSX01VVEFUSU9OX0tJTkRfVVBEQVRFEAMSIgoeUFJPVklERVJfTVVUQVRJT05fS0lORF9PQlNFUlZFEAQqzwIKFlByb3ZpZGVyUmVhZGluZXNzU3RhdGUSKAokUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1VOU1BFQ0lGSUVEEAASJgoiUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1BFUlNJU1RFRBABEiQKIFBST1ZJREVSX1JFQURJTkVTU19TVEFURV9QRU5ESU5HEAISIgoeUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1JFQURZEAMSJQohUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1dJVEhIRUxEEAQSJAogUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1JFVk9LRUQQBRIjCh9QUk9WSURFUl9SRUFESU5FU1NfU1RBVEVfRkFJTEVEEAYSJwojUFJPVklERVJfUkVBRElORVNTX1NUQVRFX1NVUEVSU0VERUQQByraBgoXUHJvdmlkZXJSZWFkaW5lc3NSZWFzb24SKQolUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9VTlNQRUNJRklFRBAAEjQKMFBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fV0FJVElOR19GT1JfU1VQRVJWSVNPUhABEjUKMVBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fV0FJVElOR19GT1JfQ1JFREVOVElBTFMQAhIwCixQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1dBSVRJTkdfRk9SX1BPTElDWRADEjEKLVBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fV0FJVElOR19GT1JfUFJPQ0VTUxAEEjQKMFBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fVU5TVVBQT1JURURfU1VQRVJWSVNPUhAFEjIKLlBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fQ1JFREVOVElBTFNfV0lUSEhFTEQQBhI3CjNQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX0NSRURFTlRJQUxfSU5TVEFMTF9GQUlMRUQQBxI2CjJQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1BPTElDWV9BQ1RJVkFUSU9OX0ZBSUxFRBAIEjQKMFBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fUFJPQ0VTU19JTlNUQUxMX0ZBSUxFRBAJEjUKMVBST1ZJREVSX1JFQURJTkVTU19SRUFTT05fU1VQRVJWSVNPUl9ESVNDT05ORUNURUQQChI2CjJQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX1NVUEVSVklTT1JfTEVBU0VfRVhQSVJFRBALEjMKL1BST1ZJREVSX1JFQURJTkVTU19SRUFTT05fREVTSVJFRF9TVEFURV9DSEFOR0VEEAwSMAosUFJPVklERVJfUkVBRElORVNTX1JFQVNPTl9DUkVERU5USUFMX0VYUElSRUQQDRIqCiZQUk9WSURFUl9SRUFESU5FU1NfUkVBU09OX0xPQ0FMX1BPTElDWRAOEi8KK1BST1ZJREVSX1JFQURJTkVTU19SRUFTT05fU05BUFNIT1RfTUlTTUFUQ0gQDyqDAQoPQ29uZmlnQ29tcG9uZW50EiAKHENPTkZJR19DT01QT05FTlRfVU5TUEVDSUZJRUQQABIjCh9DT05GSUdfQ09NUE9ORU5UX1NBTkRCT1hfQ09ORklHEAESKQolQ09ORklHX0NPTVBPTkVOVF9QUk9WSURFUl9FTlZJUk9OTUVOVBACKo0DChJDb25maWdBcHBseU91dGNvbWUSJAogQ09ORklHX0FQUExZX09VVENPTUVfVU5TUEVDSUZJRUQQABIgChxDT05GSUdfQVBQTFlfT1VUQ09NRV9BUFBMSUVEEAESKgomQ09ORklHX0FQUExZX09VVENPTUVfSUdOT1JFRF9EVVBMSUNBVEUQAhImCiJDT05GSUdfQVBQTFlfT1VUQ09NRV9JR05PUkVEX1NUQUxFEAMSMAosQ09ORklHX0FQUExZX09VVENPTUVfUkVUQUlORURfTE9DQUxfT1ZFUlJJREUQBBIhCh1DT05GSUdfQVBQTFlfT1VUQ09NRV9ERUdSQURFRBAFEjgKNENPTkZJR19BUFBMWV9PVVRDT01FX0ZBSUxFRF9SRVRBSU5FRF9MQVNUX0tOT1dOX0dPT0QQBhImCiJDT05GSUdfQVBQTFlfT1VUQ09NRV9GQUlMRURfQ0xPU0VEEAcSJAogQ09ORklHX0FQUExZX09VVENPTUVfVU5TVVBQT1JURUQQCCrSAgoaQ29uZmlnVXBkYXRlT3BlcmF0aW9uU3RhdGUSLQopQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfVU5TUEVDSUZJRUQQABIpCiVDT05GSUdfVVBEQVRFX09QRVJBVElPTl9TVEFURV9QRU5ESU5HEAESKQolQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfQVBQTElFRBACEioKJkNPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX0lOQUNUSVZFEAMSKAokQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfRkFJTEVEEAQSLAooQ09ORklHX1VQREFURV9PUEVSQVRJT05fU1RBVEVfU1VQRVJTRURFRBAFEisKJ0NPTkZJR19VUERBVEVfT1BFUkFUSU9OX1NUQVRFX0NBTkNFTExFRBAGKs4BCiBQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50VHlwZRI0CjBQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfVU5TUEVDSUZJRUQQABI7CjdQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfQ0xJRU5UX0NSRURFTlRJQUxTEAESNwozUFJPVklERVJfQ1JFREVOVElBTF9UT0tFTl9HUkFOVF9UWVBFX1RPS0VOX0VYQ0hBTkdFEAIqwwMKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRI0CjBQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfVU5TUEVDSUZJRUQQABIvCitQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfU1RBVElDEAESMQotUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX0VYVEVSTkFMEAISPQo5UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9SRUZSRVNIX1RPS0VOEAMSQgo+UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9DTElFTlRfQ1JFREVOVElBTFMQBBJDCj9QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfR09PR0xFX1NFUlZJQ0VfQUNDT1VOVF9KV1QQBRI8CjhQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfQVdTX1NUU19BU1NVTUVfUk9MRRAGKtsCChdQcm92aWRlclByb2ZpbGVDYXRlZ29yeRIpCiVQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9PVEhFUhABEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfSU5GRVJFTkNFEAISIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9BR0VOVBADEiwKKFBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfU09VUkNFX0NPTlRST0wQBBInCiNQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX01FU1NBR0lORxAFEiIKHlBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfREFUQRAGEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfS05PV0xFREdFEAcqzwEKG0NvbmZpZ3VyYXRpb25BZG1pc3Npb25TdGF0ZRItCilDT05GSUdVUkFUSU9OX0FETUlTU0lPTl9TVEFURV9VTlNQRUNJRklFRBAAEikKJUNPTkZJR1VSQVRJT05fQURNSVNTSU9OX1NUQVRFX1BFTkRJTkcQARIqCiZDT05GSUdVUkFUSU9OX0FETUlTU0lPTl9TVEFURV9BQ0NFUFRFRBACEioKJkNPTkZJR1VSQVRJT05fQURNSVNTSU9OX1NUQVRFX1JFSkVDVEVEEAMqmgEKDFBvbGljeVN0YXR1cxIdChlQT0xJQ1lfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGQoVUE9MSUNZX1NUQVRVU19QRU5ESU5HEAESGAoUUE9MSUNZX1NUQVRVU19MT0FERUQQAhIYChRQT0xJQ1lfU1RBVFVTX0ZBSUxFRBADEhwKGFBPTElDWV9TVEFUVVNfU1VQRVJTRURFRBAEKoYBCg1TZXJ2aWNlU3RhdHVzEh4KGlNFUlZJQ0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWU0VSVklDRV9TVEFUVVNfSEVBTFRIWRABEhsKF1NFUlZJQ0VfU1RBVFVTX0RFR1JBREVEEAISHAoYU0VSVklDRV9TVEFUVVNfVU5IRUFMVEhZEAMqYgoNV29ya3NwYWNlUm9sZRIeChpXT1JLU1BBQ0VfUk9MRV9VTlNQRUNJRklFRBAAEhcKE1dPUktTUEFDRV9ST0xFX1VTRVIQARIYChRXT1JLU1BBQ0VfUk9MRV9BRE1JThACKtoCCidQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoUmVjb3ZlcnlBY3Rpb24SOwo3UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9VTlNQRUNJRklFRBAAEjUKMVBST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9SRUNPVkVSWV9BQ1RJT05fUkVUUlkQARI7CjdQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfUkVDT1ZFUllfQUNUSU9OX1JFQVVUSE9SSVpFEAISQQo9UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1JFQ09WRVJZX0FDVElPTl9GSVhfQ09ORklHVVJBVElPThADEjsKN1BST1ZJREVSX0NSRURFTlRJQUxfUkVGUkVTSF9SRUNPVkVSWV9BQ1RJT05fSU5WRVNUSUdBVEUQBCqXAQoPRGVsZXRpb25PdXRjb21lEiAKHERFTEVUSU9OX09VVENPTUVfVU5TUEVDSUZJRUQQABIeChpERUxFVElPTl9PVVRDT01FX0NPTVBMRVRFRBABEh0KGURFTEVUSU9OX09VVENPTUVfQUNDRVBURUQQAhIjCh9ERUxFVElPTl9PVVRDT01FX0FMUkVBRFlfQUJTRU5UEAMqwwIKDkVuZHBvaW50UmVzdWx0Eh8KG0VORFBPSU5UX1JFU1VMVF9VTlNQRUNJRklFRBAAEigKJEVORFBPSU5UX1JFU1VMVF9OT19PQlNFUlZFRF9FWENIQU5HRRABEioKJkVORFBPSU5UX1JFU1VMVF9IVFRQX1JFU1BPTlNFX1JFQ0VJVkVEEAISIQodRU5EUE9JTlRfUkVTVUxUX1BPTElDWV9ERU5JRUQQAxIqCiZFTkRQT0lOVF9SRVNVTFRfQ1JFREVOVElBTF9VTkFWQUlMQUJMRRAEEh4KGkVORFBPSU5UX1JFU1VMVF9UTFNfRkFJTEVEEAUSJAogRU5EUE9JTlRfUkVTVUxUX1RSQU5TUE9SVF9GQUlMRUQQBhIlCiFFTkRQT0lOVF9SRVNVTFRfVVBTVFJFQU1fUkVKRUNURUQQBzKvVQoJT3BlblNoZWxsEloKBkhlYWx0aBIbLm9wZW5zaGVsbC52MS5IZWFsdGhSZXF1ZXN0Ghwub3BlbnNoZWxsLnYxLkhlYWx0aFJlc3BvbnNlIhWCtRgRCg91bmF1dGhlbnRpY2F0ZWQSaQoOR2V0Q3VycmVudFVzZXISIy5vcGVuc2hlbGwudjEuR2V0Q3VycmVudFVzZXJSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldEN1cnJlbnRVc2VyUmVzcG9uc2UiDIK1GAgKBmJlYXJlchKGAQoOR2V0R2F0ZXdheUluZm8SIy5vcGVuc2hlbGwudjEuR2V0R2F0ZXdheUluZm9SZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldEdhdGV3YXlJbmZvUmVzcG9uc2UiKYK1GCUKBmJlYXJlchoOcGxhdGZvcm1fYWRtaW4iC2NvbmZpZzpyZWFkEnUKDUNyZWF0ZVNhbmRib3gSIi5vcGVuc2hlbGwudjEuQ3JlYXRlU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSkwEKFUJlZ2luUm9vdGZzVGFyU3RhZ2luZxIqLm9wZW5zaGVsbC52MS5CZWdpblJvb3Rmc1RhclN0YWdpbmdSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkJlZ2luUm9vdGZzVGFyU3RhZ2luZ1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSbgoKR2V0U2FuZGJveBIfLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEnoKDUxpc3RTYW5kYm94ZXMSIi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hlc1JlcXVlc3QaIy5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKOAQoVQ3JlYXRlU2FuZGJveFRlbXBsYXRlEioub3BlbnNoZWxsLnYxLkNyZWF0ZVNhbmRib3hUZW1wbGF0ZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2FuZGJveFRlbXBsYXRlUmVzcG9uc2UiIoK1GB4KBmJlYXJlchIFYWRtaW4iDXNhbmRib3g6d3JpdGUShgEKEkdldFNhbmRib3hUZW1wbGF0ZRInLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94VGVtcGxhdGVSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZVJlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBKPAQoUTGlzdFNhbmRib3hUZW1wbGF0ZXMSKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hUZW1wbGF0ZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94VGVtcGxhdGVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEpQBChVEZWxldGVTYW5kYm94VGVtcGxhdGUSKi5vcGVuc2hlbGwudjEuRGVsZXRlU2FuZGJveFRlbXBsYXRlUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94VGVtcGxhdGVSZXNwb25zZSIigrUYHgoGYmVhcmVyEgVhZG1pbiINc2FuZGJveDp3cml0ZRKPAQoUTGlzdFNhbmRib3hQcm92aWRlcnMSKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQcm92aWRlcnNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEpMBChVBdHRhY2hTYW5kYm94UHJvdmlkZXISKi5vcGVuc2hlbGwudjEuQXR0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEpMBChVEZXRhY2hTYW5kYm94UHJvdmlkZXISKi5vcGVuc2hlbGwudjEuRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEpsBChhHZXRTYW5kYm94UHJvdmlkZXJTdGF0dXMSLS5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyU3RhdHVzUmVxdWVzdBouLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSewoNRGVsZXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVxdWVzdBojLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJxCgtTdG9wU2FuZGJveBIgLm9wZW5zaGVsbC52MS5TdG9wU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUScwoMU3RhcnRTYW5kYm94EiEub3BlbnNoZWxsLnYxLlN0YXJ0U2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEENyZWF0ZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSfQoNRXhwb3NlU2VydmljZRIiLm9wZW5zaGVsbC52MS5FeHBvc2VTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnYKCkdldFNlcnZpY2USHy5vcGVuc2hlbGwudjEuR2V0U2VydmljZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEncKDExpc3RTZXJ2aWNlcxIhLm9wZW5zaGVsbC52MS5MaXN0U2VydmljZXNSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ7Cg1EZWxldGVTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEoQBChBSZXZva2VTc2hTZXNzaW9uEiUub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXF1ZXN0GiYub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnQKC0V4ZWNTYW5kYm94EiAub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94UmVxdWVzdBoeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV2ZW50IiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUwARJxCgpGb3J3YXJkVGNwEh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZRodLm9wZW5zaGVsbC52MS5UY3BGb3J3YXJkRnJhbWUiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESfwoWRXhlY1NhbmRib3hJbnRlcmFjdGl2ZRIeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveElucHV0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESegoOQ3JlYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuQ3JlYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEnIKC0dldFByb3ZpZGVyEiAub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVxdWVzdBoeLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSewoNTGlzdFByb3ZpZGVycxIiLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKQAQoUTGlzdFByb3ZpZGVyUHJvZmlsZXMSKS5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKHAQoSR2V0UHJvdmlkZXJQcm9maWxlEicub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUHJvZmlsZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKYAQoWSW1wb3J0UHJvdmlkZXJQcm9maWxlcxIrLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBosLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpgBChZVcGRhdGVQcm92aWRlclByb2ZpbGVzEisub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSkAEKFExpbnRQcm92aWRlclByb2ZpbGVzEikub3BlbnNoZWxsLnYxLkxpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5MaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSegoOVXBkYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpwBChhHZXRQcm92aWRlclJlZnJlc2hTdGF0dXMSLS5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVxdWVzdBouLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEp4BChhDb25maWd1cmVQcm92aWRlclJlZnJlc2gSLS5vcGVuc2hlbGwudjEuQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBouLm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSngEKGFJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbBItLm9wZW5zaGVsbC52MS5Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLlJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKVAQoVRGVsZXRlUHJvdmlkZXJSZWZyZXNoEioub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEoABCg5EZWxldGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSlQEKFURlbGV0ZVByb3ZpZGVyUHJvZmlsZRIqLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclByb2ZpbGVSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKQAQoQR2V0U2FuZGJveENvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldFNhbmRib3hDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0U2FuZGJveENvbmZpZ1Jlc3BvbnNlIh2CtRgZCgRkdWFsEgR1c2VyIgtjb25maWc6cmVhZBKMAQoQR2V0R2F0ZXdheUNvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldEdhdGV3YXlDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0R2F0ZXdheUNvbmZpZ1Jlc3BvbnNlIhmCtRgVCgZiZWFyZXIiC2NvbmZpZzpyZWFkEnYKDFVwZGF0ZUNvbmZpZxIhLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlIh+CtRgbCgRkdWFsEgVhZG1pbiIMY29uZmlnOndyaXRlEpUBChZHZXRTYW5kYm94UG9saWN5U3RhdHVzEisub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSjAEKE0xpc3RTYW5kYm94UG9saWNpZXMSKC5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QaKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ2ChJSZXBvcnRQb2xpY3lTdGF0dXMSJy5vcGVuc2hlbGwudjEuUmVwb3J0UG9saWN5U3RhdHVzUmVxdWVzdBooLm9wZW5zaGVsbC52MS5SZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBJ8ChRSZXBvcnRFbmRwb2ludFN0YXR1cxIpLm9wZW5zaGVsbC52MS5SZXBvcnRFbmRwb2ludFN0YXR1c1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBKFAQoXUmVwb3J0UHJvdmlkZXJSZWFkaW5lc3MSLC5vcGVuc2hlbGwudjEuUmVwb3J0UHJvdmlkZXJSZWFkaW5lc3NSZXF1ZXN0Gi0ub3BlbnNoZWxsLnYxLlJlcG9ydFByb3ZpZGVyUmVhZGluZXNzUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSjgEKGlJlcG9ydFNhbmRib3hDb25maWd1cmF0aW9uEi8ub3BlbnNoZWxsLnYxLlJlcG9ydFNhbmRib3hDb25maWd1cmF0aW9uUmVxdWVzdBowLm9wZW5zaGVsbC52MS5SZXBvcnRTYW5kYm94Q29uZmlndXJhdGlvblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EpcBCh1HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudBIyLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlcXVlc3QaMy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZSINgrUYCQoHc2FuZGJveBKUAQocRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlbhIxLm9wZW5zaGVsbC52MS5FeGNoYW5nZVByb3ZpZGVyU3ViamVjdFRva2VuUmVxdWVzdBoyLm9wZW5zaGVsbC52MS5FeGNoYW5nZVByb3ZpZGVyU3ViamVjdFRva2VuUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSfQoOR2V0U2FuZGJveExvZ3MSIy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveExvZ3NSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldFNhbmRib3hMb2dzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEm8KD1B1c2hTYW5kYm94TG9ncxIkLm9wZW5zaGVsbC52MS5QdXNoU2FuZGJveExvZ3NSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLlB1c2hTYW5kYm94TG9nc1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94KAESZQoRQ29ubmVjdFN1cGVydmlzb3ISHy5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvck1lc3NhZ2UaHC5vcGVuc2hlbGwudjEuR2F0ZXdheU1lc3NhZ2UiDYK1GAkKB3NhbmRib3goATABEn8KFVJlcG9ydE1haW5Qcm9jZXNzRXhpdBIqLm9wZW5zaGVsbC52MS5SZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLlJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EoUBChdGaW5hbGl6ZU1haW5Qcm9jZXNzRXhpdBIsLm9wZW5zaGVsbC52MS5GaW5hbGl6ZU1haW5Qcm9jZXNzRXhpdFJlcXVlc3QaLS5vcGVuc2hlbGwudjEuRmluYWxpemVNYWluUHJvY2Vzc0V4aXRSZXNwb25zZSINgrUYCQoHc2FuZGJveBJUCgtSZWxheVN0cmVhbRIYLm9wZW5zaGVsbC52MS5SZWxheUZyYW1lGhgub3BlbnNoZWxsLnYxLlJlbGF5RnJhbWUiDYK1GAkKB3NhbmRib3goATABElcKCVBlZXJSZWxheRIcLm9wZW5zaGVsbC52MS5QZWVyUmVsYXlGcmFtZRocLm9wZW5zaGVsbC52MS5QZWVyUmVsYXlGcmFtZSIKgrUYBgoEcGVlcigBMAEShgEKG1BlZXJSZXBvcnRQcm92aWRlclJlYWRpbmVzcxIsLm9wZW5zaGVsbC52MS5SZXBvcnRQcm92aWRlclJlYWRpbmVzc1JlcXVlc3QaLS5vcGVuc2hlbGwudjEuUmVwb3J0UHJvdmlkZXJSZWFkaW5lc3NSZXNwb25zZSIKgrUYBgoEcGVlchJ9ChhQZWVyUmVwb3J0RW5kcG9pbnRTdGF0dXMSKS5vcGVuc2hlbGwudjEuUmVwb3J0RW5kcG9pbnRTdGF0dXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLlJlcG9ydEVuZHBvaW50U3RhdHVzUmVzcG9uc2UiCoK1GAYKBHBlZXISiQEKHFBlZXJHZXRTYW5kYm94UHJvdmlkZXJTdGF0dXMSLS5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyU3RhdHVzUmVxdWVzdBouLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJTdGF0dXNSZXNwb25zZSIKgrUYBgoEcGVlchJ3CgxXYXRjaFNhbmRib3gSIS5vcGVuc2hlbGwudjEuV2F0Y2hTYW5kYm94UmVxdWVzdBogLm9wZW5zaGVsbC52MS5TYW5kYm94U3RyZWFtRXZlbnQiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkMAESfAoUU3VibWl0UG9saWN5QW5hbHlzaXMSKS5vcGVuc2hlbGwudjEuU3VibWl0UG9saWN5QW5hbHlzaXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLlN1Ym1pdFBvbGljeUFuYWx5c2lzUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSegoOR2V0RHJhZnRQb2xpY3kSIy5vcGVuc2hlbGwudjEuR2V0RHJhZnRQb2xpY3lSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldERyYWZ0UG9saWN5UmVzcG9uc2UiHYK1GBkKBGR1YWwSBHVzZXIiC2NvbmZpZzpyZWFkEocBChFBcHByb3ZlRHJhZnRDaHVuaxImLm9wZW5zaGVsbC52MS5BcHByb3ZlRHJhZnRDaHVua1JlcXVlc3QaJy5vcGVuc2hlbGwudjEuQXBwcm92ZURyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEoQBChBSZWplY3REcmFmdENodW5rEiUub3BlbnNoZWxsLnYxLlJlamVjdERyYWZ0Q2h1bmtSZXF1ZXN0GiYub3BlbnNoZWxsLnYxLlJlamVjdERyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEpMBChVBcHByb3ZlQWxsRHJhZnRDaHVua3MSKi5vcGVuc2hlbGwudjEuQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVxdWVzdBorLm9wZW5zaGVsbC52MS5BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEn4KDkVkaXREcmFmdENodW5rEiMub3BlbnNoZWxsLnYxLkVkaXREcmFmdENodW5rUmVxdWVzdBokLm9wZW5zaGVsbC52MS5FZGl0RHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfgoOVW5kb0RyYWZ0Q2h1bmsSIy5vcGVuc2hlbGwudjEuVW5kb0RyYWZ0Q2h1bmtSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLlVuZG9EcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRKEAQoQQ2xlYXJEcmFmdENodW5rcxIlLm9wZW5zaGVsbC52MS5DbGVhckRyYWZ0Q2h1bmtzUmVxdWVzdBomLm9wZW5zaGVsbC52MS5DbGVhckRyYWZ0Q2h1bmtzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ/Cg9HZXREcmFmdEhpc3RvcnkSJC5vcGVuc2hlbGwudjEuR2V0RHJhZnRIaXN0b3J5UmVxdWVzdBolLm9wZW5zaGVsbC52MS5HZXREcmFmdEhpc3RvcnlSZXNwb25zZSIfgrUYGwoGYmVhcmVyEgR1c2VyIgtjb25maWc6cmVhZBJzChFJc3N1ZVNhbmRib3hUb2tlbhImLm9wZW5zaGVsbC52MS5Jc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QaJy5vcGVuc2hlbGwudjEuSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZSINgrUYCQoHc2FuZGJveBJ5ChNSZWZyZXNoU2FuZGJveFRva2VuEigub3BlbnNoZWxsLnYxLlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Gikub3BlbnNoZWxsLnYxLlJlZnJlc2hTYW5kYm94VG9rZW5SZXNwb25zZSINgrUYCQoHc2FuZGJveBKNAQoPQ3JlYXRlV29ya3NwYWNlEiQub3BlbnNoZWxsLnYxLkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVzcG9uc2UiLYK1GCkKBmJlYXJlchoOcGxhdGZvcm1fYWRtaW4iD3dvcmtzcGFjZTp3cml0ZRJ5CgxHZXRXb3Jrc3BhY2USIS5vcGVuc2hlbGwudjEuR2V0V29ya3NwYWNlUmVxdWVzdBoiLm9wZW5zaGVsbC52MS5HZXRXb3Jrc3BhY2VSZXNwb25zZSIigrUYHgoGYmVhcmVyEgR1c2VyIg53b3Jrc3BhY2U6cmVhZBJ/Cg5MaXN0V29ya3NwYWNlcxIjLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlc1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZXNSZXNwb25zZSIigrUYHgoGYmVhcmVyEgR1c2VyIg53b3Jrc3BhY2U6cmVhZBKNAQoPRGVsZXRlV29ya3NwYWNlEiQub3BlbnNoZWxsLnYxLkRlbGV0ZVdvcmtzcGFjZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuRGVsZXRlV29ya3NwYWNlUmVzcG9uc2UiLYK1GCkKBmJlYXJlchoOcGxhdGZvcm1fYWRtaW4iD3dvcmtzcGFjZTp3cml0ZRKNAQoSQWRkV29ya3NwYWNlTWVtYmVyEicub3BlbnNoZWxsLnYxLkFkZFdvcmtzcGFjZU1lbWJlclJlcXVlc3QaKC5vcGVuc2hlbGwudjEuQWRkV29ya3NwYWNlTWVtYmVyUmVzcG9uc2UiJIK1GCAKBmJlYXJlchIFYWRtaW4iD3dvcmtzcGFjZTp3cml0ZRKWAQoVUmVtb3ZlV29ya3NwYWNlTWVtYmVyEioub3BlbnNoZWxsLnYxLlJlbW92ZVdvcmtzcGFjZU1lbWJlclJlcXVlc3QaKy5vcGVuc2hlbGwudjEuUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVzcG9uc2UiJIK1GCAKBmJlYXJlchIFYWRtaW4iD3dvcmtzcGFjZTp3cml0ZRKRAQoUTGlzdFdvcmtzcGFjZU1lbWJlcnMSKS5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VNZW1iZXJzUmVzcG9uc2UiIoK1GB4KBmJlYXJlchIEdXNlciIOd29ya3NwYWNlOnJlYWRiBnByb3RvMw", [file_datamodel, file_google_protobuf_duration, file_google_protobuf_struct, file_google_protobuf_timestamp, file_options, file_sandbox]);
12
12
  /**
13
13
  * Describes the message openshell.v1.IssueSandboxTokenRequest.
14
14
  * Use `create(IssueSandboxTokenRequestSchema)` to create a new message.
@@ -59,916 +59,1141 @@ export const GetGatewayInfoRequestSchema = /*@__PURE__*/ messageDesc(file_opensh
59
59
  * Use `create(GetGatewayInfoResponseSchema)` to create a new message.
60
60
  */
61
61
  export const GetGatewayInfoResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 9);
62
+ /**
63
+ * Describes the message openshell.v1.NegotiatedExtensionInfo.
64
+ * Use `create(NegotiatedExtensionInfoSchema)` to create a new message.
65
+ */
66
+ export const NegotiatedExtensionInfoSchema = /*@__PURE__*/ messageDesc(file_openshell, 10);
62
67
  /**
63
68
  * Describes the message openshell.v1.ComputeDriverInfo.
64
69
  * Use `create(ComputeDriverInfoSchema)` to create a new message.
65
70
  */
66
- export const ComputeDriverInfoSchema = /*@__PURE__*/ messageDesc(file_openshell, 10);
71
+ export const ComputeDriverInfoSchema = /*@__PURE__*/ messageDesc(file_openshell, 11);
67
72
  /**
68
73
  * Describes the message openshell.v1.ComputeDriverCapabilities.
69
74
  * Use `create(ComputeDriverCapabilitiesSchema)` to create a new message.
70
75
  */
71
- export const ComputeDriverCapabilitiesSchema = /*@__PURE__*/ messageDesc(file_openshell, 11);
76
+ export const ComputeDriverCapabilitiesSchema = /*@__PURE__*/ messageDesc(file_openshell, 12);
77
+ /**
78
+ * Describes the message openshell.v1.ResourceCapabilities.
79
+ * Use `create(ResourceCapabilitiesSchema)` to create a new message.
80
+ */
81
+ export const ResourceCapabilitiesSchema = /*@__PURE__*/ messageDesc(file_openshell, 13);
82
+ /**
83
+ * Describes the message openshell.v1.CpuResourceCapabilities.
84
+ * Use `create(CpuResourceCapabilitiesSchema)` to create a new message.
85
+ */
86
+ export const CpuResourceCapabilitiesSchema = /*@__PURE__*/ messageDesc(file_openshell, 14);
87
+ /**
88
+ * Describes the message openshell.v1.MemoryResourceCapabilities.
89
+ * Use `create(MemoryResourceCapabilitiesSchema)` to create a new message.
90
+ */
91
+ export const MemoryResourceCapabilitiesSchema = /*@__PURE__*/ messageDesc(file_openshell, 15);
92
+ /**
93
+ * Describes the message openshell.v1.GpuResourceCapabilities.
94
+ * Use `create(GpuResourceCapabilitiesSchema)` to create a new message.
95
+ */
96
+ export const GpuResourceCapabilitiesSchema = /*@__PURE__*/ messageDesc(file_openshell, 16);
72
97
  /**
73
98
  * Describes the message openshell.v1.Sandbox.
74
99
  * Use `create(SandboxSchema)` to create a new message.
75
100
  */
76
- export const SandboxSchema = /*@__PURE__*/ messageDesc(file_openshell, 12);
101
+ export const SandboxSchema = /*@__PURE__*/ messageDesc(file_openshell, 17);
77
102
  /**
78
103
  * Describes the message openshell.v1.SandboxSpec.
79
104
  * Use `create(SandboxSpecSchema)` to create a new message.
80
105
  */
81
- export const SandboxSpecSchema = /*@__PURE__*/ messageDesc(file_openshell, 13);
106
+ export const SandboxSpecSchema = /*@__PURE__*/ messageDesc(file_openshell, 18);
82
107
  /**
83
108
  * Describes the message openshell.v1.ResourceRequirements.
84
109
  * Use `create(ResourceRequirementsSchema)` to create a new message.
85
110
  */
86
- export const ResourceRequirementsSchema = /*@__PURE__*/ messageDesc(file_openshell, 14);
111
+ export const ResourceRequirementsSchema = /*@__PURE__*/ messageDesc(file_openshell, 19);
87
112
  /**
88
113
  * Describes the message openshell.v1.GpuResourceRequirements.
89
114
  * Use `create(GpuResourceRequirementsSchema)` to create a new message.
90
115
  */
91
- export const GpuResourceRequirementsSchema = /*@__PURE__*/ messageDesc(file_openshell, 15);
116
+ export const GpuResourceRequirementsSchema = /*@__PURE__*/ messageDesc(file_openshell, 20);
92
117
  /**
93
118
  * Describes the message openshell.v1.SandboxTemplate.
94
119
  * Use `create(SandboxTemplateSchema)` to create a new message.
95
120
  */
96
- export const SandboxTemplateSchema = /*@__PURE__*/ messageDesc(file_openshell, 16);
121
+ export const SandboxTemplateSchema = /*@__PURE__*/ messageDesc(file_openshell, 21);
122
+ /**
123
+ * Describes the message openshell.v1.SandboxWorkloadTemplate.
124
+ * Use `create(SandboxWorkloadTemplateSchema)` to create a new message.
125
+ */
126
+ export const SandboxWorkloadTemplateSchema = /*@__PURE__*/ messageDesc(file_openshell, 22);
127
+ /**
128
+ * Describes the message openshell.v1.SandboxWorkloadTemplateSpec.
129
+ * Use `create(SandboxWorkloadTemplateSpecSchema)` to create a new message.
130
+ */
131
+ export const SandboxWorkloadTemplateSpecSchema = /*@__PURE__*/ messageDesc(file_openshell, 23);
132
+ /**
133
+ * Describes the message openshell.v1.SandboxWorkloadConfig.
134
+ * Use `create(SandboxWorkloadConfigSchema)` to create a new message.
135
+ */
136
+ export const SandboxWorkloadConfigSchema = /*@__PURE__*/ messageDesc(file_openshell, 24);
137
+ /**
138
+ * Describes the message openshell.v1.SandboxResources.
139
+ * Use `create(SandboxResourcesSchema)` to create a new message.
140
+ */
141
+ export const SandboxResourcesSchema = /*@__PURE__*/ messageDesc(file_openshell, 25);
142
+ /**
143
+ * Describes the message openshell.v1.SandboxServiceLevel.
144
+ * Use `create(SandboxServiceLevelSchema)` to create a new message.
145
+ */
146
+ export const SandboxServiceLevelSchema = /*@__PURE__*/ messageDesc(file_openshell, 26);
147
+ /**
148
+ * Describes the message openshell.v1.SandboxStartup.
149
+ * Use `create(SandboxStartupSchema)` to create a new message.
150
+ */
151
+ export const SandboxStartupSchema = /*@__PURE__*/ messageDesc(file_openshell, 27);
152
+ /**
153
+ * Describes the message openshell.v1.SandboxWorkloadTemplateProvenance.
154
+ * Use `create(SandboxWorkloadTemplateProvenanceSchema)` to create a new message.
155
+ */
156
+ export const SandboxWorkloadTemplateProvenanceSchema = /*@__PURE__*/ messageDesc(file_openshell, 28);
97
157
  /**
98
158
  * Describes the message openshell.v1.SandboxStatus.
99
159
  * Use `create(SandboxStatusSchema)` to create a new message.
100
160
  */
101
- export const SandboxStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 17);
161
+ export const SandboxStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 29);
102
162
  /**
103
163
  * Describes the message openshell.v1.SandboxCondition.
104
164
  * Use `create(SandboxConditionSchema)` to create a new message.
105
165
  */
106
- export const SandboxConditionSchema = /*@__PURE__*/ messageDesc(file_openshell, 18);
166
+ export const SandboxConditionSchema = /*@__PURE__*/ messageDesc(file_openshell, 30);
107
167
  /**
108
168
  * Describes the message openshell.v1.PlatformEvent.
109
169
  * Use `create(PlatformEventSchema)` to create a new message.
110
170
  */
111
- export const PlatformEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 19);
171
+ export const PlatformEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 31);
112
172
  /**
113
173
  * Describes the message openshell.v1.CreateSandboxRequest.
114
174
  * Use `create(CreateSandboxRequestSchema)` to create a new message.
115
175
  */
116
- export const CreateSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 20);
176
+ export const CreateSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 32);
177
+ /**
178
+ * Describes the message openshell.v1.CreateSandboxTemplateRequest.
179
+ * Use `create(CreateSandboxTemplateRequestSchema)` to create a new message.
180
+ */
181
+ export const CreateSandboxTemplateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 33);
182
+ /**
183
+ * Describes the message openshell.v1.GetSandboxTemplateRequest.
184
+ * Use `create(GetSandboxTemplateRequestSchema)` to create a new message.
185
+ */
186
+ export const GetSandboxTemplateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 34);
187
+ /**
188
+ * Describes the message openshell.v1.ListSandboxTemplatesRequest.
189
+ * Use `create(ListSandboxTemplatesRequestSchema)` to create a new message.
190
+ */
191
+ export const ListSandboxTemplatesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 35);
192
+ /**
193
+ * Describes the message openshell.v1.DeleteSandboxTemplateRequest.
194
+ * Use `create(DeleteSandboxTemplateRequestSchema)` to create a new message.
195
+ */
196
+ export const DeleteSandboxTemplateRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 36);
197
+ /**
198
+ * Describes the message openshell.v1.SandboxTemplateResponse.
199
+ * Use `create(SandboxTemplateResponseSchema)` to create a new message.
200
+ */
201
+ export const SandboxTemplateResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 37);
202
+ /**
203
+ * Describes the message openshell.v1.ListSandboxTemplatesResponse.
204
+ * Use `create(ListSandboxTemplatesResponseSchema)` to create a new message.
205
+ */
206
+ export const ListSandboxTemplatesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 38);
207
+ /**
208
+ * Describes the message openshell.v1.DeleteSandboxTemplateResponse.
209
+ * Use `create(DeleteSandboxTemplateResponseSchema)` to create a new message.
210
+ */
211
+ export const DeleteSandboxTemplateResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 39);
212
+ /**
213
+ * Describes the message openshell.v1.BeginRootfsTarStagingRequest.
214
+ * Use `create(BeginRootfsTarStagingRequestSchema)` to create a new message.
215
+ */
216
+ export const BeginRootfsTarStagingRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 40);
217
+ /**
218
+ * Describes the message openshell.v1.BeginRootfsTarStagingResponse.
219
+ * Use `create(BeginRootfsTarStagingResponseSchema)` to create a new message.
220
+ */
221
+ export const BeginRootfsTarStagingResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 41);
117
222
  /**
118
223
  * Describes the message openshell.v1.GetSandboxRequest.
119
224
  * Use `create(GetSandboxRequestSchema)` to create a new message.
120
225
  */
121
- export const GetSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 21);
226
+ export const GetSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 42);
122
227
  /**
123
228
  * Describes the message openshell.v1.ListSandboxesRequest.
124
229
  * Use `create(ListSandboxesRequestSchema)` to create a new message.
125
230
  */
126
- export const ListSandboxesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 22);
231
+ export const ListSandboxesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 43);
127
232
  /**
128
233
  * Describes the message openshell.v1.ListSandboxProvidersRequest.
129
234
  * Use `create(ListSandboxProvidersRequestSchema)` to create a new message.
130
235
  */
131
- export const ListSandboxProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 23);
236
+ export const ListSandboxProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 44);
132
237
  /**
133
238
  * Describes the message openshell.v1.AttachSandboxProviderRequest.
134
239
  * Use `create(AttachSandboxProviderRequestSchema)` to create a new message.
135
240
  */
136
- export const AttachSandboxProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 24);
241
+ export const AttachSandboxProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 45);
137
242
  /**
138
243
  * Describes the message openshell.v1.DetachSandboxProviderRequest.
139
244
  * Use `create(DetachSandboxProviderRequestSchema)` to create a new message.
140
245
  */
141
- export const DetachSandboxProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 25);
246
+ export const DetachSandboxProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 46);
142
247
  /**
143
248
  * Describes the message openshell.v1.DeleteSandboxRequest.
144
249
  * Use `create(DeleteSandboxRequestSchema)` to create a new message.
145
250
  */
146
- export const DeleteSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 26);
251
+ export const DeleteSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 47);
147
252
  /**
148
253
  * Describes the message openshell.v1.StopSandboxRequest.
149
254
  * Use `create(StopSandboxRequestSchema)` to create a new message.
150
255
  */
151
- export const StopSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 27);
256
+ export const StopSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 48);
152
257
  /**
153
258
  * Describes the message openshell.v1.StartSandboxRequest.
154
259
  * Use `create(StartSandboxRequestSchema)` to create a new message.
155
260
  */
156
- export const StartSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 28);
261
+ export const StartSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 49);
157
262
  /**
158
263
  * Describes the message openshell.v1.SandboxResponse.
159
264
  * Use `create(SandboxResponseSchema)` to create a new message.
160
265
  */
161
- export const SandboxResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 29);
266
+ export const SandboxResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 50);
162
267
  /**
163
268
  * Describes the message openshell.v1.ListSandboxesResponse.
164
269
  * Use `create(ListSandboxesResponseSchema)` to create a new message.
165
270
  */
166
- export const ListSandboxesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 30);
271
+ export const ListSandboxesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 51);
167
272
  /**
168
273
  * Describes the message openshell.v1.ListSandboxProvidersResponse.
169
274
  * Use `create(ListSandboxProvidersResponseSchema)` to create a new message.
170
275
  */
171
- export const ListSandboxProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 31);
276
+ export const ListSandboxProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 52);
172
277
  /**
173
278
  * Describes the message openshell.v1.AttachSandboxProviderResponse.
174
279
  * Use `create(AttachSandboxProviderResponseSchema)` to create a new message.
175
280
  */
176
- export const AttachSandboxProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 32);
281
+ export const AttachSandboxProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 53);
177
282
  /**
178
283
  * Describes the message openshell.v1.DetachSandboxProviderResponse.
179
284
  * Use `create(DetachSandboxProviderResponseSchema)` to create a new message.
180
285
  */
181
- export const DetachSandboxProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 33);
286
+ export const DetachSandboxProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 54);
287
+ /**
288
+ * Describes the message openshell.v1.ProviderDesiredIdentity.
289
+ * Use `create(ProviderDesiredIdentitySchema)` to create a new message.
290
+ */
291
+ export const ProviderDesiredIdentitySchema = /*@__PURE__*/ messageDesc(file_openshell, 55);
292
+ /**
293
+ * Describes the message openshell.v1.ConfigSnapshotRevision.
294
+ * Use `create(ConfigSnapshotRevisionSchema)` to create a new message.
295
+ */
296
+ export const ConfigSnapshotRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 56);
297
+ /**
298
+ * Describes the message openshell.v1.SandboxConfigRevision.
299
+ * Use `create(SandboxConfigRevisionSchema)` to create a new message.
300
+ */
301
+ export const SandboxConfigRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 57);
302
+ /**
303
+ * Describes the message openshell.v1.ConfigUpdateOperation.
304
+ * Use `create(ConfigUpdateOperationSchema)` to create a new message.
305
+ */
306
+ export const ConfigUpdateOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 58);
307
+ /**
308
+ * Describes the message openshell.v1.ProviderMutationReceipt.
309
+ * Use `create(ProviderMutationReceiptSchema)` to create a new message.
310
+ */
311
+ export const ProviderMutationReceiptSchema = /*@__PURE__*/ messageDesc(file_openshell, 59);
312
+ /**
313
+ * Describes the message openshell.v1.ProviderReadinessObservation.
314
+ * Use `create(ProviderReadinessObservationSchema)` to create a new message.
315
+ */
316
+ export const ProviderReadinessObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 60);
317
+ /**
318
+ * Describes the message openshell.v1.ProviderReadinessStatus.
319
+ * Use `create(ProviderReadinessStatusSchema)` to create a new message.
320
+ */
321
+ export const ProviderReadinessStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 61);
322
+ /**
323
+ * Describes the message openshell.v1.GetSandboxProviderStatusRequest.
324
+ * Use `create(GetSandboxProviderStatusRequestSchema)` to create a new message.
325
+ */
326
+ export const GetSandboxProviderStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 62);
327
+ /**
328
+ * Describes the message openshell.v1.GetSandboxProviderStatusResponse.
329
+ * Use `create(GetSandboxProviderStatusResponseSchema)` to create a new message.
330
+ */
331
+ export const GetSandboxProviderStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 63);
332
+ /**
333
+ * Describes the message openshell.v1.ReportProviderReadinessRequest.
334
+ * Use `create(ReportProviderReadinessRequestSchema)` to create a new message.
335
+ */
336
+ export const ReportProviderReadinessRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 64);
337
+ /**
338
+ * Describes the message openshell.v1.ReportProviderReadinessResponse.
339
+ * Use `create(ReportProviderReadinessResponseSchema)` to create a new message.
340
+ */
341
+ export const ReportProviderReadinessResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 65);
182
342
  /**
183
343
  * Describes the message openshell.v1.DeleteSandboxResponse.
184
344
  * Use `create(DeleteSandboxResponseSchema)` to create a new message.
185
345
  */
186
- export const DeleteSandboxResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 34);
346
+ export const DeleteSandboxResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 66);
187
347
  /**
188
348
  * Describes the message openshell.v1.CreateSshSessionRequest.
189
349
  * Use `create(CreateSshSessionRequestSchema)` to create a new message.
190
350
  */
191
- export const CreateSshSessionRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 35);
351
+ export const CreateSshSessionRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 67);
192
352
  /**
193
353
  * Describes the message openshell.v1.CreateSshSessionResponse.
194
354
  * Use `create(CreateSshSessionResponseSchema)` to create a new message.
195
355
  */
196
- export const CreateSshSessionResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 36);
356
+ export const CreateSshSessionResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 68);
197
357
  /**
198
358
  * Describes the message openshell.v1.ExposeServiceRequest.
199
359
  * Use `create(ExposeServiceRequestSchema)` to create a new message.
200
360
  */
201
- export const ExposeServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 37);
361
+ export const ExposeServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 69);
202
362
  /**
203
363
  * Describes the message openshell.v1.GetServiceRequest.
204
364
  * Use `create(GetServiceRequestSchema)` to create a new message.
205
365
  */
206
- export const GetServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 38);
366
+ export const GetServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 70);
207
367
  /**
208
368
  * Describes the message openshell.v1.ListServicesRequest.
209
369
  * Use `create(ListServicesRequestSchema)` to create a new message.
210
370
  */
211
- export const ListServicesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 39);
371
+ export const ListServicesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 71);
212
372
  /**
213
373
  * Describes the message openshell.v1.ListServicesResponse.
214
374
  * Use `create(ListServicesResponseSchema)` to create a new message.
215
375
  */
216
- export const ListServicesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 40);
376
+ export const ListServicesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 72);
217
377
  /**
218
378
  * Describes the message openshell.v1.DeleteServiceRequest.
219
379
  * Use `create(DeleteServiceRequestSchema)` to create a new message.
220
380
  */
221
- export const DeleteServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 41);
381
+ export const DeleteServiceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 73);
222
382
  /**
223
383
  * Describes the message openshell.v1.DeleteServiceResponse.
224
384
  * Use `create(DeleteServiceResponseSchema)` to create a new message.
225
385
  */
226
- export const DeleteServiceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 42);
386
+ export const DeleteServiceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 74);
227
387
  /**
228
388
  * Describes the message openshell.v1.ServiceEndpoint.
229
389
  * Use `create(ServiceEndpointSchema)` to create a new message.
230
390
  */
231
- export const ServiceEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 43);
391
+ export const ServiceEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 75);
232
392
  /**
233
393
  * Describes the message openshell.v1.ServiceEndpointResponse.
234
394
  * Use `create(ServiceEndpointResponseSchema)` to create a new message.
235
395
  */
236
- export const ServiceEndpointResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 44);
396
+ export const ServiceEndpointResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 76);
237
397
  /**
238
398
  * Describes the message openshell.v1.RevokeSshSessionRequest.
239
399
  * Use `create(RevokeSshSessionRequestSchema)` to create a new message.
240
400
  */
241
- export const RevokeSshSessionRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 45);
401
+ export const RevokeSshSessionRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 77);
242
402
  /**
243
403
  * Describes the message openshell.v1.RevokeSshSessionResponse.
244
404
  * Use `create(RevokeSshSessionResponseSchema)` to create a new message.
245
405
  */
246
- export const RevokeSshSessionResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 46);
406
+ export const RevokeSshSessionResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 78);
247
407
  /**
248
408
  * Describes the message openshell.v1.ExecSandboxRequest.
249
409
  * Use `create(ExecSandboxRequestSchema)` to create a new message.
250
410
  */
251
- export const ExecSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 47);
411
+ export const ExecSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 79);
252
412
  /**
253
413
  * Describes the message openshell.v1.ExecSandboxStdout.
254
414
  * Use `create(ExecSandboxStdoutSchema)` to create a new message.
255
415
  */
256
- export const ExecSandboxStdoutSchema = /*@__PURE__*/ messageDesc(file_openshell, 48);
416
+ export const ExecSandboxStdoutSchema = /*@__PURE__*/ messageDesc(file_openshell, 80);
257
417
  /**
258
418
  * Describes the message openshell.v1.ExecSandboxStderr.
259
419
  * Use `create(ExecSandboxStderrSchema)` to create a new message.
260
420
  */
261
- export const ExecSandboxStderrSchema = /*@__PURE__*/ messageDesc(file_openshell, 49);
421
+ export const ExecSandboxStderrSchema = /*@__PURE__*/ messageDesc(file_openshell, 81);
262
422
  /**
263
423
  * Describes the message openshell.v1.ExecSandboxExit.
264
424
  * Use `create(ExecSandboxExitSchema)` to create a new message.
265
425
  */
266
- export const ExecSandboxExitSchema = /*@__PURE__*/ messageDesc(file_openshell, 50);
426
+ export const ExecSandboxExitSchema = /*@__PURE__*/ messageDesc(file_openshell, 82);
267
427
  /**
268
428
  * Describes the message openshell.v1.ExecSandboxEvent.
269
429
  * Use `create(ExecSandboxEventSchema)` to create a new message.
270
430
  */
271
- export const ExecSandboxEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 51);
431
+ export const ExecSandboxEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 83);
272
432
  /**
273
433
  * Describes the message openshell.v1.TcpForwardInit.
274
434
  * Use `create(TcpForwardInitSchema)` to create a new message.
275
435
  */
276
- export const TcpForwardInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 52);
436
+ export const TcpForwardInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 84);
277
437
  /**
278
438
  * Describes the message openshell.v1.TcpForwardFrame.
279
439
  * Use `create(TcpForwardFrameSchema)` to create a new message.
280
440
  */
281
- export const TcpForwardFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 53);
441
+ export const TcpForwardFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 85);
282
442
  /**
283
443
  * Describes the message openshell.v1.ExecSandboxInput.
284
444
  * Use `create(ExecSandboxInputSchema)` to create a new message.
285
445
  */
286
- export const ExecSandboxInputSchema = /*@__PURE__*/ messageDesc(file_openshell, 54);
446
+ export const ExecSandboxInputSchema = /*@__PURE__*/ messageDesc(file_openshell, 86);
287
447
  /**
288
448
  * Describes the message openshell.v1.ExecSandboxWindowResize.
289
449
  * Use `create(ExecSandboxWindowResizeSchema)` to create a new message.
290
450
  */
291
- export const ExecSandboxWindowResizeSchema = /*@__PURE__*/ messageDesc(file_openshell, 55);
451
+ export const ExecSandboxWindowResizeSchema = /*@__PURE__*/ messageDesc(file_openshell, 87);
292
452
  /**
293
453
  * Describes the message openshell.v1.SshSession.
294
454
  * Use `create(SshSessionSchema)` to create a new message.
295
455
  */
296
- export const SshSessionSchema = /*@__PURE__*/ messageDesc(file_openshell, 56);
456
+ export const SshSessionSchema = /*@__PURE__*/ messageDesc(file_openshell, 88);
297
457
  /**
298
458
  * Describes the message openshell.v1.WatchSandboxRequest.
299
459
  * Use `create(WatchSandboxRequestSchema)` to create a new message.
300
460
  */
301
- export const WatchSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 57);
461
+ export const WatchSandboxRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 89);
302
462
  /**
303
463
  * Describes the message openshell.v1.SandboxStreamEvent.
304
464
  * Use `create(SandboxStreamEventSchema)` to create a new message.
305
465
  */
306
- export const SandboxStreamEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 58);
466
+ export const SandboxStreamEventSchema = /*@__PURE__*/ messageDesc(file_openshell, 90);
307
467
  /**
308
468
  * Describes the message openshell.v1.SandboxLogLine.
309
469
  * Use `create(SandboxLogLineSchema)` to create a new message.
310
470
  */
311
- export const SandboxLogLineSchema = /*@__PURE__*/ messageDesc(file_openshell, 59);
471
+ export const SandboxLogLineSchema = /*@__PURE__*/ messageDesc(file_openshell, 91);
312
472
  /**
313
473
  * Describes the message openshell.v1.SandboxStreamWarning.
314
474
  * Use `create(SandboxStreamWarningSchema)` to create a new message.
315
475
  */
316
- export const SandboxStreamWarningSchema = /*@__PURE__*/ messageDesc(file_openshell, 60);
476
+ export const SandboxStreamWarningSchema = /*@__PURE__*/ messageDesc(file_openshell, 92);
317
477
  /**
318
478
  * Describes the message openshell.v1.CreateProviderRequest.
319
479
  * Use `create(CreateProviderRequestSchema)` to create a new message.
320
480
  */
321
- export const CreateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 61);
481
+ export const CreateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 93);
322
482
  /**
323
483
  * Describes the message openshell.v1.GetProviderRequest.
324
484
  * Use `create(GetProviderRequestSchema)` to create a new message.
325
485
  */
326
- export const GetProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 62);
486
+ export const GetProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 94);
327
487
  /**
328
488
  * Describes the message openshell.v1.ListProvidersRequest.
329
489
  * Use `create(ListProvidersRequestSchema)` to create a new message.
330
490
  */
331
- export const ListProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 63);
491
+ export const ListProvidersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
332
492
  /**
333
493
  * Describes the message openshell.v1.UpdateProviderRequest.
334
494
  * Use `create(UpdateProviderRequestSchema)` to create a new message.
335
495
  */
336
- export const UpdateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 64);
496
+ export const UpdateProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
337
497
  /**
338
498
  * Describes the message openshell.v1.DeleteProviderRequest.
339
499
  * Use `create(DeleteProviderRequestSchema)` to create a new message.
340
500
  */
341
- export const DeleteProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 65);
501
+ export const DeleteProviderRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
342
502
  /**
343
503
  * Describes the message openshell.v1.ProviderResponse.
344
504
  * Use `create(ProviderResponseSchema)` to create a new message.
345
505
  */
346
- export const ProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 66);
506
+ export const ProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
347
507
  /**
348
508
  * Describes the message openshell.v1.ListProvidersResponse.
349
509
  * Use `create(ListProvidersResponseSchema)` to create a new message.
350
510
  */
351
- export const ListProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 67);
511
+ export const ListProvidersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
352
512
  /**
353
513
  * Describes the message openshell.v1.ListProviderProfilesRequest.
354
514
  * Use `create(ListProviderProfilesRequestSchema)` to create a new message.
355
515
  */
356
- export const ListProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 68);
516
+ export const ListProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
357
517
  /**
358
518
  * Describes the message openshell.v1.GetProviderProfileRequest.
359
519
  * Use `create(GetProviderProfileRequestSchema)` to create a new message.
360
520
  */
361
- export const GetProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 69);
521
+ export const GetProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
362
522
  /**
363
523
  * Describes the message openshell.v1.ProviderProfileImportItem.
364
524
  * Use `create(ProviderProfileImportItemSchema)` to create a new message.
365
525
  */
366
- export const ProviderProfileImportItemSchema = /*@__PURE__*/ messageDesc(file_openshell, 70);
526
+ export const ProviderProfileImportItemSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
367
527
  /**
368
528
  * Describes the message openshell.v1.ProviderProfileDiagnostic.
369
529
  * Use `create(ProviderProfileDiagnosticSchema)` to create a new message.
370
530
  */
371
- export const ProviderProfileDiagnosticSchema = /*@__PURE__*/ messageDesc(file_openshell, 71);
531
+ export const ProviderProfileDiagnosticSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
372
532
  /**
373
533
  * Describes the message openshell.v1.ProviderCredentialTokenGrantAudienceOverride.
374
534
  * Use `create(ProviderCredentialTokenGrantAudienceOverrideSchema)` to create a new message.
375
535
  */
376
- export const ProviderCredentialTokenGrantAudienceOverrideSchema = /*@__PURE__*/ messageDesc(file_openshell, 72);
536
+ export const ProviderCredentialTokenGrantAudienceOverrideSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
377
537
  /**
378
538
  * Describes the message openshell.v1.ProviderCredentialTokenGrantSubjectToken.
379
539
  * Use `create(ProviderCredentialTokenGrantSubjectTokenSchema)` to create a new message.
380
540
  */
381
- export const ProviderCredentialTokenGrantSubjectTokenSchema = /*@__PURE__*/ messageDesc(file_openshell, 73);
541
+ export const ProviderCredentialTokenGrantSubjectTokenSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
382
542
  /**
383
543
  * Describes the message openshell.v1.ProviderCredentialTokenGrant.
384
544
  * Use `create(ProviderCredentialTokenGrantSchema)` to create a new message.
385
545
  */
386
- export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 74);
546
+ export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
387
547
  /**
388
548
  * Describes the message openshell.v1.ProviderProfileCredential.
389
549
  * Use `create(ProviderProfileCredentialSchema)` to create a new message.
390
550
  */
391
- export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 75);
551
+ export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
392
552
  /**
393
553
  * Describes the message openshell.v1.ProviderCredentialRefreshMaterial.
394
554
  * Use `create(ProviderCredentialRefreshMaterialSchema)` to create a new message.
395
555
  */
396
- export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 76);
556
+ export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
397
557
  /**
398
558
  * Describes the message openshell.v1.ProviderCredentialRefreshOutput.
399
559
  * Use `create(ProviderCredentialRefreshOutputSchema)` to create a new message.
400
560
  */
401
- export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 77);
561
+ export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
402
562
  /**
403
563
  * Describes the message openshell.v1.ProviderCredentialRefresh.
404
564
  * Use `create(ProviderCredentialRefreshSchema)` to create a new message.
405
565
  */
406
- export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 78);
566
+ export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
407
567
  /**
408
568
  * Describes the message openshell.v1.ProviderCredentialRefreshStatus.
409
569
  * Use `create(ProviderCredentialRefreshStatusSchema)` to create a new message.
410
570
  */
411
- export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 79);
571
+ export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
412
572
  /**
413
573
  * Describes the message openshell.v1.ProviderProfileDiscovery.
414
574
  * Use `create(ProviderProfileDiscoverySchema)` to create a new message.
415
575
  */
416
- export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 80);
417
- /**
418
- * Describes the message openshell.v1.StoredProviderCredentialRefreshState.
419
- * Use `create(StoredProviderCredentialRefreshStateSchema)` to create a new message.
420
- */
421
- export const StoredProviderCredentialRefreshStateSchema = /*@__PURE__*/ messageDesc(file_openshell, 81);
422
- /**
423
- * Describes the message openshell.v1.StoredRefreshMaterialDeletion.
424
- * Use `create(StoredRefreshMaterialDeletionSchema)` to create a new message.
425
- */
426
- export const StoredRefreshMaterialDeletionSchema = /*@__PURE__*/ messageDesc(file_openshell, 82);
576
+ export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
427
577
  /**
428
578
  * Describes the message openshell.v1.GetProviderRefreshStatusRequest.
429
579
  * Use `create(GetProviderRefreshStatusRequestSchema)` to create a new message.
430
580
  */
431
- export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 83);
581
+ export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
432
582
  /**
433
583
  * Describes the message openshell.v1.GetProviderRefreshStatusResponse.
434
584
  * Use `create(GetProviderRefreshStatusResponseSchema)` to create a new message.
435
585
  */
436
- export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 84);
586
+ export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
437
587
  /**
438
588
  * Describes the message openshell.v1.ConfigureProviderRefreshRequest.
439
589
  * Use `create(ConfigureProviderRefreshRequestSchema)` to create a new message.
440
590
  */
441
- export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 85);
591
+ export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
442
592
  /**
443
593
  * Describes the message openshell.v1.ConfigureProviderRefreshResponse.
444
594
  * Use `create(ConfigureProviderRefreshResponseSchema)` to create a new message.
445
595
  */
446
- export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 86);
596
+ export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
447
597
  /**
448
598
  * Describes the message openshell.v1.RotateProviderCredentialRequest.
449
599
  * Use `create(RotateProviderCredentialRequestSchema)` to create a new message.
450
600
  */
451
- export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 87);
601
+ export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
452
602
  /**
453
603
  * Describes the message openshell.v1.RotateProviderCredentialResponse.
454
604
  * Use `create(RotateProviderCredentialResponseSchema)` to create a new message.
455
605
  */
456
- export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 88);
606
+ export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
457
607
  /**
458
608
  * Describes the message openshell.v1.DeleteProviderRefreshRequest.
459
609
  * Use `create(DeleteProviderRefreshRequestSchema)` to create a new message.
460
610
  */
461
- export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 89);
611
+ export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
462
612
  /**
463
613
  * Describes the message openshell.v1.DeleteProviderRefreshResponse.
464
614
  * Use `create(DeleteProviderRefreshResponseSchema)` to create a new message.
465
615
  */
466
- export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 90);
616
+ export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
467
617
  /**
468
618
  * Describes the message openshell.v1.ProviderProfile.
469
619
  * Use `create(ProviderProfileSchema)` to create a new message.
470
620
  */
471
- export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 91);
472
- /**
473
- * Describes the message openshell.v1.StoredProviderProfile.
474
- * Use `create(StoredProviderProfileSchema)` to create a new message.
475
- */
476
- export const StoredProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 92);
621
+ export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
477
622
  /**
478
623
  * Describes the message openshell.v1.ProviderProfileResponse.
479
624
  * Use `create(ProviderProfileResponseSchema)` to create a new message.
480
625
  */
481
- export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 93);
626
+ export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
482
627
  /**
483
628
  * Describes the message openshell.v1.ListProviderProfilesResponse.
484
629
  * Use `create(ListProviderProfilesResponseSchema)` to create a new message.
485
630
  */
486
- export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 94);
631
+ export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
487
632
  /**
488
633
  * Describes the message openshell.v1.ImportProviderProfilesRequest.
489
634
  * Use `create(ImportProviderProfilesRequestSchema)` to create a new message.
490
635
  */
491
- export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
636
+ export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
492
637
  /**
493
638
  * Describes the message openshell.v1.ImportProviderProfilesResponse.
494
639
  * Use `create(ImportProviderProfilesResponseSchema)` to create a new message.
495
640
  */
496
- export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
641
+ export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
497
642
  /**
498
643
  * Describes the message openshell.v1.UpdateProviderProfilesRequest.
499
644
  * Use `create(UpdateProviderProfilesRequestSchema)` to create a new message.
500
645
  */
501
- export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
646
+ export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
502
647
  /**
503
648
  * Describes the message openshell.v1.UpdateProviderProfilesResponse.
504
649
  * Use `create(UpdateProviderProfilesResponseSchema)` to create a new message.
505
650
  */
506
- export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
651
+ export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
507
652
  /**
508
653
  * Describes the message openshell.v1.LintProviderProfilesRequest.
509
654
  * Use `create(LintProviderProfilesRequestSchema)` to create a new message.
510
655
  */
511
- export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
656
+ export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
512
657
  /**
513
658
  * Describes the message openshell.v1.LintProviderProfilesResponse.
514
659
  * Use `create(LintProviderProfilesResponseSchema)` to create a new message.
515
660
  */
516
- export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
661
+ export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
517
662
  /**
518
663
  * Describes the message openshell.v1.DeleteProviderResponse.
519
664
  * Use `create(DeleteProviderResponseSchema)` to create a new message.
520
665
  */
521
- export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
666
+ export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
522
667
  /**
523
668
  * Describes the message openshell.v1.DeleteProviderProfileRequest.
524
669
  * Use `create(DeleteProviderProfileRequestSchema)` to create a new message.
525
670
  */
526
- export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
671
+ export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
527
672
  /**
528
673
  * Describes the message openshell.v1.DeleteProviderProfileResponse.
529
674
  * Use `create(DeleteProviderProfileResponseSchema)` to create a new message.
530
675
  */
531
- export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
676
+ export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
532
677
  /**
533
678
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentRequest.
534
679
  * Use `create(GetSandboxProviderEnvironmentRequestSchema)` to create a new message.
535
680
  */
536
- export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
681
+ export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
537
682
  /**
538
683
  * Describes the message openshell.v1.StaticCredentialEndpointBinding.
539
684
  * Use `create(StaticCredentialEndpointBindingSchema)` to create a new message.
540
685
  */
541
- export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
686
+ export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
542
687
  /**
543
688
  * Describes the message openshell.v1.StaticCredentialBinding.
544
689
  * Use `create(StaticCredentialBindingSchema)` to create a new message.
545
690
  */
546
- export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
691
+ export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
547
692
  /**
548
693
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentResponse.
549
694
  * Use `create(GetSandboxProviderEnvironmentResponseSchema)` to create a new message.
550
695
  */
551
- export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
696
+ export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
552
697
  /**
553
698
  * Describes the message openshell.v1.ExchangeProviderSubjectTokenRequest.
554
699
  * Use `create(ExchangeProviderSubjectTokenRequestSchema)` to create a new message.
555
700
  */
556
- export const ExchangeProviderSubjectTokenRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
701
+ export const ExchangeProviderSubjectTokenRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
557
702
  /**
558
703
  * Describes the message openshell.v1.ExchangeProviderSubjectTokenResponse.
559
704
  * Use `create(ExchangeProviderSubjectTokenResponseSchema)` to create a new message.
560
705
  */
561
- export const ExchangeProviderSubjectTokenResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
706
+ export const ExchangeProviderSubjectTokenResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
562
707
  /**
563
708
  * Describes the message openshell.v1.UpdateConfigRequest.
564
709
  * Use `create(UpdateConfigRequestSchema)` to create a new message.
565
710
  */
566
- export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
711
+ export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
567
712
  /**
568
713
  * Describes the message openshell.v1.PolicyMergeOperation.
569
714
  * Use `create(PolicyMergeOperationSchema)` to create a new message.
570
715
  */
571
- export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
716
+ export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
572
717
  /**
573
718
  * Describes the message openshell.v1.AddNetworkRule.
574
719
  * Use `create(AddNetworkRuleSchema)` to create a new message.
575
720
  */
576
- export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
721
+ export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
577
722
  /**
578
723
  * Describes the message openshell.v1.RemoveNetworkEndpoint.
579
724
  * Use `create(RemoveNetworkEndpointSchema)` to create a new message.
580
725
  */
581
- export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
726
+ export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
582
727
  /**
583
728
  * Describes the message openshell.v1.RemoveNetworkRule.
584
729
  * Use `create(RemoveNetworkRuleSchema)` to create a new message.
585
730
  */
586
- export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
731
+ export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
732
+ /**
733
+ * Describes the message openshell.v1.L7RuleTarget.
734
+ * Use `create(L7RuleTargetSchema)` to create a new message.
735
+ */
736
+ export const L7RuleTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
587
737
  /**
588
738
  * Describes the message openshell.v1.AddDenyRules.
589
739
  * Use `create(AddDenyRulesSchema)` to create a new message.
590
740
  */
591
- export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
741
+ export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
592
742
  /**
593
743
  * Describes the message openshell.v1.AddAllowRules.
594
744
  * Use `create(AddAllowRulesSchema)` to create a new message.
595
745
  */
596
- export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
746
+ export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
597
747
  /**
598
748
  * Describes the message openshell.v1.RemoveNetworkBinary.
599
749
  * Use `create(RemoveNetworkBinarySchema)` to create a new message.
600
750
  */
601
- export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
751
+ export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
602
752
  /**
603
753
  * Describes the message openshell.v1.UpdateConfigResponse.
604
754
  * Use `create(UpdateConfigResponseSchema)` to create a new message.
605
755
  */
606
- export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
756
+ export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
607
757
  /**
608
758
  * Describes the message openshell.v1.GetSandboxPolicyStatusRequest.
609
759
  * Use `create(GetSandboxPolicyStatusRequestSchema)` to create a new message.
610
760
  */
611
- export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
761
+ export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
612
762
  /**
613
763
  * Describes the message openshell.v1.GetSandboxPolicyStatusResponse.
614
764
  * Use `create(GetSandboxPolicyStatusResponseSchema)` to create a new message.
615
765
  */
616
- export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
766
+ export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
617
767
  /**
618
768
  * Describes the message openshell.v1.ListSandboxPoliciesRequest.
619
769
  * Use `create(ListSandboxPoliciesRequestSchema)` to create a new message.
620
770
  */
621
- export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
771
+ export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
622
772
  /**
623
773
  * Describes the message openshell.v1.ListSandboxPoliciesResponse.
624
774
  * Use `create(ListSandboxPoliciesResponseSchema)` to create a new message.
625
775
  */
626
- export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
776
+ export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
627
777
  /**
628
778
  * Describes the message openshell.v1.ReportPolicyStatusRequest.
629
779
  * Use `create(ReportPolicyStatusRequestSchema)` to create a new message.
630
780
  */
631
- export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
781
+ export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
632
782
  /**
633
783
  * Describes the message openshell.v1.ReportPolicyStatusResponse.
634
784
  * Use `create(ReportPolicyStatusResponseSchema)` to create a new message.
635
785
  */
636
- export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
786
+ export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
787
+ /**
788
+ * Describes the message openshell.v1.SandboxConfigurationAdmission.
789
+ * Use `create(SandboxConfigurationAdmissionSchema)` to create a new message.
790
+ */
791
+ export const SandboxConfigurationAdmissionSchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
792
+ /**
793
+ * Describes the message openshell.v1.ReportSandboxConfigurationRequest.
794
+ * Use `create(ReportSandboxConfigurationRequestSchema)` to create a new message.
795
+ */
796
+ export const ReportSandboxConfigurationRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
797
+ /**
798
+ * Describes the message openshell.v1.ReportSandboxConfigurationResponse.
799
+ * Use `create(ReportSandboxConfigurationResponseSchema)` to create a new message.
800
+ */
801
+ export const ReportSandboxConfigurationResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
637
802
  /**
638
803
  * Describes the message openshell.v1.SandboxPolicyRevision.
639
804
  * Use `create(SandboxPolicyRevisionSchema)` to create a new message.
640
805
  */
641
- export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
806
+ export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
642
807
  /**
643
808
  * Describes the message openshell.v1.GetSandboxLogsRequest.
644
809
  * Use `create(GetSandboxLogsRequestSchema)` to create a new message.
645
810
  */
646
- export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
811
+ export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
647
812
  /**
648
813
  * Describes the message openshell.v1.PushSandboxLogsRequest.
649
814
  * Use `create(PushSandboxLogsRequestSchema)` to create a new message.
650
815
  */
651
- export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
816
+ export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
652
817
  /**
653
818
  * Describes the message openshell.v1.PushSandboxLogsResponse.
654
819
  * Use `create(PushSandboxLogsResponseSchema)` to create a new message.
655
820
  */
656
- export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
821
+ export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
657
822
  /**
658
823
  * Describes the message openshell.v1.GetSandboxLogsResponse.
659
824
  * Use `create(GetSandboxLogsResponseSchema)` to create a new message.
660
825
  */
661
- export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
826
+ export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
662
827
  /**
663
828
  * Describes the message openshell.v1.SupervisorMessage.
664
829
  * Use `create(SupervisorMessageSchema)` to create a new message.
665
830
  */
666
- export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
831
+ export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
667
832
  /**
668
833
  * Describes the message openshell.v1.GatewayMessage.
669
834
  * Use `create(GatewayMessageSchema)` to create a new message.
670
835
  */
671
- export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
836
+ export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
672
837
  /**
673
838
  * Describes the message openshell.v1.SupervisorHello.
674
839
  * Use `create(SupervisorHelloSchema)` to create a new message.
675
840
  */
676
- export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
841
+ export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
677
842
  /**
678
843
  * Describes the message openshell.v1.SessionAccepted.
679
844
  * Use `create(SessionAcceptedSchema)` to create a new message.
680
845
  */
681
- export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
846
+ export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
682
847
  /**
683
848
  * Describes the message openshell.v1.SessionRejected.
684
849
  * Use `create(SessionRejectedSchema)` to create a new message.
685
850
  */
686
- export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
851
+ export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
687
852
  /**
688
853
  * Describes the message openshell.v1.SupervisorHeartbeat.
689
854
  * Use `create(SupervisorHeartbeatSchema)` to create a new message.
690
855
  */
691
- export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
856
+ export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
692
857
  /**
693
858
  * Describes the message openshell.v1.GatewayHeartbeat.
694
859
  * Use `create(GatewayHeartbeatSchema)` to create a new message.
695
860
  */
696
- export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
861
+ export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
697
862
  /**
698
863
  * Describes the message openshell.v1.ReportMainProcessExitRequest.
699
864
  * Use `create(ReportMainProcessExitRequestSchema)` to create a new message.
700
865
  */
701
- export const ReportMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
866
+ export const ReportMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
702
867
  /**
703
868
  * Describes the message openshell.v1.ReportMainProcessExitResponse.
704
869
  * Use `create(ReportMainProcessExitResponseSchema)` to create a new message.
705
870
  */
706
- export const ReportMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
871
+ export const ReportMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
872
+ /**
873
+ * Describes the message openshell.v1.FinalizeMainProcessExitRequest.
874
+ * Use `create(FinalizeMainProcessExitRequestSchema)` to create a new message.
875
+ */
876
+ export const FinalizeMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
877
+ /**
878
+ * Describes the message openshell.v1.FinalizeMainProcessExitResponse.
879
+ * Use `create(FinalizeMainProcessExitResponseSchema)` to create a new message.
880
+ */
881
+ export const FinalizeMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
707
882
  /**
708
883
  * Describes the message openshell.v1.RelayOpen.
709
884
  * Use `create(RelayOpenSchema)` to create a new message.
710
885
  */
711
- export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
886
+ export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
712
887
  /**
713
888
  * Describes the message openshell.v1.SshRelayTarget.
714
889
  * Use `create(SshRelayTargetSchema)` to create a new message.
715
890
  */
716
- export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
891
+ export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
717
892
  /**
718
893
  * Describes the message openshell.v1.TcpRelayTarget.
719
894
  * Use `create(TcpRelayTargetSchema)` to create a new message.
720
895
  */
721
- export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
896
+ export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
722
897
  /**
723
898
  * Describes the message openshell.v1.RelayInit.
724
899
  * Use `create(RelayInitSchema)` to create a new message.
725
900
  */
726
- export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
901
+ export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
727
902
  /**
728
903
  * Describes the message openshell.v1.RelayFrame.
729
904
  * Use `create(RelayFrameSchema)` to create a new message.
730
905
  */
731
- export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
906
+ export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
907
+ /**
908
+ * Describes the message openshell.v1.PeerRelayInit.
909
+ * Use `create(PeerRelayInitSchema)` to create a new message.
910
+ */
911
+ export const PeerRelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
912
+ /**
913
+ * Describes the message openshell.v1.PeerRelayFrame.
914
+ * Use `create(PeerRelayFrameSchema)` to create a new message.
915
+ */
916
+ export const PeerRelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
732
917
  /**
733
918
  * Describes the message openshell.v1.RelayOpenResult.
734
919
  * Use `create(RelayOpenResultSchema)` to create a new message.
735
920
  */
736
- export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
921
+ export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
737
922
  /**
738
923
  * Describes the message openshell.v1.RelayClose.
739
924
  * Use `create(RelayCloseSchema)` to create a new message.
740
925
  */
741
- export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
926
+ export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
742
927
  /**
743
928
  * Describes the message openshell.v1.L7RequestSample.
744
929
  * Use `create(L7RequestSampleSchema)` to create a new message.
745
930
  */
746
- export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
931
+ export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
747
932
  /**
748
933
  * Describes the message openshell.v1.DenialSummary.
749
934
  * Use `create(DenialSummarySchema)` to create a new message.
750
935
  */
751
- export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
936
+ export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
752
937
  /**
753
938
  * Describes the message openshell.v1.DenialGroupCount.
754
939
  * Use `create(DenialGroupCountSchema)` to create a new message.
755
940
  */
756
- export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
941
+ export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
757
942
  /**
758
943
  * Describes the message openshell.v1.NetworkActivitySummary.
759
944
  * Use `create(NetworkActivitySummarySchema)` to create a new message.
760
945
  */
761
- export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
946
+ export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 186);
762
947
  /**
763
948
  * Describes the message openshell.v1.PolicyChunk.
764
949
  * Use `create(PolicyChunkSchema)` to create a new message.
765
950
  */
766
- export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
951
+ export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 187);
767
952
  /**
768
953
  * Describes the message openshell.v1.DraftPolicyUpdate.
769
954
  * Use `create(DraftPolicyUpdateSchema)` to create a new message.
770
955
  */
771
- export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
956
+ export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 188);
772
957
  /**
773
958
  * Describes the message openshell.v1.SubmitPolicyAnalysisRequest.
774
959
  * Use `create(SubmitPolicyAnalysisRequestSchema)` to create a new message.
775
960
  */
776
- export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
961
+ export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 189);
777
962
  /**
778
963
  * Describes the message openshell.v1.SubmitPolicyAnalysisResponse.
779
964
  * Use `create(SubmitPolicyAnalysisResponseSchema)` to create a new message.
780
965
  */
781
- export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
966
+ export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 190);
782
967
  /**
783
968
  * Describes the message openshell.v1.GetDraftPolicyRequest.
784
969
  * Use `create(GetDraftPolicyRequestSchema)` to create a new message.
785
970
  */
786
- export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
971
+ export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 191);
787
972
  /**
788
973
  * Describes the message openshell.v1.GetDraftPolicyResponse.
789
974
  * Use `create(GetDraftPolicyResponseSchema)` to create a new message.
790
975
  */
791
- export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
976
+ export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 192);
792
977
  /**
793
978
  * Describes the message openshell.v1.ApproveDraftChunkRequest.
794
979
  * Use `create(ApproveDraftChunkRequestSchema)` to create a new message.
795
980
  */
796
- export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
981
+ export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 193);
797
982
  /**
798
983
  * Describes the message openshell.v1.ApproveDraftChunkResponse.
799
984
  * Use `create(ApproveDraftChunkResponseSchema)` to create a new message.
800
985
  */
801
- export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
986
+ export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 194);
802
987
  /**
803
988
  * Describes the message openshell.v1.RejectDraftChunkRequest.
804
989
  * Use `create(RejectDraftChunkRequestSchema)` to create a new message.
805
990
  */
806
- export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
991
+ export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 195);
807
992
  /**
808
993
  * Describes the message openshell.v1.RejectDraftChunkResponse.
809
994
  * Use `create(RejectDraftChunkResponseSchema)` to create a new message.
810
995
  */
811
- export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
996
+ export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 196);
812
997
  /**
813
998
  * Describes the message openshell.v1.DraftChunkApproval.
814
999
  * Use `create(DraftChunkApprovalSchema)` to create a new message.
815
1000
  */
816
- export const DraftChunkApprovalSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
1001
+ export const DraftChunkApprovalSchema = /*@__PURE__*/ messageDesc(file_openshell, 197);
817
1002
  /**
818
1003
  * Describes the message openshell.v1.ApproveAllDraftChunksRequest.
819
1004
  * Use `create(ApproveAllDraftChunksRequestSchema)` to create a new message.
820
1005
  */
821
- export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
1006
+ export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 198);
822
1007
  /**
823
1008
  * Describes the message openshell.v1.ApproveAllDraftChunksResponse.
824
1009
  * Use `create(ApproveAllDraftChunksResponseSchema)` to create a new message.
825
1010
  */
826
- export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
1011
+ export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 199);
827
1012
  /**
828
1013
  * Describes the message openshell.v1.EditDraftChunkRequest.
829
1014
  * Use `create(EditDraftChunkRequestSchema)` to create a new message.
830
1015
  */
831
- export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
1016
+ export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 200);
832
1017
  /**
833
1018
  * Describes the message openshell.v1.EditDraftChunkResponse.
834
1019
  * Use `create(EditDraftChunkResponseSchema)` to create a new message.
835
1020
  */
836
- export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
1021
+ export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 201);
837
1022
  /**
838
1023
  * Describes the message openshell.v1.UndoDraftChunkRequest.
839
1024
  * Use `create(UndoDraftChunkRequestSchema)` to create a new message.
840
1025
  */
841
- export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
1026
+ export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 202);
842
1027
  /**
843
1028
  * Describes the message openshell.v1.UndoDraftChunkResponse.
844
1029
  * Use `create(UndoDraftChunkResponseSchema)` to create a new message.
845
1030
  */
846
- export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
1031
+ export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 203);
847
1032
  /**
848
1033
  * Describes the message openshell.v1.ClearDraftChunksRequest.
849
1034
  * Use `create(ClearDraftChunksRequestSchema)` to create a new message.
850
1035
  */
851
- export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
1036
+ export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 204);
852
1037
  /**
853
1038
  * Describes the message openshell.v1.ClearDraftChunksResponse.
854
1039
  * Use `create(ClearDraftChunksResponseSchema)` to create a new message.
855
1040
  */
856
- export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
1041
+ export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 205);
857
1042
  /**
858
1043
  * Describes the message openshell.v1.GetDraftHistoryRequest.
859
1044
  * Use `create(GetDraftHistoryRequestSchema)` to create a new message.
860
1045
  */
861
- export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
1046
+ export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 206);
862
1047
  /**
863
1048
  * Describes the message openshell.v1.DraftHistoryEntry.
864
1049
  * Use `create(DraftHistoryEntrySchema)` to create a new message.
865
1050
  */
866
- export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
1051
+ export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 207);
867
1052
  /**
868
1053
  * Describes the message openshell.v1.GetDraftHistoryResponse.
869
1054
  * Use `create(GetDraftHistoryResponseSchema)` to create a new message.
870
1055
  */
871
- export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
872
- /**
873
- * Describes the message openshell.v1.PolicyRevisionPayload.
874
- * Use `create(PolicyRevisionPayloadSchema)` to create a new message.
875
- */
876
- export const PolicyRevisionPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
877
- /**
878
- * Describes the message openshell.v1.DraftChunkPayload.
879
- * Use `create(DraftChunkPayloadSchema)` to create a new message.
880
- */
881
- export const DraftChunkPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
882
- /**
883
- * Describes the message openshell.v1.StoredPolicyRevision.
884
- * Use `create(StoredPolicyRevisionSchema)` to create a new message.
885
- */
886
- export const StoredPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
887
- /**
888
- * Describes the message openshell.v1.StoredDraftChunk.
889
- * Use `create(StoredDraftChunkSchema)` to create a new message.
890
- */
891
- export const StoredDraftChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
1056
+ export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 208);
892
1057
  /**
893
1058
  * Describes the message openshell.v1.CreateWorkspaceRequest.
894
1059
  * Use `create(CreateWorkspaceRequestSchema)` to create a new message.
895
1060
  */
896
- export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
1061
+ export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 209);
897
1062
  /**
898
1063
  * Describes the message openshell.v1.CreateWorkspaceResponse.
899
1064
  * Use `create(CreateWorkspaceResponseSchema)` to create a new message.
900
1065
  */
901
- export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
1066
+ export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 210);
902
1067
  /**
903
1068
  * Describes the message openshell.v1.GetWorkspaceRequest.
904
1069
  * Use `create(GetWorkspaceRequestSchema)` to create a new message.
905
1070
  */
906
- export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
1071
+ export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 211);
907
1072
  /**
908
1073
  * Describes the message openshell.v1.GetWorkspaceResponse.
909
1074
  * Use `create(GetWorkspaceResponseSchema)` to create a new message.
910
1075
  */
911
- export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
1076
+ export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 212);
912
1077
  /**
913
1078
  * Describes the message openshell.v1.ListWorkspacesRequest.
914
1079
  * Use `create(ListWorkspacesRequestSchema)` to create a new message.
915
1080
  */
916
- export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
1081
+ export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 213);
917
1082
  /**
918
1083
  * Describes the message openshell.v1.ListWorkspacesResponse.
919
1084
  * Use `create(ListWorkspacesResponseSchema)` to create a new message.
920
1085
  */
921
- export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
1086
+ export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 214);
922
1087
  /**
923
1088
  * Describes the message openshell.v1.DeleteWorkspaceRequest.
924
1089
  * Use `create(DeleteWorkspaceRequestSchema)` to create a new message.
925
1090
  */
926
- export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
1091
+ export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 215);
927
1092
  /**
928
1093
  * Describes the message openshell.v1.DeleteWorkspaceResponse.
929
1094
  * Use `create(DeleteWorkspaceResponseSchema)` to create a new message.
930
1095
  */
931
- export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
1096
+ export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 216);
932
1097
  /**
933
1098
  * Describes the message openshell.v1.WorkspaceMember.
934
1099
  * Use `create(WorkspaceMemberSchema)` to create a new message.
935
1100
  */
936
- export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
1101
+ export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 217);
937
1102
  /**
938
1103
  * Describes the message openshell.v1.AddWorkspaceMemberRequest.
939
1104
  * Use `create(AddWorkspaceMemberRequestSchema)` to create a new message.
940
1105
  */
941
- export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
1106
+ export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 218);
942
1107
  /**
943
1108
  * Describes the message openshell.v1.AddWorkspaceMemberResponse.
944
1109
  * Use `create(AddWorkspaceMemberResponseSchema)` to create a new message.
945
1110
  */
946
- export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 186);
1111
+ export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 219);
947
1112
  /**
948
1113
  * Describes the message openshell.v1.RemoveWorkspaceMemberRequest.
949
1114
  * Use `create(RemoveWorkspaceMemberRequestSchema)` to create a new message.
950
1115
  */
951
- export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 187);
1116
+ export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 220);
952
1117
  /**
953
1118
  * Describes the message openshell.v1.RemoveWorkspaceMemberResponse.
954
1119
  * Use `create(RemoveWorkspaceMemberResponseSchema)` to create a new message.
955
1120
  */
956
- export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 188);
1121
+ export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 221);
957
1122
  /**
958
1123
  * Describes the message openshell.v1.ListWorkspaceMembersRequest.
959
1124
  * Use `create(ListWorkspaceMembersRequestSchema)` to create a new message.
960
1125
  */
961
- export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 189);
1126
+ export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 222);
962
1127
  /**
963
1128
  * Describes the message openshell.v1.ListWorkspaceMembersResponse.
964
1129
  * Use `create(ListWorkspaceMembersResponseSchema)` to create a new message.
965
1130
  */
966
- export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 190);
1131
+ export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 223);
967
1132
  /**
968
1133
  * Describes the message openshell.v1.ExtensionServiceCredential.
969
1134
  * Use `create(ExtensionServiceCredentialSchema)` to create a new message.
970
1135
  */
971
- export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 191);
1136
+ export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 224);
1137
+ /**
1138
+ * Describes the message openshell.v1.EndpointObservation.
1139
+ * Use `create(EndpointObservationSchema)` to create a new message.
1140
+ */
1141
+ export const EndpointObservationSchema = /*@__PURE__*/ messageDesc(file_openshell, 225);
1142
+ /**
1143
+ * Describes the message openshell.v1.ReportEndpointStatusRequest.
1144
+ * Use `create(ReportEndpointStatusRequestSchema)` to create a new message.
1145
+ */
1146
+ export const ReportEndpointStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 226);
1147
+ /**
1148
+ * Describes the message openshell.v1.ReportEndpointStatusResponse.
1149
+ * Use `create(ReportEndpointStatusResponseSchema)` to create a new message.
1150
+ */
1151
+ export const ReportEndpointStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 227);
1152
+ /**
1153
+ * Describes the message openshell.v1.EndpointStatus.
1154
+ * Use `create(EndpointStatusSchema)` to create a new message.
1155
+ */
1156
+ export const EndpointStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 228);
1157
+ /**
1158
+ * Describes the message openshell.v1.SandboxProvisioning.
1159
+ * Use `create(SandboxProvisioningSchema)` to create a new message.
1160
+ */
1161
+ export const SandboxProvisioningSchema = /*@__PURE__*/ messageDesc(file_openshell, 229);
1162
+ /**
1163
+ * Describes the message openshell.v1.SandboxServiceExposure.
1164
+ * Use `create(SandboxServiceExposureSchema)` to create a new message.
1165
+ */
1166
+ export const SandboxServiceExposureSchema = /*@__PURE__*/ messageDesc(file_openshell, 230);
1167
+ /**
1168
+ * @generated from enum openshell.v1.ExtensionKind
1169
+ */
1170
+ export var ExtensionKind;
1171
+ (function (ExtensionKind) {
1172
+ /**
1173
+ * @generated from enum value: EXTENSION_KIND_UNSPECIFIED = 0;
1174
+ */
1175
+ ExtensionKind[ExtensionKind["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1176
+ /**
1177
+ * @generated from enum value: EXTENSION_KIND_COMPUTE_DRIVER = 1;
1178
+ */
1179
+ ExtensionKind[ExtensionKind["COMPUTE_DRIVER"] = 1] = "COMPUTE_DRIVER";
1180
+ /**
1181
+ * @generated from enum value: EXTENSION_KIND_CREDENTIAL_DRIVER = 2;
1182
+ */
1183
+ ExtensionKind[ExtensionKind["CREDENTIAL_DRIVER"] = 2] = "CREDENTIAL_DRIVER";
1184
+ /**
1185
+ * @generated from enum value: EXTENSION_KIND_GATEWAY_INTERCEPTOR = 3;
1186
+ */
1187
+ ExtensionKind[ExtensionKind["GATEWAY_INTERCEPTOR"] = 3] = "GATEWAY_INTERCEPTOR";
1188
+ /**
1189
+ * @generated from enum value: EXTENSION_KIND_SUPERVISOR_MIDDLEWARE = 4;
1190
+ */
1191
+ ExtensionKind[ExtensionKind["SUPERVISOR_MIDDLEWARE"] = 4] = "SUPERVISOR_MIDDLEWARE";
1192
+ })(ExtensionKind || (ExtensionKind = {}));
1193
+ /**
1194
+ * Describes the enum openshell.v1.ExtensionKind.
1195
+ */
1196
+ export const ExtensionKindSchema = /*@__PURE__*/ enumDesc(file_openshell, 0);
972
1197
  /**
973
1198
  * High-level sandbox lifecycle phase derived by the gateway.
974
1199
  *
@@ -1015,11 +1240,284 @@ export var SandboxPhase;
1015
1240
  * @generated from enum value: SANDBOX_PHASE_STARTING = 8;
1016
1241
  */
1017
1242
  SandboxPhase[SandboxPhase["STARTING"] = 8] = "STARTING";
1243
+ /**
1244
+ * The canonical main process exited successfully and its result is final.
1245
+ *
1246
+ * @generated from enum value: SANDBOX_PHASE_COMPLETED = 9;
1247
+ */
1248
+ SandboxPhase[SandboxPhase["COMPLETED"] = 9] = "COMPLETED";
1018
1249
  })(SandboxPhase || (SandboxPhase = {}));
1019
1250
  /**
1020
1251
  * Describes the enum openshell.v1.SandboxPhase.
1021
1252
  */
1022
- export const SandboxPhaseSchema = /*@__PURE__*/ enumDesc(file_openshell, 0);
1253
+ export const SandboxPhaseSchema = /*@__PURE__*/ enumDesc(file_openshell, 1);
1254
+ /**
1255
+ * Operation whose installed authority is tracked by a receipt.
1256
+ *
1257
+ * @generated from enum openshell.v1.ProviderMutationKind
1258
+ */
1259
+ export var ProviderMutationKind;
1260
+ (function (ProviderMutationKind) {
1261
+ /**
1262
+ * @generated from enum value: PROVIDER_MUTATION_KIND_UNSPECIFIED = 0;
1263
+ */
1264
+ ProviderMutationKind[ProviderMutationKind["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1265
+ /**
1266
+ * @generated from enum value: PROVIDER_MUTATION_KIND_ATTACH = 1;
1267
+ */
1268
+ ProviderMutationKind[ProviderMutationKind["ATTACH"] = 1] = "ATTACH";
1269
+ /**
1270
+ * @generated from enum value: PROVIDER_MUTATION_KIND_DETACH = 2;
1271
+ */
1272
+ ProviderMutationKind[ProviderMutationKind["DETACH"] = 2] = "DETACH";
1273
+ /**
1274
+ * @generated from enum value: PROVIDER_MUTATION_KIND_UPDATE = 3;
1275
+ */
1276
+ ProviderMutationKind[ProviderMutationKind["UPDATE"] = 3] = "UPDATE";
1277
+ /**
1278
+ * Reconstructed status for existing desired state without a mutation receipt.
1279
+ *
1280
+ * @generated from enum value: PROVIDER_MUTATION_KIND_OBSERVE = 4;
1281
+ */
1282
+ ProviderMutationKind[ProviderMutationKind["OBSERVE"] = 4] = "OBSERVE";
1283
+ })(ProviderMutationKind || (ProviderMutationKind = {}));
1284
+ /**
1285
+ * Describes the enum openshell.v1.ProviderMutationKind.
1286
+ */
1287
+ export const ProviderMutationKindSchema = /*@__PURE__*/ enumDesc(file_openshell, 2);
1288
+ /**
1289
+ * Readiness states describe persisted intent separately from installed state.
1290
+ *
1291
+ * @generated from enum openshell.v1.ProviderReadinessState
1292
+ */
1293
+ export var ProviderReadinessState;
1294
+ (function (ProviderReadinessState) {
1295
+ /**
1296
+ * @generated from enum value: PROVIDER_READINESS_STATE_UNSPECIFIED = 0;
1297
+ */
1298
+ ProviderReadinessState[ProviderReadinessState["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1299
+ /**
1300
+ * @generated from enum value: PROVIDER_READINESS_STATE_PERSISTED = 1;
1301
+ */
1302
+ ProviderReadinessState[ProviderReadinessState["PERSISTED"] = 1] = "PERSISTED";
1303
+ /**
1304
+ * @generated from enum value: PROVIDER_READINESS_STATE_PENDING = 2;
1305
+ */
1306
+ ProviderReadinessState[ProviderReadinessState["PENDING"] = 2] = "PENDING";
1307
+ /**
1308
+ * @generated from enum value: PROVIDER_READINESS_STATE_READY = 3;
1309
+ */
1310
+ ProviderReadinessState[ProviderReadinessState["READY"] = 3] = "READY";
1311
+ /**
1312
+ * @generated from enum value: PROVIDER_READINESS_STATE_WITHHELD = 4;
1313
+ */
1314
+ ProviderReadinessState[ProviderReadinessState["WITHHELD"] = 4] = "WITHHELD";
1315
+ /**
1316
+ * @generated from enum value: PROVIDER_READINESS_STATE_REVOKED = 5;
1317
+ */
1318
+ ProviderReadinessState[ProviderReadinessState["REVOKED"] = 5] = "REVOKED";
1319
+ /**
1320
+ * @generated from enum value: PROVIDER_READINESS_STATE_FAILED = 6;
1321
+ */
1322
+ ProviderReadinessState[ProviderReadinessState["FAILED"] = 6] = "FAILED";
1323
+ /**
1324
+ * @generated from enum value: PROVIDER_READINESS_STATE_SUPERSEDED = 7;
1325
+ */
1326
+ ProviderReadinessState[ProviderReadinessState["SUPERSEDED"] = 7] = "SUPERSEDED";
1327
+ })(ProviderReadinessState || (ProviderReadinessState = {}));
1328
+ /**
1329
+ * Describes the enum openshell.v1.ProviderReadinessState.
1330
+ */
1331
+ export const ProviderReadinessStateSchema = /*@__PURE__*/ enumDesc(file_openshell, 3);
1332
+ /**
1333
+ * Closed reason categories are safe to display. Raw installation errors are
1334
+ * never part of the readiness protocol.
1335
+ *
1336
+ * @generated from enum openshell.v1.ProviderReadinessReason
1337
+ */
1338
+ export var ProviderReadinessReason;
1339
+ (function (ProviderReadinessReason) {
1340
+ /**
1341
+ * @generated from enum value: PROVIDER_READINESS_REASON_UNSPECIFIED = 0;
1342
+ */
1343
+ ProviderReadinessReason[ProviderReadinessReason["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1344
+ /**
1345
+ * @generated from enum value: PROVIDER_READINESS_REASON_WAITING_FOR_SUPERVISOR = 1;
1346
+ */
1347
+ ProviderReadinessReason[ProviderReadinessReason["WAITING_FOR_SUPERVISOR"] = 1] = "WAITING_FOR_SUPERVISOR";
1348
+ /**
1349
+ * @generated from enum value: PROVIDER_READINESS_REASON_WAITING_FOR_CREDENTIALS = 2;
1350
+ */
1351
+ ProviderReadinessReason[ProviderReadinessReason["WAITING_FOR_CREDENTIALS"] = 2] = "WAITING_FOR_CREDENTIALS";
1352
+ /**
1353
+ * @generated from enum value: PROVIDER_READINESS_REASON_WAITING_FOR_POLICY = 3;
1354
+ */
1355
+ ProviderReadinessReason[ProviderReadinessReason["WAITING_FOR_POLICY"] = 3] = "WAITING_FOR_POLICY";
1356
+ /**
1357
+ * @generated from enum value: PROVIDER_READINESS_REASON_WAITING_FOR_PROCESS = 4;
1358
+ */
1359
+ ProviderReadinessReason[ProviderReadinessReason["WAITING_FOR_PROCESS"] = 4] = "WAITING_FOR_PROCESS";
1360
+ /**
1361
+ * @generated from enum value: PROVIDER_READINESS_REASON_UNSUPPORTED_SUPERVISOR = 5;
1362
+ */
1363
+ ProviderReadinessReason[ProviderReadinessReason["UNSUPPORTED_SUPERVISOR"] = 5] = "UNSUPPORTED_SUPERVISOR";
1364
+ /**
1365
+ * @generated from enum value: PROVIDER_READINESS_REASON_CREDENTIALS_WITHHELD = 6;
1366
+ */
1367
+ ProviderReadinessReason[ProviderReadinessReason["CREDENTIALS_WITHHELD"] = 6] = "CREDENTIALS_WITHHELD";
1368
+ /**
1369
+ * @generated from enum value: PROVIDER_READINESS_REASON_CREDENTIAL_INSTALL_FAILED = 7;
1370
+ */
1371
+ ProviderReadinessReason[ProviderReadinessReason["CREDENTIAL_INSTALL_FAILED"] = 7] = "CREDENTIAL_INSTALL_FAILED";
1372
+ /**
1373
+ * @generated from enum value: PROVIDER_READINESS_REASON_POLICY_ACTIVATION_FAILED = 8;
1374
+ */
1375
+ ProviderReadinessReason[ProviderReadinessReason["POLICY_ACTIVATION_FAILED"] = 8] = "POLICY_ACTIVATION_FAILED";
1376
+ /**
1377
+ * @generated from enum value: PROVIDER_READINESS_REASON_PROCESS_INSTALL_FAILED = 9;
1378
+ */
1379
+ ProviderReadinessReason[ProviderReadinessReason["PROCESS_INSTALL_FAILED"] = 9] = "PROCESS_INSTALL_FAILED";
1380
+ /**
1381
+ * @generated from enum value: PROVIDER_READINESS_REASON_SUPERVISOR_DISCONNECTED = 10;
1382
+ */
1383
+ ProviderReadinessReason[ProviderReadinessReason["SUPERVISOR_DISCONNECTED"] = 10] = "SUPERVISOR_DISCONNECTED";
1384
+ /**
1385
+ * @generated from enum value: PROVIDER_READINESS_REASON_SUPERVISOR_LEASE_EXPIRED = 11;
1386
+ */
1387
+ ProviderReadinessReason[ProviderReadinessReason["SUPERVISOR_LEASE_EXPIRED"] = 11] = "SUPERVISOR_LEASE_EXPIRED";
1388
+ /**
1389
+ * @generated from enum value: PROVIDER_READINESS_REASON_DESIRED_STATE_CHANGED = 12;
1390
+ */
1391
+ ProviderReadinessReason[ProviderReadinessReason["DESIRED_STATE_CHANGED"] = 12] = "DESIRED_STATE_CHANGED";
1392
+ /**
1393
+ * @generated from enum value: PROVIDER_READINESS_REASON_CREDENTIAL_EXPIRED = 13;
1394
+ */
1395
+ ProviderReadinessReason[ProviderReadinessReason["CREDENTIAL_EXPIRED"] = 13] = "CREDENTIAL_EXPIRED";
1396
+ /**
1397
+ * @generated from enum value: PROVIDER_READINESS_REASON_LOCAL_POLICY = 14;
1398
+ */
1399
+ ProviderReadinessReason[ProviderReadinessReason["LOCAL_POLICY"] = 14] = "LOCAL_POLICY";
1400
+ /**
1401
+ * @generated from enum value: PROVIDER_READINESS_REASON_SNAPSHOT_MISMATCH = 15;
1402
+ */
1403
+ ProviderReadinessReason[ProviderReadinessReason["SNAPSHOT_MISMATCH"] = 15] = "SNAPSHOT_MISMATCH";
1404
+ })(ProviderReadinessReason || (ProviderReadinessReason = {}));
1405
+ /**
1406
+ * Describes the enum openshell.v1.ProviderReadinessReason.
1407
+ */
1408
+ export const ProviderReadinessReasonSchema = /*@__PURE__*/ enumDesc(file_openshell, 4);
1409
+ /**
1410
+ * Component whose desired state is tracked by a durable update operation.
1411
+ *
1412
+ * @generated from enum openshell.v1.ConfigComponent
1413
+ */
1414
+ export var ConfigComponent;
1415
+ (function (ConfigComponent) {
1416
+ /**
1417
+ * @generated from enum value: CONFIG_COMPONENT_UNSPECIFIED = 0;
1418
+ */
1419
+ ConfigComponent[ConfigComponent["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1420
+ /**
1421
+ * @generated from enum value: CONFIG_COMPONENT_SANDBOX_CONFIG = 1;
1422
+ */
1423
+ ConfigComponent[ConfigComponent["SANDBOX_CONFIG"] = 1] = "SANDBOX_CONFIG";
1424
+ /**
1425
+ * @generated from enum value: CONFIG_COMPONENT_PROVIDER_ENVIRONMENT = 2;
1426
+ */
1427
+ ConfigComponent[ConfigComponent["PROVIDER_ENVIRONMENT"] = 2] = "PROVIDER_ENVIRONMENT";
1428
+ })(ConfigComponent || (ConfigComponent = {}));
1429
+ /**
1430
+ * Describes the enum openshell.v1.ConfigComponent.
1431
+ */
1432
+ export const ConfigComponentSchema = /*@__PURE__*/ enumDesc(file_openshell, 5);
1433
+ /**
1434
+ * Result of applying a component revision at its owning runtime boundary.
1435
+ *
1436
+ * @generated from enum openshell.v1.ConfigApplyOutcome
1437
+ */
1438
+ export var ConfigApplyOutcome;
1439
+ (function (ConfigApplyOutcome) {
1440
+ /**
1441
+ * @generated from enum value: CONFIG_APPLY_OUTCOME_UNSPECIFIED = 0;
1442
+ */
1443
+ ConfigApplyOutcome[ConfigApplyOutcome["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1444
+ /**
1445
+ * @generated from enum value: CONFIG_APPLY_OUTCOME_APPLIED = 1;
1446
+ */
1447
+ ConfigApplyOutcome[ConfigApplyOutcome["APPLIED"] = 1] = "APPLIED";
1448
+ /**
1449
+ * @generated from enum value: CONFIG_APPLY_OUTCOME_IGNORED_DUPLICATE = 2;
1450
+ */
1451
+ ConfigApplyOutcome[ConfigApplyOutcome["IGNORED_DUPLICATE"] = 2] = "IGNORED_DUPLICATE";
1452
+ /**
1453
+ * @generated from enum value: CONFIG_APPLY_OUTCOME_IGNORED_STALE = 3;
1454
+ */
1455
+ ConfigApplyOutcome[ConfigApplyOutcome["IGNORED_STALE"] = 3] = "IGNORED_STALE";
1456
+ /**
1457
+ * @generated from enum value: CONFIG_APPLY_OUTCOME_RETAINED_LOCAL_OVERRIDE = 4;
1458
+ */
1459
+ ConfigApplyOutcome[ConfigApplyOutcome["RETAINED_LOCAL_OVERRIDE"] = 4] = "RETAINED_LOCAL_OVERRIDE";
1460
+ /**
1461
+ * @generated from enum value: CONFIG_APPLY_OUTCOME_DEGRADED = 5;
1462
+ */
1463
+ ConfigApplyOutcome[ConfigApplyOutcome["DEGRADED"] = 5] = "DEGRADED";
1464
+ /**
1465
+ * @generated from enum value: CONFIG_APPLY_OUTCOME_FAILED_RETAINED_LAST_KNOWN_GOOD = 6;
1466
+ */
1467
+ ConfigApplyOutcome[ConfigApplyOutcome["FAILED_RETAINED_LAST_KNOWN_GOOD"] = 6] = "FAILED_RETAINED_LAST_KNOWN_GOOD";
1468
+ /**
1469
+ * @generated from enum value: CONFIG_APPLY_OUTCOME_FAILED_CLOSED = 7;
1470
+ */
1471
+ ConfigApplyOutcome[ConfigApplyOutcome["FAILED_CLOSED"] = 7] = "FAILED_CLOSED";
1472
+ /**
1473
+ * @generated from enum value: CONFIG_APPLY_OUTCOME_UNSUPPORTED = 8;
1474
+ */
1475
+ ConfigApplyOutcome[ConfigApplyOutcome["UNSUPPORTED"] = 8] = "UNSUPPORTED";
1476
+ })(ConfigApplyOutcome || (ConfigApplyOutcome = {}));
1477
+ /**
1478
+ * Describes the enum openshell.v1.ConfigApplyOutcome.
1479
+ */
1480
+ export const ConfigApplyOutcomeSchema = /*@__PURE__*/ enumDesc(file_openshell, 6);
1481
+ /**
1482
+ * Durable lifecycle of one desired-state update operation.
1483
+ *
1484
+ * @generated from enum openshell.v1.ConfigUpdateOperationState
1485
+ */
1486
+ export var ConfigUpdateOperationState;
1487
+ (function (ConfigUpdateOperationState) {
1488
+ /**
1489
+ * @generated from enum value: CONFIG_UPDATE_OPERATION_STATE_UNSPECIFIED = 0;
1490
+ */
1491
+ ConfigUpdateOperationState[ConfigUpdateOperationState["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1492
+ /**
1493
+ * @generated from enum value: CONFIG_UPDATE_OPERATION_STATE_PENDING = 1;
1494
+ */
1495
+ ConfigUpdateOperationState[ConfigUpdateOperationState["PENDING"] = 1] = "PENDING";
1496
+ /**
1497
+ * @generated from enum value: CONFIG_UPDATE_OPERATION_STATE_APPLIED = 2;
1498
+ */
1499
+ ConfigUpdateOperationState[ConfigUpdateOperationState["APPLIED"] = 2] = "APPLIED";
1500
+ /**
1501
+ * @generated from enum value: CONFIG_UPDATE_OPERATION_STATE_INACTIVE = 3;
1502
+ */
1503
+ ConfigUpdateOperationState[ConfigUpdateOperationState["INACTIVE"] = 3] = "INACTIVE";
1504
+ /**
1505
+ * @generated from enum value: CONFIG_UPDATE_OPERATION_STATE_FAILED = 4;
1506
+ */
1507
+ ConfigUpdateOperationState[ConfigUpdateOperationState["FAILED"] = 4] = "FAILED";
1508
+ /**
1509
+ * @generated from enum value: CONFIG_UPDATE_OPERATION_STATE_SUPERSEDED = 5;
1510
+ */
1511
+ ConfigUpdateOperationState[ConfigUpdateOperationState["SUPERSEDED"] = 5] = "SUPERSEDED";
1512
+ /**
1513
+ * @generated from enum value: CONFIG_UPDATE_OPERATION_STATE_CANCELLED = 6;
1514
+ */
1515
+ ConfigUpdateOperationState[ConfigUpdateOperationState["CANCELLED"] = 6] = "CANCELLED";
1516
+ })(ConfigUpdateOperationState || (ConfigUpdateOperationState = {}));
1517
+ /**
1518
+ * Describes the enum openshell.v1.ConfigUpdateOperationState.
1519
+ */
1520
+ export const ConfigUpdateOperationStateSchema = /*@__PURE__*/ enumDesc(file_openshell, 7);
1023
1521
  /**
1024
1522
  * Provider credential token grant configuration.
1025
1523
  * When present, the credential is obtained dynamically via OAuth2 grant when needed.
@@ -1044,7 +1542,7 @@ export var ProviderCredentialTokenGrantType;
1044
1542
  /**
1045
1543
  * Describes the enum openshell.v1.ProviderCredentialTokenGrantType.
1046
1544
  */
1047
- export const ProviderCredentialTokenGrantTypeSchema = /*@__PURE__*/ enumDesc(file_openshell, 1);
1545
+ export const ProviderCredentialTokenGrantTypeSchema = /*@__PURE__*/ enumDesc(file_openshell, 8);
1048
1546
  /**
1049
1547
  * @generated from enum openshell.v1.ProviderCredentialRefreshStrategy
1050
1548
  */
@@ -1082,7 +1580,7 @@ export var ProviderCredentialRefreshStrategy;
1082
1580
  /**
1083
1581
  * Describes the enum openshell.v1.ProviderCredentialRefreshStrategy.
1084
1582
  */
1085
- export const ProviderCredentialRefreshStrategySchema = /*@__PURE__*/ enumDesc(file_openshell, 2);
1583
+ export const ProviderCredentialRefreshStrategySchema = /*@__PURE__*/ enumDesc(file_openshell, 9);
1086
1584
  /**
1087
1585
  * Stable provider profile categories used by clients for grouping and filtering.
1088
1586
  *
@@ -1126,7 +1624,33 @@ export var ProviderProfileCategory;
1126
1624
  /**
1127
1625
  * Describes the enum openshell.v1.ProviderProfileCategory.
1128
1626
  */
1129
- export const ProviderProfileCategorySchema = /*@__PURE__*/ enumDesc(file_openshell, 3);
1627
+ export const ProviderProfileCategorySchema = /*@__PURE__*/ enumDesc(file_openshell, 10);
1628
+ /**
1629
+ * @generated from enum openshell.v1.ConfigurationAdmissionState
1630
+ */
1631
+ export var ConfigurationAdmissionState;
1632
+ (function (ConfigurationAdmissionState) {
1633
+ /**
1634
+ * @generated from enum value: CONFIGURATION_ADMISSION_STATE_UNSPECIFIED = 0;
1635
+ */
1636
+ ConfigurationAdmissionState[ConfigurationAdmissionState["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1637
+ /**
1638
+ * @generated from enum value: CONFIGURATION_ADMISSION_STATE_PENDING = 1;
1639
+ */
1640
+ ConfigurationAdmissionState[ConfigurationAdmissionState["PENDING"] = 1] = "PENDING";
1641
+ /**
1642
+ * @generated from enum value: CONFIGURATION_ADMISSION_STATE_ACCEPTED = 2;
1643
+ */
1644
+ ConfigurationAdmissionState[ConfigurationAdmissionState["ACCEPTED"] = 2] = "ACCEPTED";
1645
+ /**
1646
+ * @generated from enum value: CONFIGURATION_ADMISSION_STATE_REJECTED = 3;
1647
+ */
1648
+ ConfigurationAdmissionState[ConfigurationAdmissionState["REJECTED"] = 3] = "REJECTED";
1649
+ })(ConfigurationAdmissionState || (ConfigurationAdmissionState = {}));
1650
+ /**
1651
+ * Describes the enum openshell.v1.ConfigurationAdmissionState.
1652
+ */
1653
+ export const ConfigurationAdmissionStateSchema = /*@__PURE__*/ enumDesc(file_openshell, 11);
1130
1654
  /**
1131
1655
  * Policy load status.
1132
1656
  *
@@ -1152,6 +1676,8 @@ export var PolicyStatus;
1152
1676
  PolicyStatus[PolicyStatus["LOADED"] = 2] = "LOADED";
1153
1677
  /**
1154
1678
  * Sandbox attempted to apply but failed; LKG policy remains active.
1679
+ * ListSandboxPolicies also uses FAILED for historical payloads that are
1680
+ * invalid under the current schema; load_error contains the diagnostic.
1155
1681
  *
1156
1682
  * @generated from enum value: POLICY_STATUS_FAILED = 3;
1157
1683
  */
@@ -1166,7 +1692,7 @@ export var PolicyStatus;
1166
1692
  /**
1167
1693
  * Describes the enum openshell.v1.PolicyStatus.
1168
1694
  */
1169
- export const PolicyStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 4);
1695
+ export const PolicyStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 12);
1170
1696
  /**
1171
1697
  * Service status enum.
1172
1698
  *
@@ -1194,7 +1720,7 @@ export var ServiceStatus;
1194
1720
  /**
1195
1721
  * Describes the enum openshell.v1.ServiceStatus.
1196
1722
  */
1197
- export const ServiceStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 5);
1723
+ export const ServiceStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 13);
1198
1724
  /**
1199
1725
  * Workspace-scoped role for members.
1200
1726
  *
@@ -1218,7 +1744,7 @@ export var WorkspaceRole;
1218
1744
  /**
1219
1745
  * Describes the enum openshell.v1.WorkspaceRole.
1220
1746
  */
1221
- export const WorkspaceRoleSchema = /*@__PURE__*/ enumDesc(file_openshell, 6);
1747
+ export const WorkspaceRoleSchema = /*@__PURE__*/ enumDesc(file_openshell, 14);
1222
1748
  /**
1223
1749
  * Stable recovery action for the most recent provider credential refresh
1224
1750
  * failure. Kept after the pre-existing enums so adding it does not renumber
@@ -1253,7 +1779,109 @@ export var ProviderCredentialRefreshRecoveryAction;
1253
1779
  /**
1254
1780
  * Describes the enum openshell.v1.ProviderCredentialRefreshRecoveryAction.
1255
1781
  */
1256
- export const ProviderCredentialRefreshRecoveryActionSchema = /*@__PURE__*/ enumDesc(file_openshell, 7);
1782
+ export const ProviderCredentialRefreshRecoveryActionSchema = /*@__PURE__*/ enumDesc(file_openshell, 15);
1783
+ /**
1784
+ * Result of a public delete, membership removal, or session revocation.
1785
+ * Default requests return NOT_FOUND for a missing target. With allow_missing,
1786
+ * only a missing target becomes ALREADY_ABSENT; parent lookup, authorization,
1787
+ * validation, precondition, and backend errors retain their normal status.
1788
+ * These results describe the targeted resource, not a same-name replacement.
1789
+ *
1790
+ * @generated from enum openshell.v1.DeletionOutcome
1791
+ */
1792
+ export var DeletionOutcome;
1793
+ (function (DeletionOutcome) {
1794
+ /**
1795
+ * No outcome was supplied. Never infer completion from this value.
1796
+ *
1797
+ * @generated from enum value: DELETION_OUTCOME_UNSPECIFIED = 0;
1798
+ */
1799
+ DeletionOutcome[DeletionOutcome["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1800
+ /**
1801
+ * The targeted gateway resource is removed (or the SSH session is revoked).
1802
+ * Downstream platform garbage collection may still be finishing.
1803
+ *
1804
+ * @generated from enum value: DELETION_OUTCOME_COMPLETED = 1;
1805
+ */
1806
+ DeletionOutcome[DeletionOutcome["COMPLETED"] = 1] = "COMPLETED";
1807
+ /**
1808
+ * Sandbox deletion is accepted but its gateway record still exists.
1809
+ * Observe the targeted sandbox ID until it disappears for completion.
1810
+ *
1811
+ * @generated from enum value: DELETION_OUTCOME_ACCEPTED = 2;
1812
+ */
1813
+ DeletionOutcome[DeletionOutcome["ACCEPTED"] = 2] = "ACCEPTED";
1814
+ /**
1815
+ * The target did not exist and allow_missing was true.
1816
+ *
1817
+ * @generated from enum value: DELETION_OUTCOME_ALREADY_ABSENT = 3;
1818
+ */
1819
+ DeletionOutcome[DeletionOutcome["ALREADY_ABSENT"] = 3] = "ALREADY_ABSENT";
1820
+ })(DeletionOutcome || (DeletionOutcome = {}));
1821
+ /**
1822
+ * Describes the enum openshell.v1.DeletionOutcome.
1823
+ */
1824
+ export const DeletionOutcomeSchema = /*@__PURE__*/ enumDesc(file_openshell, 16);
1825
+ /**
1826
+ * Last observed network result for a configured external tool endpoint.
1827
+ * Results describe accepted traffic observations, not present availability.
1828
+ *
1829
+ * @generated from enum openshell.v1.EndpointResult
1830
+ */
1831
+ export var EndpointResult;
1832
+ (function (EndpointResult) {
1833
+ /**
1834
+ * @generated from enum value: ENDPOINT_RESULT_UNSPECIFIED = 0;
1835
+ */
1836
+ EndpointResult[EndpointResult["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1837
+ /**
1838
+ * No exchange has been observed under the current configuration and session.
1839
+ *
1840
+ * @generated from enum value: ENDPOINT_RESULT_NO_OBSERVED_EXCHANGE = 1;
1841
+ */
1842
+ EndpointResult[EndpointResult["NO_OBSERVED_EXCHANGE"] = 1] = "NO_OBSERVED_EXCHANGE";
1843
+ /**
1844
+ * An upstream HTTP status below 400 was received. Its body can still contain
1845
+ * an MCP error; this result does not establish tool-call success.
1846
+ *
1847
+ * @generated from enum value: ENDPOINT_RESULT_HTTP_RESPONSE_RECEIVED = 2;
1848
+ */
1849
+ EndpointResult[EndpointResult["HTTP_RESPONSE_RECEIVED"] = 2] = "HTTP_RESPONSE_RECEIVED";
1850
+ /**
1851
+ * OpenShell policy denied the request locally.
1852
+ *
1853
+ * @generated from enum value: ENDPOINT_RESULT_POLICY_DENIED = 3;
1854
+ */
1855
+ EndpointResult[EndpointResult["POLICY_DENIED"] = 3] = "POLICY_DENIED";
1856
+ /**
1857
+ * An applicable OpenShell-managed credential was unavailable.
1858
+ *
1859
+ * @generated from enum value: ENDPOINT_RESULT_CREDENTIAL_UNAVAILABLE = 4;
1860
+ */
1861
+ EndpointResult[EndpointResult["CREDENTIAL_UNAVAILABLE"] = 4] = "CREDENTIAL_UNAVAILABLE";
1862
+ /**
1863
+ * TLS setup for the upstream connection failed.
1864
+ *
1865
+ * @generated from enum value: ENDPOINT_RESULT_TLS_FAILED = 5;
1866
+ */
1867
+ EndpointResult[EndpointResult["TLS_FAILED"] = 5] = "TLS_FAILED";
1868
+ /**
1869
+ * The upstream transport failed before an HTTP response arrived.
1870
+ *
1871
+ * @generated from enum value: ENDPOINT_RESULT_TRANSPORT_FAILED = 6;
1872
+ */
1873
+ EndpointResult[EndpointResult["TRANSPORT_FAILED"] = 6] = "TRANSPORT_FAILED";
1874
+ /**
1875
+ * The upstream service returned an HTTP rejection.
1876
+ *
1877
+ * @generated from enum value: ENDPOINT_RESULT_UPSTREAM_REJECTED = 7;
1878
+ */
1879
+ EndpointResult[EndpointResult["UPSTREAM_REJECTED"] = 7] = "UPSTREAM_REJECTED";
1880
+ })(EndpointResult || (EndpointResult = {}));
1881
+ /**
1882
+ * Describes the enum openshell.v1.EndpointResult.
1883
+ */
1884
+ export const EndpointResultSchema = /*@__PURE__*/ enumDesc(file_openshell, 17);
1257
1885
  /**
1258
1886
  * OpenShell service provides sandbox, provider, and runtime management capabilities.
1259
1887
  *