@eide/foir-proto-ts 0.101.0 → 0.102.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-proto-ts",
3
- "version": "0.101.0",
3
+ "version": "0.102.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./common/v1/pagination_pb": "./src/common/v1/pagination_pb.js",
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { CreateAppRequest, CreateAppResponse, CreateDomainRequest, CreateDomainResponse, CreateEnvironmentRequest, CreateEnvironmentResponse, CreateProviderAccountRequest, CreateProviderAccountResponse, CreateSecretBindingRequest, CreateSecretBindingResponse, DeleteAppRequest, DeleteAppResponse, DeleteDomainRequest, DeleteDomainResponse, DeleteEnvironmentRequest, DeleteEnvironmentResponse, DeleteProviderAccountRequest, DeleteProviderAccountResponse, DeleteSecretBindingRequest, DeleteSecretBindingResponse, GetAppRequest, GetAppResponse, GetDeploymentRequest, GetDeploymentResponse, GetDomainRequest, GetDomainResponse, GetEnvironmentRequest, GetEnvironmentResponse, GetProviderAccountRequest, GetProviderAccountResponse, GetReconcileStatusRequest, GetReconcileStatusResponse, GetSecretBindingRequest, GetSecretBindingResponse, ListAppsRequest, ListAppsResponse, ListDeploymentsRequest, ListDeploymentsResponse, ListDomainsRequest, ListDomainsResponse, ListEnvironmentsRequest, ListEnvironmentsResponse, ListProviderAccountsRequest, ListProviderAccountsResponse, ListSecretBindingsRequest, ListSecretBindingsResponse, TriggerDeployRequest, TriggerDeployResponse, TriggerReconcileRequest, TriggerReconcileResponse, UpdateAppRequest, UpdateAppResponse, UpdateEnvironmentRequest, UpdateEnvironmentResponse, UpdateProviderAccountRequest, UpdateProviderAccountResponse, UpdateSecretBindingRequest, UpdateSecretBindingResponse } from "./deploy_pbjs";
6
+ import { CreateAppRequest, CreateAppResponse, CreateDomainRequest, CreateDomainResponse, CreateEnvironmentRequest, CreateEnvironmentResponse, CreateProviderAccountRequest, CreateProviderAccountResponse, CreateSecretBindingRequest, CreateSecretBindingResponse, DeleteAppRequest, DeleteAppResponse, DeleteDomainRequest, DeleteDomainResponse, DeleteEnvironmentRequest, DeleteEnvironmentResponse, DeleteProviderAccountRequest, DeleteProviderAccountResponse, DeleteSecretBindingRequest, DeleteSecretBindingResponse, GetAppRequest, GetAppResponse, GetDeploymentRequest, GetDeploymentResponse, GetDomainRequest, GetDomainResponse, GetEnvironmentRequest, GetEnvironmentResponse, GetProviderAccountRequest, GetProviderAccountResponse, GetReconcileStatusRequest, GetReconcileStatusResponse, GetSecretBindingRequest, GetSecretBindingResponse, ListAppsRequest, ListAppsResponse, ListBranchesRequest, ListBranchesResponse, ListDeploymentsRequest, ListDeploymentsResponse, ListDomainsRequest, ListDomainsResponse, ListEnvironmentsRequest, ListEnvironmentsResponse, ListProviderAccountsRequest, ListProviderAccountsResponse, ListReposRequest, ListReposResponse, ListSecretBindingsRequest, ListSecretBindingsResponse, TriggerDeployRequest, TriggerDeployResponse, TriggerReconcileRequest, TriggerReconcileResponse, UpdateAppRequest, UpdateAppResponse, UpdateEnvironmentRequest, UpdateEnvironmentResponse, UpdateProviderAccountRequest, UpdateProviderAccountResponse, UpdateSecretBindingRequest, UpdateSecretBindingResponse } from "./deploy_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -258,6 +258,26 @@ export declare const DeployService: {
258
258
  readonly O: typeof GetDeploymentResponse,
259
259
  readonly kind: MethodKind.Unary,
260
260
  },
261
+ /**
262
+ * ── Repo discovery ──
263
+ *
264
+ * @generated from rpc deploy.v1.DeployService.ListRepos
265
+ */
266
+ readonly listRepos: {
267
+ readonly name: "ListRepos",
268
+ readonly I: typeof ListReposRequest,
269
+ readonly O: typeof ListReposResponse,
270
+ readonly kind: MethodKind.Unary,
271
+ },
272
+ /**
273
+ * @generated from rpc deploy.v1.DeployService.ListBranches
274
+ */
275
+ readonly listBranches: {
276
+ readonly name: "ListBranches",
277
+ readonly I: typeof ListBranchesRequest,
278
+ readonly O: typeof ListBranchesResponse,
279
+ readonly kind: MethodKind.Unary,
280
+ },
261
281
  /**
262
282
  * ── Reconcile / deploy ──
263
283
  *
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { CreateAppRequest, CreateAppResponse, CreateDomainRequest, CreateDomainResponse, CreateEnvironmentRequest, CreateEnvironmentResponse, CreateProviderAccountRequest, CreateProviderAccountResponse, CreateSecretBindingRequest, CreateSecretBindingResponse, DeleteAppRequest, DeleteAppResponse, DeleteDomainRequest, DeleteDomainResponse, DeleteEnvironmentRequest, DeleteEnvironmentResponse, DeleteProviderAccountRequest, DeleteProviderAccountResponse, DeleteSecretBindingRequest, DeleteSecretBindingResponse, GetAppRequest, GetAppResponse, GetDeploymentRequest, GetDeploymentResponse, GetDomainRequest, GetDomainResponse, GetEnvironmentRequest, GetEnvironmentResponse, GetProviderAccountRequest, GetProviderAccountResponse, GetReconcileStatusRequest, GetReconcileStatusResponse, GetSecretBindingRequest, GetSecretBindingResponse, ListAppsRequest, ListAppsResponse, ListDeploymentsRequest, ListDeploymentsResponse, ListDomainsRequest, ListDomainsResponse, ListEnvironmentsRequest, ListEnvironmentsResponse, ListProviderAccountsRequest, ListProviderAccountsResponse, ListSecretBindingsRequest, ListSecretBindingsResponse, TriggerDeployRequest, TriggerDeployResponse, TriggerReconcileRequest, TriggerReconcileResponse, UpdateAppRequest, UpdateAppResponse, UpdateEnvironmentRequest, UpdateEnvironmentResponse, UpdateProviderAccountRequest, UpdateProviderAccountResponse, UpdateSecretBindingRequest, UpdateSecretBindingResponse } from "./deploy_pbjs";
6
+ import { CreateAppRequest, CreateAppResponse, CreateDomainRequest, CreateDomainResponse, CreateEnvironmentRequest, CreateEnvironmentResponse, CreateProviderAccountRequest, CreateProviderAccountResponse, CreateSecretBindingRequest, CreateSecretBindingResponse, DeleteAppRequest, DeleteAppResponse, DeleteDomainRequest, DeleteDomainResponse, DeleteEnvironmentRequest, DeleteEnvironmentResponse, DeleteProviderAccountRequest, DeleteProviderAccountResponse, DeleteSecretBindingRequest, DeleteSecretBindingResponse, GetAppRequest, GetAppResponse, GetDeploymentRequest, GetDeploymentResponse, GetDomainRequest, GetDomainResponse, GetEnvironmentRequest, GetEnvironmentResponse, GetProviderAccountRequest, GetProviderAccountResponse, GetReconcileStatusRequest, GetReconcileStatusResponse, GetSecretBindingRequest, GetSecretBindingResponse, ListAppsRequest, ListAppsResponse, ListBranchesRequest, ListBranchesResponse, ListDeploymentsRequest, ListDeploymentsResponse, ListDomainsRequest, ListDomainsResponse, ListEnvironmentsRequest, ListEnvironmentsResponse, ListProviderAccountsRequest, ListProviderAccountsResponse, ListReposRequest, ListReposResponse, ListSecretBindingsRequest, ListSecretBindingsResponse, TriggerDeployRequest, TriggerDeployResponse, TriggerReconcileRequest, TriggerReconcileResponse, UpdateAppRequest, UpdateAppResponse, UpdateEnvironmentRequest, UpdateEnvironmentResponse, UpdateProviderAccountRequest, UpdateProviderAccountResponse, UpdateSecretBindingRequest, UpdateSecretBindingResponse } from "./deploy_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -258,6 +258,26 @@ export const DeployService = {
258
258
  O: GetDeploymentResponse,
259
259
  kind: MethodKind.Unary,
260
260
  },
261
+ /**
262
+ * ── Repo discovery ──
263
+ *
264
+ * @generated from rpc deploy.v1.DeployService.ListRepos
265
+ */
266
+ listRepos: {
267
+ name: "ListRepos",
268
+ I: ListReposRequest,
269
+ O: ListReposResponse,
270
+ kind: MethodKind.Unary,
271
+ },
272
+ /**
273
+ * @generated from rpc deploy.v1.DeployService.ListBranches
274
+ */
275
+ listBranches: {
276
+ name: "ListBranches",
277
+ I: ListBranchesRequest,
278
+ O: ListBranchesResponse,
279
+ kind: MethodKind.Unary,
280
+ },
261
281
  /**
262
282
  * ── Reconcile / deploy ──
263
283
  *
@@ -84,32 +84,18 @@ export declare type ProviderAccount = Message<"deploy.v1.ProviderAccount"> & {
84
84
  provider: string;
85
85
 
86
86
  /**
87
- * @generated from field: string cf_account_id = 5;
88
- */
89
- cfAccountId: string;
90
-
91
- /**
87
+ * The per-client GitHub App installation. CF account creds are platform
88
+ * config (single Foir-owned account), not stored per provider account.
89
+ *
92
90
  * @generated from field: optional string github_app_installation_id = 6;
93
91
  */
94
92
  githubAppInstallationId?: string | undefined;
95
93
 
96
- /**
97
- * @generated from field: optional string default_zone_id = 7;
98
- */
99
- defaultZoneId?: string | undefined;
100
-
101
94
  /**
102
95
  * @generated from field: optional string dispatch_namespace = 8;
103
96
  */
104
97
  dispatchNamespace?: string | undefined;
105
98
 
106
- /**
107
- * vault ref to a USER-OWNED Cloudflare API token (never the token itself)
108
- *
109
- * @generated from field: string api_token_ref = 9;
110
- */
111
- apiTokenRef: string;
112
-
113
99
  /**
114
100
  * @generated from field: google.protobuf.Timestamp created_at = 50;
115
101
  */
@@ -699,30 +685,15 @@ export declare type CreateProviderAccountRequest = Message<"deploy.v1.CreateProv
699
685
  */
700
686
  provider?: string | undefined;
701
687
 
702
- /**
703
- * @generated from field: string cf_account_id = 2;
704
- */
705
- cfAccountId: string;
706
-
707
688
  /**
708
689
  * @generated from field: optional string github_app_installation_id = 3;
709
690
  */
710
691
  githubAppInstallationId?: string | undefined;
711
692
 
712
- /**
713
- * @generated from field: optional string default_zone_id = 4;
714
- */
715
- defaultZoneId?: string | undefined;
716
-
717
693
  /**
718
694
  * @generated from field: optional string dispatch_namespace = 5;
719
695
  */
720
696
  dispatchNamespace?: string | undefined;
721
-
722
- /**
723
- * @generated from field: string api_token_ref = 6;
724
- */
725
- apiTokenRef: string;
726
697
  };
727
698
 
728
699
  /**
@@ -756,30 +727,15 @@ export declare type UpdateProviderAccountRequest = Message<"deploy.v1.UpdateProv
756
727
  */
757
728
  id: string;
758
729
 
759
- /**
760
- * @generated from field: string cf_account_id = 2;
761
- */
762
- cfAccountId: string;
763
-
764
730
  /**
765
731
  * @generated from field: optional string github_app_installation_id = 3;
766
732
  */
767
733
  githubAppInstallationId?: string | undefined;
768
734
 
769
- /**
770
- * @generated from field: optional string default_zone_id = 4;
771
- */
772
- defaultZoneId?: string | undefined;
773
-
774
735
  /**
775
736
  * @generated from field: optional string dispatch_namespace = 5;
776
737
  */
777
738
  dispatchNamespace?: string | undefined;
778
-
779
- /**
780
- * @generated from field: string api_token_ref = 6;
781
- */
782
- apiTokenRef: string;
783
739
  };
784
740
 
785
741
  /**
@@ -1945,6 +1901,147 @@ export declare type GetDeploymentResponse = Message<"deploy.v1.GetDeploymentResp
1945
1901
  */
1946
1902
  export declare const GetDeploymentResponseSchema: GenMessage<GetDeploymentResponse>;
1947
1903
 
1904
+ /**
1905
+ * A GitHub repository the connected App installation can access. The ids come
1906
+ * from GitHub's API (Cloudflare exposes no repo listing); github_repo_id +
1907
+ * github_account_id are what EnsureRepoConnection needs.
1908
+ *
1909
+ * @generated from message deploy.v1.Repo
1910
+ */
1911
+ export declare type Repo = Message<"deploy.v1.Repo"> & {
1912
+ /**
1913
+ * @generated from field: string github_repo_id = 1;
1914
+ */
1915
+ githubRepoId: string;
1916
+
1917
+ /**
1918
+ * @generated from field: string owner = 2;
1919
+ */
1920
+ owner: string;
1921
+
1922
+ /**
1923
+ * @generated from field: string name = 3;
1924
+ */
1925
+ name: string;
1926
+
1927
+ /**
1928
+ * @generated from field: string default_branch = 4;
1929
+ */
1930
+ defaultBranch: string;
1931
+
1932
+ /**
1933
+ * @generated from field: string github_account_id = 5;
1934
+ */
1935
+ githubAccountId: string;
1936
+
1937
+ /**
1938
+ * @generated from field: string github_account_name = 6;
1939
+ */
1940
+ githubAccountName: string;
1941
+ };
1942
+
1943
+ /**
1944
+ * Describes the message deploy.v1.Repo.
1945
+ * Use `create(RepoSchema)` to create a new message.
1946
+ */
1947
+ export declare const RepoSchema: GenMessage<Repo>;
1948
+
1949
+ /**
1950
+ * @generated from message deploy.v1.ListReposRequest
1951
+ */
1952
+ export declare type ListReposRequest = Message<"deploy.v1.ListReposRequest"> & {
1953
+ /**
1954
+ * @generated from field: string provider_account_id = 1;
1955
+ */
1956
+ providerAccountId: string;
1957
+
1958
+ /**
1959
+ * opaque page cursor
1960
+ *
1961
+ * @generated from field: optional string after = 2;
1962
+ */
1963
+ after?: string | undefined;
1964
+ };
1965
+
1966
+ /**
1967
+ * Describes the message deploy.v1.ListReposRequest.
1968
+ * Use `create(ListReposRequestSchema)` to create a new message.
1969
+ */
1970
+ export declare const ListReposRequestSchema: GenMessage<ListReposRequest>;
1971
+
1972
+ /**
1973
+ * @generated from message deploy.v1.ListReposResponse
1974
+ */
1975
+ export declare type ListReposResponse = Message<"deploy.v1.ListReposResponse"> & {
1976
+ /**
1977
+ * @generated from field: repeated deploy.v1.Repo items = 1;
1978
+ */
1979
+ items: Repo[];
1980
+
1981
+ /**
1982
+ * next page cursor; absent when exhausted
1983
+ *
1984
+ * @generated from field: optional string next = 2;
1985
+ */
1986
+ next?: string | undefined;
1987
+ };
1988
+
1989
+ /**
1990
+ * Describes the message deploy.v1.ListReposResponse.
1991
+ * Use `create(ListReposResponseSchema)` to create a new message.
1992
+ */
1993
+ export declare const ListReposResponseSchema: GenMessage<ListReposResponse>;
1994
+
1995
+ /**
1996
+ * Branches a repo exposes, for the New App branch pickers. Sourced from the
1997
+ * GitHub App installation (same path as ListRepos).
1998
+ *
1999
+ * @generated from message deploy.v1.ListBranchesRequest
2000
+ */
2001
+ export declare type ListBranchesRequest = Message<"deploy.v1.ListBranchesRequest"> & {
2002
+ /**
2003
+ * @generated from field: string provider_account_id = 1;
2004
+ */
2005
+ providerAccountId: string;
2006
+
2007
+ /**
2008
+ * @generated from field: string owner = 2;
2009
+ */
2010
+ owner: string;
2011
+
2012
+ /**
2013
+ * @generated from field: string repo = 3;
2014
+ */
2015
+ repo: string;
2016
+ };
2017
+
2018
+ /**
2019
+ * Describes the message deploy.v1.ListBranchesRequest.
2020
+ * Use `create(ListBranchesRequestSchema)` to create a new message.
2021
+ */
2022
+ export declare const ListBranchesRequestSchema: GenMessage<ListBranchesRequest>;
2023
+
2024
+ /**
2025
+ * @generated from message deploy.v1.ListBranchesResponse
2026
+ */
2027
+ export declare type ListBranchesResponse = Message<"deploy.v1.ListBranchesResponse"> & {
2028
+ /**
2029
+ * @generated from field: repeated string branches = 1;
2030
+ */
2031
+ branches: string[];
2032
+
2033
+ /**
2034
+ * @generated from field: string default_branch = 2;
2035
+ */
2036
+ defaultBranch: string;
2037
+ };
2038
+
2039
+ /**
2040
+ * Describes the message deploy.v1.ListBranchesResponse.
2041
+ * Use `create(ListBranchesResponseSchema)` to create a new message.
2042
+ */
2043
+ export declare const ListBranchesResponseSchema: GenMessage<ListBranchesResponse>;
2044
+
1948
2045
  /**
1949
2046
  * @generated from message deploy.v1.TriggerReconcileRequest
1950
2047
  */
@@ -2277,6 +2374,24 @@ export declare const DeployService: GenService<{
2277
2374
  input: typeof GetDeploymentRequestSchema;
2278
2375
  output: typeof GetDeploymentResponseSchema;
2279
2376
  },
2377
+ /**
2378
+ * ── Repo discovery ──
2379
+ *
2380
+ * @generated from rpc deploy.v1.DeployService.ListRepos
2381
+ */
2382
+ listRepos: {
2383
+ methodKind: "unary";
2384
+ input: typeof ListReposRequestSchema;
2385
+ output: typeof ListReposResponseSchema;
2386
+ },
2387
+ /**
2388
+ * @generated from rpc deploy.v1.DeployService.ListBranches
2389
+ */
2390
+ listBranches: {
2391
+ methodKind: "unary";
2392
+ input: typeof ListBranchesRequestSchema;
2393
+ output: typeof ListBranchesResponseSchema;
2394
+ },
2280
2395
  /**
2281
2396
  * ── Reconcile / deploy ──
2282
2397
  *
@@ -10,7 +10,7 @@ import { file_common_v1_pagination } from "../../common/v1/pagination_pb.js";
10
10
  * Describes the file deploy/v1/deploy.proto.
11
11
  */
12
12
  export const file_deploy_v1_deploy = /*@__PURE__*/
13
- fileDesc("ChZkZXBsb3kvdjEvZGVwbG95LnByb3RvEglkZXBsb3kudjEi4gEKD1JlY29uY2lsZVN0YXR1cxISCgpnZW5lcmF0aW9uGAEgASgDEhsKE29ic2VydmVkX2dlbmVyYXRpb24YAiABKAMSDgoGc3RhdHVzGAMgASgJEjsKEmxhc3RfcmVjb25jaWxlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIXCgpsYXN0X2Vycm9yGAUgASgJSAGIAQESEgoKZmluYWxpemVycxgGIAMoCUIVChNfbGFzdF9yZWNvbmNpbGVkX2F0Qg0KC19sYXN0X2Vycm9yIuYDCg9Qcm92aWRlckFjY291bnQSCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSEAoIcHJvdmlkZXIYBCABKAkSFQoNY2ZfYWNjb3VudF9pZBgFIAEoCRInChpnaXRodWJfYXBwX2luc3RhbGxhdGlvbl9pZBgGIAEoCUgAiAEBEhwKD2RlZmF1bHRfem9uZV9pZBgHIAEoCUgBiAEBEh8KEmRpc3BhdGNoX25hbWVzcGFjZRgIIAEoCUgCiAEBEhUKDWFwaV90b2tlbl9yZWYYCSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKY3JlYXRlZF9ieRg0IAEoCUgDiAEBEhcKCnVwZGF0ZWRfYnkYNSABKAlIBIgBAUIdChtfZ2l0aHViX2FwcF9pbnN0YWxsYXRpb25faWRCEgoQX2RlZmF1bHRfem9uZV9pZEIVChNfZGlzcGF0Y2hfbmFtZXNwYWNlQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5IuMFCgNBcHASCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSGwoTcHJvdmlkZXJfYWNjb3VudF9pZBgEIAEoCRIMCgRuYW1lGAUgASgJEgwKBHNsdWcYBiABKAkSEgoKcmVwb19vd25lchgHIAEoCRIRCglyZXBvX25hbWUYCCABKAkSGwoTcmVwb19kZWZhdWx0X2JyYW5jaBgJIAEoCRIbCg5yb290X2RpcmVjdG9yeRgKIAEoCUgAiAEBEhMKC3dhdGNoX3BhdGhzGAsgAygJEhYKCWZyYW1ld29yaxgMIAEoCUgBiAEBEhsKDmdpdGh1Yl9yZXBvX2lkGA0gASgJSAKIAQESHgoRZ2l0aHViX2FjY291bnRfaWQYDiABKAlIA4gBARIgChNnaXRodWJfYWNjb3VudF9uYW1lGA8gASgJSASIAQESLQoJcmVjb25jaWxlGBAgASgLMhouZGVwbG95LnYxLlJlY29uY2lsZVN0YXR1cxIzCgpkZWxldGVkX2F0GBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYNCABKAlIBogBARIXCgp1cGRhdGVkX2J5GDUgASgJSAeIAQFCEQoPX3Jvb3RfZGlyZWN0b3J5QgwKCl9mcmFtZXdvcmtCEQoPX2dpdGh1Yl9yZXBvX2lkQhQKEl9naXRodWJfYWNjb3VudF9pZEIWChRfZ2l0aHViX2FjY291bnRfbmFtZUINCgtfZGVsZXRlZF9hdEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSL3AwoLRW52aXJvbm1lbnQSCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSDgoGYXBwX2lkGAQgASgJEgwKBHJvbGUYBSABKAkSDAoEbmFtZRgGIAEoCRIWCg5jZl93b3JrZXJfbmFtZRgHIAEoCRIZCgx3cmFuZ2xlcl9lbnYYCCABKAlIAIgBARIbCg5tYXRjaF9icmFuY2hlcxgJIAEoCUgBiAEBEhoKDWJ1aWxkX2NvbW1hbmQYCiABKAlIAogBARIbCg5kZXBsb3lfY29tbWFuZBgLIAEoCUgDiAEBEhUKDWJ1aWxkX2VuYWJsZWQYDCABKAgSGAoQcmVjb25jaWxlX3N0YXR1cxgNIAEoCRIXCgpsYXN0X2Vycm9yGA4gASgJSASIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX3dyYW5nbGVyX2VudkIRCg9fbWF0Y2hfYnJhbmNoZXNCEAoOX2J1aWxkX2NvbW1hbmRCEQoPX2RlcGxveV9jb21tYW5kQg0KC19sYXN0X2Vycm9yIoADCg1TZWNyZXRCaW5kaW5nEgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEhYKDmVudmlyb25tZW50X2lkGAQgASgJEgwKBGtpbmQYBSABKAkSGgoSd29ya2VyX3NlY3JldF9uYW1lGAYgASgJEhYKCXZhdWx0X3JlZhgHIAEoCUgAiAEBEhgKC3BsYWluX3ZhbHVlGAggASgJSAGIAQESNwoObGFzdF9zeW5jZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDAoKX3ZhdWx0X3JlZkIOCgxfcGxhaW5fdmFsdWVCEQoPX2xhc3Rfc3luY2VkX2F0ItwCCgZEb21haW4SCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSFgoOZW52aXJvbm1lbnRfaWQYBCABKAkSEAoIaG9zdG5hbWUYBSABKAkSDAoEbW9kZRgGIAEoCRIUCgd6b25lX2lkGAcgASgJSACIAQESIgoVY2ZfY3VzdG9tX2hvc3RuYW1lX2lkGAggASgJSAGIAQESEwoLY2VydF9zdGF0dXMYCSABKAkSEgoKaXNfcHJpbWFyeRgKIAEoCBIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfem9uZV9pZEIYChZfY2ZfY3VzdG9tX2hvc3RuYW1lX2lkIqIECgpEZXBsb3ltZW50EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEhYKDmVudmlyb25tZW50X2lkGAQgASgJEhQKB2dpdF9zaGEYBSABKAlIAIgBARIXCgpnaXRfYnJhbmNoGAYgASgJSAGIAQESDwoHdHJpZ2dlchgHIAEoCRIYCgtjZl9idWlsZF9pZBgIIAEoCUgCiAEBEhoKDWNmX3ZlcnNpb25faWQYCSABKAlIA4gBARIOCgZzdGF0dXMYCiABKAkSGAoLcHJldmlld191cmwYCyABKAlIBIgBARIVCghsb2dzX3VybBgMIAEoCUgFiAEBEjMKCnN0YXJ0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQESNAoLZmluaXNoZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAeIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2dpdF9zaGFCDQoLX2dpdF9icmFuY2hCDgoMX2NmX2J1aWxkX2lkQhAKDl9jZl92ZXJzaW9uX2lkQg4KDF9wcmV2aWV3X3VybEILCglfbG9nc191cmxCDQoLX3N0YXJ0ZWRfYXRCDgoMX2ZpbmlzaGVkX2F0IswBChtMaXN0UHJvdmlkZXJBY2NvdW50c1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqQBChxMaXN0UHJvdmlkZXJBY2NvdW50c1Jlc3BvbnNlEikKBWl0ZW1zGAEgAygLMhouZGVwbG95LnYxLlByb3ZpZGVyQWNjb3VudBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iJwoZR2V0UHJvdmlkZXJBY2NvdW50UmVxdWVzdBIKCgJpZBgBIAEoCSJSChpHZXRQcm92aWRlckFjY291bnRSZXNwb25zZRI0ChBwcm92aWRlcl9hY2NvdW50GAEgASgLMhouZGVwbG95LnYxLlByb3ZpZGVyQWNjb3VudCKiAgocQ3JlYXRlUHJvdmlkZXJBY2NvdW50UmVxdWVzdBIVCghwcm92aWRlchgBIAEoCUgAiAEBEhUKDWNmX2FjY291bnRfaWQYAiABKAkSJwoaZ2l0aHViX2FwcF9pbnN0YWxsYXRpb25faWQYAyABKAlIAYgBARIcCg9kZWZhdWx0X3pvbmVfaWQYBCABKAlIAogBARIfChJkaXNwYXRjaF9uYW1lc3BhY2UYBSABKAlIA4gBARIVCg1hcGlfdG9rZW5fcmVmGAYgASgJQgsKCV9wcm92aWRlckIdChtfZ2l0aHViX2FwcF9pbnN0YWxsYXRpb25faWRCEgoQX2RlZmF1bHRfem9uZV9pZEIVChNfZGlzcGF0Y2hfbmFtZXNwYWNlIlUKHUNyZWF0ZVByb3ZpZGVyQWNjb3VudFJlc3BvbnNlEjQKEHByb3ZpZGVyX2FjY291bnQYASABKAsyGi5kZXBsb3kudjEuUHJvdmlkZXJBY2NvdW50IooCChxVcGRhdGVQcm92aWRlckFjY291bnRSZXF1ZXN0EgoKAmlkGAEgASgJEhUKDWNmX2FjY291bnRfaWQYAiABKAkSJwoaZ2l0aHViX2FwcF9pbnN0YWxsYXRpb25faWQYAyABKAlIAIgBARIcCg9kZWZhdWx0X3pvbmVfaWQYBCABKAlIAYgBARIfChJkaXNwYXRjaF9uYW1lc3BhY2UYBSABKAlIAogBARIVCg1hcGlfdG9rZW5fcmVmGAYgASgJQh0KG19naXRodWJfYXBwX2luc3RhbGxhdGlvbl9pZEISChBfZGVmYXVsdF96b25lX2lkQhUKE19kaXNwYXRjaF9uYW1lc3BhY2UiVQodVXBkYXRlUHJvdmlkZXJBY2NvdW50UmVzcG9uc2USNAoQcHJvdmlkZXJfYWNjb3VudBgBIAEoCzIaLmRlcGxveS52MS5Qcm92aWRlckFjY291bnQiKgocRGVsZXRlUHJvdmlkZXJBY2NvdW50UmVxdWVzdBIKCgJpZBgBIAEoCSIwCh1EZWxldGVQcm92aWRlckFjY291bnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIsABCg9MaXN0QXBwc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IowBChBMaXN0QXBwc1Jlc3BvbnNlEh0KBWl0ZW1zGAEgAygLMg4uZGVwbG95LnYxLkFwcBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iGwoNR2V0QXBwUmVxdWVzdBIKCgJpZBgBIAEoCSKyAQoOR2V0QXBwUmVzcG9uc2USGwoDYXBwGAEgASgLMg4uZGVwbG95LnYxLkFwcBIsCgxlbnZpcm9ubWVudHMYAiADKAsyFi5kZXBsb3kudjEuRW52aXJvbm1lbnQSIgoHZG9tYWlucxgDIAMoCzIRLmRlcGxveS52MS5Eb21haW4SMQoPc2VjcmV0X2JpbmRpbmdzGAQgAygLMhguZGVwbG95LnYxLlNlY3JldEJpbmRpbmcitwMKEENyZWF0ZUFwcFJlcXVlc3QSGwoTcHJvdmlkZXJfYWNjb3VudF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHNsdWcYAyABKAkSEgoKcmVwb19vd25lchgEIAEoCRIRCglyZXBvX25hbWUYBSABKAkSIAoTcmVwb19kZWZhdWx0X2JyYW5jaBgGIAEoCUgAiAEBEhsKDnJvb3RfZGlyZWN0b3J5GAcgASgJSAGIAQESEwoLd2F0Y2hfcGF0aHMYCCADKAkSFgoJZnJhbWV3b3JrGAkgASgJSAKIAQESGwoOZ2l0aHViX3JlcG9faWQYCiABKAlIA4gBARIeChFnaXRodWJfYWNjb3VudF9pZBgLIAEoCUgEiAEBEiAKE2dpdGh1Yl9hY2NvdW50X25hbWUYDCABKAlIBYgBAUIWChRfcmVwb19kZWZhdWx0X2JyYW5jaEIRCg9fcm9vdF9kaXJlY3RvcnlCDAoKX2ZyYW1ld29ya0IRCg9fZ2l0aHViX3JlcG9faWRCFAoSX2dpdGh1Yl9hY2NvdW50X2lkQhYKFF9naXRodWJfYWNjb3VudF9uYW1lIjAKEUNyZWF0ZUFwcFJlc3BvbnNlEhsKA2FwcBgBIAEoCzIOLmRlcGxveS52MS5BcHAiiQMKEFVwZGF0ZUFwcFJlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRzbHVnGAMgASgJEhIKCnJlcG9fb3duZXIYBCABKAkSEQoJcmVwb19uYW1lGAUgASgJEhsKE3JlcG9fZGVmYXVsdF9icmFuY2gYBiABKAkSGwoOcm9vdF9kaXJlY3RvcnkYByABKAlIAIgBARITCgt3YXRjaF9wYXRocxgIIAMoCRIWCglmcmFtZXdvcmsYCSABKAlIAYgBARIbCg5naXRodWJfcmVwb19pZBgKIAEoCUgCiAEBEh4KEWdpdGh1Yl9hY2NvdW50X2lkGAsgASgJSAOIAQESIAoTZ2l0aHViX2FjY291bnRfbmFtZRgMIAEoCUgEiAEBQhEKD19yb290X2RpcmVjdG9yeUIMCgpfZnJhbWV3b3JrQhEKD19naXRodWJfcmVwb19pZEIUChJfZ2l0aHViX2FjY291bnRfaWRCFgoUX2dpdGh1Yl9hY2NvdW50X25hbWUiMAoRVXBkYXRlQXBwUmVzcG9uc2USGwoDYXBwGAEgASgLMg4uZGVwbG95LnYxLkFwcCIeChBEZWxldGVBcHBSZXF1ZXN0EgoKAmlkGAEgASgJIiQKEURlbGV0ZUFwcFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiyAEKF0xpc3RFbnZpcm9ubWVudHNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKcAQoYTGlzdEVudmlyb25tZW50c1Jlc3BvbnNlEiUKBWl0ZW1zGAEgAygLMhYuZGVwbG95LnYxLkVudmlyb25tZW50Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIjChVHZXRFbnZpcm9ubWVudFJlcXVlc3QSCgoCaWQYASABKAkiRQoWR2V0RW52aXJvbm1lbnRSZXNwb25zZRIrCgtlbnZpcm9ubWVudBgBIAEoCzIWLmRlcGxveS52MS5FbnZpcm9ubWVudCLGAgoYQ3JlYXRlRW52aXJvbm1lbnRSZXF1ZXN0Eg4KBmFwcF9pZBgBIAEoCRIMCgRyb2xlGAIgASgJEgwKBG5hbWUYAyABKAkSFgoOY2Zfd29ya2VyX25hbWUYBCABKAkSGQoMd3JhbmdsZXJfZW52GAUgASgJSACIAQESGwoObWF0Y2hfYnJhbmNoZXMYBiABKAlIAYgBARIaCg1idWlsZF9jb21tYW5kGAcgASgJSAKIAQESGwoOZGVwbG95X2NvbW1hbmQYCCABKAlIA4gBARIaCg1idWlsZF9lbmFibGVkGAkgASgISASIAQFCDwoNX3dyYW5nbGVyX2VudkIRCg9fbWF0Y2hfYnJhbmNoZXNCEAoOX2J1aWxkX2NvbW1hbmRCEQoPX2RlcGxveV9jb21tYW5kQhAKDl9idWlsZF9lbmFibGVkIkgKGUNyZWF0ZUVudmlyb25tZW50UmVzcG9uc2USKwoLZW52aXJvbm1lbnQYASABKAsyFi5kZXBsb3kudjEuRW52aXJvbm1lbnQitAIKGFVwZGF0ZUVudmlyb25tZW50UmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhYKDmNmX3dvcmtlcl9uYW1lGAMgASgJEhkKDHdyYW5nbGVyX2VudhgEIAEoCUgAiAEBEhsKDm1hdGNoX2JyYW5jaGVzGAUgASgJSAGIAQESGgoNYnVpbGRfY29tbWFuZBgGIAEoCUgCiAEBEhsKDmRlcGxveV9jb21tYW5kGAcgASgJSAOIAQESGgoNYnVpbGRfZW5hYmxlZBgIIAEoCEgEiAEBQg8KDV93cmFuZ2xlcl9lbnZCEQoPX21hdGNoX2JyYW5jaGVzQhAKDl9idWlsZF9jb21tYW5kQhEKD19kZXBsb3lfY29tbWFuZEIQCg5fYnVpbGRfZW5hYmxlZCJIChlVcGRhdGVFbnZpcm9ubWVudFJlc3BvbnNlEisKC2Vudmlyb25tZW50GAEgASgLMhYuZGVwbG95LnYxLkVudmlyb25tZW50IiYKGERlbGV0ZUVudmlyb25tZW50UmVxdWVzdBIKCgJpZBgBIAEoCSIsChlEZWxldGVFbnZpcm9ubWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiygEKGUxpc3RTZWNyZXRCaW5kaW5nc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqABChpMaXN0U2VjcmV0QmluZGluZ3NSZXNwb25zZRInCgVpdGVtcxgBIAMoCzIYLmRlcGxveS52MS5TZWNyZXRCaW5kaW5nEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIlChdHZXRTZWNyZXRCaW5kaW5nUmVxdWVzdBIKCgJpZBgBIAEoCSJMChhHZXRTZWNyZXRCaW5kaW5nUmVzcG9uc2USMAoOc2VjcmV0X2JpbmRpbmcYASABKAsyGC5kZXBsb3kudjEuU2VjcmV0QmluZGluZyKuAQoaQ3JlYXRlU2VjcmV0QmluZGluZ1JlcXVlc3QSFgoOZW52aXJvbm1lbnRfaWQYASABKAkSDAoEa2luZBgCIAEoCRIaChJ3b3JrZXJfc2VjcmV0X25hbWUYAyABKAkSFgoJdmF1bHRfcmVmGAQgASgJSACIAQESGAoLcGxhaW5fdmFsdWUYBSABKAlIAYgBAUIMCgpfdmF1bHRfcmVmQg4KDF9wbGFpbl92YWx1ZSJPChtDcmVhdGVTZWNyZXRCaW5kaW5nUmVzcG9uc2USMAoOc2VjcmV0X2JpbmRpbmcYASABKAsyGC5kZXBsb3kudjEuU2VjcmV0QmluZGluZyKiAQoaVXBkYXRlU2VjcmV0QmluZGluZ1JlcXVlc3QSCgoCaWQYASABKAkSDAoEa2luZBgCIAEoCRIaChJ3b3JrZXJfc2VjcmV0X25hbWUYAyABKAkSFgoJdmF1bHRfcmVmGAQgASgJSACIAQESGAoLcGxhaW5fdmFsdWUYBSABKAlIAYgBAUIMCgpfdmF1bHRfcmVmQg4KDF9wbGFpbl92YWx1ZSJPChtVcGRhdGVTZWNyZXRCaW5kaW5nUmVzcG9uc2USMAoOc2VjcmV0X2JpbmRpbmcYASABKAsyGC5kZXBsb3kudjEuU2VjcmV0QmluZGluZyIoChpEZWxldGVTZWNyZXRCaW5kaW5nUmVxdWVzdBIKCgJpZBgBIAEoCSIuChtEZWxldGVTZWNyZXRCaW5kaW5nUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLDAQoSTGlzdERvbWFpbnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKSAQoTTGlzdERvbWFpbnNSZXNwb25zZRIgCgVpdGVtcxgBIAMoCzIRLmRlcGxveS52MS5Eb21haW4SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIh4KEEdldERvbWFpblJlcXVlc3QSCgoCaWQYASABKAkiNgoRR2V0RG9tYWluUmVzcG9uc2USIQoGZG9tYWluGAEgASgLMhEuZGVwbG95LnYxLkRvbWFpbiKXAQoTQ3JlYXRlRG9tYWluUmVxdWVzdBIWCg5lbnZpcm9ubWVudF9pZBgBIAEoCRIQCghob3N0bmFtZRgCIAEoCRIMCgRtb2RlGAMgASgJEhQKB3pvbmVfaWQYBCABKAlIAIgBARIXCgppc19wcmltYXJ5GAUgASgISAGIAQFCCgoIX3pvbmVfaWRCDQoLX2lzX3ByaW1hcnkiOQoUQ3JlYXRlRG9tYWluUmVzcG9uc2USIQoGZG9tYWluGAEgASgLMhEuZGVwbG95LnYxLkRvbWFpbiIhChNEZWxldGVEb21haW5SZXF1ZXN0EgoKAmlkGAEgASgJIicKFERlbGV0ZURvbWFpblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgixwEKFkxpc3REZXBsb3ltZW50c1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpoBChdMaXN0RGVwbG95bWVudHNSZXNwb25zZRIkCgVpdGVtcxgBIAMoCzIVLmRlcGxveS52MS5EZXBsb3ltZW50Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIiChRHZXREZXBsb3ltZW50UmVxdWVzdBIKCgJpZBgBIAEoCSJCChVHZXREZXBsb3ltZW50UmVzcG9uc2USKQoKZGVwbG95bWVudBgBIAEoCzIVLmRlcGxveS52MS5EZXBsb3ltZW50IikKF1RyaWdnZXJSZWNvbmNpbGVSZXF1ZXN0Eg4KBmFwcF9pZBgBIAEoCSI3ChhUcmlnZ2VyUmVjb25jaWxlUmVzcG9uc2USGwoDYXBwGAEgASgLMg4uZGVwbG95LnYxLkFwcCJWChRUcmlnZ2VyRGVwbG95UmVxdWVzdBIWCg5lbnZpcm9ubWVudF9pZBgBIAEoCRIXCgpnaXRfYnJhbmNoGAIgASgJSACIAQFCDQoLX2dpdF9icmFuY2giQgoVVHJpZ2dlckRlcGxveVJlc3BvbnNlEikKCmRlcGxveW1lbnQYASABKAsyFS5kZXBsb3kudjEuRGVwbG95bWVudCIrChlHZXRSZWNvbmNpbGVTdGF0dXNSZXF1ZXN0Eg4KBmFwcF9pZBgBIAEoCSJ5ChpHZXRSZWNvbmNpbGVTdGF0dXNSZXNwb25zZRItCglyZWNvbmNpbGUYASABKAsyGi5kZXBsb3kudjEuUmVjb25jaWxlU3RhdHVzEiwKDGVudmlyb25tZW50cxgCIAMoCzIWLmRlcGxveS52MS5FbnZpcm9ubWVudDK7FAoNRGVwbG95U2VydmljZRJnChRMaXN0UHJvdmlkZXJBY2NvdW50cxImLmRlcGxveS52MS5MaXN0UHJvdmlkZXJBY2NvdW50c1JlcXVlc3QaJy5kZXBsb3kudjEuTGlzdFByb3ZpZGVyQWNjb3VudHNSZXNwb25zZRJhChJHZXRQcm92aWRlckFjY291bnQSJC5kZXBsb3kudjEuR2V0UHJvdmlkZXJBY2NvdW50UmVxdWVzdBolLmRlcGxveS52MS5HZXRQcm92aWRlckFjY291bnRSZXNwb25zZRJqChVDcmVhdGVQcm92aWRlckFjY291bnQSJy5kZXBsb3kudjEuQ3JlYXRlUHJvdmlkZXJBY2NvdW50UmVxdWVzdBooLmRlcGxveS52MS5DcmVhdGVQcm92aWRlckFjY291bnRSZXNwb25zZRJqChVVcGRhdGVQcm92aWRlckFjY291bnQSJy5kZXBsb3kudjEuVXBkYXRlUHJvdmlkZXJBY2NvdW50UmVxdWVzdBooLmRlcGxveS52MS5VcGRhdGVQcm92aWRlckFjY291bnRSZXNwb25zZRJqChVEZWxldGVQcm92aWRlckFjY291bnQSJy5kZXBsb3kudjEuRGVsZXRlUHJvdmlkZXJBY2NvdW50UmVxdWVzdBooLmRlcGxveS52MS5EZWxldGVQcm92aWRlckFjY291bnRSZXNwb25zZRJDCghMaXN0QXBwcxIaLmRlcGxveS52MS5MaXN0QXBwc1JlcXVlc3QaGy5kZXBsb3kudjEuTGlzdEFwcHNSZXNwb25zZRI9CgZHZXRBcHASGC5kZXBsb3kudjEuR2V0QXBwUmVxdWVzdBoZLmRlcGxveS52MS5HZXRBcHBSZXNwb25zZRJGCglDcmVhdGVBcHASGy5kZXBsb3kudjEuQ3JlYXRlQXBwUmVxdWVzdBocLmRlcGxveS52MS5DcmVhdGVBcHBSZXNwb25zZRJGCglVcGRhdGVBcHASGy5kZXBsb3kudjEuVXBkYXRlQXBwUmVxdWVzdBocLmRlcGxveS52MS5VcGRhdGVBcHBSZXNwb25zZRJGCglEZWxldGVBcHASGy5kZXBsb3kudjEuRGVsZXRlQXBwUmVxdWVzdBocLmRlcGxveS52MS5EZWxldGVBcHBSZXNwb25zZRJbChBMaXN0RW52aXJvbm1lbnRzEiIuZGVwbG95LnYxLkxpc3RFbnZpcm9ubWVudHNSZXF1ZXN0GiMuZGVwbG95LnYxLkxpc3RFbnZpcm9ubWVudHNSZXNwb25zZRJVCg5HZXRFbnZpcm9ubWVudBIgLmRlcGxveS52MS5HZXRFbnZpcm9ubWVudFJlcXVlc3QaIS5kZXBsb3kudjEuR2V0RW52aXJvbm1lbnRSZXNwb25zZRJeChFDcmVhdGVFbnZpcm9ubWVudBIjLmRlcGxveS52MS5DcmVhdGVFbnZpcm9ubWVudFJlcXVlc3QaJC5kZXBsb3kudjEuQ3JlYXRlRW52aXJvbm1lbnRSZXNwb25zZRJeChFVcGRhdGVFbnZpcm9ubWVudBIjLmRlcGxveS52MS5VcGRhdGVFbnZpcm9ubWVudFJlcXVlc3QaJC5kZXBsb3kudjEuVXBkYXRlRW52aXJvbm1lbnRSZXNwb25zZRJeChFEZWxldGVFbnZpcm9ubWVudBIjLmRlcGxveS52MS5EZWxldGVFbnZpcm9ubWVudFJlcXVlc3QaJC5kZXBsb3kudjEuRGVsZXRlRW52aXJvbm1lbnRSZXNwb25zZRJhChJMaXN0U2VjcmV0QmluZGluZ3MSJC5kZXBsb3kudjEuTGlzdFNlY3JldEJpbmRpbmdzUmVxdWVzdBolLmRlcGxveS52MS5MaXN0U2VjcmV0QmluZGluZ3NSZXNwb25zZRJbChBHZXRTZWNyZXRCaW5kaW5nEiIuZGVwbG95LnYxLkdldFNlY3JldEJpbmRpbmdSZXF1ZXN0GiMuZGVwbG95LnYxLkdldFNlY3JldEJpbmRpbmdSZXNwb25zZRJkChNDcmVhdGVTZWNyZXRCaW5kaW5nEiUuZGVwbG95LnYxLkNyZWF0ZVNlY3JldEJpbmRpbmdSZXF1ZXN0GiYuZGVwbG95LnYxLkNyZWF0ZVNlY3JldEJpbmRpbmdSZXNwb25zZRJkChNVcGRhdGVTZWNyZXRCaW5kaW5nEiUuZGVwbG95LnYxLlVwZGF0ZVNlY3JldEJpbmRpbmdSZXF1ZXN0GiYuZGVwbG95LnYxLlVwZGF0ZVNlY3JldEJpbmRpbmdSZXNwb25zZRJkChNEZWxldGVTZWNyZXRCaW5kaW5nEiUuZGVwbG95LnYxLkRlbGV0ZVNlY3JldEJpbmRpbmdSZXF1ZXN0GiYuZGVwbG95LnYxLkRlbGV0ZVNlY3JldEJpbmRpbmdSZXNwb25zZRJMCgtMaXN0RG9tYWlucxIdLmRlcGxveS52MS5MaXN0RG9tYWluc1JlcXVlc3QaHi5kZXBsb3kudjEuTGlzdERvbWFpbnNSZXNwb25zZRJGCglHZXREb21haW4SGy5kZXBsb3kudjEuR2V0RG9tYWluUmVxdWVzdBocLmRlcGxveS52MS5HZXREb21haW5SZXNwb25zZRJPCgxDcmVhdGVEb21haW4SHi5kZXBsb3kudjEuQ3JlYXRlRG9tYWluUmVxdWVzdBofLmRlcGxveS52MS5DcmVhdGVEb21haW5SZXNwb25zZRJPCgxEZWxldGVEb21haW4SHi5kZXBsb3kudjEuRGVsZXRlRG9tYWluUmVxdWVzdBofLmRlcGxveS52MS5EZWxldGVEb21haW5SZXNwb25zZRJYCg9MaXN0RGVwbG95bWVudHMSIS5kZXBsb3kudjEuTGlzdERlcGxveW1lbnRzUmVxdWVzdBoiLmRlcGxveS52MS5MaXN0RGVwbG95bWVudHNSZXNwb25zZRJSCg1HZXREZXBsb3ltZW50Eh8uZGVwbG95LnYxLkdldERlcGxveW1lbnRSZXF1ZXN0GiAuZGVwbG95LnYxLkdldERlcGxveW1lbnRSZXNwb25zZRJbChBUcmlnZ2VyUmVjb25jaWxlEiIuZGVwbG95LnYxLlRyaWdnZXJSZWNvbmNpbGVSZXF1ZXN0GiMuZGVwbG95LnYxLlRyaWdnZXJSZWNvbmNpbGVSZXNwb25zZRJSCg1UcmlnZ2VyRGVwbG95Eh8uZGVwbG95LnYxLlRyaWdnZXJEZXBsb3lSZXF1ZXN0GiAuZGVwbG95LnYxLlRyaWdnZXJEZXBsb3lSZXNwb25zZRJhChJHZXRSZWNvbmNpbGVTdGF0dXMSJC5kZXBsb3kudjEuR2V0UmVjb25jaWxlU3RhdHVzUmVxdWVzdBolLmRlcGxveS52MS5HZXRSZWNvbmNpbGVTdGF0dXNSZXNwb25zZUI5WjdnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vZGVwbG95L3YxO2RlcGxveXYxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_common_v1_pagination]);
13
+ fileDesc("ChZkZXBsb3kvdjEvZGVwbG95LnByb3RvEglkZXBsb3kudjEi4gEKD1JlY29uY2lsZVN0YXR1cxISCgpnZW5lcmF0aW9uGAEgASgDEhsKE29ic2VydmVkX2dlbmVyYXRpb24YAiABKAMSDgoGc3RhdHVzGAMgASgJEjsKEmxhc3RfcmVjb25jaWxlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIXCgpsYXN0X2Vycm9yGAUgASgJSAGIAQESEgoKZmluYWxpemVycxgGIAMoCUIVChNfbGFzdF9yZWNvbmNpbGVkX2F0Qg0KC19sYXN0X2Vycm9yIoYDCg9Qcm92aWRlckFjY291bnQSCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSEAoIcHJvdmlkZXIYBCABKAkSJwoaZ2l0aHViX2FwcF9pbnN0YWxsYXRpb25faWQYBiABKAlIAIgBARIfChJkaXNwYXRjaF9uYW1lc3BhY2UYCCABKAlIAYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GDQgASgJSAKIAQESFwoKdXBkYXRlZF9ieRg1IAEoCUgDiAEBQh0KG19naXRodWJfYXBwX2luc3RhbGxhdGlvbl9pZEIVChNfZGlzcGF0Y2hfbmFtZXNwYWNlQg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5IuMFCgNBcHASCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSGwoTcHJvdmlkZXJfYWNjb3VudF9pZBgEIAEoCRIMCgRuYW1lGAUgASgJEgwKBHNsdWcYBiABKAkSEgoKcmVwb19vd25lchgHIAEoCRIRCglyZXBvX25hbWUYCCABKAkSGwoTcmVwb19kZWZhdWx0X2JyYW5jaBgJIAEoCRIbCg5yb290X2RpcmVjdG9yeRgKIAEoCUgAiAEBEhMKC3dhdGNoX3BhdGhzGAsgAygJEhYKCWZyYW1ld29yaxgMIAEoCUgBiAEBEhsKDmdpdGh1Yl9yZXBvX2lkGA0gASgJSAKIAQESHgoRZ2l0aHViX2FjY291bnRfaWQYDiABKAlIA4gBARIgChNnaXRodWJfYWNjb3VudF9uYW1lGA8gASgJSASIAQESLQoJcmVjb25jaWxlGBAgASgLMhouZGVwbG95LnYxLlJlY29uY2lsZVN0YXR1cxIzCgpkZWxldGVkX2F0GBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYNCABKAlIBogBARIXCgp1cGRhdGVkX2J5GDUgASgJSAeIAQFCEQoPX3Jvb3RfZGlyZWN0b3J5QgwKCl9mcmFtZXdvcmtCEQoPX2dpdGh1Yl9yZXBvX2lkQhQKEl9naXRodWJfYWNjb3VudF9pZEIWChRfZ2l0aHViX2FjY291bnRfbmFtZUINCgtfZGVsZXRlZF9hdEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSL3AwoLRW52aXJvbm1lbnQSCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSDgoGYXBwX2lkGAQgASgJEgwKBHJvbGUYBSABKAkSDAoEbmFtZRgGIAEoCRIWCg5jZl93b3JrZXJfbmFtZRgHIAEoCRIZCgx3cmFuZ2xlcl9lbnYYCCABKAlIAIgBARIbCg5tYXRjaF9icmFuY2hlcxgJIAEoCUgBiAEBEhoKDWJ1aWxkX2NvbW1hbmQYCiABKAlIAogBARIbCg5kZXBsb3lfY29tbWFuZBgLIAEoCUgDiAEBEhUKDWJ1aWxkX2VuYWJsZWQYDCABKAgSGAoQcmVjb25jaWxlX3N0YXR1cxgNIAEoCRIXCgpsYXN0X2Vycm9yGA4gASgJSASIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX3dyYW5nbGVyX2VudkIRCg9fbWF0Y2hfYnJhbmNoZXNCEAoOX2J1aWxkX2NvbW1hbmRCEQoPX2RlcGxveV9jb21tYW5kQg0KC19sYXN0X2Vycm9yIoADCg1TZWNyZXRCaW5kaW5nEgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEhYKDmVudmlyb25tZW50X2lkGAQgASgJEgwKBGtpbmQYBSABKAkSGgoSd29ya2VyX3NlY3JldF9uYW1lGAYgASgJEhYKCXZhdWx0X3JlZhgHIAEoCUgAiAEBEhgKC3BsYWluX3ZhbHVlGAggASgJSAGIAQESNwoObGFzdF9zeW5jZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDAoKX3ZhdWx0X3JlZkIOCgxfcGxhaW5fdmFsdWVCEQoPX2xhc3Rfc3luY2VkX2F0ItwCCgZEb21haW4SCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSFgoOZW52aXJvbm1lbnRfaWQYBCABKAkSEAoIaG9zdG5hbWUYBSABKAkSDAoEbW9kZRgGIAEoCRIUCgd6b25lX2lkGAcgASgJSACIAQESIgoVY2ZfY3VzdG9tX2hvc3RuYW1lX2lkGAggASgJSAGIAQESEwoLY2VydF9zdGF0dXMYCSABKAkSEgoKaXNfcHJpbWFyeRgKIAEoCBIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfem9uZV9pZEIYChZfY2ZfY3VzdG9tX2hvc3RuYW1lX2lkIqIECgpEZXBsb3ltZW50EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEhYKDmVudmlyb25tZW50X2lkGAQgASgJEhQKB2dpdF9zaGEYBSABKAlIAIgBARIXCgpnaXRfYnJhbmNoGAYgASgJSAGIAQESDwoHdHJpZ2dlchgHIAEoCRIYCgtjZl9idWlsZF9pZBgIIAEoCUgCiAEBEhoKDWNmX3ZlcnNpb25faWQYCSABKAlIA4gBARIOCgZzdGF0dXMYCiABKAkSGAoLcHJldmlld191cmwYCyABKAlIBIgBARIVCghsb2dzX3VybBgMIAEoCUgFiAEBEjMKCnN0YXJ0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQESNAoLZmluaXNoZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAeIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2dpdF9zaGFCDQoLX2dpdF9icmFuY2hCDgoMX2NmX2J1aWxkX2lkQhAKDl9jZl92ZXJzaW9uX2lkQg4KDF9wcmV2aWV3X3VybEILCglfbG9nc191cmxCDQoLX3N0YXJ0ZWRfYXRCDgoMX2ZpbmlzaGVkX2F0IswBChtMaXN0UHJvdmlkZXJBY2NvdW50c1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqQBChxMaXN0UHJvdmlkZXJBY2NvdW50c1Jlc3BvbnNlEikKBWl0ZW1zGAEgAygLMhouZGVwbG95LnYxLlByb3ZpZGVyQWNjb3VudBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iJwoZR2V0UHJvdmlkZXJBY2NvdW50UmVxdWVzdBIKCgJpZBgBIAEoCSJSChpHZXRQcm92aWRlckFjY291bnRSZXNwb25zZRI0ChBwcm92aWRlcl9hY2NvdW50GAEgASgLMhouZGVwbG95LnYxLlByb3ZpZGVyQWNjb3VudCLCAQocQ3JlYXRlUHJvdmlkZXJBY2NvdW50UmVxdWVzdBIVCghwcm92aWRlchgBIAEoCUgAiAEBEicKGmdpdGh1Yl9hcHBfaW5zdGFsbGF0aW9uX2lkGAMgASgJSAGIAQESHwoSZGlzcGF0Y2hfbmFtZXNwYWNlGAUgASgJSAKIAQFCCwoJX3Byb3ZpZGVyQh0KG19naXRodWJfYXBwX2luc3RhbGxhdGlvbl9pZEIVChNfZGlzcGF0Y2hfbmFtZXNwYWNlIlUKHUNyZWF0ZVByb3ZpZGVyQWNjb3VudFJlc3BvbnNlEjQKEHByb3ZpZGVyX2FjY291bnQYASABKAsyGi5kZXBsb3kudjEuUHJvdmlkZXJBY2NvdW50IqoBChxVcGRhdGVQcm92aWRlckFjY291bnRSZXF1ZXN0EgoKAmlkGAEgASgJEicKGmdpdGh1Yl9hcHBfaW5zdGFsbGF0aW9uX2lkGAMgASgJSACIAQESHwoSZGlzcGF0Y2hfbmFtZXNwYWNlGAUgASgJSAGIAQFCHQobX2dpdGh1Yl9hcHBfaW5zdGFsbGF0aW9uX2lkQhUKE19kaXNwYXRjaF9uYW1lc3BhY2UiVQodVXBkYXRlUHJvdmlkZXJBY2NvdW50UmVzcG9uc2USNAoQcHJvdmlkZXJfYWNjb3VudBgBIAEoCzIaLmRlcGxveS52MS5Qcm92aWRlckFjY291bnQiKgocRGVsZXRlUHJvdmlkZXJBY2NvdW50UmVxdWVzdBIKCgJpZBgBIAEoCSIwCh1EZWxldGVQcm92aWRlckFjY291bnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIsABCg9MaXN0QXBwc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IowBChBMaXN0QXBwc1Jlc3BvbnNlEh0KBWl0ZW1zGAEgAygLMg4uZGVwbG95LnYxLkFwcBINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iGwoNR2V0QXBwUmVxdWVzdBIKCgJpZBgBIAEoCSKyAQoOR2V0QXBwUmVzcG9uc2USGwoDYXBwGAEgASgLMg4uZGVwbG95LnYxLkFwcBIsCgxlbnZpcm9ubWVudHMYAiADKAsyFi5kZXBsb3kudjEuRW52aXJvbm1lbnQSIgoHZG9tYWlucxgDIAMoCzIRLmRlcGxveS52MS5Eb21haW4SMQoPc2VjcmV0X2JpbmRpbmdzGAQgAygLMhguZGVwbG95LnYxLlNlY3JldEJpbmRpbmcitwMKEENyZWF0ZUFwcFJlcXVlc3QSGwoTcHJvdmlkZXJfYWNjb3VudF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHNsdWcYAyABKAkSEgoKcmVwb19vd25lchgEIAEoCRIRCglyZXBvX25hbWUYBSABKAkSIAoTcmVwb19kZWZhdWx0X2JyYW5jaBgGIAEoCUgAiAEBEhsKDnJvb3RfZGlyZWN0b3J5GAcgASgJSAGIAQESEwoLd2F0Y2hfcGF0aHMYCCADKAkSFgoJZnJhbWV3b3JrGAkgASgJSAKIAQESGwoOZ2l0aHViX3JlcG9faWQYCiABKAlIA4gBARIeChFnaXRodWJfYWNjb3VudF9pZBgLIAEoCUgEiAEBEiAKE2dpdGh1Yl9hY2NvdW50X25hbWUYDCABKAlIBYgBAUIWChRfcmVwb19kZWZhdWx0X2JyYW5jaEIRCg9fcm9vdF9kaXJlY3RvcnlCDAoKX2ZyYW1ld29ya0IRCg9fZ2l0aHViX3JlcG9faWRCFAoSX2dpdGh1Yl9hY2NvdW50X2lkQhYKFF9naXRodWJfYWNjb3VudF9uYW1lIjAKEUNyZWF0ZUFwcFJlc3BvbnNlEhsKA2FwcBgBIAEoCzIOLmRlcGxveS52MS5BcHAiiQMKEFVwZGF0ZUFwcFJlcXVlc3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRzbHVnGAMgASgJEhIKCnJlcG9fb3duZXIYBCABKAkSEQoJcmVwb19uYW1lGAUgASgJEhsKE3JlcG9fZGVmYXVsdF9icmFuY2gYBiABKAkSGwoOcm9vdF9kaXJlY3RvcnkYByABKAlIAIgBARITCgt3YXRjaF9wYXRocxgIIAMoCRIWCglmcmFtZXdvcmsYCSABKAlIAYgBARIbCg5naXRodWJfcmVwb19pZBgKIAEoCUgCiAEBEh4KEWdpdGh1Yl9hY2NvdW50X2lkGAsgASgJSAOIAQESIAoTZ2l0aHViX2FjY291bnRfbmFtZRgMIAEoCUgEiAEBQhEKD19yb290X2RpcmVjdG9yeUIMCgpfZnJhbWV3b3JrQhEKD19naXRodWJfcmVwb19pZEIUChJfZ2l0aHViX2FjY291bnRfaWRCFgoUX2dpdGh1Yl9hY2NvdW50X25hbWUiMAoRVXBkYXRlQXBwUmVzcG9uc2USGwoDYXBwGAEgASgLMg4uZGVwbG95LnYxLkFwcCIeChBEZWxldGVBcHBSZXF1ZXN0EgoKAmlkGAEgASgJIiQKEURlbGV0ZUFwcFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiyAEKF0xpc3RFbnZpcm9ubWVudHNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKcAQoYTGlzdEVudmlyb25tZW50c1Jlc3BvbnNlEiUKBWl0ZW1zGAEgAygLMhYuZGVwbG95LnYxLkVudmlyb25tZW50Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIjChVHZXRFbnZpcm9ubWVudFJlcXVlc3QSCgoCaWQYASABKAkiRQoWR2V0RW52aXJvbm1lbnRSZXNwb25zZRIrCgtlbnZpcm9ubWVudBgBIAEoCzIWLmRlcGxveS52MS5FbnZpcm9ubWVudCLGAgoYQ3JlYXRlRW52aXJvbm1lbnRSZXF1ZXN0Eg4KBmFwcF9pZBgBIAEoCRIMCgRyb2xlGAIgASgJEgwKBG5hbWUYAyABKAkSFgoOY2Zfd29ya2VyX25hbWUYBCABKAkSGQoMd3JhbmdsZXJfZW52GAUgASgJSACIAQESGwoObWF0Y2hfYnJhbmNoZXMYBiABKAlIAYgBARIaCg1idWlsZF9jb21tYW5kGAcgASgJSAKIAQESGwoOZGVwbG95X2NvbW1hbmQYCCABKAlIA4gBARIaCg1idWlsZF9lbmFibGVkGAkgASgISASIAQFCDwoNX3dyYW5nbGVyX2VudkIRCg9fbWF0Y2hfYnJhbmNoZXNCEAoOX2J1aWxkX2NvbW1hbmRCEQoPX2RlcGxveV9jb21tYW5kQhAKDl9idWlsZF9lbmFibGVkIkgKGUNyZWF0ZUVudmlyb25tZW50UmVzcG9uc2USKwoLZW52aXJvbm1lbnQYASABKAsyFi5kZXBsb3kudjEuRW52aXJvbm1lbnQitAIKGFVwZGF0ZUVudmlyb25tZW50UmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhYKDmNmX3dvcmtlcl9uYW1lGAMgASgJEhkKDHdyYW5nbGVyX2VudhgEIAEoCUgAiAEBEhsKDm1hdGNoX2JyYW5jaGVzGAUgASgJSAGIAQESGgoNYnVpbGRfY29tbWFuZBgGIAEoCUgCiAEBEhsKDmRlcGxveV9jb21tYW5kGAcgASgJSAOIAQESGgoNYnVpbGRfZW5hYmxlZBgIIAEoCEgEiAEBQg8KDV93cmFuZ2xlcl9lbnZCEQoPX21hdGNoX2JyYW5jaGVzQhAKDl9idWlsZF9jb21tYW5kQhEKD19kZXBsb3lfY29tbWFuZEIQCg5fYnVpbGRfZW5hYmxlZCJIChlVcGRhdGVFbnZpcm9ubWVudFJlc3BvbnNlEisKC2Vudmlyb25tZW50GAEgASgLMhYuZGVwbG95LnYxLkVudmlyb25tZW50IiYKGERlbGV0ZUVudmlyb25tZW50UmVxdWVzdBIKCgJpZBgBIAEoCSIsChlEZWxldGVFbnZpcm9ubWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiygEKGUxpc3RTZWNyZXRCaW5kaW5nc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqABChpMaXN0U2VjcmV0QmluZGluZ3NSZXNwb25zZRInCgVpdGVtcxgBIAMoCzIYLmRlcGxveS52MS5TZWNyZXRCaW5kaW5nEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIlChdHZXRTZWNyZXRCaW5kaW5nUmVxdWVzdBIKCgJpZBgBIAEoCSJMChhHZXRTZWNyZXRCaW5kaW5nUmVzcG9uc2USMAoOc2VjcmV0X2JpbmRpbmcYASABKAsyGC5kZXBsb3kudjEuU2VjcmV0QmluZGluZyKuAQoaQ3JlYXRlU2VjcmV0QmluZGluZ1JlcXVlc3QSFgoOZW52aXJvbm1lbnRfaWQYASABKAkSDAoEa2luZBgCIAEoCRIaChJ3b3JrZXJfc2VjcmV0X25hbWUYAyABKAkSFgoJdmF1bHRfcmVmGAQgASgJSACIAQESGAoLcGxhaW5fdmFsdWUYBSABKAlIAYgBAUIMCgpfdmF1bHRfcmVmQg4KDF9wbGFpbl92YWx1ZSJPChtDcmVhdGVTZWNyZXRCaW5kaW5nUmVzcG9uc2USMAoOc2VjcmV0X2JpbmRpbmcYASABKAsyGC5kZXBsb3kudjEuU2VjcmV0QmluZGluZyKiAQoaVXBkYXRlU2VjcmV0QmluZGluZ1JlcXVlc3QSCgoCaWQYASABKAkSDAoEa2luZBgCIAEoCRIaChJ3b3JrZXJfc2VjcmV0X25hbWUYAyABKAkSFgoJdmF1bHRfcmVmGAQgASgJSACIAQESGAoLcGxhaW5fdmFsdWUYBSABKAlIAYgBAUIMCgpfdmF1bHRfcmVmQg4KDF9wbGFpbl92YWx1ZSJPChtVcGRhdGVTZWNyZXRCaW5kaW5nUmVzcG9uc2USMAoOc2VjcmV0X2JpbmRpbmcYASABKAsyGC5kZXBsb3kudjEuU2VjcmV0QmluZGluZyIoChpEZWxldGVTZWNyZXRCaW5kaW5nUmVxdWVzdBIKCgJpZBgBIAEoCSIuChtEZWxldGVTZWNyZXRCaW5kaW5nUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLDAQoSTGlzdERvbWFpbnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKSAQoTTGlzdERvbWFpbnNSZXNwb25zZRIgCgVpdGVtcxgBIAMoCzIRLmRlcGxveS52MS5Eb21haW4SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIh4KEEdldERvbWFpblJlcXVlc3QSCgoCaWQYASABKAkiNgoRR2V0RG9tYWluUmVzcG9uc2USIQoGZG9tYWluGAEgASgLMhEuZGVwbG95LnYxLkRvbWFpbiKXAQoTQ3JlYXRlRG9tYWluUmVxdWVzdBIWCg5lbnZpcm9ubWVudF9pZBgBIAEoCRIQCghob3N0bmFtZRgCIAEoCRIMCgRtb2RlGAMgASgJEhQKB3pvbmVfaWQYBCABKAlIAIgBARIXCgppc19wcmltYXJ5GAUgASgISAGIAQFCCgoIX3pvbmVfaWRCDQoLX2lzX3ByaW1hcnkiOQoUQ3JlYXRlRG9tYWluUmVzcG9uc2USIQoGZG9tYWluGAEgASgLMhEuZGVwbG95LnYxLkRvbWFpbiIhChNEZWxldGVEb21haW5SZXF1ZXN0EgoKAmlkGAEgASgJIicKFERlbGV0ZURvbWFpblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgixwEKFkxpc3REZXBsb3ltZW50c1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpoBChdMaXN0RGVwbG95bWVudHNSZXNwb25zZRIkCgVpdGVtcxgBIAMoCzIVLmRlcGxveS52MS5EZXBsb3ltZW50Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIiChRHZXREZXBsb3ltZW50UmVxdWVzdBIKCgJpZBgBIAEoCSJCChVHZXREZXBsb3ltZW50UmVzcG9uc2USKQoKZGVwbG95bWVudBgBIAEoCzIVLmRlcGxveS52MS5EZXBsb3ltZW50IosBCgRSZXBvEhYKDmdpdGh1Yl9yZXBvX2lkGAEgASgJEg0KBW93bmVyGAIgASgJEgwKBG5hbWUYAyABKAkSFgoOZGVmYXVsdF9icmFuY2gYBCABKAkSGQoRZ2l0aHViX2FjY291bnRfaWQYBSABKAkSGwoTZ2l0aHViX2FjY291bnRfbmFtZRgGIAEoCSJNChBMaXN0UmVwb3NSZXF1ZXN0EhsKE3Byb3ZpZGVyX2FjY291bnRfaWQYASABKAkSEgoFYWZ0ZXIYAiABKAlIAIgBAUIICgZfYWZ0ZXIiTwoRTGlzdFJlcG9zUmVzcG9uc2USHgoFaXRlbXMYASADKAsyDy5kZXBsb3kudjEuUmVwbxIRCgRuZXh0GAIgASgJSACIAQFCBwoFX25leHQiTwoTTGlzdEJyYW5jaGVzUmVxdWVzdBIbChNwcm92aWRlcl9hY2NvdW50X2lkGAEgASgJEg0KBW93bmVyGAIgASgJEgwKBHJlcG8YAyABKAkiQAoUTGlzdEJyYW5jaGVzUmVzcG9uc2USEAoIYnJhbmNoZXMYASADKAkSFgoOZGVmYXVsdF9icmFuY2gYAiABKAkiKQoXVHJpZ2dlclJlY29uY2lsZVJlcXVlc3QSDgoGYXBwX2lkGAEgASgJIjcKGFRyaWdnZXJSZWNvbmNpbGVSZXNwb25zZRIbCgNhcHAYASABKAsyDi5kZXBsb3kudjEuQXBwIlYKFFRyaWdnZXJEZXBsb3lSZXF1ZXN0EhYKDmVudmlyb25tZW50X2lkGAEgASgJEhcKCmdpdF9icmFuY2gYAiABKAlIAIgBAUINCgtfZ2l0X2JyYW5jaCJCChVUcmlnZ2VyRGVwbG95UmVzcG9uc2USKQoKZGVwbG95bWVudBgBIAEoCzIVLmRlcGxveS52MS5EZXBsb3ltZW50IisKGUdldFJlY29uY2lsZVN0YXR1c1JlcXVlc3QSDgoGYXBwX2lkGAEgASgJInkKGkdldFJlY29uY2lsZVN0YXR1c1Jlc3BvbnNlEi0KCXJlY29uY2lsZRgBIAEoCzIaLmRlcGxveS52MS5SZWNvbmNpbGVTdGF0dXMSLAoMZW52aXJvbm1lbnRzGAIgAygLMhYuZGVwbG95LnYxLkVudmlyb25tZW50MtQVCg1EZXBsb3lTZXJ2aWNlEmcKFExpc3RQcm92aWRlckFjY291bnRzEiYuZGVwbG95LnYxLkxpc3RQcm92aWRlckFjY291bnRzUmVxdWVzdBonLmRlcGxveS52MS5MaXN0UHJvdmlkZXJBY2NvdW50c1Jlc3BvbnNlEmEKEkdldFByb3ZpZGVyQWNjb3VudBIkLmRlcGxveS52MS5HZXRQcm92aWRlckFjY291bnRSZXF1ZXN0GiUuZGVwbG95LnYxLkdldFByb3ZpZGVyQWNjb3VudFJlc3BvbnNlEmoKFUNyZWF0ZVByb3ZpZGVyQWNjb3VudBInLmRlcGxveS52MS5DcmVhdGVQcm92aWRlckFjY291bnRSZXF1ZXN0GiguZGVwbG95LnYxLkNyZWF0ZVByb3ZpZGVyQWNjb3VudFJlc3BvbnNlEmoKFVVwZGF0ZVByb3ZpZGVyQWNjb3VudBInLmRlcGxveS52MS5VcGRhdGVQcm92aWRlckFjY291bnRSZXF1ZXN0GiguZGVwbG95LnYxLlVwZGF0ZVByb3ZpZGVyQWNjb3VudFJlc3BvbnNlEmoKFURlbGV0ZVByb3ZpZGVyQWNjb3VudBInLmRlcGxveS52MS5EZWxldGVQcm92aWRlckFjY291bnRSZXF1ZXN0GiguZGVwbG95LnYxLkRlbGV0ZVByb3ZpZGVyQWNjb3VudFJlc3BvbnNlEkMKCExpc3RBcHBzEhouZGVwbG95LnYxLkxpc3RBcHBzUmVxdWVzdBobLmRlcGxveS52MS5MaXN0QXBwc1Jlc3BvbnNlEj0KBkdldEFwcBIYLmRlcGxveS52MS5HZXRBcHBSZXF1ZXN0GhkuZGVwbG95LnYxLkdldEFwcFJlc3BvbnNlEkYKCUNyZWF0ZUFwcBIbLmRlcGxveS52MS5DcmVhdGVBcHBSZXF1ZXN0GhwuZGVwbG95LnYxLkNyZWF0ZUFwcFJlc3BvbnNlEkYKCVVwZGF0ZUFwcBIbLmRlcGxveS52MS5VcGRhdGVBcHBSZXF1ZXN0GhwuZGVwbG95LnYxLlVwZGF0ZUFwcFJlc3BvbnNlEkYKCURlbGV0ZUFwcBIbLmRlcGxveS52MS5EZWxldGVBcHBSZXF1ZXN0GhwuZGVwbG95LnYxLkRlbGV0ZUFwcFJlc3BvbnNlElsKEExpc3RFbnZpcm9ubWVudHMSIi5kZXBsb3kudjEuTGlzdEVudmlyb25tZW50c1JlcXVlc3QaIy5kZXBsb3kudjEuTGlzdEVudmlyb25tZW50c1Jlc3BvbnNlElUKDkdldEVudmlyb25tZW50EiAuZGVwbG95LnYxLkdldEVudmlyb25tZW50UmVxdWVzdBohLmRlcGxveS52MS5HZXRFbnZpcm9ubWVudFJlc3BvbnNlEl4KEUNyZWF0ZUVudmlyb25tZW50EiMuZGVwbG95LnYxLkNyZWF0ZUVudmlyb25tZW50UmVxdWVzdBokLmRlcGxveS52MS5DcmVhdGVFbnZpcm9ubWVudFJlc3BvbnNlEl4KEVVwZGF0ZUVudmlyb25tZW50EiMuZGVwbG95LnYxLlVwZGF0ZUVudmlyb25tZW50UmVxdWVzdBokLmRlcGxveS52MS5VcGRhdGVFbnZpcm9ubWVudFJlc3BvbnNlEl4KEURlbGV0ZUVudmlyb25tZW50EiMuZGVwbG95LnYxLkRlbGV0ZUVudmlyb25tZW50UmVxdWVzdBokLmRlcGxveS52MS5EZWxldGVFbnZpcm9ubWVudFJlc3BvbnNlEmEKEkxpc3RTZWNyZXRCaW5kaW5ncxIkLmRlcGxveS52MS5MaXN0U2VjcmV0QmluZGluZ3NSZXF1ZXN0GiUuZGVwbG95LnYxLkxpc3RTZWNyZXRCaW5kaW5nc1Jlc3BvbnNlElsKEEdldFNlY3JldEJpbmRpbmcSIi5kZXBsb3kudjEuR2V0U2VjcmV0QmluZGluZ1JlcXVlc3QaIy5kZXBsb3kudjEuR2V0U2VjcmV0QmluZGluZ1Jlc3BvbnNlEmQKE0NyZWF0ZVNlY3JldEJpbmRpbmcSJS5kZXBsb3kudjEuQ3JlYXRlU2VjcmV0QmluZGluZ1JlcXVlc3QaJi5kZXBsb3kudjEuQ3JlYXRlU2VjcmV0QmluZGluZ1Jlc3BvbnNlEmQKE1VwZGF0ZVNlY3JldEJpbmRpbmcSJS5kZXBsb3kudjEuVXBkYXRlU2VjcmV0QmluZGluZ1JlcXVlc3QaJi5kZXBsb3kudjEuVXBkYXRlU2VjcmV0QmluZGluZ1Jlc3BvbnNlEmQKE0RlbGV0ZVNlY3JldEJpbmRpbmcSJS5kZXBsb3kudjEuRGVsZXRlU2VjcmV0QmluZGluZ1JlcXVlc3QaJi5kZXBsb3kudjEuRGVsZXRlU2VjcmV0QmluZGluZ1Jlc3BvbnNlEkwKC0xpc3REb21haW5zEh0uZGVwbG95LnYxLkxpc3REb21haW5zUmVxdWVzdBoeLmRlcGxveS52MS5MaXN0RG9tYWluc1Jlc3BvbnNlEkYKCUdldERvbWFpbhIbLmRlcGxveS52MS5HZXREb21haW5SZXF1ZXN0GhwuZGVwbG95LnYxLkdldERvbWFpblJlc3BvbnNlEk8KDENyZWF0ZURvbWFpbhIeLmRlcGxveS52MS5DcmVhdGVEb21haW5SZXF1ZXN0Gh8uZGVwbG95LnYxLkNyZWF0ZURvbWFpblJlc3BvbnNlEk8KDERlbGV0ZURvbWFpbhIeLmRlcGxveS52MS5EZWxldGVEb21haW5SZXF1ZXN0Gh8uZGVwbG95LnYxLkRlbGV0ZURvbWFpblJlc3BvbnNlElgKD0xpc3REZXBsb3ltZW50cxIhLmRlcGxveS52MS5MaXN0RGVwbG95bWVudHNSZXF1ZXN0GiIuZGVwbG95LnYxLkxpc3REZXBsb3ltZW50c1Jlc3BvbnNlElIKDUdldERlcGxveW1lbnQSHy5kZXBsb3kudjEuR2V0RGVwbG95bWVudFJlcXVlc3QaIC5kZXBsb3kudjEuR2V0RGVwbG95bWVudFJlc3BvbnNlEkYKCUxpc3RSZXBvcxIbLmRlcGxveS52MS5MaXN0UmVwb3NSZXF1ZXN0GhwuZGVwbG95LnYxLkxpc3RSZXBvc1Jlc3BvbnNlEk8KDExpc3RCcmFuY2hlcxIeLmRlcGxveS52MS5MaXN0QnJhbmNoZXNSZXF1ZXN0Gh8uZGVwbG95LnYxLkxpc3RCcmFuY2hlc1Jlc3BvbnNlElsKEFRyaWdnZXJSZWNvbmNpbGUSIi5kZXBsb3kudjEuVHJpZ2dlclJlY29uY2lsZVJlcXVlc3QaIy5kZXBsb3kudjEuVHJpZ2dlclJlY29uY2lsZVJlc3BvbnNlElIKDVRyaWdnZXJEZXBsb3kSHy5kZXBsb3kudjEuVHJpZ2dlckRlcGxveVJlcXVlc3QaIC5kZXBsb3kudjEuVHJpZ2dlckRlcGxveVJlc3BvbnNlEmEKEkdldFJlY29uY2lsZVN0YXR1cxIkLmRlcGxveS52MS5HZXRSZWNvbmNpbGVTdGF0dXNSZXF1ZXN0GiUuZGVwbG95LnYxLkdldFJlY29uY2lsZVN0YXR1c1Jlc3BvbnNlQjlaN2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9kZXBsb3kvdjE7ZGVwbG95djFiBnByb3RvMw", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_common_v1_pagination]);
14
14
 
15
15
  /**
16
16
  * Describes the message deploy.v1.ReconcileStatus.
@@ -425,47 +425,82 @@ export const GetDeploymentRequestSchema = /*@__PURE__*/
425
425
  export const GetDeploymentResponseSchema = /*@__PURE__*/
426
426
  messageDesc(file_deploy_v1_deploy, 58);
427
427
 
428
+ /**
429
+ * Describes the message deploy.v1.Repo.
430
+ * Use `create(RepoSchema)` to create a new message.
431
+ */
432
+ export const RepoSchema = /*@__PURE__*/
433
+ messageDesc(file_deploy_v1_deploy, 59);
434
+
435
+ /**
436
+ * Describes the message deploy.v1.ListReposRequest.
437
+ * Use `create(ListReposRequestSchema)` to create a new message.
438
+ */
439
+ export const ListReposRequestSchema = /*@__PURE__*/
440
+ messageDesc(file_deploy_v1_deploy, 60);
441
+
442
+ /**
443
+ * Describes the message deploy.v1.ListReposResponse.
444
+ * Use `create(ListReposResponseSchema)` to create a new message.
445
+ */
446
+ export const ListReposResponseSchema = /*@__PURE__*/
447
+ messageDesc(file_deploy_v1_deploy, 61);
448
+
449
+ /**
450
+ * Describes the message deploy.v1.ListBranchesRequest.
451
+ * Use `create(ListBranchesRequestSchema)` to create a new message.
452
+ */
453
+ export const ListBranchesRequestSchema = /*@__PURE__*/
454
+ messageDesc(file_deploy_v1_deploy, 62);
455
+
456
+ /**
457
+ * Describes the message deploy.v1.ListBranchesResponse.
458
+ * Use `create(ListBranchesResponseSchema)` to create a new message.
459
+ */
460
+ export const ListBranchesResponseSchema = /*@__PURE__*/
461
+ messageDesc(file_deploy_v1_deploy, 63);
462
+
428
463
  /**
429
464
  * Describes the message deploy.v1.TriggerReconcileRequest.
430
465
  * Use `create(TriggerReconcileRequestSchema)` to create a new message.
431
466
  */
432
467
  export const TriggerReconcileRequestSchema = /*@__PURE__*/
433
- messageDesc(file_deploy_v1_deploy, 59);
468
+ messageDesc(file_deploy_v1_deploy, 64);
434
469
 
435
470
  /**
436
471
  * Describes the message deploy.v1.TriggerReconcileResponse.
437
472
  * Use `create(TriggerReconcileResponseSchema)` to create a new message.
438
473
  */
439
474
  export const TriggerReconcileResponseSchema = /*@__PURE__*/
440
- messageDesc(file_deploy_v1_deploy, 60);
475
+ messageDesc(file_deploy_v1_deploy, 65);
441
476
 
442
477
  /**
443
478
  * Describes the message deploy.v1.TriggerDeployRequest.
444
479
  * Use `create(TriggerDeployRequestSchema)` to create a new message.
445
480
  */
446
481
  export const TriggerDeployRequestSchema = /*@__PURE__*/
447
- messageDesc(file_deploy_v1_deploy, 61);
482
+ messageDesc(file_deploy_v1_deploy, 66);
448
483
 
449
484
  /**
450
485
  * Describes the message deploy.v1.TriggerDeployResponse.
451
486
  * Use `create(TriggerDeployResponseSchema)` to create a new message.
452
487
  */
453
488
  export const TriggerDeployResponseSchema = /*@__PURE__*/
454
- messageDesc(file_deploy_v1_deploy, 62);
489
+ messageDesc(file_deploy_v1_deploy, 67);
455
490
 
456
491
  /**
457
492
  * Describes the message deploy.v1.GetReconcileStatusRequest.
458
493
  * Use `create(GetReconcileStatusRequestSchema)` to create a new message.
459
494
  */
460
495
  export const GetReconcileStatusRequestSchema = /*@__PURE__*/
461
- messageDesc(file_deploy_v1_deploy, 63);
496
+ messageDesc(file_deploy_v1_deploy, 68);
462
497
 
463
498
  /**
464
499
  * Describes the message deploy.v1.GetReconcileStatusResponse.
465
500
  * Use `create(GetReconcileStatusResponseSchema)` to create a new message.
466
501
  */
467
502
  export const GetReconcileStatusResponseSchema = /*@__PURE__*/
468
- messageDesc(file_deploy_v1_deploy, 64);
503
+ messageDesc(file_deploy_v1_deploy, 69);
469
504
 
470
505
  /**
471
506
  * @generated from service deploy.v1.DeployService
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { BackfillModelIndexesRequest, BackfillModelIndexesResponse, BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, ClearSlowQueryAdvisorEntryRequest, ClearSlowQueryAdvisorEntryResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, ListSlowQueryAdvisorEntriesRequest, ListSlowQueryAdvisorEntriesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, SlowQueryAdvisorSummaryRequest, SlowQueryAdvisorSummaryResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
6
+ import { BackfillModelIndexesRequest, BackfillModelIndexesResponse, BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, ClearSlowQueryAdvisorEntryRequest, ClearSlowQueryAdvisorEntryResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EmbeddingDigestsRequest, EmbeddingDigestsResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, ListSlowQueryAdvisorEntriesRequest, ListSlowQueryAdvisorEntriesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RecordsMissingEmbeddingRequest, RecordsMissingEmbeddingResponse, RevertToVersionRequest, RevertToVersionResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, SlowQueryAdvisorSummaryRequest, SlowQueryAdvisorSummaryResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -444,6 +444,26 @@ export declare const RecordsService: {
444
444
  readonly O: typeof SearchEmbeddingsResponse,
445
445
  readonly kind: MethodKind.Unary,
446
446
  },
447
+ /**
448
+ * Coverage: which records lack an embedding, and what's the stored digest.
449
+ *
450
+ * @generated from rpc records.v1.RecordsService.RecordsMissingEmbedding
451
+ */
452
+ readonly recordsMissingEmbedding: {
453
+ readonly name: "RecordsMissingEmbedding",
454
+ readonly I: typeof RecordsMissingEmbeddingRequest,
455
+ readonly O: typeof RecordsMissingEmbeddingResponse,
456
+ readonly kind: MethodKind.Unary,
457
+ },
458
+ /**
459
+ * @generated from rpc records.v1.RecordsService.EmbeddingDigests
460
+ */
461
+ readonly embeddingDigests: {
462
+ readonly name: "EmbeddingDigests",
463
+ readonly I: typeof EmbeddingDigestsRequest,
464
+ readonly O: typeof EmbeddingDigestsResponse,
465
+ readonly kind: MethodKind.Unary,
466
+ },
447
467
  /**
448
468
  * @generated from rpc records.v1.RecordsService.EnqueueGenerateEmbedding
449
469
  */
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { BackfillModelIndexesRequest, BackfillModelIndexesResponse, BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, ClearSlowQueryAdvisorEntryRequest, ClearSlowQueryAdvisorEntryResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, ListSlowQueryAdvisorEntriesRequest, ListSlowQueryAdvisorEntriesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, SlowQueryAdvisorSummaryRequest, SlowQueryAdvisorSummaryResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
6
+ import { BackfillModelIndexesRequest, BackfillModelIndexesResponse, BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, ClearSlowQueryAdvisorEntryRequest, ClearSlowQueryAdvisorEntryResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EmbeddingDigestsRequest, EmbeddingDigestsResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, ListSlowQueryAdvisorEntriesRequest, ListSlowQueryAdvisorEntriesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RecordsMissingEmbeddingRequest, RecordsMissingEmbeddingResponse, RevertToVersionRequest, RevertToVersionResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, SlowQueryAdvisorSummaryRequest, SlowQueryAdvisorSummaryResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -444,6 +444,26 @@ export const RecordsService = {
444
444
  O: SearchEmbeddingsResponse,
445
445
  kind: MethodKind.Unary,
446
446
  },
447
+ /**
448
+ * Coverage: which records lack an embedding, and what's the stored digest.
449
+ *
450
+ * @generated from rpc records.v1.RecordsService.RecordsMissingEmbedding
451
+ */
452
+ recordsMissingEmbedding: {
453
+ name: "RecordsMissingEmbedding",
454
+ I: RecordsMissingEmbeddingRequest,
455
+ O: RecordsMissingEmbeddingResponse,
456
+ kind: MethodKind.Unary,
457
+ },
458
+ /**
459
+ * @generated from rpc records.v1.RecordsService.EmbeddingDigests
460
+ */
461
+ embeddingDigests: {
462
+ name: "EmbeddingDigests",
463
+ I: EmbeddingDigestsRequest,
464
+ O: EmbeddingDigestsResponse,
465
+ kind: MethodKind.Unary,
466
+ },
447
467
  /**
448
468
  * @generated from rpc records.v1.RecordsService.EnqueueGenerateEmbedding
449
469
  */