@alphauspkgs/blue-sdk-ts 1.0.49 → 1.0.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/ripple/invoicelayout_pb.js +1 -1
- package/api/ripple/invoicelayout_pb.ts +15 -1
- package/billing/v1/billing_pb.js +214 -118
- package/billing/v1/billing_pb.ts +1245 -275
- package/cost/v1/cost_pb.js +66 -56
- package/cost/v1/cost_pb.ts +148 -68
- package/gc/v1/gc_pb.js +224 -135
- package/gc/v1/gc_pb.ts +521 -132
- package/iam/v1/iam_pb.js +1 -1
- package/iam/v1/iam_pb.ts +9 -1
- package/package.json +1 -1
package/cost/v1/cost_pb.ts
CHANGED
|
@@ -49,7 +49,7 @@ import type { Message } from "@bufbuild/protobuf";
|
|
|
49
49
|
* Describes the file cost/v1/cost.proto.
|
|
50
50
|
*/
|
|
51
51
|
export const file_cost_v1_cost: GenFile = /*@__PURE__*/
|
|
52
|
-
fileDesc("ChJjb3N0L3YxL2Nvc3QucHJvdG8SD2JsdWVhcGkuY29zdC52MSJaChhMaXN0UGF5ZXJBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEi4KCmZpZWxkX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIjQKFkdldFBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJIsACChRQYXllckFjY291bnRFeHRlbmRlZBIoCgVwYXllchgBIAEoCzIZLmJsdWVhcGkuYXBpLnJpcHBsZS5QYXllchIOCgZ0YXJnZXQYAiABKAkSDwoHcm9sZUFybhgDIAEoCRISCgpleHRlcm5hbElkGAQgASgJEg8KB3N0YWNrSWQYBSABKAkSEwoLc3RhY2tSZWdpb24YBiABKAkSEwoLdGVtcGxhdGVVcmwYByABKAkSDgoGc3RhdHVzGAggASgJEhMKC2xhc3RVcGRhdGVkGAkgASgJEhIKCmJ1Y2tldE5hbWUYCiABKAkSDgoGcHJlZml4GAsgASgJEhIKCnJlcG9ydE5hbWUYDCABKAkSIAoYZGVmYXVsdENvc3RBY2Nlc3NSb2xlQXJuGA0gASgJEg8KB2N1clR5cGUYDiABKAkiUAojR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEg0KBW1vbnRoGAMgASgJIlUKJEdldFBheWVyQWNjb3VudEltcG9ydEhpc3RvcnlSZXNwb25zZRIKCgJpZBgBIAEoCRINCgVtb250aBgCIAEoCRISCgp0aW1lc3RhbXBzGAMgAygJIjwKHkdldFBheWVyUHJvZm9ybWFSZXBvcnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiVAofR2V0UGF5ZXJQcm9mb3JtYVJlcG9ydHNSZXNwb25zZRIxCgdyZXBvcnRzGAEgAygLMiAuYmx1ZWFwaS5jb3N0LnYxLlByb2Zvcm1hUmVwb3J0cyKbAQoPUHJvZm9ybWFSZXBvcnRzEgoKAmlkGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkSEgoKYnVja2V0TmFtZRgEIAEoCRIOCgZwcmVmaXgYBSABKAkSEgoKcmVwb3J0TmFtZRgGIAEoCRIPCgdyb2xlQXJuGAcgASgJIogBCiNDcmVhdGVQYXllckFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhIKCmJ1Y2tldE5hbWUYAyABKAkSDgoGcHJlZml4GAQgASgJEhIKCnJlcG9ydE5hbWUYBSABKAkSDwoHcm9sZUFybhgGIAEoCSJ1ChlDcmVhdGVQYXllckFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRJICgphd3NPcHRpb25zGAIgASgLMjQuYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZVBheWVyQWNjb3VudFJlcXVlc3RBd3NPcHRpb25zIjcKGURlbGV0ZVBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJImYKE0xpc3RBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSLgoKZmllbGRfbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siXwoRR2V0QWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEi4KCmZpZWxkX21hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIj0KHkNyZWF0ZUFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxIbChNtYW5hZ2VtZW50QWNjb3VudElkGAEgASgJIloKHkNyZWF0ZUFjY291bnRSZXF1ZXN0R2NwT3B0aW9ucxIbChNtYW5hZ2VtZW50QWNjb3VudElkGAEgASgJEhsKE21hbmFnZW1lbnRCaWxsaW5nSWQYAiABKAki2gEKFENyZWF0ZUFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJEg4KBnBhcmVudBgEIAEoCRJDCgphd3NPcHRpb25zGAUgASgLMi8uYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxJDCgpnY3BPcHRpb25zGAYgASgLMi8uYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0R2NwT3B0aW9ucyJAChRVcGRhdGVBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCSIyChREZWxldGVBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiYgoPTGlzdFRhZ3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIPCgdncm91cElkGAIgASgJEi4KCmZpZWxkX21hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIkUKJExpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAki0gEKJUxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2USVQoDYXdzGAEgASgLMkguYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2UuQXdzUnVubmluZ0FjY291bnQaUgoRQXdzUnVubmluZ0FjY291bnQSDQoFbW9udGgYASABKAkSDwoHYWNjb3VudBgCIAEoCRIMCgRkYXRlGAMgASgJEg8KB3N0YXJ0ZWQYBCABKAkiLAoaR2V0Q2FsY3VsYXRvckNvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIk0KG0dldENhbGN1bGF0b3JDb25maWdSZXNwb25zZRIuCgNhd3MYASABKAsyIS5ibHVlYXBpLmFwaS5hd3MuQ2FsY3VsYXRvckNvbmZpZyKpBgogQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMSEQoJYWNjb3VudElkGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSDwoHcGF5ZXJJZBgDIAEoCRJPCgpxdWFsaWZpZXJzGAQgAygLMjsuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBd3NPcHRpb25zLlF1YWxpZmllchJMCghtb2RpZmllchgFIAEoCzI6LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXdzT3B0aW9ucy5Nb2RpZmllchINCgVhZnRlchgGIAEoCRIUCgxjcmVhdGVOZXdSb3cYByABKAgaigEKCVF1YWxpZmllchJRCgNhbmQYASADKAsyRC5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMuUXVhbGlmaWVyLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEa/gIKCE1vZGlmaWVyEg8KB2Zvcm11bGEYASABKAkSawoTZGVzY3JpcHRpb25Nb2RpZmllchgCIAEoCzJOLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXdzT3B0aW9ucy5Nb2RpZmllci5EZXNjcmlwdGlvbk1vZGlmaWVyGvMBChNEZXNjcmlwdGlvbk1vZGlmaWVyEg4KBnByZWZpeBgBIAEoCRIOCgZzdWZmaXgYAiABKAkSDwoHcmVwbGFjZRgDIAEoCRJ2CgxyZXBsYWNlTWF0Y2gYBCADKAsyYC5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMuTW9kaWZpZXIuRGVzY3JpcHRpb25Nb2RpZmllci5SZXBsYWNlTWF0Y2hFbnRyeRozChFSZXBsYWNlTWF0Y2hFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIp8FCiJDYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zEg8KB2dyb3VwSWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCRISCgpjdXN0b21lcklkGAMgASgJEhYKDnN1YnNjcmlwdGlvbklkGAQgASgJEhUKDWVudGl0bGVtZW50SWQYBSABKAkSUQoKcXVhbGlmaWVycxgGIAMoCzI9LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLlF1YWxpZmllchJOCghtb2RpZmllchgHIAEoCzI8LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLk1vZGlmaWVyEg0KBWFmdGVyGAggASgJGowBCglRdWFsaWZpZXISUwoDYW5kGAEgAygLMkYuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBenVyZU9wdGlvbnMuUXVhbGlmaWVyLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEa0gEKCE1vZGlmaWVyEg8KB2Zvcm11bGEYASABKAkSbQoTZGVzY3JpcHRpb25Nb2RpZmllchgCIAEoCzJQLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLk1vZGlmaWVyLkRlc2NyaXB0aW9uTW9kaWZpZXIaRgoTRGVzY3JpcHRpb25Nb2RpZmllchIOCgZwcmVmaXgYASABKAkSDgoGc3VmZml4GAIgASgJEg8KB3JlcGxhY2UYAyABKAki3gEKFkNhbGN1bGF0b3JDb3N0TW9kaWZpZXISCgoCaWQYASABKAkSEgoKY3JlYXRlVGltZRgCIAEoCRISCgp1cGRhdGVUaW1lGAMgASgJEkUKCmF3c09wdGlvbnMYBCABKAsyMS5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMSSQoMYXp1cmVPcHRpb25zGAUgASgLMjMuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBenVyZU9wdGlvbnMiNAoiTGlzdENhbGN1bGF0b3JDb3N0TW9kaWZpZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkixwEKI0NyZWF0ZUNhbGN1bGF0b3JDb3N0TW9kaWZpZXJSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRJFCgphd3NPcHRpb25zGAIgASgLMjEuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBd3NPcHRpb25zEkkKDGF6dXJlT3B0aW9ucxgDIAEoCzIzLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zIpQBCiRDcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVzcG9uc2USNAoDYXdzGAEgAygLMicuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXISNgoFYXp1cmUYAiADKAsyJy5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllciJBCiNEZWxldGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiNgoVSW1wb3J0Q3VyRmlsZXNSZXF1ZXN0Eg0KBW1vbnRoGAEgASgJEg4KBmZpbHRlchgCIAEoCSJ6CghDb3N0SXRlbRIiCgNhd3MYASABKAsyFS5ibHVlYXBpLmFwaS5hd3MuQ29zdBIiCgNnY3AYAiABKAsyFS5ibHVlYXBpLmFwaS5nY3AuQ29zdBImCgVhenVyZRgDIAEoCzIXLmJsdWVhcGkuYXBpLmF6dXJlLkNvc3QiWAofQ2FsY3VsYXRlQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucxINCgVmb3JjZRgBIAEoCBIUCgxhY2NvdW50c09ubHkYAiABKAgSEAoIdGFnc09ubHkYAyABKAgijQEKFUNhbGN1bGF0ZUNvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDwoHZ3JvdXBJZBgCIAEoCRINCgVtb250aBgDIAEoCRJECgphd3NPcHRpb25zGAQgASgLMjAuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0ZUNvc3RzUmVxdWVzdEF3c09wdGlvbnMiUwoeTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIMCgRhc09mGAIgASgJEhMKC2V4Y2x1ZGVEb25lGAMgASgIIksKIkxpc3RDYWxjdWxhdGlvbnNIaXN0b3J5QXdzUmVzcG9uc2USJQoKb3BlcmF0aW9ucxgBIAMoCzIRLnByb3Rvcy5PcGVyYXRpb24iYwofTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXNwb25zZRJACgNhd3MYASABKAsyMy5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlBd3NSZXNwb25zZSK9AQoUQ2FsY3VsYXRpb25zU2NoZWR1bGUSCgoCaWQYASABKAkSEAoIc2NoZWR1bGUYAiABKAkSFQoNc2NoZWR1bGVNYWNybxgIIAEoCRITCgt0YXJnZXRNb250aBgJIAEoCRIPCgduZXh0UnVuGAMgASgJEhsKE25vdGlmaWNhdGlvbkNoYW5uZWwYBCABKAkSDQoFZm9yY2UYBSABKAgSDgoGZHJ5UnVuGAYgASgIEg4KBnN0YXR1cxgHIAEoCSIyCiBMaXN0Q2FsY3VsYXRpb25zU2NoZWR1bGVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiXQohTGlzdENhbGN1bGF0aW9uc1NjaGVkdWxlc1Jlc3BvbnNlEjgKCXNjaGVkdWxlcxgBIAMoCzIlLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdGlvbnNTY2hlZHVsZSKtAQohQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIQCghzY2hlZHVsZRgCIAEoCRIVCg1zY2hlZHVsZU1hY3JvGAYgASgJEhMKC3RhcmdldE1vbnRoGAcgASgJEhsKE25vdGlmaWNhdGlvbkNoYW5uZWwYAyABKAkSDQoFZm9yY2UYBCABKAgSDgoGZHJ5UnVuGAUgASgIIj8KIURlbGV0ZUNhbGN1bGF0aW9uc1NjaGVkdWxlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiggMKGVJlYWRDb3N0QXR0cmlidXRlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJEkkKCmF3c09wdGlvbnMYBiABKAsyNS5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RBdHRyaWJ1dGVzUmVxdWVzdC5Bd3NPcHRpb25zEk0KDGF6dXJlT3B0aW9ucxgHIAEoCzI3LmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdEF0dHJpYnV0ZXNSZXF1ZXN0LkF6dXJlT3B0aW9ucxogCgpBd3NPcHRpb25zEhIKCmRpbWVuc2lvbnMYASABKAkaUQoMQXp1cmVPcHRpb25zEhIKCmN1c3RvbWVySWQYASABKAkSFgoOc3Vic2NyaXB0aW9uSWQYAiABKAkSFQoNZW50aXRsZW1lbnRJZBgDIAEoCSJxChFDb3N0QXR0cmlidXRlSXRlbRIrCgNhd3MYASABKAsyHi5ibHVlYXBpLmFwaS5hd3MuQ29zdEF0dHJpYnV0ZRIvCgVhenVyZRgCIAEoCzIgLmJsdWVhcGkuYXBpLmF6dXJlLkNvc3RBdHRyaWJ1dGUibwoYR2V0Q29zdEF0dHJpYnV0ZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIPCgdncm91cElkGAMgASgJEhEKCWFjY291bnRJZBgEIAEoCRIQCghjYXRlZ29yeRgFIAEoCSJKChlHZXRDb3N0QXR0cmlidXRlc1Jlc3BvbnNlEi0KBWl0ZW1zGAEgAygLMh4uYmx1ZWFwaS5jb3N0LnYxLkNvc3RBdHRyaWJ1dGUiPwoNQ29zdEF0dHJpYnV0ZRIOCgZ2ZW5kb3IYASABKAkSEAoIY2F0ZWdvcnkYAiABKAkSDAoEZGF0YRgDIAMoCSKuAQohUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnNGaWx0ZXJzElYKCmFuZEZpbHRlcnMYASADKAsyQi5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnNGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKxBAoaUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEhUKDWdyb3VwQWNjb3VudHMYCCABKAgSFQoNZ3JvdXBCeVRhZ0tleRgMIAEoCRJDCgdmaWx0ZXJzGAMgAygLMjIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zRmlsdGVycxJKCgp0YWdGaWx0ZXJzGAkgAygLMjYuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zLlRhZ0ZpbHRlcnMSEwoLaW5jbHVkZVRhZ3MYBCABKAgSHQoVaW5jbHVkZUNvc3RDYXRlZ29yaWVzGAUgASgIEhIKCnRvQ3VycmVuY3kYBiABKAkSEwoLZm9yY2VMYXRlc3QYByABKAgSDwoHbm9DYWNoZRgKIAEoCBIaChJpbmNsdWRlQWRqdXN0bWVudHMYCyABKAgamwEKClRhZ0ZpbHRlcnMSWgoKYW5kRmlsdGVycxgBIAMoCzJGLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucy5UYWdGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKxAgoQUmVhZENvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDwoHZ3JvdXBJZBgCIAEoCRIRCglhY2NvdW50SWQYAyABKAkSEQoJc3RhcnRUaW1lGAQgASgJEg8KB2VuZFRpbWUYBSABKAkSPwoKYXdzT3B0aW9ucxgGIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucxI/CgpnY3BPcHRpb25zGAcgASgLMisuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zEkMKDGF6dXJlT3B0aW9ucxgIIAEoCzItLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXp1cmVPcHRpb25zIjYKIFJlYWRBZGp1c3RtZW50c1JlcXVlc3RBd3NPcHRpb25zEhIKCnRvQ3VycmVuY3kYASABKAkitwEKFlJlYWRBZGp1c3RtZW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJEkUKCmF3c09wdGlvbnMYBiABKAsyMS5ibHVlYXBpLmNvc3QudjEuUmVhZEFkanVzdG1lbnRzUmVxdWVzdEF3c09wdGlvbnMijwQKHVJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zEg0KBXRhZ0lkGAEgASgJEhYKDmdyb3VwQnlDb2x1bW5zGAIgASgJEhQKDGdyb3VwQnlNb250aBgDIAEoCBJDCgdmaWx0ZXJzGAQgAygLMjIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zRmlsdGVycxJNCgp0YWdGaWx0ZXJzGAUgAygLMjkuYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zLlRhZ0ZpbHRlcnMSEwoLaW5jbHVkZVRhZ3MYBiABKAgSHQoVaW5jbHVkZUNvc3RDYXRlZ29yaWVzGAcgASgIEhIKCnRvQ3VycmVuY3kYCCABKAkSEwoLZm9yY2VMYXRlc3QYCSABKAgSDwoHbm9DYWNoZRgKIAEoCBIOCgZ0YWdJZHMYCyADKAkangEKClRhZ0ZpbHRlcnMSXQoKYW5kRmlsdGVycxgBIAMoCzJJLmJsdWVhcGkuY29zdC52MS5SZWFkVGFnQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucy5UYWdGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK/AQoTUmVhZFRhZ0Nvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYAiABKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSFQoNZ3JvdXBCeU1vbnRocxgFIAEoCBJCCgphd3NPcHRpb25zGAYgASgLMi4uYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zIn4KFlJlYWROb25UYWdDb3N0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhEKCXN0YXJ0VGltZRgDIAEoCRIPCgdlbmRUaW1lGAQgASgJEhUKDWdyb3VwQnlNb250aHMYBSABKAgihAEKE0dldEZvcmVjYXN0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhEKCWZyZXF1ZW5jeRgDIAEoCRINCgVsZXZlbBgEIAEoCRIQCghmcm9tRGF0ZRgFIAEoCRIOCgZ0b0RhdGUYBiABKAkiRwoUR2V0Rm9yZWNhc3RzUmVzcG9uc2USLwoEZGF0YRgBIAEoCzIhLmJsdWVhcGkuYXBpLkJpbGxpbmdHcm91cEZvcmVjYXN0ImwKHUdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVsZXZlbBgCIAEoCRIKCgJpZBgDIAEoCRIQCghmcm9tRGF0ZRgEIAEoCRIOCgZ0b0RhdGUYBSABKAkibwoeR2V0TW9udGhseUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEi4KBGRhdGEYAiADKAsyIC5ibHVlYXBpLmFwaS5Nb250aGx5Q29zdEZvcmVjYXN0EhEKCXRpbWVzdGFtcBgDIAEoCSJdCiJHZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3RSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVsZXZlbBgCIAEoCRIKCgJpZBgDIAEoCRIMCgRkYXRlGAQgASgJInkKI0dldE1vbnRoT25Nb250aENvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEjMKBGRhdGEYAiADKAsyJS5ibHVlYXBpLmFwaS5Nb250aE9uTW9udGhDb3N0Rm9yZWNhc3QSEQoJdGltZXN0YW1wGAMgASgJIlwKIUdldE1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSDAoEZGF0ZRgEIAEoCSKHAQoiR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIOCgZidWRnZXQYAiABKAESMgoEZGF0YRgDIAMoCzIkLmJsdWVhcGkuYXBpLk1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0EhEKCXRpbWVzdGFtcBgEIAEoCSJSChdHZXRBY2NvdW50QnVkZ2V0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSDAoEeWVhchgEIAEoCSI9ChhHZXRBY2NvdW50QnVkZ2V0UmVzcG9uc2USIQoEZGF0YRgBIAEoCzITLmJsdWVhcGkuYXBpLkJ1ZGdldCJqChpDcmVhdGVBY2NvdW50QnVkZ2V0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSIQoEZGF0YRgEIAEoCzITLmJsdWVhcGkuYXBpLkJ1ZGdldCIvChtDcmVhdGVBY2NvdW50QnVkZ2V0UmVzcG9uc2USEAoIYnVkZ2V0SWQYASABKAkiYQoaVXBkYXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGJ1ZGdldElkGAIgASgJEiEKBGRhdGEYAyABKAsyEy5ibHVlYXBpLmFwaS5CdWRnZXQiPgoaRGVsZXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGJ1ZGdldElkGAIgASgJIosCCiNHZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0QXdzT3B0aW9ucxIaChJyZWNvbW1lbmRhdGlvblR5cGUYASABKAkSDAoEdHlwZRgCIAEoCRISCgpyaVNlcnZpY2VzGAMgAygJEhIKCnNwU2VydmljZXMYBCADKAkSHgoWcHVyY2hhc2VFQzJTYXZpbmdzUGxhbhgFIAEoCBIaChJlYzJTcFByb2R1Y3RGYW1pbHkYBiABKAkSDAoEdGVybRgHIAEoCRIVCg1vZmZlcmluZ0NsYXNzGAggASgJEhUKDXBheW1lbnRPcHRpb24YCSABKAkSGgoSY292ZXJhZ2VQZXJjZW50YWdlGAogASgBIqsBChlHZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIQCghhY2NvdW50cxgDIAMoCRITCgtjb3N0R3JvdXBJZBgEIAEoCRJICgphd3NPcHRpb25zGAUgASgLMjQuYmx1ZWFwaS5jb3N0LnYxLkdldFJlY29tbWVuZGF0aW9uc1JlcXVlc3RBd3NPcHRpb25zImwKGkdldFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj8KEmF3c1JlY29tbWVuZGF0aW9ucxgCIAEoCzIjLmJsdWVhcGkuYXBpLmF3cy5Bd3NSZWNvbW1lbmRhdGlvbnMiggIKF0dldENvc3RSZWR1Y3Rpb25SZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIYChByZWR1Y3Rpb25EaXNwbGF5GAMgASgJEhYKDmluY2x1ZGVEZXRhaWxzGAQgASgIEhAKCGZyb21EYXRlGAUgASgJEg4KBnRvRGF0ZRgGIAEoCRIPCgdwYXllcklkGAcgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAggASgJEg8KB2dyb3VwSWQYCSABKAkSEwoLY29zdEdyb3VwSWQYCiABKAkSEAoIYWNjb3VudHMYCyADKAkSEAoIc2VydmljZXMYDCADKAkiaAoYR2V0Q29zdFJlZHVjdGlvblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj0KEWF3c0Nvc3RSZWR1Y3Rpb25zGAIgASgLMiIuYmx1ZWFwaS5hcGkuYXdzLkF3c0Nvc3RSZWR1Y3Rpb25zIlQKFEdldEV4cG9ydFJJU1BSZXF1ZXN0EgwKBHR5cGUYASABKAkSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESFgoOaW5jbHVkZUV4cGlyZWQYAyABKAgiLQoVR2V0RXhwb3J0UklTUFJlc3BvbnNlEhQKDGRvd25sb2FkTGluaxgBIAEoCSKYAQoTRXhwb3J0UmVwb3J0UmVxdWVzdBINCgVtb250aBgCIAEoCRIOCgZ2ZW5kb3IYASABKAkSJgoYbm90aWZpY2F0aW9uX2NoYW5uZWxfaWRzGAQgAygJQgTiQQEBEjoKC2F3c19vcHRpb25zGAogASgLMiUuYmx1ZWFwaS5jb3N0LnYxLkF3c1Jpc3BFeHBvcnRPcHRpb25zIssCChRBd3NSaXNwRXhwb3J0T3B0aW9ucxIXCg9pbmNsdWRlX2V4cGlyZWQYASABKAgSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESFQoHcXVlcmllcxgDIAMoCUIE4kEBAhIVCgdjb2x1bW5zGAQgAygJQgTiQQEBElMKEGNvbHVtbnNfYnlfcXVlcnkYBSADKAsyOS5ibHVlYXBpLmNvc3QudjEuQXdzUmlzcEV4cG9ydE9wdGlvbnMuQ29sdW1uc0J5UXVlcnlFbnRyeRoZCgdDb2x1bW5zEg4KBnZhbHVlcxgBIAMoCRpkChNDb2x1bW5zQnlRdWVyeUVudHJ5EgsKA2tleRgBIAEoCRI8CgV2YWx1ZRgCIAEoCzItLmJsdWVhcGkuY29zdC52MS5Bd3NSaXNwRXhwb3J0T3B0aW9ucy5Db2x1bW5zOgI4ASK4AQoVR2V0VXRpbGl6YXRpb25SZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIMCgR0eXBlGAMgASgJEhAKCGZyb21EYXRlGAQgASgJEg4KBnRvRGF0ZRgFIAEoCRIPCgdwYXllcklkGAYgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAcgASgJEg8KB2dyb3VwSWQYCCABKAkSEwoLY29zdEdyb3VwSWQYCSABKAkiXgoWR2V0VXRpbGl6YXRpb25SZXNwb25zZRINCgVvcmdJZBgBIAEoCRI1Cg91dGlsaXphdGlvbkRhdGEYAiADKAsyHC5ibHVlYXBpLmFwaS5VdGlsaXphdGlvbkRhdGEi9AEKGUdldENvdmVyYWdlT3B0aW9uc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnBlcmlvZBgDIAEoCRIQCghmcm9tRGF0ZRgEIAEoCRIOCgZ0b0RhdGUYBSABKAkSDwoHcGF5ZXJJZBgGIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgHIAEoCRIPCgdncm91cElkGAggASgJEhMKC2Nvc3RHcm91cElkGAkgASgJEhAKCGFjY291bnRzGAogAygJEhAKCHNlcnZpY2VzGAsgAygJEhAKCGN1cnJlbmN5GAwgASgJIloKGkdldENvdmVyYWdlT3B0aW9uc1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEi0KC29wdGlvbnNEYXRhGAIgAygLMhguYmx1ZWFwaS5hcGkuT3B0aW9uc0RhdGEi4wEKGkdldENvdmVyYWdlT25kZW1hbmRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIOCgZwZXJpb2QYAyABKAkSEAoIZnJvbURhdGUYBCABKAkSDgoGdG9EYXRlGAUgASgJEg8KB3BheWVySWQYBiABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYByABKAkSDwoHZ3JvdXBJZBgIIAEoCRITCgtjb3N0R3JvdXBJZBgJIAEoCRIQCghhY2NvdW50cxgKIAMoCRIQCghzZXJ2aWNlcxgLIAMoCSJdChtHZXRDb3ZlcmFnZU9uZGVtYW5kUmVzcG9uc2USDQoFb3JnSWQYASABKAkSLwoMb25kZW1hbmREYXRhGAIgAygLMhkuYmx1ZWFwaS5hcGkuT25kZW1hbmREYXRhIlQKGEdldEJyZWFrZXZlblBvaW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFb3JnSWQYAiABKAkSDAoEdHlwZRgDIAEoCRILCgNhcm4YBCABKAkiZwoZR2V0QnJlYWtldmVuUG9pbnRSZXNwb25zZRINCgVvcmdJZBgBIAEoCRI7ChBhd3NDb3N0QnJlYWtldmVuGAIgASgLMiEuYmx1ZWFwaS5hcGkuYXdzLkF3c0Nvc3RCcmVha2V2ZW4iKAoWTGlzdENvc3RGaWx0ZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiUAoXTGlzdENvc3RGaWx0ZXJzUmVzcG9uc2USNQoLY29zdEZpbHRlcnMYASADKAsyIC5ibHVlYXBpLmNvc3QudjEuTGlzdENvc3RGaWx0ZXJzIqwBCg9MaXN0Q29zdEZpbHRlcnMSEAoIZmlsdGVySWQYASABKAkSEgoKZmlsdGVyTmFtZRgCIAEoCRIOCgZ2ZW5kb3IYAyABKAkSDwoHZ3JvdXBJZBgEIAEoCRIRCglhY2NvdW50SWQYBSABKAkSPwoKYXdzT3B0aW9ucxgGIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucyKjAQoYQ3JlYXRlQ29zdEZpbHRlcnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRISCgpmaWx0ZXJOYW1lGAIgASgJEg8KB2dyb3VwSWQYAyABKAkSEQoJYWNjb3VudElkGAQgASgJEj8KCmF3c09wdGlvbnMYBSABKAsyKy5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnMiLQoZQ3JlYXRlQ29zdEZpbHRlcnNSZXNwb25zZRIQCghmaWx0ZXJJZBgBIAEoCSK1AQoYVXBkYXRlQ29zdEZpbHRlcnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIQCghmaWx0ZXJJZBgCIAEoCRISCgpmaWx0ZXJOYW1lGAMgASgJEg8KB2dyb3VwSWQYBCABKAkSEQoJYWNjb3VudElkGAUgASgJEj8KCmF3c09wdGlvbnMYBiABKAsyKy5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnMiLQoZVXBkYXRlQ29zdEZpbHRlcnNSZXNwb25zZRIQCghmaWx0ZXJJZBgBIAEoCSI8ChhEZWxldGVDb3N0RmlsdGVyc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGZpbHRlcklkGAIgASgJIscBChxFeHBvcnRDb3N0RmlsdGVyc0ZpbGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIQCghmaWx0ZXJJZBgCIAEoCRIeChZub3RpZmljYXRpb25DaGFubmVsSWRzGAggAygJEhEKCXN0YXJ0VGltZRgDIAEoCRIPCgdlbmRUaW1lGAQgASgJEhQKDGdyb3VwQnlNb250aBgFIAEoCBIWCg5ncm91cEJ5Q29sdW1ucxgGIAEoCRITCgtpbmNsdWRlVGFncxgHIAEoCCIsCh1FeHBvcnRDb3N0RmlsdGVyc0ZpbGVSZXNwb25zZRILCgN1cmwYASABKAkikgIKGlJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhQKDGdyb3VwQnlNb250aBgCIAEoCBIVCg1ncm91cEFjY291bnRzGAMgASgIEkMKB2ZpbHRlcnMYBCADKAsyMi5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RzUmVxdWVzdEdjcE9wdGlvbnNGaWx0ZXJzEhsKE2luY2x1ZGVJbnZvaWNlTW9udGgYBiABKAgSFgoOaW5jbHVkZUNyZWRpdHMYByABKAgSEAoIcm91bmRpbmcYCCABKAgSDwoHbm9DYWNoZRgFIAEoCBISCgp0b0N1cnJlbmN5GAkgASgJIq4BCiFSZWFkQ29zdHNSZXF1ZXN0R2NwT3B0aW9uc0ZpbHRlcnMSVgoKYW5kRmlsdGVycxgBIAMoCzJCLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0R2NwT3B0aW9uc0ZpbHRlcnMuQW5kRmlsdGVyc0VudHJ5GjEKD0FuZEZpbHRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIjsKHUdldEFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCSJyCiBDcmVhdGVBY2NvdW50QnVkZ2V0QWxlcnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkSMgoLYnVkZ2V0QWxlcnQYAyABKAsyHS5ibHVlYXBpLmFwaS53YXZlLkJ1ZGdldEFsZXJ0InIKIFVwZGF0ZUFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRIyCgtidWRnZXRBbGVydBgDIAEoCzIdLmJsdWVhcGkuYXBpLndhdmUuQnVkZ2V0QWxlcnQiPgogRGVsZXRlQWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJIogBChxSZWFkQ29zdHNSZXF1ZXN0QXp1cmVPcHRpb25zEhYKDmdyb3VwQnlDb2x1bW5zGAEgASgJEhQKDGdyb3VwQnlNb250aBgCIAEoCBIPCgdub0NhY2hlGAMgASgIEhIKCnRvQ3VycmVuY3kYBCABKAkSFQoNcmVzb3VyY2VHcm91cBgFIAEoCSKoAwoMQnVkZ2V0QWxlcnRzEgoKAmlkGAEgASgJEg4KBnZlbmRvchgCIAEoCRImCghhY2NvdW50cxgDIAMoCzIULmJsdWVhcGkuYXBpLkFjY291bnQSQAoMbm90aWZpY2F0aW9uGAQgASgLMiouYmx1ZWFwaS5hcGkuQnVkZ2V0QWxlcnROb3RpZmljYXRpb25EZXRhaWwSLAoFZGFpbHkYBSABKAsyHS5ibHVlYXBpLmFwaS5EYWlseUJ1ZGdldEFsZXJ0EjwKCWRhaWx5UmF0ZRgHIAEoCzIpLmJsdWVhcGkuYXBpLkRhaWx5UmF0ZUluY3JlYXNlQnVkZ2V0QWxlcnQSMAoHbW9udGhseRgGIAEoCzIfLmJsdWVhcGkuYXBpLk1vbnRobHlCdWRnZXRBbGVydBI6CgxjdXN0b21QZXJpb2QYCCABKAsyJC5ibHVlYXBpLmFwaS5DdXN0b21QZXJpb2RCdWRnZXRBbGVydBI4CgtjdXN0b21Nb250aBgJIAEoCzIjLmJsdWVhcGkuYXBpLkN1c3RvbU1vbnRoQnVkZ2V0QWxlcnQiSQoXUmVhZEJ1ZGdldEFsZXJ0c1JlcXVlc3QSLgoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siJAoWR2V0QnVkZ2V0QWxlcnRzUmVxdWVzdBIKCgJpZBgBIAEoCSKNAwoZQ3JlYXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEAoIYWNjb3VudHMYAiADKAkSOgoMbm90aWZpY2F0aW9uGAMgASgLMiQuYmx1ZWFwaS5hcGkuQnVkZ2V0QWxlcnROb3RpZmljYXRpb24SLAoFZGFpbHkYBCABKAsyHS5ibHVlYXBpLmFwaS5EYWlseUJ1ZGdldEFsZXJ0EjwKCWRhaWx5UmF0ZRgGIAEoCzIpLmJsdWVhcGkuYXBpLkRhaWx5UmF0ZUluY3JlYXNlQnVkZ2V0QWxlcnQSMAoHbW9udGhseRgFIAEoCzIfLmJsdWVhcGkuYXBpLk1vbnRobHlCdWRnZXRBbGVydBI6CgxjdXN0b21QZXJpb2QYByABKAsyJC5ibHVlYXBpLmFwaS5DdXN0b21QZXJpb2RCdWRnZXRBbGVydBI4CgtjdXN0b21Nb250aBgIIAEoCzIjLmJsdWVhcGkuYXBpLkN1c3RvbU1vbnRoQnVkZ2V0QWxlcnQimQMKGVVwZGF0ZUJ1ZGdldEFsZXJ0c1JlcXVlc3QSCgoCaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEhAKCGFjY291bnRzGAMgAygJEjoKDG5vdGlmaWNhdGlvbhgEIAEoCzIkLmJsdWVhcGkuYXBpLkJ1ZGdldEFsZXJ0Tm90aWZpY2F0aW9uEiwKBWRhaWx5GAUgASgLMh0uYmx1ZWFwaS5hcGkuRGFpbHlCdWRnZXRBbGVydBI8CglkYWlseVJhdGUYByABKAsyKS5ibHVlYXBpLmFwaS5EYWlseVJhdGVJbmNyZWFzZUJ1ZGdldEFsZXJ0EjAKB21vbnRobHkYBiABKAsyHy5ibHVlYXBpLmFwaS5Nb250aGx5QnVkZ2V0QWxlcnQSOgoMY3VzdG9tUGVyaW9kGAggASgLMiQuYmx1ZWFwaS5hcGkuQ3VzdG9tUGVyaW9kQnVkZ2V0QWxlcnQSOAoLY3VzdG9tTW9udGgYCSABKAsyIy5ibHVlYXBpLmFwaS5DdXN0b21Nb250aEJ1ZGdldEFsZXJ0IicKGURlbGV0ZUJ1ZGdldEFsZXJ0c1JlcXVlc3QSCgoCaWQYASABKAkiOgoUQ2hlY2tBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhIKCmFjY291bnRJZHMYAiADKAkiigEKFUNoZWNrQWNjb3VudHNSZXNwb25zZRJCCgZleGlzdHMYASADKAsyMi5ibHVlYXBpLmNvc3QudjEuQ2hlY2tBY2NvdW50c1Jlc3BvbnNlLkV4aXN0c0VudHJ5Gi0KC0V4aXN0c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCDoCOAEiNgoVUmVhZEludm9pY2VJZHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCSIkChZSZWFkSW52b2ljZUlkc1Jlc3BvbnNlEgoKAmlkGAEgASgJIrABCgtQZXJpb2RSYW5nZRIvCgR1bml0GAEgASgOMiEuYmx1ZWFwaS5jb3N0LnYxLlBlcmlvZFJhbmdlLlVuaXQSDAoEeWVhchgCIAEoDRIQCghzdGFydGluZxgDIAEoDRIQCghkdXJhdGlvbhgEIAEoDSI+CgRVbml0EhQKEFVOSVRfVU5TUEVDSUZJRUQQABIJCgVNT05USBABEgsKB1FVQVJURVIQAhIICgRZRUFSEAMioAEKG1JlYWRJbnZvaWNlT3ZlcnZpZXdzUmVxdWVzdBIRCglzdGFydFRpbWUYASABKAkSDwoHZW5kVGltZRgCIAEoCRIWCg51c2VQZXJpb2RSYW5nZRgEIAEoCBIxCgtwZXJpb2RSYW5nZRgFIAEoCzIcLmJsdWVhcGkuY29zdC52MS5QZXJpb2RSYW5nZRISCgp0b0N1cnJlbmN5GAMgASgJIlEKF1JlYWRJbnZvaWNlQ29zdHNSZXF1ZXN0EhEKCXN0YXJ0VGltZRgBIAEoCRIPCgdlbmRUaW1lGAIgASgJEhIKCnRvQ3VycmVuY3kYAyABKAkiZQocUmVhZEludm9pY2VHcm91cENvc3RzUmVxdWVzdBIRCglzdGFydFRpbWUYASABKAkSDwoHZW5kVGltZRgCIAEoCRISCgp0b0N1cnJlbmN5GAMgASgJEg0KBWxpbWl0GAQgASgFIjUKI1JlYWRBY2NvdW50T3JpZ2luYWxSZXNvdXJjZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSJYChtSZWdpc3RlclBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEgwKBG5hbWUYAyABKAkSDwoHY3VyVHlwZRgEIAEoCSJWChlVcGRhdGVQYXllckFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJEg8KB2N1clR5cGUYBCABKAkiRAojTGlzdENhbGN1bGF0aW9uUHJlcmVxdWlzaXRlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJIpUBChdDYWxjdWxhdGlvblByZXJlcXVpc2l0ZRISCgppbnZvaWNlX2lkGAEgASgJEhAKCHBheWVyX2lkGAIgASgJEhUKDWV4Y2hhbmdlX3JhdGUYAyABKAESHQoVdW5ibGVuZGVkX2Nvc3RfaW5fY3VyGAQgASgBEgwKBG5hbWUYBSABKAkSEAoIY3VyX3R5cGUYBiABKAkiZwokTGlzdENhbGN1bGF0aW9uUHJlcmVxdWlzaXRlc1Jlc3BvbnNlEj8KDXByZXJlcXVpc2l0ZXMYASADKAsyKC5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRpb25QcmVyZXF1aXNpdGUisAEKJ1NldHVwUGF5ZXJBY2NvdW50QmlsbGluZ1RyYW5zZmVyUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkSDQoFbW9udGgYAyABKAkSEQoJczNfYnVja2V0GAQgASgJEhMKC3JlcG9ydF9uYW1lGAUgASgJEhAKCHJvbGVfYXJuGAYgASgJEhAKCGN1cl90eXBlGAcgASgJEg4KBnByZWZpeBgIIAEoCTKjUgoEQ29zdBJzChFMaXN0UGF5ZXJBY2NvdW50cxIpLmJsdWVhcGkuY29zdC52MS5MaXN0UGF5ZXJBY2NvdW50c1JlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IhuC0+STAhUSEy92MS97dmVuZG9yfS9wYXllcnMwARJ3Cg9HZXRQYXllckFjY291bnQSJy5ibHVlYXBpLmNvc3QudjEuR2V0UGF5ZXJBY2NvdW50UmVxdWVzdBoZLmJsdWVhcGkuYXBpLnJpcHBsZS5QYXllciIggtPkkwIaEhgvdjEve3ZlbmRvcn0vcGF5ZXJzL3tpZH0SlAEKGUxpc3RQYXllckFjY291bnRzRXh0ZW5kZWQSKS5ibHVlYXBpLmNvc3QudjEuTGlzdFBheWVyQWNjb3VudHNSZXF1ZXN0GiUuYmx1ZWFwaS5jb3N0LnYxLlBheWVyQWNjb3VudEV4dGVuZGVkIiOC0+STAh0SGy92MS97dmVuZG9yfS9wYXllcnNleHRlbmRlZDABEpMBChdHZXRQYXllckFjY291bnRFeHRlbmRlZBInLmJsdWVhcGkuY29zdC52MS5HZXRQYXllckFjY291bnRSZXF1ZXN0GiUuYmx1ZWFwaS5jb3N0LnYxLlBheWVyQWNjb3VudEV4dGVuZGVkIiiC0+STAiISIC92MS97dmVuZG9yfS9wYXllcnNleHRlbmRlZC97aWR9Er0BChxHZXRQYXllckFjY291bnRJbXBvcnRIaXN0b3J5EjQuYmx1ZWFwaS5jb3N0LnYxLkdldFBheWVyQWNjb3VudEltcG9ydEhpc3RvcnlSZXF1ZXN0GjUuYmx1ZWFwaS5jb3N0LnYxLkdldFBheWVyQWNjb3VudEltcG9ydEhpc3RvcnlSZXNwb25zZSIugtPkkwIoEiYvdjEve3ZlbmRvcn0vcGF5ZXJzL3tpZH0vaW1wb3J0aGlzdG9yeTABEqcBChdHZXRQYXllclByb2Zvcm1hUmVwb3J0cxIvLmJsdWVhcGkuY29zdC52MS5HZXRQYXllclByb2Zvcm1hUmVwb3J0c1JlcXVlc3QaMC5ibHVlYXBpLmNvc3QudjEuR2V0UGF5ZXJQcm9mb3JtYVJlcG9ydHNSZXNwb25zZSIpgtPkkwIjEiEvdjEve3ZlbmRvcn0vcGF5ZXJzL3tpZH0vcHJvZm9ybWESdgoSQ3JlYXRlUGF5ZXJBY2NvdW50EiouYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZVBheWVyQWNjb3VudFJlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50Ih6C0+STAhg6ASoiEy92MS97dmVuZG9yfS9wYXllcnMSiQEKFFJlZ2lzdGVyUGF5ZXJBY2NvdW50EiwuYmx1ZWFwaS5jb3N0LnYxLlJlZ2lzdGVyUGF5ZXJBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIrgtPkkwIlOgEqIiAvdjEve3ZlbmRvcn0vcGF5ZXJzL2Jhc2ljZGV0YWlscxKKAQoSVXBkYXRlUGF5ZXJBY2NvdW50EiouYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZVBheWVyQWNjb3VudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKjoBKholL3YxL3t2ZW5kb3J9L3BheWVycy9iYXNpY2RldGFpbHMve2lkfRJ6ChJEZWxldGVQYXllckFjY291bnQSKi5ibHVlYXBpLmNvc3QudjEuRGVsZXRlUGF5ZXJBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIggtPkkwIaKhgvdjEve3ZlbmRvcn0vcGF5ZXJzL3tpZH0SlQEKDExpc3RBY2NvdW50cxIkLmJsdWVhcGkuY29zdC52MS5MaXN0QWNjb3VudHNSZXF1ZXN0GhQuYmx1ZWFwaS5hcGkuQWNjb3VudCJHgtPkkwJBWigSJi92MS97dmVuZG9yfS9hY2NvdW50cy9ncm91cHMve2dyb3VwSWR9EhUvdjEve3ZlbmRvcn0vYWNjb3VudHMwARJqCgpHZXRBY2NvdW50EiIuYmx1ZWFwaS5jb3N0LnYxLkdldEFjY291bnRSZXF1ZXN0GhQuYmx1ZWFwaS5hcGkuQWNjb3VudCIigtPkkwIcEhovdjEve3ZlbmRvcn0vYWNjb3VudHMve2lkfRJuCg1DcmVhdGVBY2NvdW50EiUuYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0GhQuYmx1ZWFwaS5hcGkuQWNjb3VudCIggtPkkwIaOgEqIhUvdjEve3ZlbmRvcn0vYWNjb3VudHMScwoNVXBkYXRlQWNjb3VudBIlLmJsdWVhcGkuY29zdC52MS5VcGRhdGVBY2NvdW50UmVxdWVzdBoULmJsdWVhcGkuYXBpLkFjY291bnQiJYLT5JMCHzoBKhoaL3YxL3t2ZW5kb3J9L2FjY291bnRzL3tpZH0ScgoNRGVsZXRlQWNjb3VudBIlLmJsdWVhcGkuY29zdC52MS5EZWxldGVBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIigtPkkwIcKhovdjEve3ZlbmRvcn0vYWNjb3VudHMve2lkfRKfAQocUmVhZEFjY291bnRPcmlnaW5hbFJlc291cmNlcxI0LmJsdWVhcGkuY29zdC52MS5SZWFkQWNjb3VudE9yaWdpbmFsUmVzb3VyY2VzUmVxdWVzdBokLmJsdWVhcGkuYXBpLkFjY291bnRPcmlnaW5hbFJlc291cmNlIiGC0+STAhs6ASoiFi92MS97dmVuZG9yfS9hb3JzOnJlYWQwARKFAQoITGlzdFRhZ3MSIC5ibHVlYXBpLmNvc3QudjEuTGlzdFRhZ3NSZXF1ZXN0GhQuYmx1ZWFwaS5hcGkuQ29zdFRhZyI/gtPkkwI5WiQSIi92MS97dmVuZG9yfS90YWdzL2dyb3Vwcy97Z3JvdXBJZH0SES92MS97dmVuZG9yfS90YWdzMAESwQEKHUxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzEjUuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVxdWVzdBo2LmJsdWVhcGkuY29zdC52MS5MaXN0Q2FsY3VsYXRvclJ1bm5pbmdBY2NvdW50c1Jlc3BvbnNlIi+C0+STAik6ASoiJC92MS97dmVuZG9yfS9jYWxjdWxhdG9yL3J1bm5pbmc6cmVhZDABEpgBChNHZXRDYWxjdWxhdG9yQ29uZmlnEisuYmx1ZWFwaS5jb3N0LnYxLkdldENhbGN1bGF0b3JDb25maWdSZXF1ZXN0GiwuYmx1ZWFwaS5jb3N0LnYxLkdldENhbGN1bGF0b3JDb25maWdSZXNwb25zZSImgtPkkwIgEh4vdjEve3ZlbmRvcn0vY2FsY3VsYXRvci9jb25maWcSrgEKG0xpc3RDYWxjdWxhdG9yQ29zdE1vZGlmaWVycxIzLmJsdWVhcGkuY29zdC52MS5MaXN0Q2FsY3VsYXRvckNvc3RNb2RpZmllcnNSZXF1ZXN0GicuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXIiL4LT5JMCKRInL3YxL3t2ZW5kb3J9L2NhbGN1bGF0b3IvY29uZmlnL2Nvc3Rtb2RzMAESvwEKHENyZWF0ZUNhbGN1bGF0b3JDb3N0TW9kaWZpZXISNC5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQ2FsY3VsYXRvckNvc3RNb2RpZmllclJlcXVlc3QaNS5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQ2FsY3VsYXRvckNvc3RNb2RpZmllclJlc3BvbnNlIjKC0+STAiw6ASoiJy92MS97dmVuZG9yfS9jYWxjdWxhdG9yL2NvbmZpZy9jb3N0bW9kcxKiAQocRGVsZXRlQ2FsY3VsYXRvckNvc3RNb2RpZmllchI0LmJsdWVhcGkuY29zdC52MS5EZWxldGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI0gtPkkwIuKiwvdjEve3ZlbmRvcn0vY2FsY3VsYXRvci9jb25maWcvY29zdG1vZHMve2lkfRJqCg5JbXBvcnRDdXJGaWxlcxImLmJsdWVhcGkuY29zdC52MS5JbXBvcnRDdXJGaWxlc1JlcXVlc3QaES5wcm90b3MuT3BlcmF0aW9uIh2C0+STAhc6ASoiEi92MS9hd3MvY3VyOmltcG9ydBJ0Cg5DYWxjdWxhdGVDb3N0cxImLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdGVDb3N0c1JlcXVlc3QaES5wcm90b3MuT3BlcmF0aW9uIieC0+STAiE6ASoiHC92MS97dmVuZG9yfS9jb3N0czpjYWxjdWxhdGUSpwEKF0xpc3RDYWxjdWxhdGlvbnNIaXN0b3J5Ei8uYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNIaXN0b3J5UmVxdWVzdBowLmJsdWVhcGkuY29zdC52MS5MaXN0Q2FsY3VsYXRpb25zSGlzdG9yeVJlc3BvbnNlIimC0+STAiMSIS92MS97dmVuZG9yfS9jYWxjdWxhdGlvbnMvaGlzdG9yeRKvAQoZTGlzdENhbGN1bGF0aW9uc1NjaGVkdWxlcxIxLmJsdWVhcGkuY29zdC52MS5MaXN0Q2FsY3VsYXRpb25zU2NoZWR1bGVzUmVxdWVzdBoyLmJsdWVhcGkuY29zdC52MS5MaXN0Q2FsY3VsYXRpb25zU2NoZWR1bGVzUmVzcG9uc2UiK4LT5JMCJRIjL3YxL3t2ZW5kb3J9L2NhbGN1bGF0aW9ucy9zY2hlZHVsZXMSpwEKGkNyZWF0ZUNhbGN1bGF0aW9uc1NjaGVkdWxlEjIuYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUNhbGN1bGF0aW9uc1NjaGVkdWxlUmVxdWVzdBolLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdGlvbnNTY2hlZHVsZSIugtPkkwIoOgEqIiMvdjEve3ZlbmRvcn0vY2FsY3VsYXRpb25zL3NjaGVkdWxlcxKaAQoaRGVsZXRlQ2FsY3VsYXRpb25zU2NoZWR1bGUSMi5ibHVlYXBpLmNvc3QudjEuRGVsZXRlQ2FsY3VsYXRpb25zU2NoZWR1bGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjCC0+STAioqKC92MS97dmVuZG9yfS9jYWxjdWxhdGlvbnMvc2NoZWR1bGVzL3tpZH0ShgEKD0xpc3RDb3N0RmlsdGVycxInLmJsdWVhcGkuY29zdC52MS5MaXN0Q29zdEZpbHRlcnNSZXF1ZXN0GiguYmx1ZWFwaS5jb3N0LnYxLkxpc3RDb3N0RmlsdGVyc1Jlc3BvbnNlIiCC0+STAhoSGC92MS97dmVuZG9yfS9jb3N0ZmlsdGVycxKPAQoRQ3JlYXRlQ29zdEZpbHRlcnMSKS5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQ29zdEZpbHRlcnNSZXF1ZXN0GiouYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUNvc3RGaWx0ZXJzUmVzcG9uc2UiI4LT5JMCHToBKiIYL3YxL3t2ZW5kb3J9L2Nvc3RmaWx0ZXJzEpoBChFVcGRhdGVDb3N0RmlsdGVycxIpLmJsdWVhcGkuY29zdC52MS5VcGRhdGVDb3N0RmlsdGVyc1JlcXVlc3QaKi5ibHVlYXBpLmNvc3QudjEuVXBkYXRlQ29zdEZpbHRlcnNSZXNwb25zZSIugtPkkwIoOgEqGiMvdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMve2ZpbHRlcklkfRKDAQoRRGVsZXRlQ29zdEZpbHRlcnMSKS5ibHVlYXBpLmNvc3QudjEuRGVsZXRlQ29zdEZpbHRlcnNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiuC0+STAiUqIy92MS97dmVuZG9yfS9jb3N0ZmlsdGVycy97ZmlsdGVySWR9EpABChVFeHBvcnRDb3N0RmlsdGVyc0ZpbGUSLS5ibHVlYXBpLmNvc3QudjEuRXhwb3J0Q29zdEZpbHRlcnNGaWxlUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iNYLT5JMCLzoBKiIqL3YxL3t2ZW5kb3J9L2Nvc3RmaWx0ZXJzL3tmaWx0ZXJJZH06ZXhwb3J0Eo4BChJSZWFkQ29zdEF0dHJpYnV0ZXMSKi5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RBdHRyaWJ1dGVzUmVxdWVzdBoiLmJsdWVhcGkuY29zdC52MS5Db3N0QXR0cmlidXRlSXRlbSImgtPkkwIgOgEqIhsvdjEve3ZlbmRvcn0vY29zdGF0dHJzOnJlYWQwARKKAQoRR2V0Q29zdEF0dHJpYnV0ZXMSKS5ibHVlYXBpLmNvc3QudjEuR2V0Q29zdEF0dHJpYnV0ZXNSZXF1ZXN0GiouYmx1ZWFwaS5jb3N0LnYxLkdldENvc3RBdHRyaWJ1dGVzUmVzcG9uc2UiHoLT5JMCGBIWL3YxL3t2ZW5kb3J9L2Nvc3RhdHRycxJvCglSZWFkQ29zdHMSIS5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RzUmVxdWVzdBoZLmJsdWVhcGkuY29zdC52MS5Db3N0SXRlbSIigtPkkwIcOgEqIhcvdjEve3ZlbmRvcn0vY29zdHM6cmVhZDABEoEBCg9SZWFkQWRqdXN0bWVudHMSJy5ibHVlYXBpLmNvc3QudjEuUmVhZEFkanVzdG1lbnRzUmVxdWVzdBoZLmJsdWVhcGkuY29zdC52MS5Db3N0SXRlbSIogtPkkwIiOgEqIh0vdjEve3ZlbmRvcn0vYWRqdXN0bWVudHM6cmVhZDABEngKDFJlYWRUYWdDb3N0cxIkLmJsdWVhcGkuY29zdC52MS5SZWFkVGFnQ29zdHNSZXF1ZXN0GhkuYmx1ZWFwaS5jb3N0LnYxLkNvc3RJdGVtIiWC0+STAh86ASoiGi92MS97dmVuZG9yfS90YWdjb3N0czpyZWFkMAESgQEKD1JlYWROb25UYWdDb3N0cxInLmJsdWVhcGkuY29zdC52MS5SZWFkTm9uVGFnQ29zdHNSZXF1ZXN0GhkuYmx1ZWFwaS5jb3N0LnYxLkNvc3RJdGVtIiiC0+STAiI6ASoiHS92MS97dmVuZG9yfS9ub250YWdjb3N0czpyZWFkMAESewoMR2V0Rm9yZWNhc3RzEiQuYmx1ZWFwaS5jb3N0LnYxLkdldEZvcmVjYXN0c1JlcXVlc3QaJS5ibHVlYXBpLmNvc3QudjEuR2V0Rm9yZWNhc3RzUmVzcG9uc2UiHoLT5JMCGBIWL3YxL3t2ZW5kb3J9L2ZvcmVjYXN0cxKuAQoWR2V0TW9udGhseUNvc3RGb3JlY2FzdBIuLmJsdWVhcGkuY29zdC52MS5HZXRNb250aGx5Q29zdEZvcmVjYXN0UmVxdWVzdBovLmJsdWVhcGkuY29zdC52MS5HZXRNb250aGx5Q29zdEZvcmVjYXN0UmVzcG9uc2UiM4LT5JMCLRIrL3YxL3t2ZW5kb3J9L2ZvcmVjYXN0cy9tb250aGx5L3tsZXZlbH0ve2lkfRLEAQobR2V0TW9udGhPbk1vbnRoQ29zdEZvcmVjYXN0EjMuYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRoT25Nb250aENvc3RGb3JlY2FzdFJlcXVlc3QaNC5ibHVlYXBpLmNvc3QudjEuR2V0TW9udGhPbk1vbnRoQ29zdEZvcmVjYXN0UmVzcG9uc2UiOoLT5JMCNBIyL3YxL3t2ZW5kb3J9L2ZvcmVjYXN0cy9tb250aC1vbi1tb250aC97bGV2ZWx9L3tpZH0SwAEKGkdldE1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0EjIuYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBozLmJsdWVhcGkuY29zdC52MS5HZXRNb250aFRvRGF0ZUNvc3RGb3JlY2FzdFJlc3BvbnNlIjmC0+STAjMSMS92MS97dmVuZG9yfS9mb3JlY2FzdHMvbW9udGgtdG8tZGF0ZS97bGV2ZWx9L3tpZH0SkQEKEEdldEFjY291bnRCdWRnZXQSKC5ibHVlYXBpLmNvc3QudjEuR2V0QWNjb3VudEJ1ZGdldFJlcXVlc3QaKS5ibHVlYXBpLmNvc3QudjEuR2V0QWNjb3VudEJ1ZGdldFJlc3BvbnNlIiiC0+STAiISIC92MS97dmVuZG9yfS9idWRnZXQve2xldmVsfS97aWR9Ep0BChNDcmVhdGVBY2NvdW50QnVkZ2V0EisuYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRCdWRnZXRSZXF1ZXN0GiwuYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRCdWRnZXRSZXNwb25zZSIrgtPkkwIlOgEqIiAvdjEve3ZlbmRvcn0vYnVkZ2V0L3tsZXZlbH0ve2lkfRKFAQoTVXBkYXRlQWNjb3VudEJ1ZGdldBIrLmJsdWVhcGkuY29zdC52MS5VcGRhdGVBY2NvdW50QnVkZ2V0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIpgtPkkwIjOgEqGh4vdjEve3ZlbmRvcn0vYnVkZ2V0L3tidWRnZXRJZH0SggEKE0RlbGV0ZUFjY291bnRCdWRnZXQSKy5ibHVlYXBpLmNvc3QudjEuRGVsZXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJoLT5JMCICoeL3YxL3t2ZW5kb3J9L2J1ZGdldC97YnVkZ2V0SWR9EokBChZHZXRBY2NvdW50QnVkZ2V0QWxlcnRzEi4uYmx1ZWFwaS5jb3N0LnYxLkdldEFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5hcGkud2F2ZS5CdWRnZXRBbGVydCIggtPkkwIaEhgvdjEve3ZlbmRvcn0vYWxlcnRzL3tpZH0SkgEKGUNyZWF0ZUFjY291bnRCdWRnZXRBbGVydHMSMS5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmFwaS53YXZlLkJ1ZGdldEFsZXJ0IiOC0+STAh06ASoiGC92MS97dmVuZG9yfS9hbGVydHMve2lkfRKSAQoZVXBkYXRlQWNjb3VudEJ1ZGdldEFsZXJ0cxIxLmJsdWVhcGkuY29zdC52MS5VcGRhdGVBY2NvdW50QnVkZ2V0QWxlcnRzUmVxdWVzdBodLmJsdWVhcGkuYXBpLndhdmUuQnVkZ2V0QWxlcnQiI4LT5JMCHToBKhoYL3YxL3t2ZW5kb3J9L2FsZXJ0cy97aWR9EogBChlEZWxldGVBY2NvdW50QnVkZ2V0QWxlcnRzEjEuYmx1ZWFwaS5jb3N0LnYxLkRlbGV0ZUFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiCC0+STAhoqGC92MS97dmVuZG9yfS9hbGVydHMve2lkfRJ5ChBSZWFkQnVkZ2V0QWxlcnRzEiguYmx1ZWFwaS5jb3N0LnYxLlJlYWRCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5jb3N0LnYxLkJ1ZGdldEFsZXJ0cyIagtPkkwIUOgEqIg8vdjEvYWxlcnRzOnJlYWQwARJyCg9HZXRCdWRnZXRBbGVydHMSJy5ibHVlYXBpLmNvc3QudjEuR2V0QnVkZ2V0QWxlcnRzUmVxdWVzdBodLmJsdWVhcGkuY29zdC52MS5CdWRnZXRBbGVydHMiF4LT5JMCERIPL3YxL2FsZXJ0cy97aWR9EnYKEkNyZWF0ZUJ1ZGdldEFsZXJ0cxIqLmJsdWVhcGkuY29zdC52MS5DcmVhdGVCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5jb3N0LnYxLkJ1ZGdldEFsZXJ0cyIVgtPkkwIPOgEqIgovdjEvYWxlcnRzEnsKElVwZGF0ZUJ1ZGdldEFsZXJ0cxIqLmJsdWVhcGkuY29zdC52MS5VcGRhdGVCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5jb3N0LnYxLkJ1ZGdldEFsZXJ0cyIagtPkkwIUOgEqGg8vdjEvYWxlcnRzL3tpZH0ScQoSRGVsZXRlQnVkZ2V0QWxlcnRzEiouYmx1ZWFwaS5jb3N0LnYxLkRlbGV0ZUJ1ZGdldEFsZXJ0c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiF4LT5JMCESoPL3YxL2FsZXJ0cy97aWR9EqMBChJHZXRSZWNvbW1lbmRhdGlvbnMSKi5ibHVlYXBpLmNvc3QudjEuR2V0UmVjb21tZW5kYXRpb25zUmVxdWVzdBorLmJsdWVhcGkuY29zdC52MS5HZXRSZWNvbW1lbmRhdGlvbnNSZXNwb25zZSI0gtPkkwIuOgEqIikvdjEve3ZlbmRvcn0vcmVjb21tZW5kYXRpb25zL3tvcmdJZH06cmVhZBKXAQoQR2V0Q29zdFJlZHVjdGlvbhIoLmJsdWVhcGkuY29zdC52MS5HZXRDb3N0UmVkdWN0aW9uUmVxdWVzdBopLmJsdWVhcGkuY29zdC52MS5HZXRDb3N0UmVkdWN0aW9uUmVzcG9uc2UiLoLT5JMCKDoBKiIjL3YxL3t2ZW5kb3J9L3JlZHVjdGlvbi97b3JnSWR9OnJlYWQShgEKDUdldEV4cG9ydFJJU1ASJS5ibHVlYXBpLmNvc3QudjEuR2V0RXhwb3J0UklTUFJlcXVlc3QaJi5ibHVlYXBpLmNvc3QudjEuR2V0RXhwb3J0UklTUFJlc3BvbnNlIiaC0+STAiA6ASoiGy92MS9leHBvcnRjc3YvcGF5ZXJzOmV4cG9ydBJmCgxFeHBvcnRSZXBvcnQSJC5ibHVlYXBpLmNvc3QudjEuRXhwb3J0UmVwb3J0UmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iHYLT5JMCFzoBKiISL3YxL3JlcG9ydHM6ZXhwb3J0EosBCg5HZXRVdGlsaXphdGlvbhImLmJsdWVhcGkuY29zdC52MS5HZXRVdGlsaXphdGlvblJlcXVlc3QaJy5ibHVlYXBpLmNvc3QudjEuR2V0VXRpbGl6YXRpb25SZXNwb25zZSIogtPkkwIiEiAvdjEve3ZlbmRvcn0vdXRpbGl6YXRpb24ve29yZ0lkfRKkAQoSR2V0Q292ZXJhZ2VPcHRpb25zEiouYmx1ZWFwaS5jb3N0LnYxLkdldENvdmVyYWdlT3B0aW9uc1JlcXVlc3QaKy5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPcHRpb25zUmVzcG9uc2UiNYLT5JMCLzoBKiIqL3YxL3t2ZW5kb3J9L2NvdmVyYWdlL29wdGlvbnMve29yZ0lkfTpyZWFkEqgBChNHZXRDb3ZlcmFnZU9uZGVtYW5kEisuYmx1ZWFwaS5jb3N0LnYxLkdldENvdmVyYWdlT25kZW1hbmRSZXF1ZXN0GiwuYmx1ZWFwaS5jb3N0LnYxLkdldENvdmVyYWdlT25kZW1hbmRSZXNwb25zZSI2gtPkkwIwOgEqIisvdjEve3ZlbmRvcn0vY292ZXJhZ2Uvb25kZW1hbmQve29yZ0lkfTpyZWFkEowBChFHZXRCcmVha2V2ZW5Qb2ludBIpLmJsdWVhcGkuY29zdC52MS5HZXRCcmVha2V2ZW5Qb2ludFJlcXVlc3QaKi5ibHVlYXBpLmNvc3QudjEuR2V0QnJlYWtldmVuUG9pbnRSZXNwb25zZSIggtPkkwIaEhgvdjEve3ZlbmRvcn0vYmVwL3tvcmdJZH0SpAEKGENoZWNrQWNjb3VudHNCZWxvbmdUb01zcBIlLmJsdWVhcGkuY29zdC52MS5DaGVja0FjY291bnRzUmVxdWVzdBomLmJsdWVhcGkuY29zdC52MS5DaGVja0FjY291bnRzUmVzcG9uc2UiOYLT5JMCMzoBKiIuL3YxL3t2ZW5kb3J9L2FjY291bnRzL2N1c3RvbWVycy9hY2NvdW50czpjaGVjaxKMAQoOUmVhZEludm9pY2VJZHMSJi5ibHVlYXBpLmNvc3QudjEuUmVhZEludm9pY2VJZHNSZXF1ZXN0GicuYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlSWRzUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL3t2ZW5kb3J9L2ludm9pY2VpZHM6cmVhZDABEpQBChRSZWFkSW52b2ljZU92ZXJWaWV3cxIsLmJsdWVhcGkuY29zdC52MS5SZWFkSW52b2ljZU92ZXJ2aWV3c1JlcXVlc3QaJi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuT3ZlclZpZXdTZWN0aW9uIiSC0+STAh46ASoiGS92MS9pbnZvaWNlb3ZlcnZpZXdzOnJlYWQwARKFAQoQUmVhZEludm9pY2VDb3N0cxIoLmJsdWVhcGkuY29zdC52MS5SZWFkSW52b2ljZUNvc3RzUmVxdWVzdBojLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5Ub3RhbFNlY3Rpb24iIILT5JMCGjoBKiIVL3YxL2ludm9pY2Vjb3N0czpyZWFkMAESmwEKFVJlYWRJbnZvaWNlR3JvdXBDb3N0cxItLmJsdWVhcGkuY29zdC52MS5SZWFkSW52b2ljZUdyb3VwQ29zdHNSZXF1ZXN0GiouYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkJpbGxpbmdHcm91cFNlY3Rpb24iJYLT5JMCHzoBKiIaL3YxL2ludm9pY2Vncm91cGNvc3RzOnJlYWQwARLDAQocTGlzdENhbGN1bGF0aW9uUHJlcmVxdWlzaXRlcxI0LmJsdWVhcGkuY29zdC52MS5MaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzUmVxdWVzdBo1LmJsdWVhcGkuY29zdC52MS5MaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzUmVzcG9uc2UiNoLT5JMCMBIuL3YxL3t2ZW5kb3J9L2NhbGN1bGF0aW9uL3ByZXJlcXVpc2l0ZXMve21vbnRofRKpAQogU2V0dXBQYXllckFjY291bnRCaWxsaW5nVHJhbnNmZXISOC5ibHVlYXBpLmNvc3QudjEuU2V0dXBQYXllckFjY291bnRCaWxsaW5nVHJhbnNmZXJSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjOC0+STAi06ASoiKC92MS97dmVuZG9yfS9wYXllcnMve2lkfS9iaWxsaW5ndHJhbnNmZXIajQGSQYkBEjlDb3N0IEFQSS4gQmFzZSBVUkw6IGh0dHBzOi8vYXBpLmFscGhhdXMuY2xvdWQvbS9ibHVlL2Nvc3QaTAoSU2VydmljZSBkZWZpbml0aW9uEjZodHRwczovL2dpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS90cmVlL21haW4vY29zdC9C/AIKFmNsb3VkLmFscGhhdXMuYXBpLmNvc3RCCUNvc3RQcm90b1ojZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL2Nvc3SSQbACEs4BChpBbHBoYXVzIEJsdWU6IENvc3QgU2VydmljZSJSChpBbHBoYXVzIEJsdWU6IENvc3QgU2VydmljZRI0aHR0cHM6Ly9hbHBoYXVzbGFicy5naXRodWIuaW8vYmx1ZWFwaS9hcGlzL2Nvc3QuaHRtbCpXChtMaWNlbnNlOiBBcGFjaGUgTGljZW5zZSAyLjASOGh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL2Jsb2IvbWFpbi9MSUNFTlNFMgMxLjByXQolTW9yZSBhYm91dCBBbHBoYXVzIEJsdWU6IENvc3QgU2VydmljZRI0aHR0cHM6Ly9hbHBoYXVzbGFicy5naXRodWIuaW8vYmx1ZWFwaS9hcGlzL2Nvc3QuaHRtbGIGcHJvdG8z", [file_api_account, file_api_coverage, file_api_budget, file_api_forecast, file_api_utilization, file_api_aws_breakeven, file_api_aws_cost, file_api_aws_calculator, file_api_aws_recommendation, file_api_aws_reduction, file_api_gcp_cost, file_api_azure_cost, file_api_ripple_payer, file_api_ripple_v1_dashboard, file_api_wave_budget, file_api_costtag, file_protos_operation, file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_empty, file_protoc_gen_openapiv2_options_annotations, file_google_protobuf_field_mask]);
|
|
52
|
+
fileDesc("ChJjb3N0L3YxL2Nvc3QucHJvdG8SD2JsdWVhcGkuY29zdC52MSJaChhMaXN0UGF5ZXJBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEi4KCmZpZWxkX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIjQKFkdldFBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJIsACChRQYXllckFjY291bnRFeHRlbmRlZBIoCgVwYXllchgBIAEoCzIZLmJsdWVhcGkuYXBpLnJpcHBsZS5QYXllchIOCgZ0YXJnZXQYAiABKAkSDwoHcm9sZUFybhgDIAEoCRISCgpleHRlcm5hbElkGAQgASgJEg8KB3N0YWNrSWQYBSABKAkSEwoLc3RhY2tSZWdpb24YBiABKAkSEwoLdGVtcGxhdGVVcmwYByABKAkSDgoGc3RhdHVzGAggASgJEhMKC2xhc3RVcGRhdGVkGAkgASgJEhIKCmJ1Y2tldE5hbWUYCiABKAkSDgoGcHJlZml4GAsgASgJEhIKCnJlcG9ydE5hbWUYDCABKAkSIAoYZGVmYXVsdENvc3RBY2Nlc3NSb2xlQXJuGA0gASgJEg8KB2N1clR5cGUYDiABKAkiUAojR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEg0KBW1vbnRoGAMgASgJIlUKJEdldFBheWVyQWNjb3VudEltcG9ydEhpc3RvcnlSZXNwb25zZRIKCgJpZBgBIAEoCRINCgVtb250aBgCIAEoCRISCgp0aW1lc3RhbXBzGAMgAygJIjwKHkdldFBheWVyUHJvZm9ybWFSZXBvcnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiVAofR2V0UGF5ZXJQcm9mb3JtYVJlcG9ydHNSZXNwb25zZRIxCgdyZXBvcnRzGAEgAygLMiAuYmx1ZWFwaS5jb3N0LnYxLlByb2Zvcm1hUmVwb3J0cyKbAQoPUHJvZm9ybWFSZXBvcnRzEgoKAmlkGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkSEgoKYnVja2V0TmFtZRgEIAEoCRIOCgZwcmVmaXgYBSABKAkSEgoKcmVwb3J0TmFtZRgGIAEoCRIPCgdyb2xlQXJuGAcgASgJIogBCiNDcmVhdGVQYXllckFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhIKCmJ1Y2tldE5hbWUYAyABKAkSDgoGcHJlZml4GAQgASgJEhIKCnJlcG9ydE5hbWUYBSABKAkSDwoHcm9sZUFybhgGIAEoCSJ1ChlDcmVhdGVQYXllckFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRJICgphd3NPcHRpb25zGAIgASgLMjQuYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZVBheWVyQWNjb3VudFJlcXVlc3RBd3NPcHRpb25zIjcKGURlbGV0ZVBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJImYKE0xpc3RBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSLgoKZmllbGRfbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siXwoRR2V0QWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEi4KCmZpZWxkX21hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIj0KHkNyZWF0ZUFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxIbChNtYW5hZ2VtZW50QWNjb3VudElkGAEgASgJIloKHkNyZWF0ZUFjY291bnRSZXF1ZXN0R2NwT3B0aW9ucxIbChNtYW5hZ2VtZW50QWNjb3VudElkGAEgASgJEhsKE21hbmFnZW1lbnRCaWxsaW5nSWQYAiABKAki2gEKFENyZWF0ZUFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJEg4KBnBhcmVudBgEIAEoCRJDCgphd3NPcHRpb25zGAUgASgLMi8uYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxJDCgpnY3BPcHRpb25zGAYgASgLMi8uYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0R2NwT3B0aW9ucyJAChRVcGRhdGVBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCSIyChREZWxldGVBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiYgoPTGlzdFRhZ3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIPCgdncm91cElkGAIgASgJEi4KCmZpZWxkX21hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIkUKJExpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAki0gEKJUxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2USVQoDYXdzGAEgASgLMkguYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2UuQXdzUnVubmluZ0FjY291bnQaUgoRQXdzUnVubmluZ0FjY291bnQSDQoFbW9udGgYASABKAkSDwoHYWNjb3VudBgCIAEoCRIMCgRkYXRlGAMgASgJEg8KB3N0YXJ0ZWQYBCABKAkiLAoaR2V0Q2FsY3VsYXRvckNvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIk0KG0dldENhbGN1bGF0b3JDb25maWdSZXNwb25zZRIuCgNhd3MYASABKAsyIS5ibHVlYXBpLmFwaS5hd3MuQ2FsY3VsYXRvckNvbmZpZyKpBgogQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMSEQoJYWNjb3VudElkGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSDwoHcGF5ZXJJZBgDIAEoCRJPCgpxdWFsaWZpZXJzGAQgAygLMjsuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBd3NPcHRpb25zLlF1YWxpZmllchJMCghtb2RpZmllchgFIAEoCzI6LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXdzT3B0aW9ucy5Nb2RpZmllchINCgVhZnRlchgGIAEoCRIUCgxjcmVhdGVOZXdSb3cYByABKAgaigEKCVF1YWxpZmllchJRCgNhbmQYASADKAsyRC5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMuUXVhbGlmaWVyLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEa/gIKCE1vZGlmaWVyEg8KB2Zvcm11bGEYASABKAkSawoTZGVzY3JpcHRpb25Nb2RpZmllchgCIAEoCzJOLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXdzT3B0aW9ucy5Nb2RpZmllci5EZXNjcmlwdGlvbk1vZGlmaWVyGvMBChNEZXNjcmlwdGlvbk1vZGlmaWVyEg4KBnByZWZpeBgBIAEoCRIOCgZzdWZmaXgYAiABKAkSDwoHcmVwbGFjZRgDIAEoCRJ2CgxyZXBsYWNlTWF0Y2gYBCADKAsyYC5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMuTW9kaWZpZXIuRGVzY3JpcHRpb25Nb2RpZmllci5SZXBsYWNlTWF0Y2hFbnRyeRozChFSZXBsYWNlTWF0Y2hFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIp8FCiJDYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zEg8KB2dyb3VwSWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCRISCgpjdXN0b21lcklkGAMgASgJEhYKDnN1YnNjcmlwdGlvbklkGAQgASgJEhUKDWVudGl0bGVtZW50SWQYBSABKAkSUQoKcXVhbGlmaWVycxgGIAMoCzI9LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLlF1YWxpZmllchJOCghtb2RpZmllchgHIAEoCzI8LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLk1vZGlmaWVyEg0KBWFmdGVyGAggASgJGowBCglRdWFsaWZpZXISUwoDYW5kGAEgAygLMkYuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBenVyZU9wdGlvbnMuUXVhbGlmaWVyLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEa0gEKCE1vZGlmaWVyEg8KB2Zvcm11bGEYASABKAkSbQoTZGVzY3JpcHRpb25Nb2RpZmllchgCIAEoCzJQLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLk1vZGlmaWVyLkRlc2NyaXB0aW9uTW9kaWZpZXIaRgoTRGVzY3JpcHRpb25Nb2RpZmllchIOCgZwcmVmaXgYASABKAkSDgoGc3VmZml4GAIgASgJEg8KB3JlcGxhY2UYAyABKAki3gEKFkNhbGN1bGF0b3JDb3N0TW9kaWZpZXISCgoCaWQYASABKAkSEgoKY3JlYXRlVGltZRgCIAEoCRISCgp1cGRhdGVUaW1lGAMgASgJEkUKCmF3c09wdGlvbnMYBCABKAsyMS5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMSSQoMYXp1cmVPcHRpb25zGAUgASgLMjMuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBenVyZU9wdGlvbnMiNAoiTGlzdENhbGN1bGF0b3JDb3N0TW9kaWZpZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkixwEKI0NyZWF0ZUNhbGN1bGF0b3JDb3N0TW9kaWZpZXJSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRJFCgphd3NPcHRpb25zGAIgASgLMjEuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBd3NPcHRpb25zEkkKDGF6dXJlT3B0aW9ucxgDIAEoCzIzLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zIpQBCiRDcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVzcG9uc2USNAoDYXdzGAEgAygLMicuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXISNgoFYXp1cmUYAiADKAsyJy5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllciJBCiNEZWxldGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiNgoVSW1wb3J0Q3VyRmlsZXNSZXF1ZXN0Eg0KBW1vbnRoGAEgASgJEg4KBmZpbHRlchgCIAEoCSJ6CghDb3N0SXRlbRIiCgNhd3MYASABKAsyFS5ibHVlYXBpLmFwaS5hd3MuQ29zdBIiCgNnY3AYAiABKAsyFS5ibHVlYXBpLmFwaS5nY3AuQ29zdBImCgVhenVyZRgDIAEoCzIXLmJsdWVhcGkuYXBpLmF6dXJlLkNvc3QiWAofQ2FsY3VsYXRlQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucxINCgVmb3JjZRgBIAEoCBIUCgxhY2NvdW50c09ubHkYAiABKAgSEAoIdGFnc09ubHkYAyABKAgijQEKFUNhbGN1bGF0ZUNvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDwoHZ3JvdXBJZBgCIAEoCRINCgVtb250aBgDIAEoCRJECgphd3NPcHRpb25zGAQgASgLMjAuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0ZUNvc3RzUmVxdWVzdEF3c09wdGlvbnMiUwoeTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIMCgRhc09mGAIgASgJEhMKC2V4Y2x1ZGVEb25lGAMgASgIIksKIkxpc3RDYWxjdWxhdGlvbnNIaXN0b3J5QXdzUmVzcG9uc2USJQoKb3BlcmF0aW9ucxgBIAMoCzIRLnByb3Rvcy5PcGVyYXRpb24iYwofTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXNwb25zZRJACgNhd3MYASABKAsyMy5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlBd3NSZXNwb25zZSK9AQoUQ2FsY3VsYXRpb25zU2NoZWR1bGUSCgoCaWQYASABKAkSEAoIc2NoZWR1bGUYAiABKAkSFQoNc2NoZWR1bGVNYWNybxgIIAEoCRITCgt0YXJnZXRNb250aBgJIAEoCRIPCgduZXh0UnVuGAMgASgJEhsKE25vdGlmaWNhdGlvbkNoYW5uZWwYBCABKAkSDQoFZm9yY2UYBSABKAgSDgoGZHJ5UnVuGAYgASgIEg4KBnN0YXR1cxgHIAEoCSIyCiBMaXN0Q2FsY3VsYXRpb25zU2NoZWR1bGVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiXQohTGlzdENhbGN1bGF0aW9uc1NjaGVkdWxlc1Jlc3BvbnNlEjgKCXNjaGVkdWxlcxgBIAMoCzIlLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdGlvbnNTY2hlZHVsZSKtAQohQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIQCghzY2hlZHVsZRgCIAEoCRIVCg1zY2hlZHVsZU1hY3JvGAYgASgJEhMKC3RhcmdldE1vbnRoGAcgASgJEhsKE25vdGlmaWNhdGlvbkNoYW5uZWwYAyABKAkSDQoFZm9yY2UYBCABKAgSDgoGZHJ5UnVuGAUgASgIIj8KIURlbGV0ZUNhbGN1bGF0aW9uc1NjaGVkdWxlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiggMKGVJlYWRDb3N0QXR0cmlidXRlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJEkkKCmF3c09wdGlvbnMYBiABKAsyNS5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RBdHRyaWJ1dGVzUmVxdWVzdC5Bd3NPcHRpb25zEk0KDGF6dXJlT3B0aW9ucxgHIAEoCzI3LmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdEF0dHJpYnV0ZXNSZXF1ZXN0LkF6dXJlT3B0aW9ucxogCgpBd3NPcHRpb25zEhIKCmRpbWVuc2lvbnMYASABKAkaUQoMQXp1cmVPcHRpb25zEhIKCmN1c3RvbWVySWQYASABKAkSFgoOc3Vic2NyaXB0aW9uSWQYAiABKAkSFQoNZW50aXRsZW1lbnRJZBgDIAEoCSJxChFDb3N0QXR0cmlidXRlSXRlbRIrCgNhd3MYASABKAsyHi5ibHVlYXBpLmFwaS5hd3MuQ29zdEF0dHJpYnV0ZRIvCgVhenVyZRgCIAEoCzIgLmJsdWVhcGkuYXBpLmF6dXJlLkNvc3RBdHRyaWJ1dGUibwoYR2V0Q29zdEF0dHJpYnV0ZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIPCgdncm91cElkGAMgASgJEhEKCWFjY291bnRJZBgEIAEoCRIQCghjYXRlZ29yeRgFIAEoCSJKChlHZXRDb3N0QXR0cmlidXRlc1Jlc3BvbnNlEi0KBWl0ZW1zGAEgAygLMh4uYmx1ZWFwaS5jb3N0LnYxLkNvc3RBdHRyaWJ1dGUiPwoNQ29zdEF0dHJpYnV0ZRIOCgZ2ZW5kb3IYASABKAkSEAoIY2F0ZWdvcnkYAiABKAkSDAoEZGF0YRgDIAMoCSKuAQohUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnNGaWx0ZXJzElYKCmFuZEZpbHRlcnMYASADKAsyQi5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnNGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKxBAoaUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEhUKDWdyb3VwQWNjb3VudHMYCCABKAgSFQoNZ3JvdXBCeVRhZ0tleRgMIAEoCRJDCgdmaWx0ZXJzGAMgAygLMjIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zRmlsdGVycxJKCgp0YWdGaWx0ZXJzGAkgAygLMjYuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zLlRhZ0ZpbHRlcnMSEwoLaW5jbHVkZVRhZ3MYBCABKAgSHQoVaW5jbHVkZUNvc3RDYXRlZ29yaWVzGAUgASgIEhIKCnRvQ3VycmVuY3kYBiABKAkSEwoLZm9yY2VMYXRlc3QYByABKAgSDwoHbm9DYWNoZRgKIAEoCBIaChJpbmNsdWRlQWRqdXN0bWVudHMYCyABKAgamwEKClRhZ0ZpbHRlcnMSWgoKYW5kRmlsdGVycxgBIAMoCzJGLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucy5UYWdGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKxAgoQUmVhZENvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDwoHZ3JvdXBJZBgCIAEoCRIRCglhY2NvdW50SWQYAyABKAkSEQoJc3RhcnRUaW1lGAQgASgJEg8KB2VuZFRpbWUYBSABKAkSPwoKYXdzT3B0aW9ucxgGIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucxI/CgpnY3BPcHRpb25zGAcgASgLMisuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zEkMKDGF6dXJlT3B0aW9ucxgIIAEoCzItLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXp1cmVPcHRpb25zIjYKIFJlYWRBZGp1c3RtZW50c1JlcXVlc3RBd3NPcHRpb25zEhIKCnRvQ3VycmVuY3kYASABKAkitwEKFlJlYWRBZGp1c3RtZW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJEkUKCmF3c09wdGlvbnMYBiABKAsyMS5ibHVlYXBpLmNvc3QudjEuUmVhZEFkanVzdG1lbnRzUmVxdWVzdEF3c09wdGlvbnMijwQKHVJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zEg0KBXRhZ0lkGAEgASgJEhYKDmdyb3VwQnlDb2x1bW5zGAIgASgJEhQKDGdyb3VwQnlNb250aBgDIAEoCBJDCgdmaWx0ZXJzGAQgAygLMjIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zRmlsdGVycxJNCgp0YWdGaWx0ZXJzGAUgAygLMjkuYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zLlRhZ0ZpbHRlcnMSEwoLaW5jbHVkZVRhZ3MYBiABKAgSHQoVaW5jbHVkZUNvc3RDYXRlZ29yaWVzGAcgASgIEhIKCnRvQ3VycmVuY3kYCCABKAkSEwoLZm9yY2VMYXRlc3QYCSABKAgSDwoHbm9DYWNoZRgKIAEoCBIOCgZ0YWdJZHMYCyADKAkangEKClRhZ0ZpbHRlcnMSXQoKYW5kRmlsdGVycxgBIAMoCzJJLmJsdWVhcGkuY29zdC52MS5SZWFkVGFnQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucy5UYWdGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK/AQoTUmVhZFRhZ0Nvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYAiABKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSFQoNZ3JvdXBCeU1vbnRocxgFIAEoCBJCCgphd3NPcHRpb25zGAYgASgLMi4uYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zIn4KFlJlYWROb25UYWdDb3N0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhEKCXN0YXJ0VGltZRgDIAEoCRIPCgdlbmRUaW1lGAQgASgJEhUKDWdyb3VwQnlNb250aHMYBSABKAgihAEKE0dldEZvcmVjYXN0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhEKCWZyZXF1ZW5jeRgDIAEoCRINCgVsZXZlbBgEIAEoCRIQCghmcm9tRGF0ZRgFIAEoCRIOCgZ0b0RhdGUYBiABKAkiRwoUR2V0Rm9yZWNhc3RzUmVzcG9uc2USLwoEZGF0YRgBIAEoCzIhLmJsdWVhcGkuYXBpLkJpbGxpbmdHcm91cEZvcmVjYXN0ImwKHUdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVsZXZlbBgCIAEoCRIKCgJpZBgDIAEoCRIQCghmcm9tRGF0ZRgEIAEoCRIOCgZ0b0RhdGUYBSABKAkibwoeR2V0TW9udGhseUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEi4KBGRhdGEYAiADKAsyIC5ibHVlYXBpLmFwaS5Nb250aGx5Q29zdEZvcmVjYXN0EhEKCXRpbWVzdGFtcBgDIAEoCSJdCiJHZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3RSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVsZXZlbBgCIAEoCRIKCgJpZBgDIAEoCRIMCgRkYXRlGAQgASgJInkKI0dldE1vbnRoT25Nb250aENvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEjMKBGRhdGEYAiADKAsyJS5ibHVlYXBpLmFwaS5Nb250aE9uTW9udGhDb3N0Rm9yZWNhc3QSEQoJdGltZXN0YW1wGAMgASgJIlwKIUdldE1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSDAoEZGF0ZRgEIAEoCSKHAQoiR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIOCgZidWRnZXQYAiABKAESMgoEZGF0YRgDIAMoCzIkLmJsdWVhcGkuYXBpLk1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0EhEKCXRpbWVzdGFtcBgEIAEoCSJSChdHZXRBY2NvdW50QnVkZ2V0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSDAoEeWVhchgEIAEoCSI9ChhHZXRBY2NvdW50QnVkZ2V0UmVzcG9uc2USIQoEZGF0YRgBIAEoCzITLmJsdWVhcGkuYXBpLkJ1ZGdldCJqChpDcmVhdGVBY2NvdW50QnVkZ2V0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSIQoEZGF0YRgEIAEoCzITLmJsdWVhcGkuYXBpLkJ1ZGdldCIvChtDcmVhdGVBY2NvdW50QnVkZ2V0UmVzcG9uc2USEAoIYnVkZ2V0SWQYASABKAkiYQoaVXBkYXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGJ1ZGdldElkGAIgASgJEiEKBGRhdGEYAyABKAsyEy5ibHVlYXBpLmFwaS5CdWRnZXQiPgoaRGVsZXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGJ1ZGdldElkGAIgASgJIosCCiNHZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0QXdzT3B0aW9ucxIaChJyZWNvbW1lbmRhdGlvblR5cGUYASABKAkSDAoEdHlwZRgCIAEoCRISCgpyaVNlcnZpY2VzGAMgAygJEhIKCnNwU2VydmljZXMYBCADKAkSHgoWcHVyY2hhc2VFQzJTYXZpbmdzUGxhbhgFIAEoCBIaChJlYzJTcFByb2R1Y3RGYW1pbHkYBiABKAkSDAoEdGVybRgHIAEoCRIVCg1vZmZlcmluZ0NsYXNzGAggASgJEhUKDXBheW1lbnRPcHRpb24YCSABKAkSGgoSY292ZXJhZ2VQZXJjZW50YWdlGAogASgBIqsBChlHZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIQCghhY2NvdW50cxgDIAMoCRITCgtjb3N0R3JvdXBJZBgEIAEoCRJICgphd3NPcHRpb25zGAUgASgLMjQuYmx1ZWFwaS5jb3N0LnYxLkdldFJlY29tbWVuZGF0aW9uc1JlcXVlc3RBd3NPcHRpb25zImwKGkdldFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj8KEmF3c1JlY29tbWVuZGF0aW9ucxgCIAEoCzIjLmJsdWVhcGkuYXBpLmF3cy5Bd3NSZWNvbW1lbmRhdGlvbnMiggIKF0dldENvc3RSZWR1Y3Rpb25SZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIYChByZWR1Y3Rpb25EaXNwbGF5GAMgASgJEhYKDmluY2x1ZGVEZXRhaWxzGAQgASgIEhAKCGZyb21EYXRlGAUgASgJEg4KBnRvRGF0ZRgGIAEoCRIPCgdwYXllcklkGAcgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAggASgJEg8KB2dyb3VwSWQYCSABKAkSEwoLY29zdEdyb3VwSWQYCiABKAkSEAoIYWNjb3VudHMYCyADKAkSEAoIc2VydmljZXMYDCADKAkiaAoYR2V0Q29zdFJlZHVjdGlvblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj0KEWF3c0Nvc3RSZWR1Y3Rpb25zGAIgASgLMiIuYmx1ZWFwaS5hcGkuYXdzLkF3c0Nvc3RSZWR1Y3Rpb25zIlQKFEdldEV4cG9ydFJJU1BSZXF1ZXN0EgwKBHR5cGUYASABKAkSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESFgoOaW5jbHVkZUV4cGlyZWQYAyABKAgiLQoVR2V0RXhwb3J0UklTUFJlc3BvbnNlEhQKDGRvd25sb2FkTGluaxgBIAEoCSKaAQoTRXhwb3J0UmVwb3J0UmVxdWVzdBINCgVtb250aBgCIAEoCRIOCgZ2ZW5kb3IYASABKAkSJgoYbm90aWZpY2F0aW9uX2NoYW5uZWxfaWRzGAQgAygJQgTiQQEBEjwKC2F3c19vcHRpb25zGAogASgLMicuYmx1ZWFwaS5jb3N0LnYxLkF3c0V4cG9ydFJlcG9ydE9wdGlvbnMi0QIKFkF3c0V4cG9ydFJlcG9ydE9wdGlvbnMSFwoPaW5jbHVkZV9leHBpcmVkGAEgASgIEhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBEhUKB3F1ZXJpZXMYAyADKAlCBOJBAQISFQoHY29sdW1ucxgEIAMoCUIE4kEBARJVChBjb2x1bW5zX2J5X3F1ZXJ5GAUgAygLMjsuYmx1ZWFwaS5jb3N0LnYxLkF3c0V4cG9ydFJlcG9ydE9wdGlvbnMuQ29sdW1uc0J5UXVlcnlFbnRyeRoZCgdDb2x1bW5zEg4KBnZhbHVlcxgBIAMoCRpmChNDb2x1bW5zQnlRdWVyeUVudHJ5EgsKA2tleRgBIAEoCRI+CgV2YWx1ZRgCIAEoCzIvLmJsdWVhcGkuY29zdC52MS5Bd3NFeHBvcnRSZXBvcnRPcHRpb25zLkNvbHVtbnM6AjgBIkEKGkdldEludm9pY2VSZWFkaW5lc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgVtb250aBgCIAEoCUIE4kEBAiI8ChtHZXRJbnZvaWNlUmVhZGluZXNzUmVzcG9uc2USDQoFcmVhZHkYASABKAgSDgoGcmVhc29uGAIgASgJIrgBChVHZXRVdGlsaXphdGlvblJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW9yZ0lkGAIgASgJEgwKBHR5cGUYAyABKAkSEAoIZnJvbURhdGUYBCABKAkSDgoGdG9EYXRlGAUgASgJEg8KB3BheWVySWQYBiABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYByABKAkSDwoHZ3JvdXBJZBgIIAEoCRITCgtjb3N0R3JvdXBJZBgJIAEoCSJeChZHZXRVdGlsaXphdGlvblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEjUKD3V0aWxpemF0aW9uRGF0YRgCIAMoCzIcLmJsdWVhcGkuYXBpLlV0aWxpemF0aW9uRGF0YSL0AQoZR2V0Q292ZXJhZ2VPcHRpb25zUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGcGVyaW9kGAMgASgJEhAKCGZyb21EYXRlGAQgASgJEg4KBnRvRGF0ZRgFIAEoCRIPCgdwYXllcklkGAYgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAcgASgJEg8KB2dyb3VwSWQYCCABKAkSEwoLY29zdEdyb3VwSWQYCSABKAkSEAoIYWNjb3VudHMYCiADKAkSEAoIc2VydmljZXMYCyADKAkSEAoIY3VycmVuY3kYDCABKAkiWgoaR2V0Q292ZXJhZ2VPcHRpb25zUmVzcG9uc2USDQoFb3JnSWQYASABKAkSLQoLb3B0aW9uc0RhdGEYAiADKAsyGC5ibHVlYXBpLmFwaS5PcHRpb25zRGF0YSLjAQoaR2V0Q292ZXJhZ2VPbmRlbWFuZFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnBlcmlvZBgDIAEoCRIQCghmcm9tRGF0ZRgEIAEoCRIOCgZ0b0RhdGUYBSABKAkSDwoHcGF5ZXJJZBgGIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgHIAEoCRIPCgdncm91cElkGAggASgJEhMKC2Nvc3RHcm91cElkGAkgASgJEhAKCGFjY291bnRzGAogAygJEhAKCHNlcnZpY2VzGAsgAygJIl0KG0dldENvdmVyYWdlT25kZW1hbmRSZXNwb25zZRINCgVvcmdJZBgBIAEoCRIvCgxvbmRlbWFuZERhdGEYAiADKAsyGS5ibHVlYXBpLmFwaS5PbmRlbWFuZERhdGEiVAoYR2V0QnJlYWtldmVuUG9pbnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIMCgR0eXBlGAMgASgJEgsKA2FybhgEIAEoCSJnChlHZXRCcmVha2V2ZW5Qb2ludFJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEjsKEGF3c0Nvc3RCcmVha2V2ZW4YAiABKAsyIS5ibHVlYXBpLmFwaS5hd3MuQXdzQ29zdEJyZWFrZXZlbiIoChZMaXN0Q29zdEZpbHRlcnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSJQChdMaXN0Q29zdEZpbHRlcnNSZXNwb25zZRI1Cgtjb3N0RmlsdGVycxgBIAMoCzIgLmJsdWVhcGkuY29zdC52MS5MaXN0Q29zdEZpbHRlcnMirAEKD0xpc3RDb3N0RmlsdGVycxIQCghmaWx0ZXJJZBgBIAEoCRISCgpmaWx0ZXJOYW1lGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdncm91cElkGAQgASgJEhEKCWFjY291bnRJZBgFIAEoCRI/Cgphd3NPcHRpb25zGAYgASgLMisuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zIqMBChhDcmVhdGVDb3N0RmlsdGVyc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhIKCmZpbHRlck5hbWUYAiABKAkSDwoHZ3JvdXBJZBgDIAEoCRIRCglhY2NvdW50SWQYBCABKAkSPwoKYXdzT3B0aW9ucxgFIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucyItChlDcmVhdGVDb3N0RmlsdGVyc1Jlc3BvbnNlEhAKCGZpbHRlcklkGAEgASgJIrUBChhVcGRhdGVDb3N0RmlsdGVyc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGZpbHRlcklkGAIgASgJEhIKCmZpbHRlck5hbWUYAyABKAkSDwoHZ3JvdXBJZBgEIAEoCRIRCglhY2NvdW50SWQYBSABKAkSPwoKYXdzT3B0aW9ucxgGIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucyItChlVcGRhdGVDb3N0RmlsdGVyc1Jlc3BvbnNlEhAKCGZpbHRlcklkGAEgASgJIjwKGERlbGV0ZUNvc3RGaWx0ZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEAoIZmlsdGVySWQYAiABKAkixwEKHEV4cG9ydENvc3RGaWx0ZXJzRmlsZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGZpbHRlcklkGAIgASgJEh4KFm5vdGlmaWNhdGlvbkNoYW5uZWxJZHMYCCADKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSFAoMZ3JvdXBCeU1vbnRoGAUgASgIEhYKDmdyb3VwQnlDb2x1bW5zGAYgASgJEhMKC2luY2x1ZGVUYWdzGAcgASgIIiwKHUV4cG9ydENvc3RGaWx0ZXJzRmlsZVJlc3BvbnNlEgsKA3VybBgBIAEoCSKSAgoaUmVhZENvc3RzUmVxdWVzdEdjcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEhUKDWdyb3VwQWNjb3VudHMYAyABKAgSQwoHZmlsdGVycxgEIAMoCzIyLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0R2NwT3B0aW9uc0ZpbHRlcnMSGwoTaW5jbHVkZUludm9pY2VNb250aBgGIAEoCBIWCg5pbmNsdWRlQ3JlZGl0cxgHIAEoCBIQCghyb3VuZGluZxgIIAEoCBIPCgdub0NhY2hlGAUgASgIEhIKCnRvQ3VycmVuY3kYCSABKAkirgEKIVJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zRmlsdGVycxJWCgphbmRGaWx0ZXJzGAEgAygLMkIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zRmlsdGVycy5BbmRGaWx0ZXJzRW50cnkaMQoPQW5kRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiOwodR2V0QWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJInIKIENyZWF0ZUFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRIyCgtidWRnZXRBbGVydBgDIAEoCzIdLmJsdWVhcGkuYXBpLndhdmUuQnVkZ2V0QWxlcnQicgogVXBkYXRlQWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEjIKC2J1ZGdldEFsZXJ0GAMgASgLMh0uYmx1ZWFwaS5hcGkud2F2ZS5CdWRnZXRBbGVydCI+CiBEZWxldGVBY2NvdW50QnVkZ2V0QWxlcnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiiAEKHFJlYWRDb3N0c1JlcXVlc3RBenVyZU9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEg8KB25vQ2FjaGUYAyABKAgSEgoKdG9DdXJyZW5jeRgEIAEoCRIVCg1yZXNvdXJjZUdyb3VwGAUgASgJIqgDCgxCdWRnZXRBbGVydHMSCgoCaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEiYKCGFjY291bnRzGAMgAygLMhQuYmx1ZWFwaS5hcGkuQWNjb3VudBJACgxub3RpZmljYXRpb24YBCABKAsyKi5ibHVlYXBpLmFwaS5CdWRnZXRBbGVydE5vdGlmaWNhdGlvbkRldGFpbBIsCgVkYWlseRgFIAEoCzIdLmJsdWVhcGkuYXBpLkRhaWx5QnVkZ2V0QWxlcnQSPAoJZGFpbHlSYXRlGAcgASgLMikuYmx1ZWFwaS5hcGkuRGFpbHlSYXRlSW5jcmVhc2VCdWRnZXRBbGVydBIwCgdtb250aGx5GAYgASgLMh8uYmx1ZWFwaS5hcGkuTW9udGhseUJ1ZGdldEFsZXJ0EjoKDGN1c3RvbVBlcmlvZBgIIAEoCzIkLmJsdWVhcGkuYXBpLkN1c3RvbVBlcmlvZEJ1ZGdldEFsZXJ0EjgKC2N1c3RvbU1vbnRoGAkgASgLMiMuYmx1ZWFwaS5hcGkuQ3VzdG9tTW9udGhCdWRnZXRBbGVydCJJChdSZWFkQnVkZ2V0QWxlcnRzUmVxdWVzdBIuCgpmaWVsZF9tYXNrGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayIkChZHZXRCdWRnZXRBbGVydHNSZXF1ZXN0EgoKAmlkGAEgASgJIo0DChlDcmVhdGVCdWRnZXRBbGVydHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIQCghhY2NvdW50cxgCIAMoCRI6Cgxub3RpZmljYXRpb24YAyABKAsyJC5ibHVlYXBpLmFwaS5CdWRnZXRBbGVydE5vdGlmaWNhdGlvbhIsCgVkYWlseRgEIAEoCzIdLmJsdWVhcGkuYXBpLkRhaWx5QnVkZ2V0QWxlcnQSPAoJZGFpbHlSYXRlGAYgASgLMikuYmx1ZWFwaS5hcGkuRGFpbHlSYXRlSW5jcmVhc2VCdWRnZXRBbGVydBIwCgdtb250aGx5GAUgASgLMh8uYmx1ZWFwaS5hcGkuTW9udGhseUJ1ZGdldEFsZXJ0EjoKDGN1c3RvbVBlcmlvZBgHIAEoCzIkLmJsdWVhcGkuYXBpLkN1c3RvbVBlcmlvZEJ1ZGdldEFsZXJ0EjgKC2N1c3RvbU1vbnRoGAggASgLMiMuYmx1ZWFwaS5hcGkuQ3VzdG9tTW9udGhCdWRnZXRBbGVydCKZAwoZVXBkYXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIYWNjb3VudHMYAyADKAkSOgoMbm90aWZpY2F0aW9uGAQgASgLMiQuYmx1ZWFwaS5hcGkuQnVkZ2V0QWxlcnROb3RpZmljYXRpb24SLAoFZGFpbHkYBSABKAsyHS5ibHVlYXBpLmFwaS5EYWlseUJ1ZGdldEFsZXJ0EjwKCWRhaWx5UmF0ZRgHIAEoCzIpLmJsdWVhcGkuYXBpLkRhaWx5UmF0ZUluY3JlYXNlQnVkZ2V0QWxlcnQSMAoHbW9udGhseRgGIAEoCzIfLmJsdWVhcGkuYXBpLk1vbnRobHlCdWRnZXRBbGVydBI6CgxjdXN0b21QZXJpb2QYCCABKAsyJC5ibHVlYXBpLmFwaS5DdXN0b21QZXJpb2RCdWRnZXRBbGVydBI4CgtjdXN0b21Nb250aBgJIAEoCzIjLmJsdWVhcGkuYXBpLkN1c3RvbU1vbnRoQnVkZ2V0QWxlcnQiJwoZRGVsZXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBIKCgJpZBgBIAEoCSI6ChRDaGVja0FjY291bnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEgoKYWNjb3VudElkcxgCIAMoCSKKAQoVQ2hlY2tBY2NvdW50c1Jlc3BvbnNlEkIKBmV4aXN0cxgBIAMoCzIyLmJsdWVhcGkuY29zdC52MS5DaGVja0FjY291bnRzUmVzcG9uc2UuRXhpc3RzRW50cnkaLQoLRXhpc3RzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgIOgI4ASI2ChVSZWFkSW52b2ljZUlkc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJIiQKFlJlYWRJbnZvaWNlSWRzUmVzcG9uc2USCgoCaWQYASABKAkisAEKC1BlcmlvZFJhbmdlEi8KBHVuaXQYASABKA4yIS5ibHVlYXBpLmNvc3QudjEuUGVyaW9kUmFuZ2UuVW5pdBIMCgR5ZWFyGAIgASgNEhAKCHN0YXJ0aW5nGAMgASgNEhAKCGR1cmF0aW9uGAQgASgNIj4KBFVuaXQSFAoQVU5JVF9VTlNQRUNJRklFRBAAEgkKBU1PTlRIEAESCwoHUVVBUlRFUhACEggKBFlFQVIQAyKgAQobUmVhZEludm9pY2VPdmVydmlld3NSZXF1ZXN0EhEKCXN0YXJ0VGltZRgBIAEoCRIPCgdlbmRUaW1lGAIgASgJEhYKDnVzZVBlcmlvZFJhbmdlGAQgASgIEjEKC3BlcmlvZFJhbmdlGAUgASgLMhwuYmx1ZWFwaS5jb3N0LnYxLlBlcmlvZFJhbmdlEhIKCnRvQ3VycmVuY3kYAyABKAkiUQoXUmVhZEludm9pY2VDb3N0c1JlcXVlc3QSEQoJc3RhcnRUaW1lGAEgASgJEg8KB2VuZFRpbWUYAiABKAkSEgoKdG9DdXJyZW5jeRgDIAEoCSJlChxSZWFkSW52b2ljZUdyb3VwQ29zdHNSZXF1ZXN0EhEKCXN0YXJ0VGltZRgBIAEoCRIPCgdlbmRUaW1lGAIgASgJEhIKCnRvQ3VycmVuY3kYAyABKAkSDQoFbGltaXQYBCABKAUiNQojUmVhZEFjY291bnRPcmlnaW5hbFJlc291cmNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIlgKG1JlZ2lzdGVyUGF5ZXJBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCRIPCgdjdXJUeXBlGAQgASgJIlYKGVVwZGF0ZVBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEgwKBG5hbWUYAyABKAkSDwoHY3VyVHlwZRgEIAEoCSJECiNMaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkilQEKF0NhbGN1bGF0aW9uUHJlcmVxdWlzaXRlEhIKCmludm9pY2VfaWQYASABKAkSEAoIcGF5ZXJfaWQYAiABKAkSFQoNZXhjaGFuZ2VfcmF0ZRgDIAEoARIdChV1bmJsZW5kZWRfY29zdF9pbl9jdXIYBCABKAESDAoEbmFtZRgFIAEoCRIQCghjdXJfdHlwZRgGIAEoCSJnCiRMaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzUmVzcG9uc2USPwoNcHJlcmVxdWlzaXRlcxgBIAMoCzIoLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdGlvblByZXJlcXVpc2l0ZSKwAQonU2V0dXBQYXllckFjY291bnRCaWxsaW5nVHJhbnNmZXJSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRINCgVtb250aBgDIAEoCRIRCglzM19idWNrZXQYBCABKAkSEwoLcmVwb3J0X25hbWUYBSABKAkSEAoIcm9sZV9hcm4YBiABKAkSEAoIY3VyX3R5cGUYByABKAkSDgoGcHJlZml4GAggASgJMv9UCgRDb3N0EnMKEUxpc3RQYXllckFjY291bnRzEikuYmx1ZWFwaS5jb3N0LnYxLkxpc3RQYXllckFjY291bnRzUmVxdWVzdBoULmJsdWVhcGkuYXBpLkFjY291bnQiG4LT5JMCFRITL3YxL3t2ZW5kb3J9L3BheWVyczABEncKD0dldFBheWVyQWNjb3VudBInLmJsdWVhcGkuY29zdC52MS5HZXRQYXllckFjY291bnRSZXF1ZXN0GhkuYmx1ZWFwaS5hcGkucmlwcGxlLlBheWVyIiCC0+STAhoSGC92MS97dmVuZG9yfS9wYXllcnMve2lkfRKUAQoZTGlzdFBheWVyQWNjb3VudHNFeHRlbmRlZBIpLmJsdWVhcGkuY29zdC52MS5MaXN0UGF5ZXJBY2NvdW50c1JlcXVlc3QaJS5ibHVlYXBpLmNvc3QudjEuUGF5ZXJBY2NvdW50RXh0ZW5kZWQiI4LT5JMCHRIbL3YxL3t2ZW5kb3J9L3BheWVyc2V4dGVuZGVkMAESkwEKF0dldFBheWVyQWNjb3VudEV4dGVuZGVkEicuYmx1ZWFwaS5jb3N0LnYxLkdldFBheWVyQWNjb3VudFJlcXVlc3QaJS5ibHVlYXBpLmNvc3QudjEuUGF5ZXJBY2NvdW50RXh0ZW5kZWQiKILT5JMCIhIgL3YxL3t2ZW5kb3J9L3BheWVyc2V4dGVuZGVkL3tpZH0SvQEKHEdldFBheWVyQWNjb3VudEltcG9ydEhpc3RvcnkSNC5ibHVlYXBpLmNvc3QudjEuR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlcXVlc3QaNS5ibHVlYXBpLmNvc3QudjEuR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlc3BvbnNlIi6C0+STAigSJi92MS97dmVuZG9yfS9wYXllcnMve2lkfS9pbXBvcnRoaXN0b3J5MAESpwEKF0dldFBheWVyUHJvZm9ybWFSZXBvcnRzEi8uYmx1ZWFwaS5jb3N0LnYxLkdldFBheWVyUHJvZm9ybWFSZXBvcnRzUmVxdWVzdBowLmJsdWVhcGkuY29zdC52MS5HZXRQYXllclByb2Zvcm1hUmVwb3J0c1Jlc3BvbnNlIimC0+STAiMSIS92MS97dmVuZG9yfS9wYXllcnMve2lkfS9wcm9mb3JtYRJ2ChJDcmVhdGVQYXllckFjY291bnQSKi5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlUGF5ZXJBY2NvdW50UmVxdWVzdBoULmJsdWVhcGkuYXBpLkFjY291bnQiHoLT5JMCGDoBKiITL3YxL3t2ZW5kb3J9L3BheWVycxKJAQoUUmVnaXN0ZXJQYXllckFjY291bnQSLC5ibHVlYXBpLmNvc3QudjEuUmVnaXN0ZXJQYXllckFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiuC0+STAiU6ASoiIC92MS97dmVuZG9yfS9wYXllcnMvYmFzaWNkZXRhaWxzEooBChJVcGRhdGVQYXllckFjY291bnQSKi5ibHVlYXBpLmNvc3QudjEuVXBkYXRlUGF5ZXJBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIwgtPkkwIqOgEqGiUvdjEve3ZlbmRvcn0vcGF5ZXJzL2Jhc2ljZGV0YWlscy97aWR9EnoKEkRlbGV0ZVBheWVyQWNjb3VudBIqLmJsdWVhcGkuY29zdC52MS5EZWxldGVQYXllckFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiCC0+STAhoqGC92MS97dmVuZG9yfS9wYXllcnMve2lkfRKVAQoMTGlzdEFjY291bnRzEiQuYmx1ZWFwaS5jb3N0LnYxLkxpc3RBY2NvdW50c1JlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IkeC0+STAkFaKBImL3YxL3t2ZW5kb3J9L2FjY291bnRzL2dyb3Vwcy97Z3JvdXBJZH0SFS92MS97dmVuZG9yfS9hY2NvdW50czABEmoKCkdldEFjY291bnQSIi5ibHVlYXBpLmNvc3QudjEuR2V0QWNjb3VudFJlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IiKC0+STAhwSGi92MS97dmVuZG9yfS9hY2NvdW50cy97aWR9Em4KDUNyZWF0ZUFjY291bnQSJS5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudFJlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IiCC0+STAho6ASoiFS92MS97dmVuZG9yfS9hY2NvdW50cxJzCg1VcGRhdGVBY2NvdW50EiUuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUFjY291bnRSZXF1ZXN0GhQuYmx1ZWFwaS5hcGkuQWNjb3VudCIlgtPkkwIfOgEqGhovdjEve3ZlbmRvcn0vYWNjb3VudHMve2lkfRJyCg1EZWxldGVBY2NvdW50EiUuYmx1ZWFwaS5jb3N0LnYxLkRlbGV0ZUFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhwqGi92MS97dmVuZG9yfS9hY2NvdW50cy97aWR9Ep8BChxSZWFkQWNjb3VudE9yaWdpbmFsUmVzb3VyY2VzEjQuYmx1ZWFwaS5jb3N0LnYxLlJlYWRBY2NvdW50T3JpZ2luYWxSZXNvdXJjZXNSZXF1ZXN0GiQuYmx1ZWFwaS5hcGkuQWNjb3VudE9yaWdpbmFsUmVzb3VyY2UiIYLT5JMCGzoBKiIWL3YxL3t2ZW5kb3J9L2FvcnM6cmVhZDABEoUBCghMaXN0VGFncxIgLmJsdWVhcGkuY29zdC52MS5MaXN0VGFnc1JlcXVlc3QaFC5ibHVlYXBpLmFwaS5Db3N0VGFnIj+C0+STAjlaJBIiL3YxL3t2ZW5kb3J9L3RhZ3MvZ3JvdXBzL3tncm91cElkfRIRL3YxL3t2ZW5kb3J9L3RhZ3MwARLBAQodTGlzdENhbGN1bGF0b3JSdW5uaW5nQWNjb3VudHMSNS5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0b3JSdW5uaW5nQWNjb3VudHNSZXF1ZXN0GjYuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2UiL4LT5JMCKToBKiIkL3YxL3t2ZW5kb3J9L2NhbGN1bGF0b3IvcnVubmluZzpyZWFkMAESmAEKE0dldENhbGN1bGF0b3JDb25maWcSKy5ibHVlYXBpLmNvc3QudjEuR2V0Q2FsY3VsYXRvckNvbmZpZ1JlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuR2V0Q2FsY3VsYXRvckNvbmZpZ1Jlc3BvbnNlIiaC0+STAiASHi92MS97dmVuZG9yfS9jYWxjdWxhdG9yL2NvbmZpZxKuAQobTGlzdENhbGN1bGF0b3JDb3N0TW9kaWZpZXJzEjMuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yQ29zdE1vZGlmaWVyc1JlcXVlc3QaJy5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllciIvgtPkkwIpEicvdjEve3ZlbmRvcn0vY2FsY3VsYXRvci9jb25maWcvY29zdG1vZHMwARK/AQocQ3JlYXRlQ2FsY3VsYXRvckNvc3RNb2RpZmllchI0LmJsdWVhcGkuY29zdC52MS5DcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVxdWVzdBo1LmJsdWVhcGkuY29zdC52MS5DcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVzcG9uc2UiMoLT5JMCLDoBKiInL3YxL3t2ZW5kb3J9L2NhbGN1bGF0b3IvY29uZmlnL2Nvc3Rtb2RzEqIBChxEZWxldGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyEjQuYmx1ZWFwaS5jb3N0LnYxLkRlbGV0ZUNhbGN1bGF0b3JDb3N0TW9kaWZpZXJSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjSC0+STAi4qLC92MS97dmVuZG9yfS9jYWxjdWxhdG9yL2NvbmZpZy9jb3N0bW9kcy97aWR9EmoKDkltcG9ydEN1ckZpbGVzEiYuYmx1ZWFwaS5jb3N0LnYxLkltcG9ydEN1ckZpbGVzUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iHYLT5JMCFzoBKiISL3YxL2F3cy9jdXI6aW1wb3J0EnQKDkNhbGN1bGF0ZUNvc3RzEiYuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0ZUNvc3RzUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iJ4LT5JMCIToBKiIcL3YxL3t2ZW5kb3J9L2Nvc3RzOmNhbGN1bGF0ZRKnAQoXTGlzdENhbGN1bGF0aW9uc0hpc3RvcnkSLy5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXF1ZXN0GjAuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNIaXN0b3J5UmVzcG9uc2UiKYLT5JMCIxIhL3YxL3t2ZW5kb3J9L2NhbGN1bGF0aW9ucy9oaXN0b3J5Eq8BChlMaXN0Q2FsY3VsYXRpb25zU2NoZWR1bGVzEjEuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNTY2hlZHVsZXNSZXF1ZXN0GjIuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNTY2hlZHVsZXNSZXNwb25zZSIrgtPkkwIlEiMvdjEve3ZlbmRvcn0vY2FsY3VsYXRpb25zL3NjaGVkdWxlcxKnAQoaQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGUSMi5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGVSZXF1ZXN0GiUuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0aW9uc1NjaGVkdWxlIi6C0+STAig6ASoiIy92MS97dmVuZG9yfS9jYWxjdWxhdGlvbnMvc2NoZWR1bGVzEpoBChpEZWxldGVDYWxjdWxhdGlvbnNTY2hlZHVsZRIyLmJsdWVhcGkuY29zdC52MS5EZWxldGVDYWxjdWxhdGlvbnNTY2hlZHVsZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKiooL3YxL3t2ZW5kb3J9L2NhbGN1bGF0aW9ucy9zY2hlZHVsZXMve2lkfRKGAQoPTGlzdENvc3RGaWx0ZXJzEicuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDb3N0RmlsdGVyc1JlcXVlc3QaKC5ibHVlYXBpLmNvc3QudjEuTGlzdENvc3RGaWx0ZXJzUmVzcG9uc2UiIILT5JMCGhIYL3YxL3t2ZW5kb3J9L2Nvc3RmaWx0ZXJzEo8BChFDcmVhdGVDb3N0RmlsdGVycxIpLmJsdWVhcGkuY29zdC52MS5DcmVhdGVDb3N0RmlsdGVyc1JlcXVlc3QaKi5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQ29zdEZpbHRlcnNSZXNwb25zZSIjgtPkkwIdOgEqIhgvdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMSmgEKEVVwZGF0ZUNvc3RGaWx0ZXJzEikuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUNvc3RGaWx0ZXJzUmVxdWVzdBoqLmJsdWVhcGkuY29zdC52MS5VcGRhdGVDb3N0RmlsdGVyc1Jlc3BvbnNlIi6C0+STAig6ASoaIy92MS97dmVuZG9yfS9jb3N0ZmlsdGVycy97ZmlsdGVySWR9EoMBChFEZWxldGVDb3N0RmlsdGVycxIpLmJsdWVhcGkuY29zdC52MS5EZWxldGVDb3N0RmlsdGVyc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiK4LT5JMCJSojL3YxL3t2ZW5kb3J9L2Nvc3RmaWx0ZXJzL3tmaWx0ZXJJZH0SkAEKFUV4cG9ydENvc3RGaWx0ZXJzRmlsZRItLmJsdWVhcGkuY29zdC52MS5FeHBvcnRDb3N0RmlsdGVyc0ZpbGVSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiI1gtPkkwIvOgEqIiovdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMve2ZpbHRlcklkfTpleHBvcnQStwEKGUV4cG9ydENvc3RGaWx0ZXJzRmlsZVN5bmMSLS5ibHVlYXBpLmNvc3QudjEuRXhwb3J0Q29zdEZpbHRlcnNGaWxlUmVxdWVzdBouLmJsdWVhcGkuY29zdC52MS5FeHBvcnRDb3N0RmlsdGVyc0ZpbGVSZXNwb25zZSI7gtPkkwI1OgEqIjAvdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMve2ZpbHRlcklkfTpleHBvcnRkaXJlY3QSjgEKElJlYWRDb3N0QXR0cmlidXRlcxIqLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdEF0dHJpYnV0ZXNSZXF1ZXN0GiIuYmx1ZWFwaS5jb3N0LnYxLkNvc3RBdHRyaWJ1dGVJdGVtIiaC0+STAiA6ASoiGy92MS97dmVuZG9yfS9jb3N0YXR0cnM6cmVhZDABEooBChFHZXRDb3N0QXR0cmlidXRlcxIpLmJsdWVhcGkuY29zdC52MS5HZXRDb3N0QXR0cmlidXRlc1JlcXVlc3QaKi5ibHVlYXBpLmNvc3QudjEuR2V0Q29zdEF0dHJpYnV0ZXNSZXNwb25zZSIegtPkkwIYEhYvdjEve3ZlbmRvcn0vY29zdGF0dHJzEm8KCVJlYWRDb3N0cxIhLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0GhkuYmx1ZWFwaS5jb3N0LnYxLkNvc3RJdGVtIiKC0+STAhw6ASoiFy92MS97dmVuZG9yfS9jb3N0czpyZWFkMAESgQEKD1JlYWRBZGp1c3RtZW50cxInLmJsdWVhcGkuY29zdC52MS5SZWFkQWRqdXN0bWVudHNSZXF1ZXN0GhkuYmx1ZWFwaS5jb3N0LnYxLkNvc3RJdGVtIiiC0+STAiI6ASoiHS92MS97dmVuZG9yfS9hZGp1c3RtZW50czpyZWFkMAESeAoMUmVhZFRhZ0Nvc3RzEiQuYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3QaGS5ibHVlYXBpLmNvc3QudjEuQ29zdEl0ZW0iJYLT5JMCHzoBKiIaL3YxL3t2ZW5kb3J9L3RhZ2Nvc3RzOnJlYWQwARKBAQoPUmVhZE5vblRhZ0Nvc3RzEicuYmx1ZWFwaS5jb3N0LnYxLlJlYWROb25UYWdDb3N0c1JlcXVlc3QaGS5ibHVlYXBpLmNvc3QudjEuQ29zdEl0ZW0iKILT5JMCIjoBKiIdL3YxL3t2ZW5kb3J9L25vbnRhZ2Nvc3RzOnJlYWQwARJ7CgxHZXRGb3JlY2FzdHMSJC5ibHVlYXBpLmNvc3QudjEuR2V0Rm9yZWNhc3RzUmVxdWVzdBolLmJsdWVhcGkuY29zdC52MS5HZXRGb3JlY2FzdHNSZXNwb25zZSIegtPkkwIYEhYvdjEve3ZlbmRvcn0vZm9yZWNhc3RzEq4BChZHZXRNb250aGx5Q29zdEZvcmVjYXN0Ei4uYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXNwb25zZSIzgtPkkwItEisvdjEve3ZlbmRvcn0vZm9yZWNhc3RzL21vbnRobHkve2xldmVsfS97aWR9EsQBChtHZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3QSMy5ibHVlYXBpLmNvc3QudjEuR2V0TW9udGhPbk1vbnRoQ29zdEZvcmVjYXN0UmVxdWVzdBo0LmJsdWVhcGkuY29zdC52MS5HZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3RSZXNwb25zZSI6gtPkkwI0EjIvdjEve3ZlbmRvcn0vZm9yZWNhc3RzL21vbnRoLW9uLW1vbnRoL3tsZXZlbH0ve2lkfRLAAQoaR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3QSMi5ibHVlYXBpLmNvc3QudjEuR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GjMuYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiOYLT5JMCMxIxL3YxL3t2ZW5kb3J9L2ZvcmVjYXN0cy9tb250aC10by1kYXRlL3tsZXZlbH0ve2lkfRKRAQoQR2V0QWNjb3VudEJ1ZGdldBIoLmJsdWVhcGkuY29zdC52MS5HZXRBY2NvdW50QnVkZ2V0UmVxdWVzdBopLmJsdWVhcGkuY29zdC52MS5HZXRBY2NvdW50QnVkZ2V0UmVzcG9uc2UiKILT5JMCIhIgL3YxL3t2ZW5kb3J9L2J1ZGdldC97bGV2ZWx9L3tpZH0SnQEKE0NyZWF0ZUFjY291bnRCdWRnZXQSKy5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudEJ1ZGdldFJlc3BvbnNlIiuC0+STAiU6ASoiIC92MS97dmVuZG9yfS9idWRnZXQve2xldmVsfS97aWR9EoUBChNVcGRhdGVBY2NvdW50QnVkZ2V0EisuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUFjY291bnRCdWRnZXRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IimC0+STAiM6ASoaHi92MS97dmVuZG9yfS9idWRnZXQve2J1ZGdldElkfRKCAQoTRGVsZXRlQWNjb3VudEJ1ZGdldBIrLmJsdWVhcGkuY29zdC52MS5EZWxldGVBY2NvdW50QnVkZ2V0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSImgtPkkwIgKh4vdjEve3ZlbmRvcn0vYnVkZ2V0L3tidWRnZXRJZH0SiQEKFkdldEFjY291bnRCdWRnZXRBbGVydHMSLi5ibHVlYXBpLmNvc3QudjEuR2V0QWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmFwaS53YXZlLkJ1ZGdldEFsZXJ0IiCC0+STAhoSGC92MS97dmVuZG9yfS9hbGVydHMve2lkfRKSAQoZQ3JlYXRlQWNjb3VudEJ1ZGdldEFsZXJ0cxIxLmJsdWVhcGkuY29zdC52MS5DcmVhdGVBY2NvdW50QnVkZ2V0QWxlcnRzUmVxdWVzdBodLmJsdWVhcGkuYXBpLndhdmUuQnVkZ2V0QWxlcnQiI4LT5JMCHToBKiIYL3YxL3t2ZW5kb3J9L2FsZXJ0cy97aWR9EpIBChlVcGRhdGVBY2NvdW50QnVkZ2V0QWxlcnRzEjEuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5hcGkud2F2ZS5CdWRnZXRBbGVydCIjgtPkkwIdOgEqGhgvdjEve3ZlbmRvcn0vYWxlcnRzL3tpZH0SiAEKGURlbGV0ZUFjY291bnRCdWRnZXRBbGVydHMSMS5ibHVlYXBpLmNvc3QudjEuRGVsZXRlQWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIILT5JMCGioYL3YxL3t2ZW5kb3J9L2FsZXJ0cy97aWR9EnkKEFJlYWRCdWRnZXRBbGVydHMSKC5ibHVlYXBpLmNvc3QudjEuUmVhZEJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmNvc3QudjEuQnVkZ2V0QWxlcnRzIhqC0+STAhQ6ASoiDy92MS9hbGVydHM6cmVhZDABEnIKD0dldEJ1ZGdldEFsZXJ0cxInLmJsdWVhcGkuY29zdC52MS5HZXRCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5jb3N0LnYxLkJ1ZGdldEFsZXJ0cyIXgtPkkwIREg8vdjEvYWxlcnRzL3tpZH0SdgoSQ3JlYXRlQnVkZ2V0QWxlcnRzEiouYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmNvc3QudjEuQnVkZ2V0QWxlcnRzIhWC0+STAg86ASoiCi92MS9hbGVydHMSewoSVXBkYXRlQnVkZ2V0QWxlcnRzEiouYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmNvc3QudjEuQnVkZ2V0QWxlcnRzIhqC0+STAhQ6ASoaDy92MS9hbGVydHMve2lkfRJxChJEZWxldGVCdWRnZXRBbGVydHMSKi5ibHVlYXBpLmNvc3QudjEuRGVsZXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIXgtPkkwIRKg8vdjEvYWxlcnRzL3tpZH0SowEKEkdldFJlY29tbWVuZGF0aW9ucxIqLmJsdWVhcGkuY29zdC52MS5HZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0GisuYmx1ZWFwaS5jb3N0LnYxLkdldFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlIjSC0+STAi46ASoiKS92MS97dmVuZG9yfS9yZWNvbW1lbmRhdGlvbnMve29yZ0lkfTpyZWFkEpcBChBHZXRDb3N0UmVkdWN0aW9uEiguYmx1ZWFwaS5jb3N0LnYxLkdldENvc3RSZWR1Y3Rpb25SZXF1ZXN0GikuYmx1ZWFwaS5jb3N0LnYxLkdldENvc3RSZWR1Y3Rpb25SZXNwb25zZSIugtPkkwIoOgEqIiMvdjEve3ZlbmRvcn0vcmVkdWN0aW9uL3tvcmdJZH06cmVhZBKGAQoNR2V0RXhwb3J0UklTUBIlLmJsdWVhcGkuY29zdC52MS5HZXRFeHBvcnRSSVNQUmVxdWVzdBomLmJsdWVhcGkuY29zdC52MS5HZXRFeHBvcnRSSVNQUmVzcG9uc2UiJoLT5JMCIDoBKiIbL3YxL2V4cG9ydGNzdi9wYXllcnM6ZXhwb3J0EmYKDEV4cG9ydFJlcG9ydBIkLmJsdWVhcGkuY29zdC52MS5FeHBvcnRSZXBvcnRSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIdgtPkkwIXOgEqIhIvdjEvcmVwb3J0czpleHBvcnQSnwEKE0dldEludm9pY2VSZWFkaW5lc3MSKy5ibHVlYXBpLmNvc3QudjEuR2V0SW52b2ljZVJlYWRpbmVzc1JlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuR2V0SW52b2ljZVJlYWRpbmVzc1Jlc3BvbnNlIi2C0+STAicSJS92MS97dmVuZG9yfS9yZXBvcnRzL2ludm9pY2VyZWFkaW5lc3MSiwEKDkdldFV0aWxpemF0aW9uEiYuYmx1ZWFwaS5jb3N0LnYxLkdldFV0aWxpemF0aW9uUmVxdWVzdBonLmJsdWVhcGkuY29zdC52MS5HZXRVdGlsaXphdGlvblJlc3BvbnNlIiiC0+STAiISIC92MS97dmVuZG9yfS91dGlsaXphdGlvbi97b3JnSWR9EqQBChJHZXRDb3ZlcmFnZU9wdGlvbnMSKi5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPcHRpb25zUmVxdWVzdBorLmJsdWVhcGkuY29zdC52MS5HZXRDb3ZlcmFnZU9wdGlvbnNSZXNwb25zZSI1gtPkkwIvOgEqIiovdjEve3ZlbmRvcn0vY292ZXJhZ2Uvb3B0aW9ucy97b3JnSWR9OnJlYWQSqAEKE0dldENvdmVyYWdlT25kZW1hbmQSKy5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPbmRlbWFuZFJlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPbmRlbWFuZFJlc3BvbnNlIjaC0+STAjA6ASoiKy92MS97dmVuZG9yfS9jb3ZlcmFnZS9vbmRlbWFuZC97b3JnSWR9OnJlYWQSjAEKEUdldEJyZWFrZXZlblBvaW50EikuYmx1ZWFwaS5jb3N0LnYxLkdldEJyZWFrZXZlblBvaW50UmVxdWVzdBoqLmJsdWVhcGkuY29zdC52MS5HZXRCcmVha2V2ZW5Qb2ludFJlc3BvbnNlIiCC0+STAhoSGC92MS97dmVuZG9yfS9iZXAve29yZ0lkfRKkAQoYQ2hlY2tBY2NvdW50c0JlbG9uZ1RvTXNwEiUuYmx1ZWFwaS5jb3N0LnYxLkNoZWNrQWNjb3VudHNSZXF1ZXN0GiYuYmx1ZWFwaS5jb3N0LnYxLkNoZWNrQWNjb3VudHNSZXNwb25zZSI5gtPkkwIzOgEqIi4vdjEve3ZlbmRvcn0vYWNjb3VudHMvY3VzdG9tZXJzL2FjY291bnRzOmNoZWNrEowBCg5SZWFkSW52b2ljZUlkcxImLmJsdWVhcGkuY29zdC52MS5SZWFkSW52b2ljZUlkc1JlcXVlc3QaJy5ibHVlYXBpLmNvc3QudjEuUmVhZEludm9pY2VJZHNSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEve3ZlbmRvcn0vaW52b2ljZWlkczpyZWFkMAESlAEKFFJlYWRJbnZvaWNlT3ZlclZpZXdzEiwuYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlT3ZlcnZpZXdzUmVxdWVzdBomLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5PdmVyVmlld1NlY3Rpb24iJILT5JMCHjoBKiIZL3YxL2ludm9pY2VvdmVydmlld3M6cmVhZDABEoUBChBSZWFkSW52b2ljZUNvc3RzEiguYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlQ29zdHNSZXF1ZXN0GiMuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLlRvdGFsU2VjdGlvbiIggtPkkwIaOgEqIhUvdjEvaW52b2ljZWNvc3RzOnJlYWQwARKbAQoVUmVhZEludm9pY2VHcm91cENvc3RzEi0uYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlR3JvdXBDb3N0c1JlcXVlc3QaKi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQmlsbGluZ0dyb3VwU2VjdGlvbiIlgtPkkwIfOgEqIhovdjEvaW52b2ljZWdyb3VwY29zdHM6cmVhZDABEsMBChxMaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzEjQuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvblByZXJlcXVpc2l0ZXNSZXF1ZXN0GjUuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvblByZXJlcXVpc2l0ZXNSZXNwb25zZSI2gtPkkwIwEi4vdjEve3ZlbmRvcn0vY2FsY3VsYXRpb24vcHJlcmVxdWlzaXRlcy97bW9udGh9EqkBCiBTZXR1cFBheWVyQWNjb3VudEJpbGxpbmdUcmFuc2ZlchI4LmJsdWVhcGkuY29zdC52MS5TZXR1cFBheWVyQWNjb3VudEJpbGxpbmdUcmFuc2ZlclJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiM4LT5JMCLToBKiIoL3YxL3t2ZW5kb3J9L3BheWVycy97aWR9L2JpbGxpbmd0cmFuc2ZlchqNAZJBiQESOUNvc3QgQVBJLiBCYXNlIFVSTDogaHR0cHM6Ly9hcGkuYWxwaGF1cy5jbG91ZC9tL2JsdWUvY29zdBpMChJTZXJ2aWNlIGRlZmluaXRpb24SNmh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL3RyZWUvbWFpbi9jb3N0L0L8AgoWY2xvdWQuYWxwaGF1cy5hcGkuY29zdEIJQ29zdFByb3RvWiNnaXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvY29zdJJBsAISzgEKGkFscGhhdXMgQmx1ZTogQ29zdCBTZXJ2aWNlIlIKGkFscGhhdXMgQmx1ZTogQ29zdCBTZXJ2aWNlEjRodHRwczovL2FscGhhdXNsYWJzLmdpdGh1Yi5pby9ibHVlYXBpL2FwaXMvY29zdC5odG1sKlcKG0xpY2Vuc2U6IEFwYWNoZSBMaWNlbnNlIDIuMBI4aHR0cHM6Ly9naXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvYmxvYi9tYWluL0xJQ0VOU0UyAzEuMHJdCiVNb3JlIGFib3V0IEFscGhhdXMgQmx1ZTogQ29zdCBTZXJ2aWNlEjRodHRwczovL2FscGhhdXNsYWJzLmdpdGh1Yi5pby9ibHVlYXBpL2FwaXMvY29zdC5odG1sYgZwcm90bzM", [file_api_account, file_api_coverage, file_api_budget, file_api_forecast, file_api_utilization, file_api_aws_breakeven, file_api_aws_cost, file_api_aws_calculator, file_api_aws_recommendation, file_api_aws_reduction, file_api_gcp_cost, file_api_azure_cost, file_api_ripple_payer, file_api_ripple_v1_dashboard, file_api_wave_budget, file_api_costtag, file_protos_operation, file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_empty, file_protoc_gen_openapiv2_options_annotations, file_google_protobuf_field_mask]);
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
55
|
* Request message for the Cost.ListPayerAccounts rpc.
|
|
@@ -1461,14 +1461,14 @@ export type CalculateCostsRequestAwsOptions = Message<"blueapi.cost.v1.Calculate
|
|
|
1461
1461
|
force: boolean;
|
|
1462
1462
|
|
|
1463
1463
|
/**
|
|
1464
|
-
* Optional. If set to true, only calculate for account-type billing groups. If both `accountsOnly` and `tagsOnly` are set to true,
|
|
1464
|
+
* Optional. If set to true, only calculate for account-type billing groups. If both `accountsOnly` and `tagsOnly` are set to true, both flags are ignored and a full run is performed (equivalent to setting neither flag).
|
|
1465
1465
|
*
|
|
1466
1466
|
* @generated from field: bool accountsOnly = 2;
|
|
1467
1467
|
*/
|
|
1468
1468
|
accountsOnly: boolean;
|
|
1469
1469
|
|
|
1470
1470
|
/**
|
|
1471
|
-
* Optional. If set to true, only calculate for tags-type billing groups. Discarded when the organization doesn't have any tag-based billing groups configured. If both `accountsOnly` and `tagsOnly` are set to true,
|
|
1471
|
+
* Optional. If set to true, only calculate for tags-type billing groups. Discarded when the organization doesn't have any tag-based billing groups configured. If both `accountsOnly` and `tagsOnly` are set to true, both flags are ignored and a full run is performed (equivalent to setting neither flag).
|
|
1472
1472
|
*
|
|
1473
1473
|
* @generated from field: bool tagsOnly = 3;
|
|
1474
1474
|
*/
|
|
@@ -3421,13 +3421,14 @@ export type ExportReportRequest = Message<"blueapi.cost.v1.ExportReportRequest">
|
|
|
3421
3421
|
notificationChannelIds: string[];
|
|
3422
3422
|
|
|
3423
3423
|
/**
|
|
3424
|
-
* Optional. Valid only for the `aws` vendor. AWS
|
|
3424
|
+
* Optional. Valid only for the `aws` vendor. AWS export report options.
|
|
3425
|
+
* Supports all registered export-report queries
|
|
3425
3426
|
*
|
|
3426
3427
|
* Future vendor-specific options follow the same pattern (e.g. gcp_options, azure_options).
|
|
3427
3428
|
*
|
|
3428
|
-
* @generated from field: blueapi.cost.v1.
|
|
3429
|
+
* @generated from field: blueapi.cost.v1.AwsExportReportOptions aws_options = 10;
|
|
3429
3430
|
*/
|
|
3430
|
-
awsOptions?:
|
|
3431
|
+
awsOptions?: AwsExportReportOptions;
|
|
3431
3432
|
};
|
|
3432
3433
|
|
|
3433
3434
|
/**
|
|
@@ -3438,11 +3439,11 @@ export const ExportReportRequestSchema: GenMessage<ExportReportRequest> = /*@__P
|
|
|
3438
3439
|
messageDesc(file_cost_v1_cost, 76);
|
|
3439
3440
|
|
|
3440
3441
|
/**
|
|
3441
|
-
* AWS
|
|
3442
|
+
* AWS export report options for ExportReport.
|
|
3442
3443
|
*
|
|
3443
|
-
* @generated from message blueapi.cost.v1.
|
|
3444
|
+
* @generated from message blueapi.cost.v1.AwsExportReportOptions
|
|
3444
3445
|
*/
|
|
3445
|
-
export type
|
|
3446
|
+
export type AwsExportReportOptions = Message<"blueapi.cost.v1.AwsExportReportOptions"> & {
|
|
3446
3447
|
/**
|
|
3447
3448
|
* Optional. Include expired RIs/SPs in the results. Default: false.
|
|
3448
3449
|
*
|
|
@@ -3460,7 +3461,6 @@ export type AwsRispExportOptions = Message<"blueapi.cost.v1.AwsRispExportOptions
|
|
|
3460
3461
|
|
|
3461
3462
|
/**
|
|
3462
3463
|
* Required. Report queries to include in the export. Must contain at least 1 value.
|
|
3463
|
-
* Valid values: "ri_summary", "sp_summary", "ri_usageaccount", "sp_usageaccount".
|
|
3464
3464
|
*
|
|
3465
3465
|
* @generated from field: repeated string queries = 3;
|
|
3466
3466
|
*/
|
|
@@ -3476,26 +3476,26 @@ export type AwsRispExportOptions = Message<"blueapi.cost.v1.AwsRispExportOptions
|
|
|
3476
3476
|
|
|
3477
3477
|
/**
|
|
3478
3478
|
* Optional. Per-report column overrides.
|
|
3479
|
-
* Keys must be valid query names
|
|
3479
|
+
* Keys must be valid query names for registered AWS export-report queries.
|
|
3480
3480
|
*
|
|
3481
|
-
* @generated from field: map<string, blueapi.cost.v1.
|
|
3481
|
+
* @generated from field: map<string, blueapi.cost.v1.AwsExportReportOptions.Columns> columns_by_query = 5;
|
|
3482
3482
|
*/
|
|
3483
|
-
columnsByQuery: { [key: string]:
|
|
3483
|
+
columnsByQuery: { [key: string]: AwsExportReportOptions_Columns };
|
|
3484
3484
|
};
|
|
3485
3485
|
|
|
3486
3486
|
/**
|
|
3487
|
-
* Describes the message blueapi.cost.v1.
|
|
3488
|
-
* Use `create(
|
|
3487
|
+
* Describes the message blueapi.cost.v1.AwsExportReportOptions.
|
|
3488
|
+
* Use `create(AwsExportReportOptionsSchema)` to create a new message.
|
|
3489
3489
|
*/
|
|
3490
|
-
export const
|
|
3490
|
+
export const AwsExportReportOptionsSchema: GenMessage<AwsExportReportOptions> = /*@__PURE__*/
|
|
3491
3491
|
messageDesc(file_cost_v1_cost, 77);
|
|
3492
3492
|
|
|
3493
3493
|
/**
|
|
3494
3494
|
* Per-report column filter container.
|
|
3495
3495
|
*
|
|
3496
|
-
* @generated from message blueapi.cost.v1.
|
|
3496
|
+
* @generated from message blueapi.cost.v1.AwsExportReportOptions.Columns
|
|
3497
3497
|
*/
|
|
3498
|
-
export type
|
|
3498
|
+
export type AwsExportReportOptions_Columns = Message<"blueapi.cost.v1.AwsExportReportOptions.Columns"> & {
|
|
3499
3499
|
/**
|
|
3500
3500
|
* @generated from field: repeated string values = 1;
|
|
3501
3501
|
*/
|
|
@@ -3503,12 +3503,69 @@ export type AwsRispExportOptions_Columns = Message<"blueapi.cost.v1.AwsRispExpor
|
|
|
3503
3503
|
};
|
|
3504
3504
|
|
|
3505
3505
|
/**
|
|
3506
|
-
* Describes the message blueapi.cost.v1.
|
|
3507
|
-
* Use `create(
|
|
3506
|
+
* Describes the message blueapi.cost.v1.AwsExportReportOptions.Columns.
|
|
3507
|
+
* Use `create(AwsExportReportOptions_ColumnsSchema)` to create a new message.
|
|
3508
3508
|
*/
|
|
3509
|
-
export const
|
|
3509
|
+
export const AwsExportReportOptions_ColumnsSchema: GenMessage<AwsExportReportOptions_Columns> = /*@__PURE__*/
|
|
3510
3510
|
messageDesc(file_cost_v1_cost, 77, 0);
|
|
3511
3511
|
|
|
3512
|
+
/**
|
|
3513
|
+
* Request message for GetInvoiceReadiness.
|
|
3514
|
+
*
|
|
3515
|
+
* @generated from message blueapi.cost.v1.GetInvoiceReadinessRequest
|
|
3516
|
+
*/
|
|
3517
|
+
export type GetInvoiceReadinessRequest = Message<"blueapi.cost.v1.GetInvoiceReadinessRequest"> & {
|
|
3518
|
+
/**
|
|
3519
|
+
* Required. Bound from the URL path, so it cannot be empty/omitted.
|
|
3520
|
+
* Accepted values: "aws", "gcp", "azure".
|
|
3521
|
+
*
|
|
3522
|
+
* @generated from field: string vendor = 1;
|
|
3523
|
+
*/
|
|
3524
|
+
vendor: string;
|
|
3525
|
+
|
|
3526
|
+
/**
|
|
3527
|
+
* Required. Billing month in YYYY-MM format.
|
|
3528
|
+
*
|
|
3529
|
+
* @generated from field: string month = 2;
|
|
3530
|
+
*/
|
|
3531
|
+
month: string;
|
|
3532
|
+
};
|
|
3533
|
+
|
|
3534
|
+
/**
|
|
3535
|
+
* Describes the message blueapi.cost.v1.GetInvoiceReadinessRequest.
|
|
3536
|
+
* Use `create(GetInvoiceReadinessRequestSchema)` to create a new message.
|
|
3537
|
+
*/
|
|
3538
|
+
export const GetInvoiceReadinessRequestSchema: GenMessage<GetInvoiceReadinessRequest> = /*@__PURE__*/
|
|
3539
|
+
messageDesc(file_cost_v1_cost, 78);
|
|
3540
|
+
|
|
3541
|
+
/**
|
|
3542
|
+
* Response message for GetInvoiceReadiness.
|
|
3543
|
+
*
|
|
3544
|
+
* @generated from message blueapi.cost.v1.GetInvoiceReadinessResponse
|
|
3545
|
+
*/
|
|
3546
|
+
export type GetInvoiceReadinessResponse = Message<"blueapi.cost.v1.GetInvoiceReadinessResponse"> & {
|
|
3547
|
+
/**
|
|
3548
|
+
* True if all usage for the requested month has an invoice ID (billing is finalized).
|
|
3549
|
+
*
|
|
3550
|
+
* @generated from field: bool ready = 1;
|
|
3551
|
+
*/
|
|
3552
|
+
ready: boolean;
|
|
3553
|
+
|
|
3554
|
+
/**
|
|
3555
|
+
* Human-readable explanation when ready is false. Empty when ready is true.
|
|
3556
|
+
*
|
|
3557
|
+
* @generated from field: string reason = 2;
|
|
3558
|
+
*/
|
|
3559
|
+
reason: string;
|
|
3560
|
+
};
|
|
3561
|
+
|
|
3562
|
+
/**
|
|
3563
|
+
* Describes the message blueapi.cost.v1.GetInvoiceReadinessResponse.
|
|
3564
|
+
* Use `create(GetInvoiceReadinessResponseSchema)` to create a new message.
|
|
3565
|
+
*/
|
|
3566
|
+
export const GetInvoiceReadinessResponseSchema: GenMessage<GetInvoiceReadinessResponse> = /*@__PURE__*/
|
|
3567
|
+
messageDesc(file_cost_v1_cost, 79);
|
|
3568
|
+
|
|
3512
3569
|
/**
|
|
3513
3570
|
* Request message for GetUtilization
|
|
3514
3571
|
*
|
|
@@ -3584,7 +3641,7 @@ export type GetUtilizationRequest = Message<"blueapi.cost.v1.GetUtilizationReque
|
|
|
3584
3641
|
* Use `create(GetUtilizationRequestSchema)` to create a new message.
|
|
3585
3642
|
*/
|
|
3586
3643
|
export const GetUtilizationRequestSchema: GenMessage<GetUtilizationRequest> = /*@__PURE__*/
|
|
3587
|
-
messageDesc(file_cost_v1_cost,
|
|
3644
|
+
messageDesc(file_cost_v1_cost, 80);
|
|
3588
3645
|
|
|
3589
3646
|
/**
|
|
3590
3647
|
* Response message for GetUtilization
|
|
@@ -3608,7 +3665,7 @@ export type GetUtilizationResponse = Message<"blueapi.cost.v1.GetUtilizationResp
|
|
|
3608
3665
|
* Use `create(GetUtilizationResponseSchema)` to create a new message.
|
|
3609
3666
|
*/
|
|
3610
3667
|
export const GetUtilizationResponseSchema: GenMessage<GetUtilizationResponse> = /*@__PURE__*/
|
|
3611
|
-
messageDesc(file_cost_v1_cost,
|
|
3668
|
+
messageDesc(file_cost_v1_cost, 81);
|
|
3612
3669
|
|
|
3613
3670
|
/**
|
|
3614
3671
|
* Request message for GetCoverageOptions
|
|
@@ -3706,7 +3763,7 @@ export type GetCoverageOptionsRequest = Message<"blueapi.cost.v1.GetCoverageOpti
|
|
|
3706
3763
|
* Use `create(GetCoverageOptionsRequestSchema)` to create a new message.
|
|
3707
3764
|
*/
|
|
3708
3765
|
export const GetCoverageOptionsRequestSchema: GenMessage<GetCoverageOptionsRequest> = /*@__PURE__*/
|
|
3709
|
-
messageDesc(file_cost_v1_cost,
|
|
3766
|
+
messageDesc(file_cost_v1_cost, 82);
|
|
3710
3767
|
|
|
3711
3768
|
/**
|
|
3712
3769
|
* Response message for GetCoverageOptions
|
|
@@ -3730,7 +3787,7 @@ export type GetCoverageOptionsResponse = Message<"blueapi.cost.v1.GetCoverageOpt
|
|
|
3730
3787
|
* Use `create(GetCoverageOptionsResponseSchema)` to create a new message.
|
|
3731
3788
|
*/
|
|
3732
3789
|
export const GetCoverageOptionsResponseSchema: GenMessage<GetCoverageOptionsResponse> = /*@__PURE__*/
|
|
3733
|
-
messageDesc(file_cost_v1_cost,
|
|
3790
|
+
messageDesc(file_cost_v1_cost, 83);
|
|
3734
3791
|
|
|
3735
3792
|
/**
|
|
3736
3793
|
* Request message for GetCoverageOndemand
|
|
@@ -3821,7 +3878,7 @@ export type GetCoverageOndemandRequest = Message<"blueapi.cost.v1.GetCoverageOnd
|
|
|
3821
3878
|
* Use `create(GetCoverageOndemandRequestSchema)` to create a new message.
|
|
3822
3879
|
*/
|
|
3823
3880
|
export const GetCoverageOndemandRequestSchema: GenMessage<GetCoverageOndemandRequest> = /*@__PURE__*/
|
|
3824
|
-
messageDesc(file_cost_v1_cost,
|
|
3881
|
+
messageDesc(file_cost_v1_cost, 84);
|
|
3825
3882
|
|
|
3826
3883
|
/**
|
|
3827
3884
|
* Response message for GetCoverageOndemand
|
|
@@ -3845,7 +3902,7 @@ export type GetCoverageOndemandResponse = Message<"blueapi.cost.v1.GetCoverageOn
|
|
|
3845
3902
|
* Use `create(GetCoverageOndemandResponseSchema)` to create a new message.
|
|
3846
3903
|
*/
|
|
3847
3904
|
export const GetCoverageOndemandResponseSchema: GenMessage<GetCoverageOndemandResponse> = /*@__PURE__*/
|
|
3848
|
-
messageDesc(file_cost_v1_cost,
|
|
3905
|
+
messageDesc(file_cost_v1_cost, 85);
|
|
3849
3906
|
|
|
3850
3907
|
/**
|
|
3851
3908
|
* Request message for GetBreakevenPoint
|
|
@@ -3887,7 +3944,7 @@ export type GetBreakevenPointRequest = Message<"blueapi.cost.v1.GetBreakevenPoin
|
|
|
3887
3944
|
* Use `create(GetBreakevenPointRequestSchema)` to create a new message.
|
|
3888
3945
|
*/
|
|
3889
3946
|
export const GetBreakevenPointRequestSchema: GenMessage<GetBreakevenPointRequest> = /*@__PURE__*/
|
|
3890
|
-
messageDesc(file_cost_v1_cost,
|
|
3947
|
+
messageDesc(file_cost_v1_cost, 86);
|
|
3891
3948
|
|
|
3892
3949
|
/**
|
|
3893
3950
|
* Response message for GetBreakevenPoint
|
|
@@ -3911,7 +3968,7 @@ export type GetBreakevenPointResponse = Message<"blueapi.cost.v1.GetBreakevenPoi
|
|
|
3911
3968
|
* Use `create(GetBreakevenPointResponseSchema)` to create a new message.
|
|
3912
3969
|
*/
|
|
3913
3970
|
export const GetBreakevenPointResponseSchema: GenMessage<GetBreakevenPointResponse> = /*@__PURE__*/
|
|
3914
|
-
messageDesc(file_cost_v1_cost,
|
|
3971
|
+
messageDesc(file_cost_v1_cost, 87);
|
|
3915
3972
|
|
|
3916
3973
|
/**
|
|
3917
3974
|
* Request message for the ListCostFilters rpc.
|
|
@@ -3932,7 +3989,7 @@ export type ListCostFiltersRequest = Message<"blueapi.cost.v1.ListCostFiltersReq
|
|
|
3932
3989
|
* Use `create(ListCostFiltersRequestSchema)` to create a new message.
|
|
3933
3990
|
*/
|
|
3934
3991
|
export const ListCostFiltersRequestSchema: GenMessage<ListCostFiltersRequest> = /*@__PURE__*/
|
|
3935
|
-
messageDesc(file_cost_v1_cost,
|
|
3992
|
+
messageDesc(file_cost_v1_cost, 88);
|
|
3936
3993
|
|
|
3937
3994
|
/**
|
|
3938
3995
|
* Response message for the ListCostFilters rpc.
|
|
@@ -3951,7 +4008,7 @@ export type ListCostFiltersResponse = Message<"blueapi.cost.v1.ListCostFiltersRe
|
|
|
3951
4008
|
* Use `create(ListCostFiltersResponseSchema)` to create a new message.
|
|
3952
4009
|
*/
|
|
3953
4010
|
export const ListCostFiltersResponseSchema: GenMessage<ListCostFiltersResponse> = /*@__PURE__*/
|
|
3954
|
-
messageDesc(file_cost_v1_cost,
|
|
4011
|
+
messageDesc(file_cost_v1_cost, 89);
|
|
3955
4012
|
|
|
3956
4013
|
/**
|
|
3957
4014
|
* Response message for the ListCostFilters rpc.
|
|
@@ -4011,7 +4068,7 @@ export type ListCostFilters = Message<"blueapi.cost.v1.ListCostFilters"> & {
|
|
|
4011
4068
|
* Use `create(ListCostFiltersSchema)` to create a new message.
|
|
4012
4069
|
*/
|
|
4013
4070
|
export const ListCostFiltersSchema: GenMessage<ListCostFilters> = /*@__PURE__*/
|
|
4014
|
-
messageDesc(file_cost_v1_cost,
|
|
4071
|
+
messageDesc(file_cost_v1_cost, 90);
|
|
4015
4072
|
|
|
4016
4073
|
/**
|
|
4017
4074
|
* Request message for the CreateCostFilters rpc.
|
|
@@ -4064,7 +4121,7 @@ export type CreateCostFiltersRequest = Message<"blueapi.cost.v1.CreateCostFilter
|
|
|
4064
4121
|
* Use `create(CreateCostFiltersRequestSchema)` to create a new message.
|
|
4065
4122
|
*/
|
|
4066
4123
|
export const CreateCostFiltersRequestSchema: GenMessage<CreateCostFiltersRequest> = /*@__PURE__*/
|
|
4067
|
-
messageDesc(file_cost_v1_cost,
|
|
4124
|
+
messageDesc(file_cost_v1_cost, 91);
|
|
4068
4125
|
|
|
4069
4126
|
/**
|
|
4070
4127
|
* Response message for the CreateCostFilters rpc.
|
|
@@ -4085,7 +4142,7 @@ export type CreateCostFiltersResponse = Message<"blueapi.cost.v1.CreateCostFilte
|
|
|
4085
4142
|
* Use `create(CreateCostFiltersResponseSchema)` to create a new message.
|
|
4086
4143
|
*/
|
|
4087
4144
|
export const CreateCostFiltersResponseSchema: GenMessage<CreateCostFiltersResponse> = /*@__PURE__*/
|
|
4088
|
-
messageDesc(file_cost_v1_cost,
|
|
4145
|
+
messageDesc(file_cost_v1_cost, 92);
|
|
4089
4146
|
|
|
4090
4147
|
/**
|
|
4091
4148
|
* Request message for the UpdateCostFilters rpc.
|
|
@@ -4145,7 +4202,7 @@ export type UpdateCostFiltersRequest = Message<"blueapi.cost.v1.UpdateCostFilter
|
|
|
4145
4202
|
* Use `create(UpdateCostFiltersRequestSchema)` to create a new message.
|
|
4146
4203
|
*/
|
|
4147
4204
|
export const UpdateCostFiltersRequestSchema: GenMessage<UpdateCostFiltersRequest> = /*@__PURE__*/
|
|
4148
|
-
messageDesc(file_cost_v1_cost,
|
|
4205
|
+
messageDesc(file_cost_v1_cost, 93);
|
|
4149
4206
|
|
|
4150
4207
|
/**
|
|
4151
4208
|
* Response message for the UpdateCostFilters rpc.
|
|
@@ -4166,7 +4223,7 @@ export type UpdateCostFiltersResponse = Message<"blueapi.cost.v1.UpdateCostFilte
|
|
|
4166
4223
|
* Use `create(UpdateCostFiltersResponseSchema)` to create a new message.
|
|
4167
4224
|
*/
|
|
4168
4225
|
export const UpdateCostFiltersResponseSchema: GenMessage<UpdateCostFiltersResponse> = /*@__PURE__*/
|
|
4169
|
-
messageDesc(file_cost_v1_cost,
|
|
4226
|
+
messageDesc(file_cost_v1_cost, 94);
|
|
4170
4227
|
|
|
4171
4228
|
/**
|
|
4172
4229
|
* Request message for the DeleteCostFilters rpc.
|
|
@@ -4194,7 +4251,7 @@ export type DeleteCostFiltersRequest = Message<"blueapi.cost.v1.DeleteCostFilter
|
|
|
4194
4251
|
* Use `create(DeleteCostFiltersRequestSchema)` to create a new message.
|
|
4195
4252
|
*/
|
|
4196
4253
|
export const DeleteCostFiltersRequestSchema: GenMessage<DeleteCostFiltersRequest> = /*@__PURE__*/
|
|
4197
|
-
messageDesc(file_cost_v1_cost,
|
|
4254
|
+
messageDesc(file_cost_v1_cost, 95);
|
|
4198
4255
|
|
|
4199
4256
|
/**
|
|
4200
4257
|
* Request message for the ExportCostFiltersFile rpc.
|
|
@@ -4266,7 +4323,7 @@ export type ExportCostFiltersFileRequest = Message<"blueapi.cost.v1.ExportCostFi
|
|
|
4266
4323
|
* Use `create(ExportCostFiltersFileRequestSchema)` to create a new message.
|
|
4267
4324
|
*/
|
|
4268
4325
|
export const ExportCostFiltersFileRequestSchema: GenMessage<ExportCostFiltersFileRequest> = /*@__PURE__*/
|
|
4269
|
-
messageDesc(file_cost_v1_cost,
|
|
4326
|
+
messageDesc(file_cost_v1_cost, 96);
|
|
4270
4327
|
|
|
4271
4328
|
/**
|
|
4272
4329
|
* Response message for the ExportCostFiltersFile rpc.
|
|
@@ -4287,7 +4344,7 @@ export type ExportCostFiltersFileResponse = Message<"blueapi.cost.v1.ExportCostF
|
|
|
4287
4344
|
* Use `create(ExportCostFiltersFileResponseSchema)` to create a new message.
|
|
4288
4345
|
*/
|
|
4289
4346
|
export const ExportCostFiltersFileResponseSchema: GenMessage<ExportCostFiltersFileResponse> = /*@__PURE__*/
|
|
4290
|
-
messageDesc(file_cost_v1_cost,
|
|
4347
|
+
messageDesc(file_cost_v1_cost, 97);
|
|
4291
4348
|
|
|
4292
4349
|
/**
|
|
4293
4350
|
* GCP-specific options for ReadCostsRequest.
|
|
@@ -4368,7 +4425,7 @@ export type ReadCostsRequestGcpOptions = Message<"blueapi.cost.v1.ReadCostsReque
|
|
|
4368
4425
|
* Use `create(ReadCostsRequestGcpOptionsSchema)` to create a new message.
|
|
4369
4426
|
*/
|
|
4370
4427
|
export const ReadCostsRequestGcpOptionsSchema: GenMessage<ReadCostsRequestGcpOptions> = /*@__PURE__*/
|
|
4371
|
-
messageDesc(file_cost_v1_cost,
|
|
4428
|
+
messageDesc(file_cost_v1_cost, 98);
|
|
4372
4429
|
|
|
4373
4430
|
/**
|
|
4374
4431
|
* A map of "key:value" column filters. Dependent on `groupByColumns` and/or `groupByMonth`. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical 'and' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc.
|
|
@@ -4389,7 +4446,7 @@ export type ReadCostsRequestGcpOptionsFilters = Message<"blueapi.cost.v1.ReadCos
|
|
|
4389
4446
|
* Use `create(ReadCostsRequestGcpOptionsFiltersSchema)` to create a new message.
|
|
4390
4447
|
*/
|
|
4391
4448
|
export const ReadCostsRequestGcpOptionsFiltersSchema: GenMessage<ReadCostsRequestGcpOptionsFilters> = /*@__PURE__*/
|
|
4392
|
-
messageDesc(file_cost_v1_cost,
|
|
4449
|
+
messageDesc(file_cost_v1_cost, 99);
|
|
4393
4450
|
|
|
4394
4451
|
/**
|
|
4395
4452
|
* Request message for GetAccountBudgetAlerts
|
|
@@ -4417,7 +4474,7 @@ export type GetAccountBudgetAlertsRequest = Message<"blueapi.cost.v1.GetAccountB
|
|
|
4417
4474
|
* Use `create(GetAccountBudgetAlertsRequestSchema)` to create a new message.
|
|
4418
4475
|
*/
|
|
4419
4476
|
export const GetAccountBudgetAlertsRequestSchema: GenMessage<GetAccountBudgetAlertsRequest> = /*@__PURE__*/
|
|
4420
|
-
messageDesc(file_cost_v1_cost,
|
|
4477
|
+
messageDesc(file_cost_v1_cost, 100);
|
|
4421
4478
|
|
|
4422
4479
|
/**
|
|
4423
4480
|
* Request message for CreateAccountBudgetAlerts
|
|
@@ -4452,7 +4509,7 @@ export type CreateAccountBudgetAlertsRequest = Message<"blueapi.cost.v1.CreateAc
|
|
|
4452
4509
|
* Use `create(CreateAccountBudgetAlertsRequestSchema)` to create a new message.
|
|
4453
4510
|
*/
|
|
4454
4511
|
export const CreateAccountBudgetAlertsRequestSchema: GenMessage<CreateAccountBudgetAlertsRequest> = /*@__PURE__*/
|
|
4455
|
-
messageDesc(file_cost_v1_cost,
|
|
4512
|
+
messageDesc(file_cost_v1_cost, 101);
|
|
4456
4513
|
|
|
4457
4514
|
/**
|
|
4458
4515
|
* Request message for UpdateAccountBudgetAlerts
|
|
@@ -4491,7 +4548,7 @@ export type UpdateAccountBudgetAlertsRequest = Message<"blueapi.cost.v1.UpdateAc
|
|
|
4491
4548
|
* Use `create(UpdateAccountBudgetAlertsRequestSchema)` to create a new message.
|
|
4492
4549
|
*/
|
|
4493
4550
|
export const UpdateAccountBudgetAlertsRequestSchema: GenMessage<UpdateAccountBudgetAlertsRequest> = /*@__PURE__*/
|
|
4494
|
-
messageDesc(file_cost_v1_cost,
|
|
4551
|
+
messageDesc(file_cost_v1_cost, 102);
|
|
4495
4552
|
|
|
4496
4553
|
/**
|
|
4497
4554
|
* Request message for DeleteAccountBudgetAlerts
|
|
@@ -4519,7 +4576,7 @@ export type DeleteAccountBudgetAlertsRequest = Message<"blueapi.cost.v1.DeleteAc
|
|
|
4519
4576
|
* Use `create(DeleteAccountBudgetAlertsRequestSchema)` to create a new message.
|
|
4520
4577
|
*/
|
|
4521
4578
|
export const DeleteAccountBudgetAlertsRequestSchema: GenMessage<DeleteAccountBudgetAlertsRequest> = /*@__PURE__*/
|
|
4522
|
-
messageDesc(file_cost_v1_cost,
|
|
4579
|
+
messageDesc(file_cost_v1_cost, 103);
|
|
4523
4580
|
|
|
4524
4581
|
/**
|
|
4525
4582
|
* Azure-specific options for ReadCostsRequest.
|
|
@@ -4570,7 +4627,7 @@ export type ReadCostsRequestAzureOptions = Message<"blueapi.cost.v1.ReadCostsReq
|
|
|
4570
4627
|
* Use `create(ReadCostsRequestAzureOptionsSchema)` to create a new message.
|
|
4571
4628
|
*/
|
|
4572
4629
|
export const ReadCostsRequestAzureOptionsSchema: GenMessage<ReadCostsRequestAzureOptions> = /*@__PURE__*/
|
|
4573
|
-
messageDesc(file_cost_v1_cost,
|
|
4630
|
+
messageDesc(file_cost_v1_cost, 104);
|
|
4574
4631
|
|
|
4575
4632
|
/**
|
|
4576
4633
|
* Request message for the BudgetAlerts rpc.
|
|
@@ -4647,7 +4704,7 @@ export type BudgetAlerts = Message<"blueapi.cost.v1.BudgetAlerts"> & {
|
|
|
4647
4704
|
* Use `create(BudgetAlertsSchema)` to create a new message.
|
|
4648
4705
|
*/
|
|
4649
4706
|
export const BudgetAlertsSchema: GenMessage<BudgetAlerts> = /*@__PURE__*/
|
|
4650
|
-
messageDesc(file_cost_v1_cost,
|
|
4707
|
+
messageDesc(file_cost_v1_cost, 105);
|
|
4651
4708
|
|
|
4652
4709
|
/**
|
|
4653
4710
|
* Request message for the ReadBudgetAlerts rpc.
|
|
@@ -4668,7 +4725,7 @@ export type ReadBudgetAlertsRequest = Message<"blueapi.cost.v1.ReadBudgetAlertsR
|
|
|
4668
4725
|
* Use `create(ReadBudgetAlertsRequestSchema)` to create a new message.
|
|
4669
4726
|
*/
|
|
4670
4727
|
export const ReadBudgetAlertsRequestSchema: GenMessage<ReadBudgetAlertsRequest> = /*@__PURE__*/
|
|
4671
|
-
messageDesc(file_cost_v1_cost,
|
|
4728
|
+
messageDesc(file_cost_v1_cost, 106);
|
|
4672
4729
|
|
|
4673
4730
|
/**
|
|
4674
4731
|
* Request message for the GetBudgetAlerts rpc.
|
|
@@ -4689,7 +4746,7 @@ export type GetBudgetAlertsRequest = Message<"blueapi.cost.v1.GetBudgetAlertsReq
|
|
|
4689
4746
|
* Use `create(GetBudgetAlertsRequestSchema)` to create a new message.
|
|
4690
4747
|
*/
|
|
4691
4748
|
export const GetBudgetAlertsRequestSchema: GenMessage<GetBudgetAlertsRequest> = /*@__PURE__*/
|
|
4692
|
-
messageDesc(file_cost_v1_cost,
|
|
4749
|
+
messageDesc(file_cost_v1_cost, 107);
|
|
4693
4750
|
|
|
4694
4751
|
/**
|
|
4695
4752
|
* Request message for the CreateBudgetAlerts rpc.
|
|
@@ -4759,7 +4816,7 @@ export type CreateBudgetAlertsRequest = Message<"blueapi.cost.v1.CreateBudgetAle
|
|
|
4759
4816
|
* Use `create(CreateBudgetAlertsRequestSchema)` to create a new message.
|
|
4760
4817
|
*/
|
|
4761
4818
|
export const CreateBudgetAlertsRequestSchema: GenMessage<CreateBudgetAlertsRequest> = /*@__PURE__*/
|
|
4762
|
-
messageDesc(file_cost_v1_cost,
|
|
4819
|
+
messageDesc(file_cost_v1_cost, 108);
|
|
4763
4820
|
|
|
4764
4821
|
/**
|
|
4765
4822
|
* Request message for the UpdateBudgetAlerts rpc.
|
|
@@ -4836,7 +4893,7 @@ export type UpdateBudgetAlertsRequest = Message<"blueapi.cost.v1.UpdateBudgetAle
|
|
|
4836
4893
|
* Use `create(UpdateBudgetAlertsRequestSchema)` to create a new message.
|
|
4837
4894
|
*/
|
|
4838
4895
|
export const UpdateBudgetAlertsRequestSchema: GenMessage<UpdateBudgetAlertsRequest> = /*@__PURE__*/
|
|
4839
|
-
messageDesc(file_cost_v1_cost,
|
|
4896
|
+
messageDesc(file_cost_v1_cost, 109);
|
|
4840
4897
|
|
|
4841
4898
|
/**
|
|
4842
4899
|
* Request message for the DeleteBudgetAlerts rpc.
|
|
@@ -4857,7 +4914,7 @@ export type DeleteBudgetAlertsRequest = Message<"blueapi.cost.v1.DeleteBudgetAle
|
|
|
4857
4914
|
* Use `create(DeleteBudgetAlertsRequestSchema)` to create a new message.
|
|
4858
4915
|
*/
|
|
4859
4916
|
export const DeleteBudgetAlertsRequestSchema: GenMessage<DeleteBudgetAlertsRequest> = /*@__PURE__*/
|
|
4860
|
-
messageDesc(file_cost_v1_cost,
|
|
4917
|
+
messageDesc(file_cost_v1_cost, 110);
|
|
4861
4918
|
|
|
4862
4919
|
/**
|
|
4863
4920
|
* @generated from message blueapi.cost.v1.CheckAccountsRequest
|
|
@@ -4883,7 +4940,7 @@ export type CheckAccountsRequest = Message<"blueapi.cost.v1.CheckAccountsRequest
|
|
|
4883
4940
|
* Use `create(CheckAccountsRequestSchema)` to create a new message.
|
|
4884
4941
|
*/
|
|
4885
4942
|
export const CheckAccountsRequestSchema: GenMessage<CheckAccountsRequest> = /*@__PURE__*/
|
|
4886
|
-
messageDesc(file_cost_v1_cost,
|
|
4943
|
+
messageDesc(file_cost_v1_cost, 111);
|
|
4887
4944
|
|
|
4888
4945
|
/**
|
|
4889
4946
|
* @generated from message blueapi.cost.v1.CheckAccountsResponse
|
|
@@ -4902,7 +4959,7 @@ export type CheckAccountsResponse = Message<"blueapi.cost.v1.CheckAccountsRespon
|
|
|
4902
4959
|
* Use `create(CheckAccountsResponseSchema)` to create a new message.
|
|
4903
4960
|
*/
|
|
4904
4961
|
export const CheckAccountsResponseSchema: GenMessage<CheckAccountsResponse> = /*@__PURE__*/
|
|
4905
|
-
messageDesc(file_cost_v1_cost,
|
|
4962
|
+
messageDesc(file_cost_v1_cost, 112);
|
|
4906
4963
|
|
|
4907
4964
|
/**
|
|
4908
4965
|
* Request message for the ReadInvoiceIds rpc.
|
|
@@ -4930,7 +4987,7 @@ export type ReadInvoiceIdsRequest = Message<"blueapi.cost.v1.ReadInvoiceIdsReque
|
|
|
4930
4987
|
* Use `create(ReadInvoiceIdsRequestSchema)` to create a new message.
|
|
4931
4988
|
*/
|
|
4932
4989
|
export const ReadInvoiceIdsRequestSchema: GenMessage<ReadInvoiceIdsRequest> = /*@__PURE__*/
|
|
4933
|
-
messageDesc(file_cost_v1_cost,
|
|
4990
|
+
messageDesc(file_cost_v1_cost, 113);
|
|
4934
4991
|
|
|
4935
4992
|
/**
|
|
4936
4993
|
* Response message for the ReadInvoiceIds rpc.
|
|
@@ -4951,7 +5008,7 @@ export type ReadInvoiceIdsResponse = Message<"blueapi.cost.v1.ReadInvoiceIdsResp
|
|
|
4951
5008
|
* Use `create(ReadInvoiceIdsResponseSchema)` to create a new message.
|
|
4952
5009
|
*/
|
|
4953
5010
|
export const ReadInvoiceIdsResponseSchema: GenMessage<ReadInvoiceIdsResponse> = /*@__PURE__*/
|
|
4954
|
-
messageDesc(file_cost_v1_cost,
|
|
5011
|
+
messageDesc(file_cost_v1_cost, 114);
|
|
4955
5012
|
|
|
4956
5013
|
/**
|
|
4957
5014
|
* @generated from message blueapi.cost.v1.PeriodRange
|
|
@@ -4991,7 +5048,7 @@ export type PeriodRange = Message<"blueapi.cost.v1.PeriodRange"> & {
|
|
|
4991
5048
|
* Use `create(PeriodRangeSchema)` to create a new message.
|
|
4992
5049
|
*/
|
|
4993
5050
|
export const PeriodRangeSchema: GenMessage<PeriodRange> = /*@__PURE__*/
|
|
4994
|
-
messageDesc(file_cost_v1_cost,
|
|
5051
|
+
messageDesc(file_cost_v1_cost, 115);
|
|
4995
5052
|
|
|
4996
5053
|
/**
|
|
4997
5054
|
* @generated from enum blueapi.cost.v1.PeriodRange.Unit
|
|
@@ -5022,7 +5079,7 @@ export enum PeriodRange_Unit {
|
|
|
5022
5079
|
* Describes the enum blueapi.cost.v1.PeriodRange.Unit.
|
|
5023
5080
|
*/
|
|
5024
5081
|
export const PeriodRange_UnitSchema: GenEnum<PeriodRange_Unit> = /*@__PURE__*/
|
|
5025
|
-
enumDesc(file_cost_v1_cost,
|
|
5082
|
+
enumDesc(file_cost_v1_cost, 115, 0);
|
|
5026
5083
|
|
|
5027
5084
|
/**
|
|
5028
5085
|
* Request message for the ReadInvoiceOverviews rpc.
|
|
@@ -5071,7 +5128,7 @@ export type ReadInvoiceOverviewsRequest = Message<"blueapi.cost.v1.ReadInvoiceOv
|
|
|
5071
5128
|
* Use `create(ReadInvoiceOverviewsRequestSchema)` to create a new message.
|
|
5072
5129
|
*/
|
|
5073
5130
|
export const ReadInvoiceOverviewsRequestSchema: GenMessage<ReadInvoiceOverviewsRequest> = /*@__PURE__*/
|
|
5074
|
-
messageDesc(file_cost_v1_cost,
|
|
5131
|
+
messageDesc(file_cost_v1_cost, 116);
|
|
5075
5132
|
|
|
5076
5133
|
/**
|
|
5077
5134
|
* Request message for the ReadInvoiceCosts rpc.
|
|
@@ -5106,7 +5163,7 @@ export type ReadInvoiceCostsRequest = Message<"blueapi.cost.v1.ReadInvoiceCostsR
|
|
|
5106
5163
|
* Use `create(ReadInvoiceCostsRequestSchema)` to create a new message.
|
|
5107
5164
|
*/
|
|
5108
5165
|
export const ReadInvoiceCostsRequestSchema: GenMessage<ReadInvoiceCostsRequest> = /*@__PURE__*/
|
|
5109
|
-
messageDesc(file_cost_v1_cost,
|
|
5166
|
+
messageDesc(file_cost_v1_cost, 117);
|
|
5110
5167
|
|
|
5111
5168
|
/**
|
|
5112
5169
|
* Request message for the ReadInvoiceGroupCosts rpc.
|
|
@@ -5148,7 +5205,7 @@ export type ReadInvoiceGroupCostsRequest = Message<"blueapi.cost.v1.ReadInvoiceG
|
|
|
5148
5205
|
* Use `create(ReadInvoiceGroupCostsRequestSchema)` to create a new message.
|
|
5149
5206
|
*/
|
|
5150
5207
|
export const ReadInvoiceGroupCostsRequestSchema: GenMessage<ReadInvoiceGroupCostsRequest> = /*@__PURE__*/
|
|
5151
|
-
messageDesc(file_cost_v1_cost,
|
|
5208
|
+
messageDesc(file_cost_v1_cost, 118);
|
|
5152
5209
|
|
|
5153
5210
|
/**
|
|
5154
5211
|
* Request message for the ReadAccountOriginalResources rpc.
|
|
@@ -5169,7 +5226,7 @@ export type ReadAccountOriginalResourcesRequest = Message<"blueapi.cost.v1.ReadA
|
|
|
5169
5226
|
* Use `create(ReadAccountOriginalResourcesRequestSchema)` to create a new message.
|
|
5170
5227
|
*/
|
|
5171
5228
|
export const ReadAccountOriginalResourcesRequestSchema: GenMessage<ReadAccountOriginalResourcesRequest> = /*@__PURE__*/
|
|
5172
|
-
messageDesc(file_cost_v1_cost,
|
|
5229
|
+
messageDesc(file_cost_v1_cost, 119);
|
|
5173
5230
|
|
|
5174
5231
|
/**
|
|
5175
5232
|
* Request message for the RegisterPayerAccountRequest rpc.
|
|
@@ -5212,7 +5269,7 @@ export type RegisterPayerAccountRequest = Message<"blueapi.cost.v1.RegisterPayer
|
|
|
5212
5269
|
* Use `create(RegisterPayerAccountRequestSchema)` to create a new message.
|
|
5213
5270
|
*/
|
|
5214
5271
|
export const RegisterPayerAccountRequestSchema: GenMessage<RegisterPayerAccountRequest> = /*@__PURE__*/
|
|
5215
|
-
messageDesc(file_cost_v1_cost,
|
|
5272
|
+
messageDesc(file_cost_v1_cost, 120);
|
|
5216
5273
|
|
|
5217
5274
|
/**
|
|
5218
5275
|
* @generated from message blueapi.cost.v1.UpdatePayerAccountRequest
|
|
@@ -5253,7 +5310,7 @@ export type UpdatePayerAccountRequest = Message<"blueapi.cost.v1.UpdatePayerAcco
|
|
|
5253
5310
|
* Use `create(UpdatePayerAccountRequestSchema)` to create a new message.
|
|
5254
5311
|
*/
|
|
5255
5312
|
export const UpdatePayerAccountRequestSchema: GenMessage<UpdatePayerAccountRequest> = /*@__PURE__*/
|
|
5256
|
-
messageDesc(file_cost_v1_cost,
|
|
5313
|
+
messageDesc(file_cost_v1_cost, 121);
|
|
5257
5314
|
|
|
5258
5315
|
/**
|
|
5259
5316
|
* WORK-IN-PROGRESS: List the prerequisites for cost calculations.
|
|
@@ -5281,7 +5338,7 @@ export type ListCalculationPrerequisitesRequest = Message<"blueapi.cost.v1.ListC
|
|
|
5281
5338
|
* Use `create(ListCalculationPrerequisitesRequestSchema)` to create a new message.
|
|
5282
5339
|
*/
|
|
5283
5340
|
export const ListCalculationPrerequisitesRequestSchema: GenMessage<ListCalculationPrerequisitesRequest> = /*@__PURE__*/
|
|
5284
|
-
messageDesc(file_cost_v1_cost,
|
|
5341
|
+
messageDesc(file_cost_v1_cost, 122);
|
|
5285
5342
|
|
|
5286
5343
|
/**
|
|
5287
5344
|
* @generated from message blueapi.cost.v1.CalculationPrerequisite
|
|
@@ -5335,7 +5392,7 @@ export type CalculationPrerequisite = Message<"blueapi.cost.v1.CalculationPrereq
|
|
|
5335
5392
|
* Use `create(CalculationPrerequisiteSchema)` to create a new message.
|
|
5336
5393
|
*/
|
|
5337
5394
|
export const CalculationPrerequisiteSchema: GenMessage<CalculationPrerequisite> = /*@__PURE__*/
|
|
5338
|
-
messageDesc(file_cost_v1_cost,
|
|
5395
|
+
messageDesc(file_cost_v1_cost, 123);
|
|
5339
5396
|
|
|
5340
5397
|
/**
|
|
5341
5398
|
* Response message for the ListCalculationPrerequisites rpc.
|
|
@@ -5356,7 +5413,7 @@ export type ListCalculationPrerequisitesResponse = Message<"blueapi.cost.v1.List
|
|
|
5356
5413
|
* Use `create(ListCalculationPrerequisitesResponseSchema)` to create a new message.
|
|
5357
5414
|
*/
|
|
5358
5415
|
export const ListCalculationPrerequisitesResponseSchema: GenMessage<ListCalculationPrerequisitesResponse> = /*@__PURE__*/
|
|
5359
|
-
messageDesc(file_cost_v1_cost,
|
|
5416
|
+
messageDesc(file_cost_v1_cost, 124);
|
|
5360
5417
|
|
|
5361
5418
|
/**
|
|
5362
5419
|
* Request message for SetupPayerAccountBillingTransfer
|
|
@@ -5426,7 +5483,7 @@ export type SetupPayerAccountBillingTransferRequest = Message<"blueapi.cost.v1.S
|
|
|
5426
5483
|
* Use `create(SetupPayerAccountBillingTransferRequestSchema)` to create a new message.
|
|
5427
5484
|
*/
|
|
5428
5485
|
export const SetupPayerAccountBillingTransferRequestSchema: GenMessage<SetupPayerAccountBillingTransferRequest> = /*@__PURE__*/
|
|
5429
|
-
messageDesc(file_cost_v1_cost,
|
|
5486
|
+
messageDesc(file_cost_v1_cost, 125);
|
|
5430
5487
|
|
|
5431
5488
|
/**
|
|
5432
5489
|
* Service for reading aggregated costs for your cloud costs and usages.
|
|
@@ -5787,6 +5844,19 @@ export const Cost: GenService<{
|
|
|
5787
5844
|
input: typeof ExportCostFiltersFileRequestSchema;
|
|
5788
5845
|
output: typeof OperationSchema;
|
|
5789
5846
|
},
|
|
5847
|
+
/**
|
|
5848
|
+
* Exports the usage-based cost filter as a CSV and returns the download URL synchronously.
|
|
5849
|
+
* Intended for direct browser download with small datasets. For large datasets that may
|
|
5850
|
+
* exceed the request timeout, use ExportCostFiltersFile with a notification channel instead.
|
|
5851
|
+
* Only available in Wave(Pro).
|
|
5852
|
+
*
|
|
5853
|
+
* @generated from rpc blueapi.cost.v1.Cost.ExportCostFiltersFileSync
|
|
5854
|
+
*/
|
|
5855
|
+
exportCostFiltersFileSync: {
|
|
5856
|
+
methodKind: "unary";
|
|
5857
|
+
input: typeof ExportCostFiltersFileRequestSchema;
|
|
5858
|
+
output: typeof ExportCostFiltersFileResponseSchema;
|
|
5859
|
+
},
|
|
5790
5860
|
/**
|
|
5791
5861
|
* Reads the available cost attributes of an organization (Ripple) or billing group (Wave).
|
|
5792
5862
|
*
|
|
@@ -6089,6 +6159,16 @@ export const Cost: GenService<{
|
|
|
6089
6159
|
input: typeof ExportReportRequestSchema;
|
|
6090
6160
|
output: typeof OperationSchema;
|
|
6091
6161
|
},
|
|
6162
|
+
/**
|
|
6163
|
+
* Synchronously checks billing readiness without triggering an export, email, or long-running operation.
|
|
6164
|
+
*
|
|
6165
|
+
* @generated from rpc blueapi.cost.v1.Cost.GetInvoiceReadiness
|
|
6166
|
+
*/
|
|
6167
|
+
getInvoiceReadiness: {
|
|
6168
|
+
methodKind: "unary";
|
|
6169
|
+
input: typeof GetInvoiceReadinessRequestSchema;
|
|
6170
|
+
output: typeof GetInvoiceReadinessResponseSchema;
|
|
6171
|
+
},
|
|
6092
6172
|
/**
|
|
6093
6173
|
* Get the utilization details for an organization (or MSP).
|
|
6094
6174
|
*
|