@eide/foir-proto-ts 0.3.1 → 0.3.2

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.
@@ -3769,6 +3769,296 @@ export declare type EnsureDefaultVariantCatalogEntryResponse = Message<"settings
3769
3769
  */
3770
3770
  export declare const EnsureDefaultVariantCatalogEntryResponseSchema: GenMessage<EnsureDefaultVariantCatalogEntryResponse>;
3771
3771
 
3772
+ /**
3773
+ * @generated from message settings.v1.GetProjectSchemaRequest
3774
+ */
3775
+ export declare type GetProjectSchemaRequest = Message<"settings.v1.GetProjectSchemaRequest"> & {
3776
+ };
3777
+
3778
+ /**
3779
+ * Describes the message settings.v1.GetProjectSchemaRequest.
3780
+ * Use `create(GetProjectSchemaRequestSchema)` to create a new message.
3781
+ */
3782
+ export declare const GetProjectSchemaRequestSchema: GenMessage<GetProjectSchemaRequest>;
3783
+
3784
+ /**
3785
+ * @generated from message settings.v1.ProjectSchemaModel
3786
+ */
3787
+ export declare type ProjectSchemaModel = Message<"settings.v1.ProjectSchemaModel"> & {
3788
+ /**
3789
+ * @generated from field: string id = 1;
3790
+ */
3791
+ id: string;
3792
+
3793
+ /**
3794
+ * @generated from field: string key = 2;
3795
+ */
3796
+ key: string;
3797
+
3798
+ /**
3799
+ * @generated from field: string name = 3;
3800
+ */
3801
+ name: string;
3802
+
3803
+ /**
3804
+ * @generated from field: google.protobuf.Struct fields = 4;
3805
+ */
3806
+ fields?: JsonObject;
3807
+
3808
+ /**
3809
+ * @generated from field: google.protobuf.Struct config = 5;
3810
+ */
3811
+ config?: JsonObject;
3812
+ };
3813
+
3814
+ /**
3815
+ * Describes the message settings.v1.ProjectSchemaModel.
3816
+ * Use `create(ProjectSchemaModelSchema)` to create a new message.
3817
+ */
3818
+ export declare const ProjectSchemaModelSchema: GenMessage<ProjectSchemaModel>;
3819
+
3820
+ /**
3821
+ * @generated from message settings.v1.ProjectSchemaContextDimension
3822
+ */
3823
+ export declare type ProjectSchemaContextDimension = Message<"settings.v1.ProjectSchemaContextDimension"> & {
3824
+ /**
3825
+ * @generated from field: string id = 1;
3826
+ */
3827
+ id: string;
3828
+
3829
+ /**
3830
+ * @generated from field: string key = 2;
3831
+ */
3832
+ key: string;
3833
+
3834
+ /**
3835
+ * @generated from field: string name = 3;
3836
+ */
3837
+ name: string;
3838
+
3839
+ /**
3840
+ * @generated from field: optional string source_model_key = 4;
3841
+ */
3842
+ sourceModelKey?: string;
3843
+
3844
+ /**
3845
+ * @generated from field: optional string default_record_key = 5;
3846
+ */
3847
+ defaultRecordKey?: string;
3848
+
3849
+ /**
3850
+ * @generated from field: repeated string values = 6;
3851
+ */
3852
+ values: string[];
3853
+ };
3854
+
3855
+ /**
3856
+ * Describes the message settings.v1.ProjectSchemaContextDimension.
3857
+ * Use `create(ProjectSchemaContextDimensionSchema)` to create a new message.
3858
+ */
3859
+ export declare const ProjectSchemaContextDimensionSchema: GenMessage<ProjectSchemaContextDimension>;
3860
+
3861
+ /**
3862
+ * @generated from message settings.v1.ProjectSchemaAuthProvider
3863
+ */
3864
+ export declare type ProjectSchemaAuthProvider = Message<"settings.v1.ProjectSchemaAuthProvider"> & {
3865
+ /**
3866
+ * @generated from field: string key = 1;
3867
+ */
3868
+ key: string;
3869
+
3870
+ /**
3871
+ * @generated from field: string name = 2;
3872
+ */
3873
+ name: string;
3874
+
3875
+ /**
3876
+ * @generated from field: string type = 3;
3877
+ */
3878
+ type: string;
3879
+
3880
+ /**
3881
+ * @generated from field: bool enabled = 4;
3882
+ */
3883
+ enabled: boolean;
3884
+ };
3885
+
3886
+ /**
3887
+ * Describes the message settings.v1.ProjectSchemaAuthProvider.
3888
+ * Use `create(ProjectSchemaAuthProviderSchema)` to create a new message.
3889
+ */
3890
+ export declare const ProjectSchemaAuthProviderSchema: GenMessage<ProjectSchemaAuthProvider>;
3891
+
3892
+ /**
3893
+ * @generated from message settings.v1.ProjectSchemaOperation
3894
+ */
3895
+ export declare type ProjectSchemaOperation = Message<"settings.v1.ProjectSchemaOperation"> & {
3896
+ /**
3897
+ * @generated from field: string key = 1;
3898
+ */
3899
+ key: string;
3900
+
3901
+ /**
3902
+ * @generated from field: string name = 2;
3903
+ */
3904
+ name: string;
3905
+
3906
+ /**
3907
+ * @generated from field: string endpoint = 3;
3908
+ */
3909
+ endpoint: string;
3910
+
3911
+ /**
3912
+ * @generated from field: int32 timeout_ms = 4;
3913
+ */
3914
+ timeoutMs: number;
3915
+
3916
+ /**
3917
+ * @generated from field: optional google.protobuf.Struct input_schema = 5;
3918
+ */
3919
+ inputSchema?: JsonObject;
3920
+
3921
+ /**
3922
+ * @generated from field: optional google.protobuf.Struct output_schema = 6;
3923
+ */
3924
+ outputSchema?: JsonObject;
3925
+ };
3926
+
3927
+ /**
3928
+ * Describes the message settings.v1.ProjectSchemaOperation.
3929
+ * Use `create(ProjectSchemaOperationSchema)` to create a new message.
3930
+ */
3931
+ export declare const ProjectSchemaOperationSchema: GenMessage<ProjectSchemaOperation>;
3932
+
3933
+ /**
3934
+ * @generated from message settings.v1.ProjectSchemaSegment
3935
+ */
3936
+ export declare type ProjectSchemaSegment = Message<"settings.v1.ProjectSchemaSegment"> & {
3937
+ /**
3938
+ * @generated from field: string key = 1;
3939
+ */
3940
+ key: string;
3941
+
3942
+ /**
3943
+ * @generated from field: string name = 2;
3944
+ */
3945
+ name: string;
3946
+
3947
+ /**
3948
+ * @generated from field: bool is_active = 3;
3949
+ */
3950
+ isActive: boolean;
3951
+ };
3952
+
3953
+ /**
3954
+ * Describes the message settings.v1.ProjectSchemaSegment.
3955
+ * Use `create(ProjectSchemaSegmentSchema)` to create a new message.
3956
+ */
3957
+ export declare const ProjectSchemaSegmentSchema: GenMessage<ProjectSchemaSegment>;
3958
+
3959
+ /**
3960
+ * @generated from message settings.v1.ProjectSchemaExperiment
3961
+ */
3962
+ export declare type ProjectSchemaExperiment = Message<"settings.v1.ProjectSchemaExperiment"> & {
3963
+ /**
3964
+ * @generated from field: string key = 1;
3965
+ */
3966
+ key: string;
3967
+
3968
+ /**
3969
+ * @generated from field: string name = 2;
3970
+ */
3971
+ name: string;
3972
+
3973
+ /**
3974
+ * @generated from field: string status = 3;
3975
+ */
3976
+ status: string;
3977
+
3978
+ /**
3979
+ * @generated from field: google.protobuf.Struct variants = 4;
3980
+ */
3981
+ variants?: JsonObject;
3982
+ };
3983
+
3984
+ /**
3985
+ * Describes the message settings.v1.ProjectSchemaExperiment.
3986
+ * Use `create(ProjectSchemaExperimentSchema)` to create a new message.
3987
+ */
3988
+ export declare const ProjectSchemaExperimentSchema: GenMessage<ProjectSchemaExperiment>;
3989
+
3990
+ /**
3991
+ * @generated from message settings.v1.ProjectSchemaProfileSchema
3992
+ */
3993
+ export declare type ProjectSchemaProfileSchema = Message<"settings.v1.ProjectSchemaProfileSchema"> & {
3994
+ /**
3995
+ * @generated from field: google.protobuf.Struct fields = 1;
3996
+ */
3997
+ fields?: JsonObject;
3998
+
3999
+ /**
4000
+ * @generated from field: repeated string public_fields = 2;
4001
+ */
4002
+ publicFields: string[];
4003
+
4004
+ /**
4005
+ * @generated from field: int32 version = 3;
4006
+ */
4007
+ version: number;
4008
+ };
4009
+
4010
+ /**
4011
+ * Describes the message settings.v1.ProjectSchemaProfileSchema.
4012
+ * Use `create(ProjectSchemaProfileSchemaSchema)` to create a new message.
4013
+ */
4014
+ export declare const ProjectSchemaProfileSchemaSchema: GenMessage<ProjectSchemaProfileSchema>;
4015
+
4016
+ /**
4017
+ * @generated from message settings.v1.GetProjectSchemaResponse
4018
+ */
4019
+ export declare type GetProjectSchemaResponse = Message<"settings.v1.GetProjectSchemaResponse"> & {
4020
+ /**
4021
+ * @generated from field: repeated settings.v1.ProjectSchemaModel models = 1;
4022
+ */
4023
+ models: ProjectSchemaModel[];
4024
+
4025
+ /**
4026
+ * @generated from field: repeated settings.v1.ProjectSchemaContextDimension dimensions = 2;
4027
+ */
4028
+ dimensions: ProjectSchemaContextDimension[];
4029
+
4030
+ /**
4031
+ * @generated from field: repeated settings.v1.ProjectSchemaAuthProvider auth_providers = 3;
4032
+ */
4033
+ authProviders: ProjectSchemaAuthProvider[];
4034
+
4035
+ /**
4036
+ * @generated from field: repeated settings.v1.ProjectSchemaOperation operations = 4;
4037
+ */
4038
+ operations: ProjectSchemaOperation[];
4039
+
4040
+ /**
4041
+ * @generated from field: repeated settings.v1.ProjectSchemaSegment segments = 5;
4042
+ */
4043
+ segments: ProjectSchemaSegment[];
4044
+
4045
+ /**
4046
+ * @generated from field: repeated settings.v1.ProjectSchemaExperiment experiments = 6;
4047
+ */
4048
+ experiments: ProjectSchemaExperiment[];
4049
+
4050
+ /**
4051
+ * @generated from field: optional settings.v1.ProjectSchemaProfileSchema profile_schema = 7;
4052
+ */
4053
+ profileSchema?: ProjectSchemaProfileSchema;
4054
+ };
4055
+
4056
+ /**
4057
+ * Describes the message settings.v1.GetProjectSchemaResponse.
4058
+ * Use `create(GetProjectSchemaResponseSchema)` to create a new message.
4059
+ */
4060
+ export declare const GetProjectSchemaResponseSchema: GenMessage<GetProjectSchemaResponse>;
4061
+
3772
4062
  /**
3773
4063
  * @generated from enum settings.v1.ShareResourceType
3774
4064
  */
@@ -4392,5 +4682,15 @@ export declare const SettingsService: GenService<{
4392
4682
  input: typeof ListResendTemplatesRequestSchema;
4393
4683
  output: typeof ListResendTemplatesResponseSchema;
4394
4684
  },
4685
+ /**
4686
+ * Project Schema (coarse-grained aggregation for GraphQL schema building).
4687
+ *
4688
+ * @generated from rpc settings.v1.SettingsService.GetProjectSchema
4689
+ */
4690
+ getProjectSchema: {
4691
+ methodKind: "unary";
4692
+ input: typeof GetProjectSchemaRequestSchema;
4693
+ output: typeof GetProjectSchemaResponseSchema;
4694
+ },
4395
4695
  }>;
4396
4696
 
@@ -10,7 +10,7 @@ import { file_expressions_v1_expressions } from "../../expressions/v1/expression
10
10
  * Describes the file settings/v1/settings.proto.
11
11
  */
12
12
  export const file_settings_v1_settings = /*@__PURE__*/
13
- fileDesc("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiggMKB1NldHRpbmcSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhAKCGNhdGVnb3J5GAMgASgJEisKBXZhbHVlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDGRpc3BsYXlfbmFtZRgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESEQoJZGF0YV90eXBlGAcgASgJEhEKCWlzX3B1YmxpYxgIIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl92YWx1ZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfcHJvamVjdF9pZCKrBAoIQXVkaXRMb2cSCgoCaWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgd1c2VyX2lkGAMgASgJSACIAQESFgoJdGVuYW50X2lkGAQgASgJSAGIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgCiAEBEg4KBmFjdGlvbhgGIAEoCRIVCg1yZXNvdXJjZV90eXBlGAcgASgJEhgKC3Jlc291cmNlX2lkGAggASgJSAOIAQESLAoGYmVmb3JlGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWFmdGVyGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEhcKCmlwX2FkZHJlc3MYDCABKAlIB4gBARIXCgp1c2VyX2FnZW50GA0gASgJSAiIAQESFwoKcmVxdWVzdF9pZBgOIAEoCUgJiAEBQgoKCF91c2VyX2lkQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDgoMX3Jlc291cmNlX2lkQgkKB19iZWZvcmVCCAoGX2FmdGVyQgsKCV9tZXRhZGF0YUINCgtfaXBfYWRkcmVzc0INCgtfdXNlcl9hZ2VudEINCgtfcmVxdWVzdF9pZCKdBQoETm90ZRIKCgJpZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkSHwoSZW50aXR5X25hdHVyYWxfa2V5GAQgASgJSACIAQESFwoKdmVyc2lvbl9pZBgFIAEoCUgBiAEBEigKB2NvbnRlbnQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNvbnRlbnRfcGxhaW5fdGV4dBgHIAEoCUgCiAEBEhsKDnBhcmVudF9ub3RlX2lkGAogASgJSAOIAQESGwoOdGhyZWFkX3Jvb3RfaWQYCyABKAlIBIgBARITCgtpc19yZXNvbHZlZBgPIAEoCBI0CgtyZXNvbHZlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIYCgtyZXNvbHZlZF9ieRgRIAEoCUgGiAEBEi4KCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCXRlbmFudF9pZBgeIAEoCRIXCgpwcm9qZWN0X2lkGB8gASgJSAiIAQESEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIVChNfZW50aXR5X25hdHVyYWxfa2V5Qg0KC192ZXJzaW9uX2lkQhUKE19jb250ZW50X3BsYWluX3RleHRCEQoPX3BhcmVudF9ub3RlX2lkQhEKD190aHJlYWRfcm9vdF9pZEIOCgxfcmVzb2x2ZWRfYXRCDgoMX3Jlc29sdmVkX2J5QgsKCV9tZXRhZGF0YUINCgtfcHJvamVjdF9pZCKqBQoFU2hhcmUSCgoCaWQYASABKAkSNQoNcmVzb3VyY2VfdHlwZRgCIAEoDjIeLnNldHRpbmdzLnYxLlNoYXJlUmVzb3VyY2VUeXBlEhYKCXJlY29yZF9pZBgDIAEoCUgAiAEBEhQKB2ZpbGVfaWQYBCABKAlIAYgBARIWCgltb2RlbF9rZXkYBSABKAlIAogBARIfChdzaGFyZWRfd2l0aF9jdXN0b21lcl9pZBgGIAEoCRIwCgpwZXJtaXNzaW9uGAcgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uEigKBnN0YXR1cxgKIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzEjQKC2FjY2VwdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjMKCmV4cGlyZXNfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgFiAEBEhcKCnJldm9rZWRfYnkYHyABKAlIBogBARIzCgpyZXZva2VkX2F0GCAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWRCDAoKX21vZGVsX2tleUIOCgxfYWNjZXB0ZWRfYXRCDQoLX2V4cGlyZXNfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3Jldm9rZWRfYnlCDQoLX3Jldm9rZWRfYXQiUgoSR2V0U2V0dGluZ3NSZXF1ZXN0EhUKCGNhdGVnb3J5GAEgASgJSACIAQESEAoDa2V5GAIgASgJSAGIAQFCCwoJX2NhdGVnb3J5QgYKBF9rZXkiPQoTR2V0U2V0dGluZ3NSZXNwb25zZRImCghzZXR0aW5ncxgBIAMoCzIULnNldHRpbmdzLnYxLlNldHRpbmciSwoUVXBkYXRlU2V0dGluZ1JlcXVlc3QSCwoDa2V5GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI+ChVVcGRhdGVTZXR0aW5nUmVzcG9uc2USJQoHc2V0dGluZxgBIAEoCzIULnNldHRpbmdzLnYxLlNldHRpbmciuwIKFExpc3RBdWRpdExvZ3NSZXF1ZXN0EhMKBmFjdGlvbhgBIAEoCUgAiAEBEhoKDXJlc291cmNlX3R5cGUYAiABKAlIAYgBARIYCgtyZXNvdXJjZV9pZBgDIAEoCUgCiAEBEhQKB3VzZXJfaWQYBCABKAlIA4gBARItCgRmcm9tGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEisKAnRvGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfYWN0aW9uQhAKDl9yZXNvdXJjZV90eXBlQg4KDF9yZXNvdXJjZV9pZEIKCghfdXNlcl9pZEIHCgVfZnJvbUIFCgNfdG8iSwoVTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEiMKBGxvZ3MYASADKAsyFS5zZXR0aW5ncy52MS5BdWRpdExvZxINCgV0b3RhbBgCIAEoBSKVAQoRQ3JlYXRlTm90ZVJlcXVlc3QSEwoLZW50aXR5X3R5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEigKB2NvbnRlbnQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhsKDnBhcmVudF9ub3RlX2lkGAQgASgJSACIAQFCEQoPX3BhcmVudF9ub3RlX2lkIjUKEkNyZWF0ZU5vdGVSZXNwb25zZRIfCgRub3RlGAEgASgLMhEuc2V0dGluZ3MudjEuTm90ZSIcCg5HZXROb3RlUmVxdWVzdBIKCgJpZBgBIAEoCSIyCg9HZXROb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiiQEKEExpc3ROb3Rlc1JlcXVlc3QSEwoLZW50aXR5X3R5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEhsKDnBhcmVudF9ub3RlX2lkGAMgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQhEKD19wYXJlbnRfbm90ZV9pZCJEChFMaXN0Tm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUihAEKEVVwZGF0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJEi0KB2NvbnRlbnQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESGAoLaXNfcmVzb2x2ZWQYAyABKAhIAYgBAUIKCghfY29udGVudEIOCgxfaXNfcmVzb2x2ZWQiNQoSVXBkYXRlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIh8KEURlbGV0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIiUKEkRlbGV0ZU5vdGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqwFCgtOb3RlTWVudGlvbhIKCgJpZBgBIAEoCRIPCgdub3RlX2lkGAIgASgJEhkKEW1lbnRpb25lZF91c2VyX2lkGAMgASgJEg4KBnN0YXR1cxgEIAEoCRIwCgdzZWVuX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjgKD2Fja25vd2xlZGdlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI1Cgxjb21wbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGwoOY29tcGxldGVkX25vdGUYCCABKAlIA4gBARI1CgxkaXNtaXNzZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoOZGlzbWlzc19yZWFzb24YCiABKAlIBYgBARIxCghkdWVfZGF0ZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9zZWVuX2F0QhIKEF9hY2tub3dsZWRnZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIRCg9fY29tcGxldGVkX25vdGVCDwoNX2Rpc21pc3NlZF9hdEIRCg9fZGlzbWlzc19yZWFzb25CCwoJX2R1ZV9kYXRlQg0KC19wcm9qZWN0X2lkItoBChJNZW50aW9uV2l0aENvbnRleHQSKQoHbWVudGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLk5vdGVNZW50aW9uEh8KBG5vdGUYAiABKAsyES5zZXR0aW5ncy52MS5Ob3RlEhgKC2F1dGhvcl9uYW1lGAMgASgJSACIAQESGAoLZW50aXR5X3R5cGUYBCABKAlIAYgBARIWCgllbnRpdHlfaWQYBSABKAlIAogBAUIOCgxfYXV0aG9yX25hbWVCDgoMX2VudGl0eV90eXBlQgwKCl9lbnRpdHlfaWQiTwoNTWVudGlvbkNvdW50cxIPCgdwZW5kaW5nGAEgASgFEhAKCHBhc3RfZHVlGAIgASgFEhsKE2NvbXBsZXRlZF90aGlzX3dlZWsYAyABKAUicAoVTGlzdE15TWVudGlvbnNSZXF1ZXN0Eg4KBnN0YXR1cxgBIAMoCRIYCgtlbnRpdHlfdHlwZRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIOCgxfZW50aXR5X3R5cGUigwEKFkxpc3RNeU1lbnRpb25zUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5NZW50aW9uV2l0aENvbnRleHQSDQoFdG90YWwYAiABKAUSKgoGY291bnRzGAMgASgLMhouc2V0dGluZ3MudjEuTWVudGlvbkNvdW50cyKgAQoaVXBkYXRlTWVudGlvblN0YXR1c1JlcXVlc3QSEgoKbWVudGlvbl9pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSGwoOY29tcGxldGVkX25vdGUYAyABKAlIAIgBARIbCg5kaXNtaXNzX3JlYXNvbhgEIAEoCUgBiAEBQhEKD19jb21wbGV0ZWRfbm90ZUIRCg9fZGlzbWlzc19yZWFzb24iSAobVXBkYXRlTWVudGlvblN0YXR1c1Jlc3BvbnNlEikKB21lbnRpb24YASABKAsyGC5zZXR0aW5ncy52MS5Ob3RlTWVudGlvbiLaAQoSQ3JlYXRlU2hhcmVSZXF1ZXN0EjUKDXJlc291cmNlX3R5cGUYASABKA4yHi5zZXR0aW5ncy52MS5TaGFyZVJlc291cmNlVHlwZRIWCglyZWNvcmRfaWQYAiABKAlIAIgBARIUCgdmaWxlX2lkGAMgASgJSAGIAQESEwoLY3VzdG9tZXJfaWQYBCABKAkSMAoKcGVybWlzc2lvbhgFIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkIMCgpfcmVjb3JkX2lkQgoKCF9maWxlX2lkIjgKE0NyZWF0ZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIdCg9HZXRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiNQoQR2V0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIsgBChFMaXN0U2hhcmVzUmVxdWVzdBI6Cg1yZXNvdXJjZV90eXBlGAEgASgOMh4uc2V0dGluZ3MudjEuU2hhcmVSZXNvdXJjZVR5cGVIAIgBARIWCglyZWNvcmRfaWQYAiABKAlIAYgBARIUCgdmaWxlX2lkGAMgASgJSAKIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQhAKDl9yZXNvdXJjZV90eXBlQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWQiRwoSTGlzdFNoYXJlc1Jlc3BvbnNlEiIKBnNoYXJlcxgBIAMoCzISLnNldHRpbmdzLnYxLlNoYXJlEg0KBXRvdGFsGAIgASgFIqABChJVcGRhdGVTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkSNQoKcGVybWlzc2lvbhgCIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkgAiAEBEi0KBnN0YXR1cxgDIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzSAGIAQFCDQoLX3Blcm1pc3Npb25CCQoHX3N0YXR1cyI4ChNVcGRhdGVTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUiIAoSUmV2b2tlU2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJIiYKE1Jldm9rZVNoYXJlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIgChJBY2NlcHRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiOAoTQWNjZXB0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIiEKE0RlY2xpbmVTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiOQoURGVjbGluZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSK/AwoGTG9jYWxlEgoKAmlkGAEgASgJEg4KBmxvY2FsZRgCIAEoCRIUCgxkaXNwbGF5X25hbWUYAyABKAkSGAoLbmF0aXZlX25hbWUYBCABKAlIAIgBARISCgppc19kZWZhdWx0GAUgASgIEhEKCWlzX2FjdGl2ZRgGIAEoCBIOCgZpc19ydGwYByABKAgSHAoPZmFsbGJhY2tfbG9jYWxlGAggASgJSAGIAQESGQoRZmFsbGJhY2tfcHJpb3JpdHkYCSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfbmF0aXZlX25hbWVCEgoQX2ZhbGxiYWNrX2xvY2FsZUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSJnChJMaXN0TG9jYWxlc1JlcXVlc3QSHQoQaW5jbHVkZV9pbmFjdGl2ZRgBIAEoCEgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUITChFfaW5jbHVkZV9pbmFjdGl2ZSJKChNMaXN0TG9jYWxlc1Jlc3BvbnNlEiQKB2xvY2FsZXMYASADKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUSDQoFdG90YWwYAiABKAUiHgoQR2V0TG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChFHZXRMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUi3wEKE0NyZWF0ZUxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtuYXRpdmVfbmFtZRgDIAEoCUgAiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAYgBARITCgZpc19ydGwYBSABKAhIAogBARIcCg9mYWxsYmFja19sb2NhbGUYBiABKAlIA4gBAUIOCgxfbmF0aXZlX25hbWVCDQoLX2lzX2RlZmF1bHRCCQoHX2lzX3J0bEISChBfZmFsbGJhY2tfbG9jYWxlIjsKFENyZWF0ZUxvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSKXAgoTVXBkYXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxkaXNwbGF5X25hbWUYAiABKAlIAIgBARIYCgtuYXRpdmVfbmFtZRgDIAEoCUgBiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAogBARIWCglpc19hY3RpdmUYBSABKAhIA4gBARITCgZpc19ydGwYBiABKAhIBIgBARIcCg9mYWxsYmFja19sb2NhbGUYByABKAlIBYgBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9uYXRpdmVfbmFtZUINCgtfaXNfZGVmYXVsdEIMCgpfaXNfYWN0aXZlQgkKB19pc19ydGxCEgoQX2ZhbGxiYWNrX2xvY2FsZSI7ChRVcGRhdGVMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiIQoTRGVsZXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVMb2NhbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIpQBCg5OYXZQcmVmZXJlbmNlcxIZChFmYXZvcml0ZV9wcm9qZWN0cxgBIAMoCRIaChJmYXZvcml0ZV9uYXZfaXRlbXMYAiADKAkSGgoSY29sbGFwc2VkX3NlY3Rpb25zGAMgAygJEi8KDm5hdl9pdGVtX29yZGVyGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIaChhHZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QiTQoZR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRIwCgtwcmVmZXJlbmNlcxgBIAEoCzIbLnNldHRpbmdzLnYxLk5hdlByZWZlcmVuY2VzIvwBChtVcGRhdGVOYXZQcmVmZXJlbmNlc1JlcXVlc3QSNQoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlc0gAiAEBEh4KEXRvZ2dsZV9wcm9qZWN0X2lkGAIgASgJSAGIAQESHAoPdG9nZ2xlX25hdl9pdGVtGAMgASgJSAKIAQESGwoOdG9nZ2xlX3NlY3Rpb24YBCABKAlIA4gBAUIOCgxfcHJlZmVyZW5jZXNCFAoSX3RvZ2dsZV9wcm9qZWN0X2lkQhIKEF90b2dnbGVfbmF2X2l0ZW1CEQoPX3RvZ2dsZV9zZWN0aW9uIlAKHFVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyJeChJSZWNlbnRseU9wZW5lZEl0ZW0SDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgRwYXRoGAQgASgJEhEKCXRpbWVzdGFtcBgFIAEoAyIqChlMaXN0UmVjZW50bHlPcGVuZWRSZXF1ZXN0Eg0KBWxpbWl0GAEgASgFIkwKGkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uc2V0dGluZ3MudjEuUmVjZW50bHlPcGVuZWRJdGVtIlMKGlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCSIuChtUcmFja1JlY2VudGx5T3BlbmVkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI3ChtSZW1vdmVSZWNlbnRseU9wZW5lZFJlcXVlc3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSIvChxSZW1vdmVSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiHAoaQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QiLgobQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgimwQKEENvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgFIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAYgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgHIAEoCUgBiAEBEhEKCWlzX3N5c3RlbRgIIAEoCBIXCg9idWlsdF9pbl92YWx1ZXMYCSADKAkSEQoJZGF0YV90eXBlGAogASgJEhAKCGNhdGVnb3J5GAsgASgJEhMKC2lzX3JlcXVpcmVkGAwgASgIEhIKCnNvcnRfb3JkZXIYDSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSIzChVDb250ZXh0RGltZW5zaW9uVmFsdWUSCwoDa2V5GAEgASgJEg0KBWxhYmVsGAIgASgJIl0KHExpc3RDb250ZXh0RGltZW5zaW9uc1JlcXVlc3QSEwoGc2VhcmNoGAEgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zZWFyY2giYQodTGlzdENvbnRleHREaW1lbnNpb25zUmVzcG9uc2USMQoKZGltZW5zaW9ucxgBIAMoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24SDQoFdG90YWwYAiABKAUiKAoaR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiTwobR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iywEKHUNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEwoLc291cmNlX3R5cGUYBCABKAkSGAoQc291cmNlX21vZGVsX2tleRgFIAEoCRIfChJkZWZhdWx0X3JlY29yZF9rZXkYBiABKAlIAYgBAUIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleSJSCh5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiLdAQodVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgCiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5IlIKHlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIisKHURlbGV0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjEKHkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIngKIEdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXF1ZXN0EhUKDWRpbWVuc2lvbl9rZXkYASABKAkSEwoGc2VhcmNoGAIgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zZWFyY2giZgohR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1Jlc3BvbnNlEjIKBnZhbHVlcxgBIAMoCzIiLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WYWx1ZRINCgV0b3RhbBgCIAEoBSLnAQoUQ3VzdG9tZXJQcm9maWxlRmllbGQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBHR5cGUYAyABKAkSDQoFbGFiZWwYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSFgoJaGVscF90ZXh0GAYgASgJSACIAQESGAoLcGxhY2Vob2xkZXIYByABKAlIAYgBARIsCgZjb25maWcYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQFCDAoKX2hlbHBfdGV4dEIOCgxfcGxhY2Vob2xkZXJCCQoHX2NvbmZpZyLeAQoVQ3VzdG9tZXJQcm9maWxlU2NoZW1hEgoKAmlkGAEgASgJEjEKBmZpZWxkcxgCIAMoCzIhLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZUZpZWxkEhUKDXB1YmxpY19maWVsZHMYAyADKAkSDwoHdmVyc2lvbhgEIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIhCh9HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0IlYKIEdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjIKBnNjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSKgBAoTVmFyaWFudENhdGFsb2dFbnRyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESEAoIcHJpb3JpdHkYBiABKAUSEgoKaXNfZGVmYXVsdBgHIAEoCBIRCglpc19hY3RpdmUYCCABKAgSGgoNZXhwZXJpbWVudF9pZBgJIAEoCUgCiAEBEhgKC2ZhbGxiYWNrX2lkGAogASgJSAOIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgEiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIBYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0IQCg5fZXhwZXJpbWVudF9pZEIOCgxfZmFsbGJhY2tfaWRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnkiYAoZTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBIWCglpc19hY3RpdmUYASABKAhIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCDAoKX2lzX2FjdGl2ZSJeChpMaXN0VmFyaWFudENhdGFsb2dSZXNwb25zZRIxCgdlbnRyaWVzGAEgAygLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeRINCgV0b3RhbBgCIAEoBSIrCh1HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJRCh5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IqsCCiBDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFQoIcHJpb3JpdHkYBSABKAVIAogBARIXCgppc19kZWZhdWx0GAYgASgISAOIAQESFgoJaXNfYWN0aXZlGAcgASgISASIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSK4AgogVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGAQgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IAogBARIVCghwcmlvcml0eRgFIAEoBUgDiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0ILCglfcHJpb3JpdHlCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZSJUCiFVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Ii4KIERlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjQKIURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjAKGUdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiQwoaR2V0Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiVwoZU2V0Q3VzdG9tZXJQcm9maWxlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItChpTZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIm4KIlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlcXVlc3QSMQoGZmllbGRzGAEgAygLMiEuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlRmllbGQSFQoNcHVibGljX2ZpZWxkcxgCIAMoCSJZCiNVcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXNwb25zZRIyCgZzY2hlbWEYASABKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVTY2hlbWEiUwoVQ3VzdG9tZXJQcm9maWxlUmVzdWx0EhMKC2N1c3RvbWVyX2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ik0KHVNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBSJkCh5TZWFyY2hDdXN0b21lclByb2ZpbGVzUmVzcG9uc2USMwoHcmVzdWx0cxgBIAMoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVJlc3VsdBINCgV0b3RhbBgCIAEoBSIzChxEZWxldGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIjAKHURlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiPQomR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1JlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiWQoTUmVzb2x1dGlvbkF0dHJpYnV0ZRILCgNrZXkYASABKAkSNQoGdmFsdWVzGAIgAygLMiUuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZVZhbHVlIoABChhSZXNvbHV0aW9uQXR0cmlidXRlVmFsdWUSDQoFdmFsdWUYASABKAkSDQoFY291bnQYAiABKAUSNQoMbGFzdF9zZWVuX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV9sYXN0X3NlZW5fYXQijAIKJ0dldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXNwb25zZRIZChF0b3RhbF9yZXNvbHV0aW9ucxgBIAEoBRI0CgphdHRyaWJ1dGVzGAIgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZRI2Cg1maXJzdF9zZWVuX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjUKDGxhc3Rfc2Vlbl9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIQCg5fZmlyc3Rfc2Vlbl9hdEIPCg1fbGFzdF9zZWVuX2F0IiwKF0dldEVkaXRvckNvbmZpZ3NSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSLAAgoVRWRpdG9yQ29uZmlnUGxhY2VtZW50EhEKCWNvbmZpZ19pZBgBIAEoCRISCgpjb25maWdfa2V5GAIgASgJEhAKA3VybBgDIAEoCUgAiAEBEhsKDmFsbG93ZWRfb3JpZ2luGAQgASgJSAGIAQESEwoGaGVpZ2h0GAUgASgFSAKIAQESEgoFbGFiZWwYBiABKAlIA4gBARIUCgdhcGlfa2V5GAcgASgJSASIAQESFAoHYXBpX3VybBgIIAEoCUgFiAEBEh4KEWNvbm5lY3Rpb25fZG9tYWluGAkgASgJSAaIAQFCBgoEX3VybEIRCg9fYWxsb3dlZF9vcmlnaW5CCQoHX2hlaWdodEIICgZfbGFiZWxCCgoIX2FwaV9rZXlCCgoIX2FwaV91cmxCFAoSX2Nvbm5lY3Rpb25fZG9tYWluIlIKGEdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRI2CgpwbGFjZW1lbnRzGAEgAygLMiIuc2V0dGluZ3MudjEuRWRpdG9yQ29uZmlnUGxhY2VtZW50IuUDCgtFbWFpbEFjdGlvbhIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEh8KEnJlc2VuZF90ZW1wbGF0ZV9pZBgFIAEoCUgBiAEBEhkKDGRlZmF1bHRfZnJvbRgGIAEoCUgCiAEBEhwKD2RlZmF1bHRfc3ViamVjdBgHIAEoCUgDiAEBEjEKC2N1c3RvbV9kYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEhEKCWlzX2FjdGl2ZRgJIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgFiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkIVChNfcmVzZW5kX3RlbXBsYXRlX2lkQg8KDV9kZWZhdWx0X2Zyb21CEgoQX2RlZmF1bHRfc3ViamVjdEIOCgxfY3VzdG9tX2RhdGFCDQoLX3Byb2plY3RfaWQiOAoXTGlzdEVtYWlsQWN0aW9uc1JlcXVlc3QSDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFIlQKGExpc3RFbWFpbEFjdGlvbnNSZXNwb25zZRIpCgdhY3Rpb25zGAEgAygLMhguc2V0dGluZ3MudjEuRW1haWxBY3Rpb24SDQoFdG90YWwYAiABKAUiJAoVR2V0RW1haWxBY3Rpb25SZXF1ZXN0EgsKA2tleRgBIAEoCSJCChZHZXRFbWFpbEFjdGlvblJlc3BvbnNlEigKBmFjdGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLkVtYWlsQWN0aW9uIqYCChhVcGRhdGVFbWFpbEFjdGlvblJlcXVlc3QSCwoDa2V5GAEgASgJEh8KEnJlc2VuZF90ZW1wbGF0ZV9pZBgCIAEoCUgAiAEBEhkKDGRlZmF1bHRfZnJvbRgDIAEoCUgBiAEBEhwKD2RlZmF1bHRfc3ViamVjdBgEIAEoCUgCiAEBEjEKC2N1c3RvbV9kYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhYKCWlzX2FjdGl2ZRgGIAEoCEgEiAEBQhUKE19yZXNlbmRfdGVtcGxhdGVfaWRCDwoNX2RlZmF1bHRfZnJvbUISChBfZGVmYXVsdF9zdWJqZWN0Qg4KDF9jdXN0b21fZGF0YUIMCgpfaXNfYWN0aXZlIkUKGVVwZGF0ZUVtYWlsQWN0aW9uUmVzcG9uc2USKAoGYWN0aW9uGAEgASgLMhguc2V0dGluZ3MudjEuRW1haWxBY3Rpb24iKgoOUmVzZW5kVGVtcGxhdGUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCSIcChpMaXN0UmVzZW5kVGVtcGxhdGVzUmVxdWVzdCJNChtMaXN0UmVzZW5kVGVtcGxhdGVzUmVzcG9uc2USLgoJdGVtcGxhdGVzGAEgAygLMhsuc2V0dGluZ3MudjEuUmVzZW5kVGVtcGxhdGUiIAoSUmVzb2x2ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIjYKE1Jlc29sdmVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiIgoUVW5yZXNvbHZlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiOAoVVW5yZXNvbHZlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlImwKElNlYXJjaE5vdGVzUmVxdWVzdBINCgVxdWVyeRgBIAEoCRIYCgtlbnRpdHlfdHlwZRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIOCgxfZW50aXR5X3R5cGUiRgoTU2VhcmNoTm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUiGQoXTWFya01lbnRpb25zU2VlblJlcXVlc3QiKQoYTWFya01lbnRpb25zU2VlblJlc3BvbnNlEg0KBWNvdW50GAEgASgFIi4KH0dldENvbnRleHREaW1lbnNpb25CeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIlQKIEdldENvbnRleHREaW1lbnNpb25CeUtleVJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iGQoXR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QiPwoYR2V0RGVmYXVsdExvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSImChZHZXRMb2NhbGVCeUNvZGVSZXF1ZXN0EgwKBGNvZGUYASABKAkiPgoXR2V0TG9jYWxlQnlDb2RlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiYKJEdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdCJYCiVHZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSIjChREZWxldGVTZXR0aW5nUmVxdWVzdBILCgNrZXkYASABKAkiKAoVRGVsZXRlU2V0dGluZ1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMwofRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCSIxCiBEZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXNwb25zZRINCgVjb3VudBgBIAEoBSJNChZCdWxrU2V0U2V0dGluZ3NSZXF1ZXN0EjMKCHNldHRpbmdzGAEgAygLMiEuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1JlcXVlc3QiKAoXQnVsa1NldFNldHRpbmdzUmVzcG9uc2USDQoFY291bnQYASABKAUiKQonRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0IlsKKEVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5KnYKEVNoYXJlUmVzb3VyY2VUeXBlEiMKH1NIQVJFX1JFU09VUkNFX1RZUEVfVU5TUEVDSUZJRUQQABIeChpTSEFSRV9SRVNPVVJDRV9UWVBFX1JFQ09SRBABEhwKGFNIQVJFX1JFU09VUkNFX1RZUEVfRklMRRACKoUBCg9TaGFyZVBlcm1pc3Npb24SIAocU0hBUkVfUEVSTUlTU0lPTl9VTlNQRUNJRklFRBAAEhkKFVNIQVJFX1BFUk1JU1NJT05fVklFVxABEhkKFVNIQVJFX1BFUk1JU1NJT05fRURJVBACEhoKFlNIQVJFX1BFUk1JU1NJT05fQURNSU4QAyp7CgtTaGFyZVN0YXR1cxIcChhTSEFSRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIYChRTSEFSRV9TVEFUVVNfUEVORElORxABEhkKFVNIQVJFX1NUQVRVU19BQ0NFUFRFRBACEhkKFVNIQVJFX1NUQVRVU19ERUNMSU5FRBADMqUxCg9TZXR0aW5nc1NlcnZpY2USUAoLR2V0U2V0dGluZ3MSHy5zZXR0aW5ncy52MS5HZXRTZXR0aW5nc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5HZXRTZXR0aW5nc1Jlc3BvbnNlElYKDVVwZGF0ZVNldHRpbmcSIS5zZXR0aW5ncy52MS5VcGRhdGVTZXR0aW5nUmVxdWVzdBoiLnNldHRpbmdzLnYxLlVwZGF0ZVNldHRpbmdSZXNwb25zZRJWCg1EZWxldGVTZXR0aW5nEiEuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ1JlcXVlc3QaIi5zZXR0aW5ncy52MS5EZWxldGVTZXR0aW5nUmVzcG9uc2USdwoYRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5Eiwuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVxdWVzdBotLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlc3BvbnNlElwKD0J1bGtTZXRTZXR0aW5ncxIjLnNldHRpbmdzLnYxLkJ1bGtTZXRTZXR0aW5nc1JlcXVlc3QaJC5zZXR0aW5ncy52MS5CdWxrU2V0U2V0dGluZ3NSZXNwb25zZRJWCg1MaXN0QXVkaXRMb2dzEiEuc2V0dGluZ3MudjEuTGlzdEF1ZGl0TG9nc1JlcXVlc3QaIi5zZXR0aW5ncy52MS5MaXN0QXVkaXRMb2dzUmVzcG9uc2USTQoKQ3JlYXRlTm90ZRIeLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuQ3JlYXRlTm90ZVJlc3BvbnNlEkQKB0dldE5vdGUSGy5zZXR0aW5ncy52MS5HZXROb3RlUmVxdWVzdBocLnNldHRpbmdzLnYxLkdldE5vdGVSZXNwb25zZRJKCglMaXN0Tm90ZXMSHS5zZXR0aW5ncy52MS5MaXN0Tm90ZXNSZXF1ZXN0Gh4uc2V0dGluZ3MudjEuTGlzdE5vdGVzUmVzcG9uc2USTQoKVXBkYXRlTm90ZRIeLnNldHRpbmdzLnYxLlVwZGF0ZU5vdGVSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuVXBkYXRlTm90ZVJlc3BvbnNlEk0KCkRlbGV0ZU5vdGUSHi5zZXR0aW5ncy52MS5EZWxldGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLkRlbGV0ZU5vdGVSZXNwb25zZRJQCgtSZXNvbHZlTm90ZRIfLnNldHRpbmdzLnYxLlJlc29sdmVOb3RlUmVxdWVzdBogLnNldHRpbmdzLnYxLlJlc29sdmVOb3RlUmVzcG9uc2USVgoNVW5yZXNvbHZlTm90ZRIhLnNldHRpbmdzLnYxLlVucmVzb2x2ZU5vdGVSZXF1ZXN0GiIuc2V0dGluZ3MudjEuVW5yZXNvbHZlTm90ZVJlc3BvbnNlElAKC1NlYXJjaE5vdGVzEh8uc2V0dGluZ3MudjEuU2VhcmNoTm90ZXNSZXF1ZXN0GiAuc2V0dGluZ3MudjEuU2VhcmNoTm90ZXNSZXNwb25zZRJZCg5MaXN0TXlNZW50aW9ucxIiLnNldHRpbmdzLnYxLkxpc3RNeU1lbnRpb25zUmVxdWVzdBojLnNldHRpbmdzLnYxLkxpc3RNeU1lbnRpb25zUmVzcG9uc2USaAoTVXBkYXRlTWVudGlvblN0YXR1cxInLnNldHRpbmdzLnYxLlVwZGF0ZU1lbnRpb25TdGF0dXNSZXF1ZXN0Giguc2V0dGluZ3MudjEuVXBkYXRlTWVudGlvblN0YXR1c1Jlc3BvbnNlEl8KEE1hcmtNZW50aW9uc1NlZW4SJC5zZXR0aW5ncy52MS5NYXJrTWVudGlvbnNTZWVuUmVxdWVzdBolLnNldHRpbmdzLnYxLk1hcmtNZW50aW9uc1NlZW5SZXNwb25zZRJQCgtMaXN0TG9jYWxlcxIfLnNldHRpbmdzLnYxLkxpc3RMb2NhbGVzUmVxdWVzdBogLnNldHRpbmdzLnYxLkxpc3RMb2NhbGVzUmVzcG9uc2USSgoJR2V0TG9jYWxlEh0uc2V0dGluZ3MudjEuR2V0TG9jYWxlUmVxdWVzdBoeLnNldHRpbmdzLnYxLkdldExvY2FsZVJlc3BvbnNlEl8KEEdldERlZmF1bHRMb2NhbGUSJC5zZXR0aW5ncy52MS5HZXREZWZhdWx0TG9jYWxlUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldERlZmF1bHRMb2NhbGVSZXNwb25zZRJcCg9HZXRMb2NhbGVCeUNvZGUSIy5zZXR0aW5ncy52MS5HZXRMb2NhbGVCeUNvZGVSZXF1ZXN0GiQuc2V0dGluZ3MudjEuR2V0TG9jYWxlQnlDb2RlUmVzcG9uc2USUwoMQ3JlYXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuQ3JlYXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLkNyZWF0ZUxvY2FsZVJlc3BvbnNlElMKDFVwZGF0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLlVwZGF0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5VcGRhdGVMb2NhbGVSZXNwb25zZRJTCgxEZWxldGVMb2NhbGUSIC5zZXR0aW5ncy52MS5EZWxldGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuRGVsZXRlTG9jYWxlUmVzcG9uc2USYgoRR2V0TmF2UHJlZmVyZW5jZXMSJS5zZXR0aW5ncy52MS5HZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QaJi5zZXR0aW5ncy52MS5HZXROYXZQcmVmZXJlbmNlc1Jlc3BvbnNlEmsKFFVwZGF0ZU5hdlByZWZlcmVuY2VzEiguc2V0dGluZ3MudjEuVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXF1ZXN0Gikuc2V0dGluZ3MudjEuVXBkYXRlTmF2UHJlZmVyZW5jZXNSZXNwb25zZRJlChJMaXN0UmVjZW50bHlPcGVuZWQSJi5zZXR0aW5ncy52MS5MaXN0UmVjZW50bHlPcGVuZWRSZXF1ZXN0Gicuc2V0dGluZ3MudjEuTGlzdFJlY2VudGx5T3BlbmVkUmVzcG9uc2USaAoTVHJhY2tSZWNlbnRseU9wZW5lZBInLnNldHRpbmdzLnYxLlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0Giguc2V0dGluZ3MudjEuVHJhY2tSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmsKFFJlbW92ZVJlY2VudGx5T3BlbmVkEiguc2V0dGluZ3MudjEuUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXF1ZXN0Gikuc2V0dGluZ3MudjEuUmVtb3ZlUmVjZW50bHlPcGVuZWRSZXNwb25zZRJoChNDbGVhclJlY2VudGx5T3BlbmVkEicuc2V0dGluZ3MudjEuQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QaKC5zZXR0aW5ncy52MS5DbGVhclJlY2VudGx5T3BlbmVkUmVzcG9uc2USUAoLQ3JlYXRlU2hhcmUSHy5zZXR0aW5ncy52MS5DcmVhdGVTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5DcmVhdGVTaGFyZVJlc3BvbnNlEkcKCEdldFNoYXJlEhwuc2V0dGluZ3MudjEuR2V0U2hhcmVSZXF1ZXN0Gh0uc2V0dGluZ3MudjEuR2V0U2hhcmVSZXNwb25zZRJNCgpMaXN0U2hhcmVzEh4uc2V0dGluZ3MudjEuTGlzdFNoYXJlc1JlcXVlc3QaHy5zZXR0aW5ncy52MS5MaXN0U2hhcmVzUmVzcG9uc2USUAoLVXBkYXRlU2hhcmUSHy5zZXR0aW5ncy52MS5VcGRhdGVTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5VcGRhdGVTaGFyZVJlc3BvbnNlElAKC1Jldm9rZVNoYXJlEh8uc2V0dGluZ3MudjEuUmV2b2tlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuUmV2b2tlU2hhcmVSZXNwb25zZRJQCgtBY2NlcHRTaGFyZRIfLnNldHRpbmdzLnYxLkFjY2VwdFNoYXJlUmVxdWVzdBogLnNldHRpbmdzLnYxLkFjY2VwdFNoYXJlUmVzcG9uc2USUwoMRGVjbGluZVNoYXJlEiAuc2V0dGluZ3MudjEuRGVjbGluZVNoYXJlUmVxdWVzdBohLnNldHRpbmdzLnYxLkRlY2xpbmVTaGFyZVJlc3BvbnNlEm4KFUxpc3RDb250ZXh0RGltZW5zaW9ucxIpLnNldHRpbmdzLnYxLkxpc3RDb250ZXh0RGltZW5zaW9uc1JlcXVlc3QaKi5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvbnNSZXNwb25zZRJoChNHZXRDb250ZXh0RGltZW5zaW9uEicuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QaKC5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USdwoYR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5Eiwuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5UmVxdWVzdBotLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25CeUtleVJlc3BvbnNlEnEKFkNyZWF0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLkNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJxChZVcGRhdGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2UScQoWRGVsZXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuRGVsZXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnoKGUdldENvbnRleHREaW1lbnNpb25WYWx1ZXMSLS5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVxdWVzdBouLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXNwb25zZRJ3ChhHZXRDdXN0b21lclByb2ZpbGVTY2hlbWESLC5zZXR0aW5ncy52MS5HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0Gi0uc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2USZQoSR2V0Q3VzdG9tZXJQcm9maWxlEiYuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlUmVxdWVzdBonLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEmUKElNldEN1c3RvbWVyUHJvZmlsZRImLnNldHRpbmdzLnYxLlNldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaJy5zZXR0aW5ncy52MS5TZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRKAAQobVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hEi8uc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdBowLnNldHRpbmdzLnYxLlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEnEKFlNlYXJjaEN1c3RvbWVyUHJvZmlsZXMSKi5zZXR0aW5ncy52MS5TZWFyY2hDdXN0b21lclByb2ZpbGVzUmVxdWVzdBorLnNldHRpbmdzLnYxLlNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXNwb25zZRJuChVEZWxldGVDdXN0b21lclByb2ZpbGUSKS5zZXR0aW5ncy52MS5EZWxldGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0Giouc2V0dGluZ3MudjEuRGVsZXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USjAEKH0dldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXMSMy5zZXR0aW5ncy52MS5HZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzUmVxdWVzdBo0LnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXNwb25zZRJfChBHZXRFZGl0b3JDb25maWdzEiQuc2V0dGluZ3MudjEuR2V0RWRpdG9yQ29uZmlnc1JlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXRFZGl0b3JDb25maWdzUmVzcG9uc2USZQoSTGlzdFZhcmlhbnRDYXRhbG9nEiYuc2V0dGluZ3MudjEuTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBonLnNldHRpbmdzLnYxLkxpc3RWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEnEKFkdldFZhcmlhbnRDYXRhbG9nRW50cnkSKi5zZXR0aW5ncy52MS5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBorLnNldHRpbmdzLnYxLkdldFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5DcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLlVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5EZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLkRlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRKGAQodR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnkSMS5zZXR0aW5ncy52MS5HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaMi5zZXR0aW5ncy52MS5HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEo8BCiBFbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeRI0LnNldHRpbmdzLnYxLkVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBo1LnNldHRpbmdzLnYxLkVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USXwoQTGlzdEVtYWlsQWN0aW9ucxIkLnNldHRpbmdzLnYxLkxpc3RFbWFpbEFjdGlvbnNSZXF1ZXN0GiUuc2V0dGluZ3MudjEuTGlzdEVtYWlsQWN0aW9uc1Jlc3BvbnNlElkKDkdldEVtYWlsQWN0aW9uEiIuc2V0dGluZ3MudjEuR2V0RW1haWxBY3Rpb25SZXF1ZXN0GiMuc2V0dGluZ3MudjEuR2V0RW1haWxBY3Rpb25SZXNwb25zZRJiChFVcGRhdGVFbWFpbEFjdGlvbhIlLnNldHRpbmdzLnYxLlVwZGF0ZUVtYWlsQWN0aW9uUmVxdWVzdBomLnNldHRpbmdzLnYxLlVwZGF0ZUVtYWlsQWN0aW9uUmVzcG9uc2USaAoTTGlzdFJlc2VuZFRlbXBsYXRlcxInLnNldHRpbmdzLnYxLkxpc3RSZXNlbmRUZW1wbGF0ZXNSZXF1ZXN0Giguc2V0dGluZ3MudjEuTGlzdFJlc2VuZFRlbXBsYXRlc1Jlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9zZXR0aW5ncy92MTtzZXR0aW5nc3YxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
13
+ fileDesc("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiggMKB1NldHRpbmcSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhAKCGNhdGVnb3J5GAMgASgJEisKBXZhbHVlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDGRpc3BsYXlfbmFtZRgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESEQoJZGF0YV90eXBlGAcgASgJEhEKCWlzX3B1YmxpYxgIIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl92YWx1ZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfcHJvamVjdF9pZCKrBAoIQXVkaXRMb2cSCgoCaWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgd1c2VyX2lkGAMgASgJSACIAQESFgoJdGVuYW50X2lkGAQgASgJSAGIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgCiAEBEg4KBmFjdGlvbhgGIAEoCRIVCg1yZXNvdXJjZV90eXBlGAcgASgJEhgKC3Jlc291cmNlX2lkGAggASgJSAOIAQESLAoGYmVmb3JlGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWFmdGVyGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEhcKCmlwX2FkZHJlc3MYDCABKAlIB4gBARIXCgp1c2VyX2FnZW50GA0gASgJSAiIAQESFwoKcmVxdWVzdF9pZBgOIAEoCUgJiAEBQgoKCF91c2VyX2lkQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDgoMX3Jlc291cmNlX2lkQgkKB19iZWZvcmVCCAoGX2FmdGVyQgsKCV9tZXRhZGF0YUINCgtfaXBfYWRkcmVzc0INCgtfdXNlcl9hZ2VudEINCgtfcmVxdWVzdF9pZCKdBQoETm90ZRIKCgJpZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkSHwoSZW50aXR5X25hdHVyYWxfa2V5GAQgASgJSACIAQESFwoKdmVyc2lvbl9pZBgFIAEoCUgBiAEBEigKB2NvbnRlbnQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNvbnRlbnRfcGxhaW5fdGV4dBgHIAEoCUgCiAEBEhsKDnBhcmVudF9ub3RlX2lkGAogASgJSAOIAQESGwoOdGhyZWFkX3Jvb3RfaWQYCyABKAlIBIgBARITCgtpc19yZXNvbHZlZBgPIAEoCBI0CgtyZXNvbHZlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIYCgtyZXNvbHZlZF9ieRgRIAEoCUgGiAEBEi4KCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCXRlbmFudF9pZBgeIAEoCRIXCgpwcm9qZWN0X2lkGB8gASgJSAiIAQESEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIVChNfZW50aXR5X25hdHVyYWxfa2V5Qg0KC192ZXJzaW9uX2lkQhUKE19jb250ZW50X3BsYWluX3RleHRCEQoPX3BhcmVudF9ub3RlX2lkQhEKD190aHJlYWRfcm9vdF9pZEIOCgxfcmVzb2x2ZWRfYXRCDgoMX3Jlc29sdmVkX2J5QgsKCV9tZXRhZGF0YUINCgtfcHJvamVjdF9pZCKqBQoFU2hhcmUSCgoCaWQYASABKAkSNQoNcmVzb3VyY2VfdHlwZRgCIAEoDjIeLnNldHRpbmdzLnYxLlNoYXJlUmVzb3VyY2VUeXBlEhYKCXJlY29yZF9pZBgDIAEoCUgAiAEBEhQKB2ZpbGVfaWQYBCABKAlIAYgBARIWCgltb2RlbF9rZXkYBSABKAlIAogBARIfChdzaGFyZWRfd2l0aF9jdXN0b21lcl9pZBgGIAEoCRIwCgpwZXJtaXNzaW9uGAcgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uEigKBnN0YXR1cxgKIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzEjQKC2FjY2VwdGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjMKCmV4cGlyZXNfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgFiAEBEhcKCnJldm9rZWRfYnkYHyABKAlIBogBARIzCgpyZXZva2VkX2F0GCAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWRCDAoKX21vZGVsX2tleUIOCgxfYWNjZXB0ZWRfYXRCDQoLX2V4cGlyZXNfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3Jldm9rZWRfYnlCDQoLX3Jldm9rZWRfYXQiUgoSR2V0U2V0dGluZ3NSZXF1ZXN0EhUKCGNhdGVnb3J5GAEgASgJSACIAQESEAoDa2V5GAIgASgJSAGIAQFCCwoJX2NhdGVnb3J5QgYKBF9rZXkiPQoTR2V0U2V0dGluZ3NSZXNwb25zZRImCghzZXR0aW5ncxgBIAMoCzIULnNldHRpbmdzLnYxLlNldHRpbmciSwoUVXBkYXRlU2V0dGluZ1JlcXVlc3QSCwoDa2V5GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI+ChVVcGRhdGVTZXR0aW5nUmVzcG9uc2USJQoHc2V0dGluZxgBIAEoCzIULnNldHRpbmdzLnYxLlNldHRpbmciuwIKFExpc3RBdWRpdExvZ3NSZXF1ZXN0EhMKBmFjdGlvbhgBIAEoCUgAiAEBEhoKDXJlc291cmNlX3R5cGUYAiABKAlIAYgBARIYCgtyZXNvdXJjZV9pZBgDIAEoCUgCiAEBEhQKB3VzZXJfaWQYBCABKAlIA4gBARItCgRmcm9tGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEisKAnRvGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIJCgdfYWN0aW9uQhAKDl9yZXNvdXJjZV90eXBlQg4KDF9yZXNvdXJjZV9pZEIKCghfdXNlcl9pZEIHCgVfZnJvbUIFCgNfdG8iSwoVTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEiMKBGxvZ3MYASADKAsyFS5zZXR0aW5ncy52MS5BdWRpdExvZxINCgV0b3RhbBgCIAEoBSKVAQoRQ3JlYXRlTm90ZVJlcXVlc3QSEwoLZW50aXR5X3R5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEigKB2NvbnRlbnQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhsKDnBhcmVudF9ub3RlX2lkGAQgASgJSACIAQFCEQoPX3BhcmVudF9ub3RlX2lkIjUKEkNyZWF0ZU5vdGVSZXNwb25zZRIfCgRub3RlGAEgASgLMhEuc2V0dGluZ3MudjEuTm90ZSIcCg5HZXROb3RlUmVxdWVzdBIKCgJpZBgBIAEoCSIyCg9HZXROb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiiQEKEExpc3ROb3Rlc1JlcXVlc3QSEwoLZW50aXR5X3R5cGUYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEhsKDnBhcmVudF9ub3RlX2lkGAMgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQhEKD19wYXJlbnRfbm90ZV9pZCJEChFMaXN0Tm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUihAEKEVVwZGF0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJEi0KB2NvbnRlbnQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESGAoLaXNfcmVzb2x2ZWQYAyABKAhIAYgBAUIKCghfY29udGVudEIOCgxfaXNfcmVzb2x2ZWQiNQoSVXBkYXRlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIh8KEURlbGV0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIiUKEkRlbGV0ZU5vdGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqwFCgtOb3RlTWVudGlvbhIKCgJpZBgBIAEoCRIPCgdub3RlX2lkGAIgASgJEhkKEW1lbnRpb25lZF91c2VyX2lkGAMgASgJEg4KBnN0YXR1cxgEIAEoCRIwCgdzZWVuX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjgKD2Fja25vd2xlZGdlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI1Cgxjb21wbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGwoOY29tcGxldGVkX25vdGUYCCABKAlIA4gBARI1CgxkaXNtaXNzZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoOZGlzbWlzc19yZWFzb24YCiABKAlIBYgBARIxCghkdWVfZGF0ZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9zZWVuX2F0QhIKEF9hY2tub3dsZWRnZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIRCg9fY29tcGxldGVkX25vdGVCDwoNX2Rpc21pc3NlZF9hdEIRCg9fZGlzbWlzc19yZWFzb25CCwoJX2R1ZV9kYXRlQg0KC19wcm9qZWN0X2lkItoBChJNZW50aW9uV2l0aENvbnRleHQSKQoHbWVudGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLk5vdGVNZW50aW9uEh8KBG5vdGUYAiABKAsyES5zZXR0aW5ncy52MS5Ob3RlEhgKC2F1dGhvcl9uYW1lGAMgASgJSACIAQESGAoLZW50aXR5X3R5cGUYBCABKAlIAYgBARIWCgllbnRpdHlfaWQYBSABKAlIAogBAUIOCgxfYXV0aG9yX25hbWVCDgoMX2VudGl0eV90eXBlQgwKCl9lbnRpdHlfaWQiTwoNTWVudGlvbkNvdW50cxIPCgdwZW5kaW5nGAEgASgFEhAKCHBhc3RfZHVlGAIgASgFEhsKE2NvbXBsZXRlZF90aGlzX3dlZWsYAyABKAUicAoVTGlzdE15TWVudGlvbnNSZXF1ZXN0Eg4KBnN0YXR1cxgBIAMoCRIYCgtlbnRpdHlfdHlwZRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIOCgxfZW50aXR5X3R5cGUigwEKFkxpc3RNeU1lbnRpb25zUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5NZW50aW9uV2l0aENvbnRleHQSDQoFdG90YWwYAiABKAUSKgoGY291bnRzGAMgASgLMhouc2V0dGluZ3MudjEuTWVudGlvbkNvdW50cyKgAQoaVXBkYXRlTWVudGlvblN0YXR1c1JlcXVlc3QSEgoKbWVudGlvbl9pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSGwoOY29tcGxldGVkX25vdGUYAyABKAlIAIgBARIbCg5kaXNtaXNzX3JlYXNvbhgEIAEoCUgBiAEBQhEKD19jb21wbGV0ZWRfbm90ZUIRCg9fZGlzbWlzc19yZWFzb24iSAobVXBkYXRlTWVudGlvblN0YXR1c1Jlc3BvbnNlEikKB21lbnRpb24YASABKAsyGC5zZXR0aW5ncy52MS5Ob3RlTWVudGlvbiLaAQoSQ3JlYXRlU2hhcmVSZXF1ZXN0EjUKDXJlc291cmNlX3R5cGUYASABKA4yHi5zZXR0aW5ncy52MS5TaGFyZVJlc291cmNlVHlwZRIWCglyZWNvcmRfaWQYAiABKAlIAIgBARIUCgdmaWxlX2lkGAMgASgJSAGIAQESEwoLY3VzdG9tZXJfaWQYBCABKAkSMAoKcGVybWlzc2lvbhgFIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkIMCgpfcmVjb3JkX2lkQgoKCF9maWxlX2lkIjgKE0NyZWF0ZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIdCg9HZXRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiNQoQR2V0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIsgBChFMaXN0U2hhcmVzUmVxdWVzdBI6Cg1yZXNvdXJjZV90eXBlGAEgASgOMh4uc2V0dGluZ3MudjEuU2hhcmVSZXNvdXJjZVR5cGVIAIgBARIWCglyZWNvcmRfaWQYAiABKAlIAYgBARIUCgdmaWxlX2lkGAMgASgJSAKIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQhAKDl9yZXNvdXJjZV90eXBlQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWQiRwoSTGlzdFNoYXJlc1Jlc3BvbnNlEiIKBnNoYXJlcxgBIAMoCzISLnNldHRpbmdzLnYxLlNoYXJlEg0KBXRvdGFsGAIgASgFIqABChJVcGRhdGVTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkSNQoKcGVybWlzc2lvbhgCIAEoDjIcLnNldHRpbmdzLnYxLlNoYXJlUGVybWlzc2lvbkgAiAEBEi0KBnN0YXR1cxgDIAEoDjIYLnNldHRpbmdzLnYxLlNoYXJlU3RhdHVzSAGIAQFCDQoLX3Blcm1pc3Npb25CCQoHX3N0YXR1cyI4ChNVcGRhdGVTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUiIAoSUmV2b2tlU2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJIiYKE1Jldm9rZVNoYXJlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIgChJBY2NlcHRTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiOAoTQWNjZXB0U2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIiEKE0RlY2xpbmVTaGFyZVJlcXVlc3QSCgoCaWQYASABKAkiOQoURGVjbGluZVNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSK/AwoGTG9jYWxlEgoKAmlkGAEgASgJEg4KBmxvY2FsZRgCIAEoCRIUCgxkaXNwbGF5X25hbWUYAyABKAkSGAoLbmF0aXZlX25hbWUYBCABKAlIAIgBARISCgppc19kZWZhdWx0GAUgASgIEhEKCWlzX2FjdGl2ZRgGIAEoCBIOCgZpc19ydGwYByABKAgSHAoPZmFsbGJhY2tfbG9jYWxlGAggASgJSAGIAQESGQoRZmFsbGJhY2tfcHJpb3JpdHkYCSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfbmF0aXZlX25hbWVCEgoQX2ZhbGxiYWNrX2xvY2FsZUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSJnChJMaXN0TG9jYWxlc1JlcXVlc3QSHQoQaW5jbHVkZV9pbmFjdGl2ZRgBIAEoCEgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUITChFfaW5jbHVkZV9pbmFjdGl2ZSJKChNMaXN0TG9jYWxlc1Jlc3BvbnNlEiQKB2xvY2FsZXMYASADKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUSDQoFdG90YWwYAiABKAUiHgoQR2V0TG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChFHZXRMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUi3wEKE0NyZWF0ZUxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtuYXRpdmVfbmFtZRgDIAEoCUgAiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAYgBARITCgZpc19ydGwYBSABKAhIAogBARIcCg9mYWxsYmFja19sb2NhbGUYBiABKAlIA4gBAUIOCgxfbmF0aXZlX25hbWVCDQoLX2lzX2RlZmF1bHRCCQoHX2lzX3J0bEISChBfZmFsbGJhY2tfbG9jYWxlIjsKFENyZWF0ZUxvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSKXAgoTVXBkYXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxkaXNwbGF5X25hbWUYAiABKAlIAIgBARIYCgtuYXRpdmVfbmFtZRgDIAEoCUgBiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAogBARIWCglpc19hY3RpdmUYBSABKAhIA4gBARITCgZpc19ydGwYBiABKAhIBIgBARIcCg9mYWxsYmFja19sb2NhbGUYByABKAlIBYgBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9uYXRpdmVfbmFtZUINCgtfaXNfZGVmYXVsdEIMCgpfaXNfYWN0aXZlQgkKB19pc19ydGxCEgoQX2ZhbGxiYWNrX2xvY2FsZSI7ChRVcGRhdGVMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiIQoTRGVsZXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVMb2NhbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIpQBCg5OYXZQcmVmZXJlbmNlcxIZChFmYXZvcml0ZV9wcm9qZWN0cxgBIAMoCRIaChJmYXZvcml0ZV9uYXZfaXRlbXMYAiADKAkSGgoSY29sbGFwc2VkX3NlY3Rpb25zGAMgAygJEi8KDm5hdl9pdGVtX29yZGVyGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIaChhHZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QiTQoZR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRIwCgtwcmVmZXJlbmNlcxgBIAEoCzIbLnNldHRpbmdzLnYxLk5hdlByZWZlcmVuY2VzIvwBChtVcGRhdGVOYXZQcmVmZXJlbmNlc1JlcXVlc3QSNQoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlc0gAiAEBEh4KEXRvZ2dsZV9wcm9qZWN0X2lkGAIgASgJSAGIAQESHAoPdG9nZ2xlX25hdl9pdGVtGAMgASgJSAKIAQESGwoOdG9nZ2xlX3NlY3Rpb24YBCABKAlIA4gBAUIOCgxfcHJlZmVyZW5jZXNCFAoSX3RvZ2dsZV9wcm9qZWN0X2lkQhIKEF90b2dnbGVfbmF2X2l0ZW1CEQoPX3RvZ2dsZV9zZWN0aW9uIlAKHFVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyJeChJSZWNlbnRseU9wZW5lZEl0ZW0SDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgRwYXRoGAQgASgJEhEKCXRpbWVzdGFtcBgFIAEoAyIqChlMaXN0UmVjZW50bHlPcGVuZWRSZXF1ZXN0Eg0KBWxpbWl0GAEgASgFIkwKGkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uc2V0dGluZ3MudjEuUmVjZW50bHlPcGVuZWRJdGVtIlMKGlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCSIuChtUcmFja1JlY2VudGx5T3BlbmVkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI3ChtSZW1vdmVSZWNlbnRseU9wZW5lZFJlcXVlc3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSIvChxSZW1vdmVSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiHAoaQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QiLgobQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgimwQKEENvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgFIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAYgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgHIAEoCUgBiAEBEhEKCWlzX3N5c3RlbRgIIAEoCBIXCg9idWlsdF9pbl92YWx1ZXMYCSADKAkSEQoJZGF0YV90eXBlGAogASgJEhAKCGNhdGVnb3J5GAsgASgJEhMKC2lzX3JlcXVpcmVkGAwgASgIEhIKCnNvcnRfb3JkZXIYDSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSIzChVDb250ZXh0RGltZW5zaW9uVmFsdWUSCwoDa2V5GAEgASgJEg0KBWxhYmVsGAIgASgJIl0KHExpc3RDb250ZXh0RGltZW5zaW9uc1JlcXVlc3QSEwoGc2VhcmNoGAEgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zZWFyY2giYQodTGlzdENvbnRleHREaW1lbnNpb25zUmVzcG9uc2USMQoKZGltZW5zaW9ucxgBIAMoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24SDQoFdG90YWwYAiABKAUiKAoaR2V0Q29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiTwobR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iywEKHUNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEwoLc291cmNlX3R5cGUYBCABKAkSGAoQc291cmNlX21vZGVsX2tleRgFIAEoCRIfChJkZWZhdWx0X3JlY29yZF9rZXkYBiABKAlIAYgBAUIOCgxfZGVzY3JpcHRpb25CFQoTX2RlZmF1bHRfcmVjb3JkX2tleSJSCh5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiLdAQodVXBkYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESHQoQc291cmNlX21vZGVsX2tleRgEIAEoCUgCiAEBEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgFIAEoCUgDiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5IlIKHlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIisKHURlbGV0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjEKHkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIngKIEdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXF1ZXN0EhUKDWRpbWVuc2lvbl9rZXkYASABKAkSEwoGc2VhcmNoGAIgASgJSACIAQESDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFQgkKB19zZWFyY2giZgohR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1Jlc3BvbnNlEjIKBnZhbHVlcxgBIAMoCzIiLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WYWx1ZRINCgV0b3RhbBgCIAEoBSLnAQoUQ3VzdG9tZXJQcm9maWxlRmllbGQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBHR5cGUYAyABKAkSDQoFbGFiZWwYBCABKAkSEAoIcmVxdWlyZWQYBSABKAgSFgoJaGVscF90ZXh0GAYgASgJSACIAQESGAoLcGxhY2Vob2xkZXIYByABKAlIAYgBARIsCgZjb25maWcYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQFCDAoKX2hlbHBfdGV4dEIOCgxfcGxhY2Vob2xkZXJCCQoHX2NvbmZpZyLeAQoVQ3VzdG9tZXJQcm9maWxlU2NoZW1hEgoKAmlkGAEgASgJEjEKBmZpZWxkcxgCIAMoCzIhLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZUZpZWxkEhUKDXB1YmxpY19maWVsZHMYAyADKAkSDwoHdmVyc2lvbhgEIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIhCh9HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0IlYKIEdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjIKBnNjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSKgBAoTVmFyaWFudENhdGFsb2dFbnRyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESEAoIcHJpb3JpdHkYBiABKAUSEgoKaXNfZGVmYXVsdBgHIAEoCBIRCglpc19hY3RpdmUYCCABKAgSGgoNZXhwZXJpbWVudF9pZBgJIAEoCUgCiAEBEhgKC2ZhbGxiYWNrX2lkGAogASgJSAOIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgEiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIBYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0IQCg5fZXhwZXJpbWVudF9pZEIOCgxfZmFsbGJhY2tfaWRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnkiYAoZTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBIWCglpc19hY3RpdmUYASABKAhIAIgBARINCgVsaW1pdBgKIAEoBRIOCgZvZmZzZXQYCyABKAVCDAoKX2lzX2FjdGl2ZSJeChpMaXN0VmFyaWFudENhdGFsb2dSZXNwb25zZRIxCgdlbnRyaWVzGAEgAygLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeRINCgV0b3RhbBgCIAEoBSIrCh1HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJRCh5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IqsCCiBDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFQoIcHJpb3JpdHkYBSABKAVIAogBARIXCgppc19kZWZhdWx0GAYgASgISAOIAQESFgoJaXNfYWN0aXZlGAcgASgISASIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSK4AgogVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGAQgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IAogBARIVCghwcmlvcml0eRgFIAEoBUgDiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0ILCglfcHJpb3JpdHlCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZSJUCiFVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Ii4KIERlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjQKIURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjAKGUdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiQwoaR2V0Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiVwoZU2V0Q3VzdG9tZXJQcm9maWxlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItChpTZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIm4KIlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlcXVlc3QSMQoGZmllbGRzGAEgAygLMiEuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlRmllbGQSFQoNcHVibGljX2ZpZWxkcxgCIAMoCSJZCiNVcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXNwb25zZRIyCgZzY2hlbWEYASABKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVTY2hlbWEiUwoVQ3VzdG9tZXJQcm9maWxlUmVzdWx0EhMKC2N1c3RvbWVyX2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ik0KHVNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXF1ZXN0Eg0KBXF1ZXJ5GAEgASgJEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBSJkCh5TZWFyY2hDdXN0b21lclByb2ZpbGVzUmVzcG9uc2USMwoHcmVzdWx0cxgBIAMoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVJlc3VsdBINCgV0b3RhbBgCIAEoBSIzChxEZWxldGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIjAKHURlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiPQomR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1JlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiWQoTUmVzb2x1dGlvbkF0dHJpYnV0ZRILCgNrZXkYASABKAkSNQoGdmFsdWVzGAIgAygLMiUuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZVZhbHVlIoABChhSZXNvbHV0aW9uQXR0cmlidXRlVmFsdWUSDQoFdmFsdWUYASABKAkSDQoFY291bnQYAiABKAUSNQoMbGFzdF9zZWVuX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV9sYXN0X3NlZW5fYXQijAIKJ0dldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXNwb25zZRIZChF0b3RhbF9yZXNvbHV0aW9ucxgBIAEoBRI0CgphdHRyaWJ1dGVzGAIgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x1dGlvbkF0dHJpYnV0ZRI2Cg1maXJzdF9zZWVuX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjUKDGxhc3Rfc2Vlbl9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIQCg5fZmlyc3Rfc2Vlbl9hdEIPCg1fbGFzdF9zZWVuX2F0IiwKF0dldEVkaXRvckNvbmZpZ3NSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSLAAgoVRWRpdG9yQ29uZmlnUGxhY2VtZW50EhEKCWNvbmZpZ19pZBgBIAEoCRISCgpjb25maWdfa2V5GAIgASgJEhAKA3VybBgDIAEoCUgAiAEBEhsKDmFsbG93ZWRfb3JpZ2luGAQgASgJSAGIAQESEwoGaGVpZ2h0GAUgASgFSAKIAQESEgoFbGFiZWwYBiABKAlIA4gBARIUCgdhcGlfa2V5GAcgASgJSASIAQESFAoHYXBpX3VybBgIIAEoCUgFiAEBEh4KEWNvbm5lY3Rpb25fZG9tYWluGAkgASgJSAaIAQFCBgoEX3VybEIRCg9fYWxsb3dlZF9vcmlnaW5CCQoHX2hlaWdodEIICgZfbGFiZWxCCgoIX2FwaV9rZXlCCgoIX2FwaV91cmxCFAoSX2Nvbm5lY3Rpb25fZG9tYWluIlIKGEdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRI2CgpwbGFjZW1lbnRzGAEgAygLMiIuc2V0dGluZ3MudjEuRWRpdG9yQ29uZmlnUGxhY2VtZW50IuUDCgtFbWFpbEFjdGlvbhIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEh8KEnJlc2VuZF90ZW1wbGF0ZV9pZBgFIAEoCUgBiAEBEhkKDGRlZmF1bHRfZnJvbRgGIAEoCUgCiAEBEhwKD2RlZmF1bHRfc3ViamVjdBgHIAEoCUgDiAEBEjEKC2N1c3RvbV9kYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEhEKCWlzX2FjdGl2ZRgJIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgFiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkIVChNfcmVzZW5kX3RlbXBsYXRlX2lkQg8KDV9kZWZhdWx0X2Zyb21CEgoQX2RlZmF1bHRfc3ViamVjdEIOCgxfY3VzdG9tX2RhdGFCDQoLX3Byb2plY3RfaWQiOAoXTGlzdEVtYWlsQWN0aW9uc1JlcXVlc3QSDQoFbGltaXQYCiABKAUSDgoGb2Zmc2V0GAsgASgFIlQKGExpc3RFbWFpbEFjdGlvbnNSZXNwb25zZRIpCgdhY3Rpb25zGAEgAygLMhguc2V0dGluZ3MudjEuRW1haWxBY3Rpb24SDQoFdG90YWwYAiABKAUiJAoVR2V0RW1haWxBY3Rpb25SZXF1ZXN0EgsKA2tleRgBIAEoCSJCChZHZXRFbWFpbEFjdGlvblJlc3BvbnNlEigKBmFjdGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLkVtYWlsQWN0aW9uIqYCChhVcGRhdGVFbWFpbEFjdGlvblJlcXVlc3QSCwoDa2V5GAEgASgJEh8KEnJlc2VuZF90ZW1wbGF0ZV9pZBgCIAEoCUgAiAEBEhkKDGRlZmF1bHRfZnJvbRgDIAEoCUgBiAEBEhwKD2RlZmF1bHRfc3ViamVjdBgEIAEoCUgCiAEBEjEKC2N1c3RvbV9kYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhYKCWlzX2FjdGl2ZRgGIAEoCEgEiAEBQhUKE19yZXNlbmRfdGVtcGxhdGVfaWRCDwoNX2RlZmF1bHRfZnJvbUISChBfZGVmYXVsdF9zdWJqZWN0Qg4KDF9jdXN0b21fZGF0YUIMCgpfaXNfYWN0aXZlIkUKGVVwZGF0ZUVtYWlsQWN0aW9uUmVzcG9uc2USKAoGYWN0aW9uGAEgASgLMhguc2V0dGluZ3MudjEuRW1haWxBY3Rpb24iKgoOUmVzZW5kVGVtcGxhdGUSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCSIcChpMaXN0UmVzZW5kVGVtcGxhdGVzUmVxdWVzdCJNChtMaXN0UmVzZW5kVGVtcGxhdGVzUmVzcG9uc2USLgoJdGVtcGxhdGVzGAEgAygLMhsuc2V0dGluZ3MudjEuUmVzZW5kVGVtcGxhdGUiIAoSUmVzb2x2ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIjYKE1Jlc29sdmVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiIgoUVW5yZXNvbHZlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiOAoVVW5yZXNvbHZlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlImwKElNlYXJjaE5vdGVzUmVxdWVzdBINCgVxdWVyeRgBIAEoCRIYCgtlbnRpdHlfdHlwZRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFEg4KBm9mZnNldBgLIAEoBUIOCgxfZW50aXR5X3R5cGUiRgoTU2VhcmNoTm90ZXNSZXNwb25zZRIgCgVub3RlcxgBIAMoCzIRLnNldHRpbmdzLnYxLk5vdGUSDQoFdG90YWwYAiABKAUiGQoXTWFya01lbnRpb25zU2VlblJlcXVlc3QiKQoYTWFya01lbnRpb25zU2VlblJlc3BvbnNlEg0KBWNvdW50GAEgASgFIi4KH0dldENvbnRleHREaW1lbnNpb25CeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIlQKIEdldENvbnRleHREaW1lbnNpb25CeUtleVJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24iGQoXR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QiPwoYR2V0RGVmYXVsdExvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSImChZHZXRMb2NhbGVCeUNvZGVSZXF1ZXN0EgwKBGNvZGUYASABKAkiPgoXR2V0TG9jYWxlQnlDb2RlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiYKJEdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdCJYCiVHZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSIjChREZWxldGVTZXR0aW5nUmVxdWVzdBILCgNrZXkYASABKAkiKAoVRGVsZXRlU2V0dGluZ1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMwofRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVxdWVzdBIQCghjYXRlZ29yeRgBIAEoCSIxCiBEZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXNwb25zZRINCgVjb3VudBgBIAEoBSJNChZCdWxrU2V0U2V0dGluZ3NSZXF1ZXN0EjMKCHNldHRpbmdzGAEgAygLMiEuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1JlcXVlc3QiKAoXQnVsa1NldFNldHRpbmdzUmVzcG9uc2USDQoFY291bnQYASABKAUiKQonRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0IlsKKEVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IhkKF0dldFByb2plY3RTY2hlbWFSZXF1ZXN0Io0BChJQcm9qZWN0U2NoZW1hTW9kZWwSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSJwoGZmllbGRzGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBInCgZjb25maWcYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IsIBCh1Qcm9qZWN0U2NoZW1hQ29udGV4dERpbWVuc2lvbhIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIdChBzb3VyY2VfbW9kZWxfa2V5GAQgASgJSACIAQESHwoSZGVmYXVsdF9yZWNvcmRfa2V5GAUgASgJSAGIAQESDgoGdmFsdWVzGAYgAygJQhMKEV9zb3VyY2VfbW9kZWxfa2V5QhUKE19kZWZhdWx0X3JlY29yZF9rZXkiVQoZUHJvamVjdFNjaGVtYUF1dGhQcm92aWRlchILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEg8KB2VuYWJsZWQYBCABKAgi5QEKFlByb2plY3RTY2hlbWFPcGVyYXRpb24SCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSEAoIZW5kcG9pbnQYAyABKAkSEgoKdGltZW91dF9tcxgEIAEoBRIyCgxpbnB1dF9zY2hlbWEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESMwoNb3V0cHV0X3NjaGVtYRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBAUIPCg1faW5wdXRfc2NoZW1hQhAKDl9vdXRwdXRfc2NoZW1hIkQKFFByb2plY3RTY2hlbWFTZWdtZW50EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhEKCWlzX2FjdGl2ZRgDIAEoCCJvChdQcm9qZWN0U2NoZW1hRXhwZXJpbWVudBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZzdGF0dXMYAyABKAkSKQoIdmFyaWFudHMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Im0KGlByb2plY3RTY2hlbWFQcm9maWxlU2NoZW1hEicKBmZpZWxkcxgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFQoNcHVibGljX2ZpZWxkcxgCIAMoCRIPCgd2ZXJzaW9uGAMgASgFIs0DChhHZXRQcm9qZWN0U2NoZW1hUmVzcG9uc2USLwoGbW9kZWxzGAEgAygLMh8uc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYU1vZGVsEj4KCmRpbWVuc2lvbnMYAiADKAsyKi5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hQ29udGV4dERpbWVuc2lvbhI+Cg5hdXRoX3Byb3ZpZGVycxgDIAMoCzImLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFBdXRoUHJvdmlkZXISNwoKb3BlcmF0aW9ucxgEIAMoCzIjLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFPcGVyYXRpb24SMwoIc2VnbWVudHMYBSADKAsyIS5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hU2VnbWVudBI5CgtleHBlcmltZW50cxgGIAMoCzIkLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFFeHBlcmltZW50EkQKDnByb2ZpbGVfc2NoZW1hGAcgASgLMicuc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYVByb2ZpbGVTY2hlbWFIAIgBAUIRCg9fcHJvZmlsZV9zY2hlbWEqdgoRU2hhcmVSZXNvdXJjZVR5cGUSIwofU0hBUkVfUkVTT1VSQ0VfVFlQRV9VTlNQRUNJRklFRBAAEh4KGlNIQVJFX1JFU09VUkNFX1RZUEVfUkVDT1JEEAESHAoYU0hBUkVfUkVTT1VSQ0VfVFlQRV9GSUxFEAIqhQEKD1NoYXJlUGVybWlzc2lvbhIgChxTSEFSRV9QRVJNSVNTSU9OX1VOU1BFQ0lGSUVEEAASGQoVU0hBUkVfUEVSTUlTU0lPTl9WSUVXEAESGQoVU0hBUkVfUEVSTUlTU0lPTl9FRElUEAISGgoWU0hBUkVfUEVSTUlTU0lPTl9BRE1JThADKnsKC1NoYXJlU3RhdHVzEhwKGFNIQVJFX1NUQVRVU19VTlNQRUNJRklFRBAAEhgKFFNIQVJFX1NUQVRVU19QRU5ESU5HEAESGQoVU0hBUkVfU1RBVFVTX0FDQ0VQVEVEEAISGQoVU0hBUkVfU1RBVFVTX0RFQ0xJTkVEEAMyhjIKD1NldHRpbmdzU2VydmljZRJQCgtHZXRTZXR0aW5ncxIfLnNldHRpbmdzLnYxLkdldFNldHRpbmdzUmVxdWVzdBogLnNldHRpbmdzLnYxLkdldFNldHRpbmdzUmVzcG9uc2USVgoNVXBkYXRlU2V0dGluZxIhLnNldHRpbmdzLnYxLlVwZGF0ZVNldHRpbmdSZXF1ZXN0GiIuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1Jlc3BvbnNlElYKDURlbGV0ZVNldHRpbmcSIS5zZXR0aW5ncy52MS5EZWxldGVTZXR0aW5nUmVxdWVzdBoiLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdSZXNwb25zZRJ3ChhEZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnkSLC5zZXR0aW5ncy52MS5EZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXF1ZXN0Gi0uc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ3NCeUNhdGVnb3J5UmVzcG9uc2USXAoPQnVsa1NldFNldHRpbmdzEiMuc2V0dGluZ3MudjEuQnVsa1NldFNldHRpbmdzUmVxdWVzdBokLnNldHRpbmdzLnYxLkJ1bGtTZXRTZXR0aW5nc1Jlc3BvbnNlElYKDUxpc3RBdWRpdExvZ3MSIS5zZXR0aW5ncy52MS5MaXN0QXVkaXRMb2dzUmVxdWVzdBoiLnNldHRpbmdzLnYxLkxpc3RBdWRpdExvZ3NSZXNwb25zZRJNCgpDcmVhdGVOb3RlEh4uc2V0dGluZ3MudjEuQ3JlYXRlTm90ZVJlcXVlc3QaHy5zZXR0aW5ncy52MS5DcmVhdGVOb3RlUmVzcG9uc2USRAoHR2V0Tm90ZRIbLnNldHRpbmdzLnYxLkdldE5vdGVSZXF1ZXN0Ghwuc2V0dGluZ3MudjEuR2V0Tm90ZVJlc3BvbnNlEkoKCUxpc3ROb3RlcxIdLnNldHRpbmdzLnYxLkxpc3ROb3Rlc1JlcXVlc3QaHi5zZXR0aW5ncy52MS5MaXN0Tm90ZXNSZXNwb25zZRJNCgpVcGRhdGVOb3RlEh4uc2V0dGluZ3MudjEuVXBkYXRlTm90ZVJlcXVlc3QaHy5zZXR0aW5ncy52MS5VcGRhdGVOb3RlUmVzcG9uc2USTQoKRGVsZXRlTm90ZRIeLnNldHRpbmdzLnYxLkRlbGV0ZU5vdGVSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuRGVsZXRlTm90ZVJlc3BvbnNlElAKC1Jlc29sdmVOb3RlEh8uc2V0dGluZ3MudjEuUmVzb2x2ZU5vdGVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuUmVzb2x2ZU5vdGVSZXNwb25zZRJWCg1VbnJlc29sdmVOb3RlEiEuc2V0dGluZ3MudjEuVW5yZXNvbHZlTm90ZVJlcXVlc3QaIi5zZXR0aW5ncy52MS5VbnJlc29sdmVOb3RlUmVzcG9uc2USUAoLU2VhcmNoTm90ZXMSHy5zZXR0aW5ncy52MS5TZWFyY2hOb3Rlc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5TZWFyY2hOb3Rlc1Jlc3BvbnNlElkKDkxpc3RNeU1lbnRpb25zEiIuc2V0dGluZ3MudjEuTGlzdE15TWVudGlvbnNSZXF1ZXN0GiMuc2V0dGluZ3MudjEuTGlzdE15TWVudGlvbnNSZXNwb25zZRJoChNVcGRhdGVNZW50aW9uU3RhdHVzEicuc2V0dGluZ3MudjEuVXBkYXRlTWVudGlvblN0YXR1c1JlcXVlc3QaKC5zZXR0aW5ncy52MS5VcGRhdGVNZW50aW9uU3RhdHVzUmVzcG9uc2USXwoQTWFya01lbnRpb25zU2VlbhIkLnNldHRpbmdzLnYxLk1hcmtNZW50aW9uc1NlZW5SZXF1ZXN0GiUuc2V0dGluZ3MudjEuTWFya01lbnRpb25zU2VlblJlc3BvbnNlElAKC0xpc3RMb2NhbGVzEh8uc2V0dGluZ3MudjEuTGlzdExvY2FsZXNSZXF1ZXN0GiAuc2V0dGluZ3MudjEuTGlzdExvY2FsZXNSZXNwb25zZRJKCglHZXRMb2NhbGUSHS5zZXR0aW5ncy52MS5HZXRMb2NhbGVSZXF1ZXN0Gh4uc2V0dGluZ3MudjEuR2V0TG9jYWxlUmVzcG9uc2USXwoQR2V0RGVmYXVsdExvY2FsZRIkLnNldHRpbmdzLnYxLkdldERlZmF1bHRMb2NhbGVSZXF1ZXN0GiUuc2V0dGluZ3MudjEuR2V0RGVmYXVsdExvY2FsZVJlc3BvbnNlElwKD0dldExvY2FsZUJ5Q29kZRIjLnNldHRpbmdzLnYxLkdldExvY2FsZUJ5Q29kZVJlcXVlc3QaJC5zZXR0aW5ncy52MS5HZXRMb2NhbGVCeUNvZGVSZXNwb25zZRJTCgxDcmVhdGVMb2NhbGUSIC5zZXR0aW5ncy52MS5DcmVhdGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuQ3JlYXRlTG9jYWxlUmVzcG9uc2USUwoMVXBkYXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuVXBkYXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLlVwZGF0ZUxvY2FsZVJlc3BvbnNlElMKDERlbGV0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLkRlbGV0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5EZWxldGVMb2NhbGVSZXNwb25zZRJiChFHZXROYXZQcmVmZXJlbmNlcxIlLnNldHRpbmdzLnYxLkdldE5hdlByZWZlcmVuY2VzUmVxdWVzdBomLnNldHRpbmdzLnYxLkdldE5hdlByZWZlcmVuY2VzUmVzcG9uc2USawoUVXBkYXRlTmF2UHJlZmVyZW5jZXMSKC5zZXR0aW5ncy52MS5VcGRhdGVOYXZQcmVmZXJlbmNlc1JlcXVlc3QaKS5zZXR0aW5ncy52MS5VcGRhdGVOYXZQcmVmZXJlbmNlc1Jlc3BvbnNlEmUKEkxpc3RSZWNlbnRseU9wZW5lZBImLnNldHRpbmdzLnYxLkxpc3RSZWNlbnRseU9wZW5lZFJlcXVlc3QaJy5zZXR0aW5ncy52MS5MaXN0UmVjZW50bHlPcGVuZWRSZXNwb25zZRJoChNUcmFja1JlY2VudGx5T3BlbmVkEicuc2V0dGluZ3MudjEuVHJhY2tSZWNlbnRseU9wZW5lZFJlcXVlc3QaKC5zZXR0aW5ncy52MS5UcmFja1JlY2VudGx5T3BlbmVkUmVzcG9uc2USawoUUmVtb3ZlUmVjZW50bHlPcGVuZWQSKC5zZXR0aW5ncy52MS5SZW1vdmVSZWNlbnRseU9wZW5lZFJlcXVlc3QaKS5zZXR0aW5ncy52MS5SZW1vdmVSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmgKE0NsZWFyUmVjZW50bHlPcGVuZWQSJy5zZXR0aW5ncy52MS5DbGVhclJlY2VudGx5T3BlbmVkUmVxdWVzdBooLnNldHRpbmdzLnYxLkNsZWFyUmVjZW50bHlPcGVuZWRSZXNwb25zZRJQCgtDcmVhdGVTaGFyZRIfLnNldHRpbmdzLnYxLkNyZWF0ZVNoYXJlUmVxdWVzdBogLnNldHRpbmdzLnYxLkNyZWF0ZVNoYXJlUmVzcG9uc2USRwoIR2V0U2hhcmUSHC5zZXR0aW5ncy52MS5HZXRTaGFyZVJlcXVlc3QaHS5zZXR0aW5ncy52MS5HZXRTaGFyZVJlc3BvbnNlEk0KCkxpc3RTaGFyZXMSHi5zZXR0aW5ncy52MS5MaXN0U2hhcmVzUmVxdWVzdBofLnNldHRpbmdzLnYxLkxpc3RTaGFyZXNSZXNwb25zZRJQCgtVcGRhdGVTaGFyZRIfLnNldHRpbmdzLnYxLlVwZGF0ZVNoYXJlUmVxdWVzdBogLnNldHRpbmdzLnYxLlVwZGF0ZVNoYXJlUmVzcG9uc2USUAoLUmV2b2tlU2hhcmUSHy5zZXR0aW5ncy52MS5SZXZva2VTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5SZXZva2VTaGFyZVJlc3BvbnNlElAKC0FjY2VwdFNoYXJlEh8uc2V0dGluZ3MudjEuQWNjZXB0U2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuQWNjZXB0U2hhcmVSZXNwb25zZRJTCgxEZWNsaW5lU2hhcmUSIC5zZXR0aW5ncy52MS5EZWNsaW5lU2hhcmVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuRGVjbGluZVNoYXJlUmVzcG9uc2USbgoVTGlzdENvbnRleHREaW1lbnNpb25zEikuc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25zUmVxdWVzdBoqLnNldHRpbmdzLnYxLkxpc3RDb250ZXh0RGltZW5zaW9uc1Jlc3BvbnNlEmgKE0dldENvbnRleHREaW1lbnNpb24SJy5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uUmVxdWVzdBooLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25SZXNwb25zZRJ3ChhHZXRDb250ZXh0RGltZW5zaW9uQnlLZXkSLC5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uQnlLZXlSZXF1ZXN0Gi0uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5UmVzcG9uc2UScQoWQ3JlYXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLkNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnEKFlVwZGF0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJxChZEZWxldGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuRGVsZXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USegoZR2V0Q29udGV4dERpbWVuc2lvblZhbHVlcxItLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1Jlc3BvbnNlEncKGEdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYRIsLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlcXVlc3QaLS5zZXR0aW5ncy52MS5HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXNwb25zZRJlChJHZXRDdXN0b21lclByb2ZpbGUSJi5zZXR0aW5ncy52MS5HZXRDdXN0b21lclByb2ZpbGVSZXF1ZXN0Gicuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USZQoSU2V0Q3VzdG9tZXJQcm9maWxlEiYuc2V0dGluZ3MudjEuU2V0Q3VzdG9tZXJQcm9maWxlUmVxdWVzdBonLnNldHRpbmdzLnYxLlNldEN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEoABChtVcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWESLy5zZXR0aW5ncy52MS5VcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0GjAuc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2UScQoWU2VhcmNoQ3VzdG9tZXJQcm9maWxlcxIqLnNldHRpbmdzLnYxLlNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXF1ZXN0Gisuc2V0dGluZ3MudjEuU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1Jlc3BvbnNlEm4KFURlbGV0ZUN1c3RvbWVyUHJvZmlsZRIpLnNldHRpbmdzLnYxLkRlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaKi5zZXR0aW5ncy52MS5EZWxldGVDdXN0b21lclByb2ZpbGVSZXNwb25zZRKMAQofR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlcxIzLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXF1ZXN0GjQuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1Jlc3BvbnNlEl8KEEdldEVkaXRvckNvbmZpZ3MSJC5zZXR0aW5ncy52MS5HZXRFZGl0b3JDb25maWdzUmVxdWVzdBolLnNldHRpbmdzLnYxLkdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRJlChJMaXN0VmFyaWFudENhdGFsb2cSJi5zZXR0aW5ncy52MS5MaXN0VmFyaWFudENhdGFsb2dSZXF1ZXN0Gicuc2V0dGluZ3MudjEuTGlzdFZhcmlhbnRDYXRhbG9nUmVzcG9uc2UScQoWR2V0VmFyaWFudENhdGFsb2dFbnRyeRIqLnNldHRpbmdzLnYxLkdldFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gisuc2V0dGluZ3MudjEuR2V0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGUNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5DcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLkNyZWF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5VcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZRGVsZXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLkRlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuRGVsZXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEoYBCh1HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeRIxLnNldHRpbmdzLnYxLkdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBoyLnNldHRpbmdzLnYxLkdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USjwEKIEVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5EjQuc2V0dGluZ3MudjEuRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0GjUuc2V0dGluZ3MudjEuRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJfChBMaXN0RW1haWxBY3Rpb25zEiQuc2V0dGluZ3MudjEuTGlzdEVtYWlsQWN0aW9uc1JlcXVlc3QaJS5zZXR0aW5ncy52MS5MaXN0RW1haWxBY3Rpb25zUmVzcG9uc2USWQoOR2V0RW1haWxBY3Rpb24SIi5zZXR0aW5ncy52MS5HZXRFbWFpbEFjdGlvblJlcXVlc3QaIy5zZXR0aW5ncy52MS5HZXRFbWFpbEFjdGlvblJlc3BvbnNlEmIKEVVwZGF0ZUVtYWlsQWN0aW9uEiUuc2V0dGluZ3MudjEuVXBkYXRlRW1haWxBY3Rpb25SZXF1ZXN0GiYuc2V0dGluZ3MudjEuVXBkYXRlRW1haWxBY3Rpb25SZXNwb25zZRJoChNMaXN0UmVzZW5kVGVtcGxhdGVzEicuc2V0dGluZ3MudjEuTGlzdFJlc2VuZFRlbXBsYXRlc1JlcXVlc3QaKC5zZXR0aW5ncy52MS5MaXN0UmVzZW5kVGVtcGxhdGVzUmVzcG9uc2USXwoQR2V0UHJvamVjdFNjaGVtYRIkLnNldHRpbmdzLnYxLkdldFByb2plY3RTY2hlbWFSZXF1ZXN0GiUuc2V0dGluZ3MudjEuR2V0UHJvamVjdFNjaGVtYVJlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9zZXR0aW5ncy92MTtzZXR0aW5nc3YxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
14
14
 
15
15
  /**
16
16
  * Describes the message settings.v1.Setting.
@@ -1041,6 +1041,69 @@ export const EnsureDefaultVariantCatalogEntryRequestSchema = /*@__PURE__*/
1041
1041
  export const EnsureDefaultVariantCatalogEntryResponseSchema = /*@__PURE__*/
1042
1042
  messageDesc(file_settings_v1_settings, 146);
1043
1043
 
1044
+ /**
1045
+ * Describes the message settings.v1.GetProjectSchemaRequest.
1046
+ * Use `create(GetProjectSchemaRequestSchema)` to create a new message.
1047
+ */
1048
+ export const GetProjectSchemaRequestSchema = /*@__PURE__*/
1049
+ messageDesc(file_settings_v1_settings, 147);
1050
+
1051
+ /**
1052
+ * Describes the message settings.v1.ProjectSchemaModel.
1053
+ * Use `create(ProjectSchemaModelSchema)` to create a new message.
1054
+ */
1055
+ export const ProjectSchemaModelSchema = /*@__PURE__*/
1056
+ messageDesc(file_settings_v1_settings, 148);
1057
+
1058
+ /**
1059
+ * Describes the message settings.v1.ProjectSchemaContextDimension.
1060
+ * Use `create(ProjectSchemaContextDimensionSchema)` to create a new message.
1061
+ */
1062
+ export const ProjectSchemaContextDimensionSchema = /*@__PURE__*/
1063
+ messageDesc(file_settings_v1_settings, 149);
1064
+
1065
+ /**
1066
+ * Describes the message settings.v1.ProjectSchemaAuthProvider.
1067
+ * Use `create(ProjectSchemaAuthProviderSchema)` to create a new message.
1068
+ */
1069
+ export const ProjectSchemaAuthProviderSchema = /*@__PURE__*/
1070
+ messageDesc(file_settings_v1_settings, 150);
1071
+
1072
+ /**
1073
+ * Describes the message settings.v1.ProjectSchemaOperation.
1074
+ * Use `create(ProjectSchemaOperationSchema)` to create a new message.
1075
+ */
1076
+ export const ProjectSchemaOperationSchema = /*@__PURE__*/
1077
+ messageDesc(file_settings_v1_settings, 151);
1078
+
1079
+ /**
1080
+ * Describes the message settings.v1.ProjectSchemaSegment.
1081
+ * Use `create(ProjectSchemaSegmentSchema)` to create a new message.
1082
+ */
1083
+ export const ProjectSchemaSegmentSchema = /*@__PURE__*/
1084
+ messageDesc(file_settings_v1_settings, 152);
1085
+
1086
+ /**
1087
+ * Describes the message settings.v1.ProjectSchemaExperiment.
1088
+ * Use `create(ProjectSchemaExperimentSchema)` to create a new message.
1089
+ */
1090
+ export const ProjectSchemaExperimentSchema = /*@__PURE__*/
1091
+ messageDesc(file_settings_v1_settings, 153);
1092
+
1093
+ /**
1094
+ * Describes the message settings.v1.ProjectSchemaProfileSchema.
1095
+ * Use `create(ProjectSchemaProfileSchemaSchema)` to create a new message.
1096
+ */
1097
+ export const ProjectSchemaProfileSchemaSchema = /*@__PURE__*/
1098
+ messageDesc(file_settings_v1_settings, 154);
1099
+
1100
+ /**
1101
+ * Describes the message settings.v1.GetProjectSchemaResponse.
1102
+ * Use `create(GetProjectSchemaResponseSchema)` to create a new message.
1103
+ */
1104
+ export const GetProjectSchemaResponseSchema = /*@__PURE__*/
1105
+ messageDesc(file_settings_v1_settings, 155);
1106
+
1044
1107
  /**
1045
1108
  * Describes the enum settings.v1.ShareResourceType.
1046
1109
  */