@raystack/proton 0.1.0-8cb19702a3e47d173732860d58084b83d6941865 → 0.1.0-985fb92154095bf54ef5ed08a3995100c147a25d
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/README.md +2 -0
- package/google/api/annotations_pb.d.ts +34 -0
- package/google/api/annotations_pb.js +36 -0
- package/google/api/annotations_pb.ts +1 -1
- package/google/api/field_behavior_pb.d.ts +134 -0
- package/google/api/field_behavior_pb.js +65 -0
- package/google/api/field_behavior_pb.ts +1 -1
- package/google/api/http_pb.d.ts +477 -0
- package/google/api/http_pb.js +47 -0
- package/google/api/http_pb.ts +1 -1
- package/google/api/httpbody_pb.d.ts +104 -0
- package/google/api/httpbody_pb.js +34 -0
- package/google/api/httpbody_pb.ts +1 -1
- package/index.d.ts +10 -0
- package/index.js +10 -0
- package/package.json +37 -36
- package/protoc-gen-openapiv2/options/annotations_pb.d.ts +63 -0
- package/protoc-gen-openapiv2/options/annotations_pb.js +69 -0
- package/protoc-gen-openapiv2/options/annotations_pb.ts +1 -1
- package/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +1497 -0
- package/protoc-gen-openapiv2/options/openapiv2_pb.js +232 -0
- package/protoc-gen-openapiv2/options/openapiv2_pb.ts +1 -1
- package/raystack/assets/index.d.ts +29 -0
- package/raystack/assets/index.js +29 -0
- package/raystack/assets/v1beta1/bucket_pb.d.ts +180 -0
- package/raystack/assets/v1beta1/bucket_pb.js +32 -0
- package/raystack/assets/v1beta1/bucket_pb.ts +1 -1
- package/raystack/assets/v1beta1/dashboard_pb.d.ts +217 -0
- package/raystack/assets/v1beta1/dashboard_pb.js +32 -0
- package/raystack/assets/v1beta1/dashboard_pb.ts +1 -1
- package/raystack/assets/v1beta1/event_pb.d.ts +52 -0
- package/raystack/assets/v1beta1/event_pb.js +20 -0
- package/raystack/assets/v1beta1/event_pb.ts +1 -1
- package/raystack/assets/v1beta1/group_pb.d.ts +105 -0
- package/raystack/assets/v1beta1/group_pb.js +30 -0
- package/raystack/assets/v1beta1/group_pb.ts +1 -1
- package/raystack/assets/v1beta1/job_pb.d.ts +78 -0
- package/raystack/assets/v1beta1/job_pb.js +25 -0
- package/raystack/assets/v1beta1/job_pb.ts +1 -1
- package/raystack/assets/v1beta1/lineage_pb.d.ts +43 -0
- package/raystack/assets/v1beta1/lineage_pb.js +20 -0
- package/raystack/assets/v1beta1/lineage_pb.ts +1 -1
- package/raystack/assets/v1beta1/ownership_pb.d.ts +78 -0
- package/raystack/assets/v1beta1/ownership_pb.js +26 -0
- package/raystack/assets/v1beta1/ownership_pb.ts +1 -1
- package/raystack/assets/v1beta1/preview_pb.d.ts +41 -0
- package/raystack/assets/v1beta1/preview_pb.js +20 -0
- package/raystack/assets/v1beta1/preview_pb.ts +1 -1
- package/raystack/assets/v1beta1/properties_pb.d.ts +44 -0
- package/raystack/assets/v1beta1/properties_pb.js +20 -0
- package/raystack/assets/v1beta1/properties_pb.ts +1 -1
- package/raystack/assets/v1beta1/resource_pb.d.ts +74 -0
- package/raystack/assets/v1beta1/resource_pb.js +19 -0
- package/raystack/assets/v1beta1/resource_pb.ts +1 -1
- package/raystack/assets/v1beta1/schema_pb.d.ts +169 -0
- package/raystack/assets/v1beta1/schema_pb.js +41 -0
- package/raystack/assets/v1beta1/schema_pb.ts +1 -1
- package/raystack/assets/v1beta1/table_pb.d.ts +192 -0
- package/raystack/assets/v1beta1/table_pb.js +41 -0
- package/raystack/assets/v1beta1/table_pb.ts +1 -1
- package/raystack/assets/v1beta1/timestamp_pb.d.ts +68 -0
- package/raystack/assets/v1beta1/timestamp_pb.js +27 -0
- package/raystack/assets/v1beta1/timestamp_pb.ts +1 -1
- package/raystack/assets/v1beta1/topic_pb.d.ts +125 -0
- package/raystack/assets/v1beta1/topic_pb.js +33 -0
- package/raystack/assets/v1beta1/topic_pb.ts +1 -1
- package/raystack/assets/v1beta1/user_pb.d.ts +216 -0
- package/raystack/assets/v1beta1/user_pb.js +37 -0
- package/raystack/assets/v1beta1/user_pb.ts +1 -1
- package/raystack/assets/v1beta2/application_pb.d.ts +59 -0
- package/raystack/assets/v1beta2/application_pb.js +20 -0
- package/raystack/assets/v1beta2/application_pb.ts +1 -1
- package/raystack/assets/v1beta2/asset_pb.d.ts +129 -0
- package/raystack/assets/v1beta2/asset_pb.js +21 -0
- package/raystack/assets/v1beta2/asset_pb.ts +1 -1
- package/raystack/assets/v1beta2/bucket_pb.d.ts +163 -0
- package/raystack/assets/v1beta2/bucket_pb.js +28 -0
- package/raystack/assets/v1beta2/bucket_pb.ts +1 -1
- package/raystack/assets/v1beta2/common_pb.d.ts +170 -0
- package/raystack/assets/v1beta2/common_pb.js +41 -0
- package/raystack/assets/v1beta2/common_pb.ts +1 -1
- package/raystack/assets/v1beta2/dashboard_pb.d.ts +192 -0
- package/raystack/assets/v1beta2/dashboard_pb.js +28 -0
- package/raystack/assets/v1beta2/dashboard_pb.ts +1 -1
- package/raystack/assets/v1beta2/experiment_pb.d.ts +134 -0
- package/raystack/assets/v1beta2/experiment_pb.js +27 -0
- package/raystack/assets/v1beta2/experiment_pb.ts +1 -1
- package/raystack/assets/v1beta2/feature_table_pb.d.ts +167 -0
- package/raystack/assets/v1beta2/feature_table_pb.js +34 -0
- package/raystack/assets/v1beta2/feature_table_pb.ts +1 -1
- package/raystack/assets/v1beta2/group_pb.d.ts +77 -0
- package/raystack/assets/v1beta2/group_pb.js +27 -0
- package/raystack/assets/v1beta2/group_pb.ts +1 -1
- package/raystack/assets/v1beta2/job_pb.d.ts +47 -0
- package/raystack/assets/v1beta2/job_pb.js +20 -0
- package/raystack/assets/v1beta2/job_pb.ts +1 -1
- package/raystack/assets/v1beta2/metric_pb.d.ts +83 -0
- package/raystack/assets/v1beta2/metric_pb.js +20 -0
- package/raystack/assets/v1beta2/metric_pb.ts +1 -1
- package/raystack/assets/v1beta2/model_pb.d.ts +227 -0
- package/raystack/assets/v1beta2/model_pb.js +41 -0
- package/raystack/assets/v1beta2/model_pb.ts +1 -1
- package/raystack/assets/v1beta2/table_pb.d.ts +283 -0
- package/raystack/assets/v1beta2/table_pb.js +48 -0
- package/raystack/assets/v1beta2/table_pb.ts +1 -1
- package/raystack/assets/v1beta2/topic_pb.d.ts +117 -0
- package/raystack/assets/v1beta2/topic_pb.js +34 -0
- package/raystack/assets/v1beta2/topic_pb.ts +1 -1
- package/raystack/assets/v1beta2/user_pb.d.ts +203 -0
- package/raystack/assets/v1beta2/user_pb.js +34 -0
- package/raystack/assets/v1beta2/user_pb.ts +1 -1
- package/raystack/common/index.d.ts +2 -0
- package/raystack/common/index.js +2 -0
- package/raystack/common/v1/service-CommonService_connectquery.d.ts +10 -0
- package/raystack/common/v1/service-CommonService_connectquery.js +10 -0
- package/raystack/common/v1/service-CommonService_connectquery.ts +1 -1
- package/raystack/common/v1/service_pb.d.ts +100 -0
- package/raystack/common/v1/service_pb.js +42 -0
- package/raystack/common/v1/service_pb.ts +1 -1
- package/raystack/compass/index.d.ts +2 -0
- package/raystack/compass/index.js +2 -0
- package/raystack/compass/v1beta1/service-CompassService_connectquery.d.ts +184 -0
- package/raystack/compass/v1beta1/service-CompassService_connectquery.js +225 -0
- package/raystack/compass/v1beta1/service-CompassService_connectquery.ts +1 -1
- package/raystack/compass/v1beta1/service_pb.d.ts +2994 -0
- package/raystack/compass/v1beta1/service_pb.js +745 -0
- package/raystack/compass/v1beta1/service_pb.ts +1 -1
- package/raystack/entropy/index.d.ts +4 -0
- package/raystack/entropy/index.js +4 -0
- package/raystack/entropy/v1beta1/module-ModuleService_connectquery.d.ts +26 -0
- package/raystack/entropy/v1beta1/module-ModuleService_connectquery.js +30 -0
- package/raystack/entropy/v1beta1/module-ModuleService_connectquery.ts +1 -1
- package/raystack/entropy/v1beta1/module_pb.d.ts +261 -0
- package/raystack/entropy/v1beta1/module_pb.js +97 -0
- package/raystack/entropy/v1beta1/module_pb.ts +1 -1
- package/raystack/entropy/v1beta1/resource-ResourceService_connectquery.d.ts +34 -0
- package/raystack/entropy/v1beta1/resource-ResourceService_connectquery.js +40 -0
- package/raystack/entropy/v1beta1/resource-ResourceService_connectquery.ts +1 -1
- package/raystack/entropy/v1beta1/resource_pb.d.ts +636 -0
- package/raystack/entropy/v1beta1/resource_pb.js +200 -0
- package/raystack/entropy/v1beta1/resource_pb.ts +1 -1
- package/raystack/frontier/index.d.ts +5 -0
- package/raystack/frontier/index.js +5 -0
- package/raystack/frontier/v1beta1/admin-AdminService_connectquery.d.ts +269 -0
- package/raystack/frontier/v1beta1/admin-AdminService_connectquery.js +323 -0
- package/raystack/frontier/v1beta1/admin-AdminService_connectquery.ts +22 -1
- package/raystack/frontier/v1beta1/admin_pb.d.ts +3627 -0
- package/raystack/frontier/v1beta1/admin_pb.js +935 -0
- package/raystack/frontier/v1beta1/admin_pb.ts +179 -10
- package/raystack/frontier/v1beta1/frontier-FrontierService_connectquery.d.ts +738 -0
- package/raystack/frontier/v1beta1/frontier-FrontierService_connectquery.js +905 -0
- package/raystack/frontier/v1beta1/frontier-FrontierService_connectquery.ts +29 -18
- package/raystack/frontier/v1beta1/frontier_pb.d.ts +8820 -0
- package/raystack/frontier/v1beta1/frontier_pb.js +2593 -0
- package/raystack/frontier/v1beta1/frontier_pb.ts +508 -461
- package/raystack/frontier/v1beta1/models_pb.d.ts +3092 -0
- package/raystack/frontier/v1beta1/models_pb.js +504 -0
- package/raystack/frontier/v1beta1/models_pb.ts +359 -52
- package/raystack/guardian/index.d.ts +2 -0
- package/raystack/guardian/index.js +2 -0
- package/raystack/guardian/v1beta1/guardian-GuardianService_connectquery.d.ts +168 -0
- package/raystack/guardian/v1beta1/guardian-GuardianService_connectquery.js +207 -0
- package/raystack/guardian/v1beta1/guardian-GuardianService_connectquery.ts +1 -1
- package/raystack/guardian/v1beta1/guardian_pb.d.ts +3537 -0
- package/raystack/guardian/v1beta1/guardian_pb.js +823 -0
- package/raystack/guardian/v1beta1/guardian_pb.ts +1 -1
- package/raystack/optimus/core/v1beta1/backup-BackupService_connectquery.d.ts +18 -0
- package/raystack/optimus/core/v1beta1/backup-BackupService_connectquery.js +20 -0
- package/raystack/optimus/core/v1beta1/backup-BackupService_connectquery.ts +1 -1
- package/raystack/optimus/core/v1beta1/backup_pb.d.ts +256 -0
- package/raystack/optimus/core/v1beta1/backup_pb.js +77 -0
- package/raystack/optimus/core/v1beta1/backup_pb.ts +1 -1
- package/raystack/optimus/core/v1beta1/job_run-JobRunService_connectquery.d.ts +30 -0
- package/raystack/optimus/core/v1beta1/job_run-JobRunService_connectquery.js +33 -0
- package/raystack/optimus/core/v1beta1/job_run-JobRunService_connectquery.ts +1 -1
- package/raystack/optimus/core/v1beta1/job_run_pb.d.ts +410 -0
- package/raystack/optimus/core/v1beta1/job_run_pb.js +127 -0
- package/raystack/optimus/core/v1beta1/job_run_pb.ts +1 -1
- package/raystack/optimus/core/v1beta1/job_spec-JobSpecificationService_connectquery.d.ts +98 -0
- package/raystack/optimus/core/v1beta1/job_spec-JobSpecificationService_connectquery.js +112 -0
- package/raystack/optimus/core/v1beta1/job_spec-JobSpecificationService_connectquery.ts +1 -1
- package/raystack/optimus/core/v1beta1/job_spec_pb.d.ts +1953 -0
- package/raystack/optimus/core/v1beta1/job_spec_pb.js +487 -0
- package/raystack/optimus/core/v1beta1/job_spec_pb.ts +1 -1
- package/raystack/optimus/core/v1beta1/namespace-NamespaceService_connectquery.d.ts +24 -0
- package/raystack/optimus/core/v1beta1/namespace-NamespaceService_connectquery.js +26 -0
- package/raystack/optimus/core/v1beta1/namespace-NamespaceService_connectquery.ts +1 -1
- package/raystack/optimus/core/v1beta1/namespace_pb.d.ts +180 -0
- package/raystack/optimus/core/v1beta1/namespace_pb.js +69 -0
- package/raystack/optimus/core/v1beta1/namespace_pb.ts +1 -1
- package/raystack/optimus/core/v1beta1/project-ProjectService_connectquery.d.ts +24 -0
- package/raystack/optimus/core/v1beta1/project-ProjectService_connectquery.js +26 -0
- package/raystack/optimus/core/v1beta1/project-ProjectService_connectquery.ts +1 -1
- package/raystack/optimus/core/v1beta1/project_pb.d.ts +166 -0
- package/raystack/optimus/core/v1beta1/project_pb.js +69 -0
- package/raystack/optimus/core/v1beta1/project_pb.ts +2 -29
- package/raystack/optimus/core/v1beta1/replay-ReplayService_connectquery.d.ts +22 -0
- package/raystack/optimus/core/v1beta1/replay-ReplayService_connectquery.js +25 -0
- package/raystack/optimus/core/v1beta1/replay-ReplayService_connectquery.ts +1 -1
- package/raystack/optimus/core/v1beta1/replay_pb.d.ts +331 -0
- package/raystack/optimus/core/v1beta1/replay_pb.js +91 -0
- package/raystack/optimus/core/v1beta1/replay_pb.ts +1 -1
- package/raystack/optimus/core/v1beta1/resource-ResourceService_connectquery.d.ts +43 -0
- package/raystack/optimus/core/v1beta1/resource-ResourceService_connectquery.js +48 -0
- package/raystack/optimus/core/v1beta1/resource-ResourceService_connectquery.ts +1 -1
- package/raystack/optimus/core/v1beta1/resource_pb.d.ts +507 -0
- package/raystack/optimus/core/v1beta1/resource_pb.js +134 -0
- package/raystack/optimus/core/v1beta1/resource_pb.ts +1 -1
- package/raystack/optimus/core/v1beta1/runtime-RuntimeService_connectquery.d.ts +12 -0
- package/raystack/optimus/core/v1beta1/runtime-RuntimeService_connectquery.js +12 -0
- package/raystack/optimus/core/v1beta1/runtime-RuntimeService_connectquery.ts +1 -1
- package/raystack/optimus/core/v1beta1/runtime_pb.d.ts +62 -0
- package/raystack/optimus/core/v1beta1/runtime_pb.js +36 -0
- package/raystack/optimus/core/v1beta1/runtime_pb.ts +1 -1
- package/raystack/optimus/core/v1beta1/secret-SecretService_connectquery.d.ts +30 -0
- package/raystack/optimus/core/v1beta1/secret-SecretService_connectquery.js +33 -0
- package/raystack/optimus/core/v1beta1/secret-SecretService_connectquery.ts +1 -1
- package/raystack/optimus/core/v1beta1/secret_pb.d.ts +250 -0
- package/raystack/optimus/core/v1beta1/secret_pb.js +84 -0
- package/raystack/optimus/core/v1beta1/secret_pb.ts +1 -1
- package/raystack/optimus/core/v1beta1/status_pb.d.ts +78 -0
- package/raystack/optimus/core/v1beta1/status_pb.js +31 -0
- package/raystack/optimus/core/v1beta1/status_pb.ts +1 -1
- package/raystack/optimus/integration/v1beta1/event_pb.d.ts +239 -0
- package/raystack/optimus/integration/v1beta1/event_pb.js +62 -0
- package/raystack/optimus/integration/v1beta1/event_pb.ts +1 -1
- package/raystack/optimus/plugins/v1beta1/dependency_resolver-DependencyResolverModService_connectquery.d.ts +31 -0
- package/raystack/optimus/plugins/v1beta1/dependency_resolver-DependencyResolverModService_connectquery.js +34 -0
- package/raystack/optimus/plugins/v1beta1/dependency_resolver-DependencyResolverModService_connectquery.ts +1 -1
- package/raystack/optimus/plugins/v1beta1/dependency_resolver_pb.d.ts +353 -0
- package/raystack/optimus/plugins/v1beta1/dependency_resolver_pb.js +120 -0
- package/raystack/optimus/plugins/v1beta1/dependency_resolver_pb.ts +1 -1
- package/raystack/predator/index.d.ts +2 -0
- package/raystack/predator/index.js +2 -0
- package/raystack/predator/v1beta1/metrics_log_pb.d.ts +163 -0
- package/raystack/predator/v1beta1/metrics_log_pb.js +48 -0
- package/raystack/predator/v1beta1/metrics_log_pb.ts +1 -1
- package/raystack/predator/v1beta1/result_log_pb.d.ts +143 -0
- package/raystack/predator/v1beta1/result_log_pb.js +42 -0
- package/raystack/predator/v1beta1/result_log_pb.ts +1 -1
- package/raystack/raccoon/index.d.ts +2 -0
- package/raystack/raccoon/index.js +2 -0
- package/raystack/raccoon/v1beta1/raccoon-EventService_connectquery.d.ts +10 -0
- package/raystack/raccoon/v1beta1/raccoon-EventService_connectquery.js +10 -0
- package/raystack/raccoon/v1beta1/raccoon-EventService_connectquery.ts +1 -1
- package/raystack/raccoon/v1beta1/raccoon_pb.d.ts +268 -0
- package/raystack/raccoon/v1beta1/raccoon_pb.js +64 -0
- package/raystack/raccoon/v1beta1/raccoon_pb.ts +1 -1
- package/raystack/siren/index.d.ts +2 -0
- package/raystack/siren/index.js +2 -0
- package/raystack/siren/v1beta1/siren-SirenService_connectquery.d.ts +146 -0
- package/raystack/siren/v1beta1/siren-SirenService_connectquery.js +180 -0
- package/raystack/siren/v1beta1/siren-SirenService_connectquery.ts +1 -1
- package/raystack/siren/v1beta1/siren_pb.d.ts +2281 -0
- package/raystack/siren/v1beta1/siren_pb.js +603 -0
- package/raystack/siren/v1beta1/siren_pb.ts +1 -1
- package/raystack/stencil/index.d.ts +2 -0
- package/raystack/stencil/index.js +2 -0
- package/raystack/stencil/v1beta1/stencil-StencilService_connectquery.d.ts +70 -0
- package/raystack/stencil/v1beta1/stencil-StencilService_connectquery.js +85 -0
- package/raystack/stencil/v1beta1/stencil-StencilService_connectquery.ts +1 -1
- package/raystack/stencil/v1beta1/stencil_pb.d.ts +1057 -0
- package/raystack/stencil/v1beta1/stencil_pb.js +298 -0
- package/raystack/stencil/v1beta1/stencil_pb.ts +1 -1
- package/validate/validate_pb.d.ts +1953 -0
- package/validate/validate_pb.js +223 -0
- package/validate/validate_pb.ts +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @generated by protoc-gen-es v2.6.2 with parameter "target=ts,import_extension=none"
|
|
1
|
+
// @generated by protoc-gen-es v2.6.2 with parameter "target=ts+js+dts,import_extension=none"
|
|
2
2
|
// @generated from file raystack/frontier/v1beta1/admin.proto (package raystack.frontier.v1beta1, syntax proto3)
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
|
|
@@ -11,7 +11,7 @@ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bu
|
|
|
11
11
|
import type { HttpBodySchema } from "../../../google/api/httpbody_pb";
|
|
12
12
|
import { file_google_api_httpbody } from "../../../google/api/httpbody_pb";
|
|
13
13
|
import { file_protoc_gen_openapiv2_options_annotations } from "../../../protoc-gen-openapiv2/options/annotations_pb";
|
|
14
|
-
import type { BillingAccount, CheckoutProductBody, CheckoutSubscriptionBody, ExportOrganizationsRequestSchema, Group, Invoice, Organization, OrganizationKyc, Permission, Preference, PreferenceRequestBody, Product, Project, Prospect, Prospect_Status, Relation, Resource, Role, RoleRequestBody, RQLQueryGroupResponse, RQLQueryPaginationResponse, RQLRequest, ServiceUser, Subscription, User, Webhook } from "./models_pb";
|
|
14
|
+
import type { AuditRecord, BillingAccount, CheckoutProductBody, CheckoutSubscriptionBody, ExportOrganizationsRequestSchema, Group, Invoice, Organization, OrganizationKyc, Permission, Preference, PreferenceRequestBody, Product, Project, Prospect, Prospect_Status, Relation, Resource, Role, RoleRequestBody, RQLExportRequest, RQLQueryGroupResponse, RQLQueryPaginationResponse, RQLRequest, ServiceUser, Session, Subscription, User, Webhook } from "./models_pb";
|
|
15
15
|
import { file_raystack_frontier_v1beta1_models } from "./models_pb";
|
|
16
16
|
import { file_validate_validate } from "../../../validate/validate_pb";
|
|
17
17
|
import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
@@ -20,7 +20,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
|
20
20
|
* Describes the file raystack/frontier/v1beta1/admin.proto.
|
|
21
21
|
*/
|
|
22
22
|
export const file_raystack_frontier_v1beta1_admin: GenFile = /*@__PURE__*/
|
|
23
|
-
fileDesc("CiVyYXlzdGFjay9mcm9udGllci92MWJldGExL2FkbWluLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIuADChNMaXN0QWxsVXNlcnNSZXF1ZXN0EmMKCXBhZ2Vfc2l6ZRgBIAEoBUJQkkFEMkJUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyA1MC76QgYaBCgBQAESTAoIcGFnZV9udW0YAiABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAESXwoHa2V5d29yZBgDIAEoCUJOkkFLMklUaGUga2V5d29yZCB0byBzZWFyY2ggZm9yLiBJdCBjYW4gYmUgYSB1c2VyJ3MgbmFtZSwgZW1haWwsbWV0YWRhdGEgb3IgaWQuEjYKBm9yZ19pZBgEIAEoCUImkkEjMiFUaGUgb3JnYW5pemF0aW9uIGlkIHRvIGZpbHRlciBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYBiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuIlUKFExpc3RBbGxVc2Vyc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFEi4KBXVzZXJzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIhwKGkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXF1ZXN0IlwKG0xpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZRI9Cg1zZXJ2aWNlX3VzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciKdAQoRTGlzdEdyb3Vwc1JlcXVlc3QSNgoGb3JnX2lkGAIgASgJQiaSQSMyIVRoZSBvcmdhbml6YXRpb24gaWQgdG8gZmlsdGVyIGJ5LhJKCgVzdGF0ZRgDIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC5KBAgBEAIiRgoSTGlzdEdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAi1QIKG0xpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBIvCgd1c2VyX2lkGAEgASgJQh6SQRsyGVRoZSB1c2VyIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYAiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuEmsKCXBhZ2Vfc2l6ZRgDIAEoBUJYkkFMMkpUaGUgbWF4aW11bSBudW1iZXIgb2Ygb3JnYW5pemF0aW9ucyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDUwLvpCBhoEKAFAARJMCghwYWdlX251bRgEIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASKTAQocTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24SMwoFY291bnQYAiABKAVCJJJBITIfVG90YWwgbnVtYmVyIG9mIHJlY29yZHMgcHJlc2VudCKZAQoTTGlzdFByb2plY3RzUmVxdWVzdBI2CgZvcmdfaWQYASABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEkoKBXN0YXRlGAIgASgJQjuSQTgyNlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLiJMChRMaXN0UHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCJ2ChRMaXN0UmVsYXRpb25zUmVxdWVzdBIvCgdzdWJqZWN0GAEgASgJQh6SQRsyGVRoZSBzdWJqZWN0IHRvIGZpbHRlciBieS4SLQoGb2JqZWN0GAIgASgJQh2SQRoyGFRoZSBvYmplY3QgdG8gZmlsdGVyIGJ5LiJPChVMaXN0UmVsYXRpb25zUmVzcG9uc2USNgoJcmVsYXRpb25zGAEgAygLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvbiL7AQoUTGlzdFJlc291cmNlc1JlcXVlc3QSLwoHdXNlcl9pZBgBIAEoCUIekkEbMhlUaGUgdXNlciBpZCB0byBmaWx0ZXIgYnkuEjUKCnByb2plY3RfaWQYAiABKAlCIZJBHjIcVGhlIHByb2plY3QgaWQgdG8gZmlsdGVyIGJ5LhI/Cg9vcmdhbml6YXRpb25faWQYAyABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEjoKCW5hbWVzcGFjZRgEIAEoCUInkkEdMhtUaGUgbmFtZXNwYWNlIHRvIGZpbHRlciBieS76QgRyAhADIk8KFUxpc3RSZXNvdXJjZXNSZXNwb25zZRI2CglyZXNvdXJjZXMYASADKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlIk0KEUNyZWF0ZVJvbGVSZXF1ZXN0EjgKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keSJDChJDcmVhdGVSb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJ6ChFVcGRhdGVSb2xlUmVxdWVzdBIrCgJpZBgBIAEoCUIfkkEYMhZUaGUgcm9sZSBpZCB0byB1cGRhdGUu4kEBAhI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlUmVxdWVzdEJvZHkiQwoSVXBkYXRlUm9sZVJlc3BvbnNlEi0KBHJvbGUYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiQAoRRGVsZXRlUm9sZVJlcXVlc3QSKwoCaWQYASABKAlCH5JBGDIWVGhlIHJvbGUgaWQgdG8gZGVsZXRlLuJBAQIiFAoSRGVsZXRlUm9sZVJlc3BvbnNlIr4GChVQZXJtaXNzaW9uUmVxdWVzdEJvZHkSjQEKBG5hbWUYASABKAlCfxgBkkF6MnhUaGUgbmFtZSBvZiB0aGUgcGVybWlzc2lvbi4gSXQgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgYSBGcm9udGllciBpbnN0YW5jZSBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4SjwEKCW5hbWVzcGFjZRgCIAEoCUJ8GAGSQXcydVRoZSBuYW1lc3BhY2Ugb2YgdGhlIHBlcm1pc3Npb24uIFRoZSBuYW1lc3BhY2Ugc2hvdWxkIGJlIGluIHNlcnZpY2UvcmVzb3VyY2UgZm9ybWF0Ljxici8+KkV4YW1wbGU6KmBjb21wdXRlL2d1YXJkaWFuYBJyCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCR5JBRDJCVGhlIG1ldGFkYXRhIG9iamVjdCBmb3IgcGVybWlzc2lvbnMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMuEpIBCgV0aXRsZRgEIAEoCUKCAZJBfzJ9VGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBwZXJtaXNzaW9ucy4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4S+QEKA2tleRgFIAEoCULrAZJB5wEyzAFQZXJtaXNzaW9uIHBhdGgga2V5IGlzIGNvbXBvc2VkIG9mIHRocmVlIHBhcnRzLCAnc2VydmljZS5yZXNvdXJjZS52ZXJiJy4gV2hlcmUgJ3NlcnZpY2UucmVzb3VyY2UnIHdvcmtzIGFzIGEgbmFtZXNwYWNlIGZvciB0aGUgJ3ZlcmInLiBOYW1lc3BhY2UgbmFtZSBjYW5ub3QgYmUgYGFwcGAgYXMgaXQncyByZXNlcnZlZCBmb3IgY29yZSBwZXJtaXNzaW9ucy5KFiJjb21wdXRlLmluc3RhbmNlLmdldCIiWwoXQ3JlYXRlUGVybWlzc2lvblJlcXVlc3QSQAoGYm9kaWVzGAEgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uUmVxdWVzdEJvZHkiVgoYQ3JlYXRlUGVybWlzc2lvblJlc3BvbnNlEjoKC3Blcm1pc3Npb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uImsKF1VwZGF0ZVBlcm1pc3Npb25SZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEj4KBGJvZHkYAiABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBlcm1pc3Npb25SZXF1ZXN0Qm9keSJVChhVcGRhdGVQZXJtaXNzaW9uUmVzcG9uc2USOQoKcGVybWlzc2lvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIlChdEZWxldGVQZXJtaXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIaChhEZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiGAoWTGlzdFByZWZlcmVuY2VzUmVxdWVzdCJVChdMaXN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJhChhDcmVhdGVQcmVmZXJlbmNlc1JlcXVlc3QSRQoLcHJlZmVyZW5jZXMYASADKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VSZXF1ZXN0Qm9keSJWChlDcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlEjkKCnByZWZlcmVuY2UYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2Ui1wUKJ0NoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBJWCgdzdWJqZWN0GAEgASgJQkWSQT4yPHRoZSBzdWJqZWN0IHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGB1c2VyOi4udXVpZG9mdXNlci4uYOJBAQISxAMKCHJlc291cmNlGAIgASgJQrEDkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAhKMAQoKcGVybWlzc2lvbhgDIAEoCUJ4kkFZMld0aGUgcGVybWlzc2lvbiBuYW1lIHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGBnZXRgLCBgbGlzdGAsIGBjb21wdXRlLmluc3RhbmNlLmNyZWF0ZWDiQQEC+kIVchMyEV5bQS1aYS16MC05Ll8tXSskIjoKKENoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgIIvwBChZBZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0EjkKB3VzZXJfaWQYASABKAlCKJJBJTIjVGhlIHVzZXIgaWQgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybS4SSAoOc2VydmljZXVzZXJfaWQYAiABKAlCMJJBLTIrVGhlIHNlcnZpY2UgdXNlciBpZCB0byBhZGQgdG8gdGhlIHBsYXRmb3JtLhJdCghyZWxhdGlvbhgDIAEoCUJLkkFEMkJUaGUgcmVsYXRpb24gdG8gYWRkIGFzIGluIHRoZSBwbGF0Zm9ybS4gSXQgY2FuIGJlIGFkbWluIG9yIG1lbWJlci7iQQECIhkKF0FkZFBsYXRmb3JtVXNlclJlc3BvbnNlIhoKGExpc3RQbGF0Zm9ybVVzZXJzUmVxdWVzdCKJAQoZTGlzdFBsYXRmb3JtVXNlcnNSZXNwb25zZRIuCgV1c2VycxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchI8CgxzZXJ2aWNldXNlcnMYAiADKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyIrIBChlSZW1vdmVQbGF0Zm9ybVVzZXJSZXF1ZXN0EkIKB3VzZXJfaWQYASABKAlCMZJBLjIsVGhlIHVzZXIgaWQgdG8gcmVtb3ZlIGZyb20gdGhlIHRoZSBwbGF0Zm9ybS4SUQoOc2VydmljZXVzZXJfaWQYAiABKAlCOZJBNjI0VGhlIHNlcnZpY2UgdXNlciBpZCB0byByZW1vdmUgZnJvbSB0aGUgdGhlIHBsYXRmb3JtLiIcChpSZW1vdmVQbGF0Zm9ybVVzZXJSZXNwb25zZSLqAQoYRGVsZWdhdGVkQ2hlY2tvdXRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARJOChFzdWJzY3JpcHRpb25fYm9keRgKIAEoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRTdWJzY3JpcHRpb25Cb2R5EkQKDHByb2R1Y3RfYm9keRgLIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRQcm9kdWN0Qm9keSKPAQoZRGVsZWdhdGVkQ2hlY2tvdXRSZXNwb25zZRI9CgxzdWJzY3JpcHRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbhIzCgdwcm9kdWN0GAIgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0It4BChZMaXN0QWxsSW52b2ljZXNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRJmCglwYWdlX3NpemUYAiABKAVCU5JBRzJFVGhlIG1heGltdW0gbnVtYmVyIG9mIGludm9pY2VzIHRvIHJldHVybiBwZXIgcGFnZS4gVGhlIGRlZmF1bHQgaXMgNTAu+kIGGgQoAUABEkwKCHBhZ2VfbnVtGAMgASgFQjqSQS4yLFRoZSBwYWdlIG51bWJlciB0byByZXR1cm4uIFRoZSBkZWZhdWx0IGlzIDEu+kIGGgQoAUABIoQBChdMaXN0QWxsSW52b2ljZXNSZXNwb25zZRI0CghpbnZvaWNlcxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52b2ljZRIzCgVjb3VudBgCIAEoBUIkkkEhMh9Ub3RhbCBudW1iZXIgb2YgcmVjb3JkcyBwcmVzZW50IhkKF0dlbmVyYXRlSW52b2ljZXNSZXF1ZXN0IhoKGEdlbmVyYXRlSW52b2ljZXNSZXNwb25zZSIvCh1MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVxdWVzdBIOCgZvcmdfaWQYASABKAkiZQoeTGlzdEFsbEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlEkMKEGJpbGxpbmdfYWNjb3VudHMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50IpUBChlSZXZlcnRCaWxsaW5nVXNhZ2VSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEh8KCmJpbGxpbmdfaWQYAyABKAlCC/pCCHIGsAEB0AEBEhoKCHVzYWdlX2lkGAQgASgJQgj6QgVyA7ABARIXCgZhbW91bnQYBSABKANCB/pCBCICKAAiHAoaUmV2ZXJ0QmlsbGluZ1VzYWdlUmVzcG9uc2UirwIKEldlYmhvb2tSZXF1ZXN0Qm9keRIVCgN1cmwYASABKAlCCPpCBXIDiAEBEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhkKEXN1YnNjcmliZWRfZXZlbnRzGAMgAygJEksKB2hlYWRlcnMYBCADKAsyOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keS5IZWFkZXJzRW50cnkSKgoFc3RhdGUYBSABKAlCG/pCGHIWUgdlbmFibGVkUghkaXNhYmxlZNABARIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QaLgoMSGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiUwoUQ3JlYXRlV2ViaG9va1JlcXVlc3QSOwoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9va1JlcXVlc3RCb2R5IkwKFUNyZWF0ZVdlYmhvb2tSZXNwb25zZRIzCgd3ZWJob29rGAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rIosBChRVcGRhdGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byB1cGRhdGUu4kEBAvpCBXIDsAEBEjsKBGJvZHkYAiABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2tSZXF1ZXN0Qm9keSJMChVVcGRhdGVXZWJob29rUmVzcG9uc2USMwoHd2ViaG9vaxgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9vayJOChREZWxldGVXZWJob29rUmVxdWVzdBI2CgJpZBgBIAEoCUIqkkEbMhlUaGUgd2ViaG9vayBpZCB0byBkZWxldGUu4kEBAvpCBXIDsAEBIhcKFURlbGV0ZVdlYmhvb2tSZXNwb25zZSIVChNMaXN0V2ViaG9va3NSZXF1ZXN0IkwKFExpc3RXZWJob29rc1Jlc3BvbnNlEjQKCHdlYmhvb2tzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rImkKIVVwZGF0ZUJpbGxpbmdBY2NvdW50TGltaXRzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBEhIKCmNyZWRpdF9taW4YAyABKAMiJAoiVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXNwb25zZSJUCh9HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0EhgKBm9yZ19pZBgBIAEoCUII+kIFcgOwAQESFwoCaWQYAiABKAlCC/pCCHIGsAEB0AEBIksKIEdldEJpbGxpbmdBY2NvdW50RGV0YWlsc1Jlc3BvbnNlEhIKCmNyZWRpdF9taW4YASABKAMSEwoLZHVlX2luX2RheXMYAiABKAMiiQEKIlVwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlsc1JlcXVlc3QSGAoGb3JnX2lkGAEgASgJQgj6QgVyA7ABARIXCgJpZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKY3JlZGl0X21pbhgDIAEoAxIcCgtkdWVfaW5fZGF5cxgEIAEoA0IH+kIEIgIoACIlCiNVcGRhdGVCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSJJChlTZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAgSDAoEbGluaxgDIAEoCSJSChpTZWFyY2hPcmdhbml6YXRpb25zUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCJiChpTZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZRJEChBvcmdhbml6YXRpb25fa3ljGAEgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb25LeWMiHQobTGlzdE9yZ2FuaXphdGlvbnNLeWNSZXF1ZXN0ImUKHExpc3RPcmdhbml6YXRpb25zS3ljUmVzcG9uc2USRQoRb3JnYW5pemF0aW9uc19reWMYASADKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbkt5YyK1BQobU2VhcmNoT3JnYW5pemF0aW9uc1Jlc3BvbnNlEmAKDW9yZ2FuaXphdGlvbnMYASADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXNwb25zZS5Pcmdhbml6YXRpb25SZXN1bHQSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqnAwoST3JnYW5pemF0aW9uUmVzdWx0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFc3RhdGUYBiABKAkSDgoGYXZhdGFyGAcgASgJEhIKCmNyZWF0ZWRfYnkYCCABKAkSEQoJcGxhbl9uYW1lGAkgASgJEi4KDHBheW1lbnRfbW9kZRgKIAEoCUIY+kIVchNSB3ByZXBhaWRSCHBvc3RwYWlkEj0KGXN1YnNjcmlwdGlvbl9jeWNsZV9lbmRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB2NvdW50cnkYDCABKAkSGgoSc3Vic2NyaXB0aW9uX3N0YXRlGA4gASgJEhUKDXBsYW5faW50ZXJ2YWwYDyABKAkSDwoHcGxhbl9pZBgQIAEoCSJMChRMaXN0UHJvc3BlY3RzUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLbAQoVTGlzdFByb3NwZWN0c1Jlc3BvbnNlEjYKCXByb3NwZWN0cxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSJHChJHZXRQcm9zcGVjdFJlcXVlc3QSMQoCaWQYASABKAlCJZJBFDISaWQgb2YgdGhlIHByb3NwZWN04kEBAvpCB3IFEAGwAQEiTAoTR2V0UHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiswYKFVVwZGF0ZVByb3NwZWN0UmVxdWVzdBIxCgJpZBgBIAEoCUIlkkEUMhJpZCBvZiB0aGUgcHJvc3BlY3TiQQEC+kIHcgUQAbABARI+CgRuYW1lGAIgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWVXBkYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiSgoVRGVsZXRlUHJvc3BlY3RSZXF1ZXN0EjEKAmlkGAEgASgJQiWSQRQyEmlkIG9mIHRoZSBwcm9zcGVjdOJBAQL6QgdyBRABsAEBIhgKFkRlbGV0ZVByb3NwZWN0UmVzcG9uc2UigAYKFUNyZWF0ZVByb3NwZWN0UmVxdWVzdBI+CgRuYW1lGAEgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEqwBCgZzdGF0dXMYCCABKA4yKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb3NwZWN0LlN0YXR1c0JwkkFfMl1zdWJzY3JpcHRpb24gc3RhdHVzIGZvciB0aGlzIGFjdGl2aXR5LiBBbGxvd2VkIHZhbHVlcyAtIDEgZm9yIFVOU1VCU0NSSUJFRDsgMiBmb3IgU1VCU0NSSUJFRDviQQEC+kIHggEEGAEYAhJtCgZzb3VyY2UYCSABKAlCXZJBQDI+c291cmNlIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHBsYXRmb3JtLCB3ZWJzaXRlLCBhZG1pbiBldGP6QhdyFTIQXltBLVphLXowLTktX10rJNABARJRCgh2ZXJpZmllZBgKIAEoCEI/kkE8Mjp2ZXJpZmljYXRpb24gc3RhdHVzIG9mIHRoaXMgdXNlciBhZGRpdGlvbiBlLmcuIHRydWUsIGZhbHNlElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiTwoWQ3JlYXRlUHJvc3BlY3RSZXNwb25zZRI1Cghwcm9zcGVjdBgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QiawoeU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IoAECh9TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlEl4KCW9yZ191c2VycxgBIAMoCzJLLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZS5Pcmdhbml6YXRpb25Vc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua8AEKEE9yZ2FuaXphdGlvblVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIxCg1vcmdfam9pbmVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVzdGF0ZRgGIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRIXCg9vcmdhbml6YXRpb25faWQYCyABKAkiNQoeRXhwb3J0T3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIm4KIVNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLaAwoiU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZRJnCgxvcmdfcHJvamVjdHMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVzcG9uc2UuT3JnYW5pemF0aW9uUHJvamVjdBJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGr4BChNPcmdhbml6YXRpb25Qcm9qZWN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFdGl0bGUYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMbWVtYmVyX2NvdW50GAUgASgDEhAKCHVzZXJfaWRzGAYgAygJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD29yZ2FuaXphdGlvbl9pZBgIIAEoCSI4CiFFeHBvcnRPcmdhbml6YXRpb25Qcm9qZWN0c1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiZgoZU2VhcmNoUHJvamVjdFVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCKpAwoaU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2USWAoNcHJvamVjdF91c2VycxgBIAMoCzJBLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoUHJvamVjdFVzZXJzUmVzcG9uc2UuUHJvamVjdFVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqkAQoLUHJvamVjdFVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVlbWFpbBgEIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKcm9sZV9uYW1lcxgIIAMoCRITCgtyb2xlX3RpdGxlcxgJIAMoCRIQCghyb2xlX2lkcxgKIAMoCRISCgpwcm9qZWN0X2lkGAsgASgJIm4KIVNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLNAwoiU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXNSZXNwb25zZRJwChVvcmdhbml6YXRpb25faW52b2ljZXMYASADKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVzcG9uc2UuT3JnYW5pemF0aW9uSW52b2ljZRJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGqgBChNPcmdhbml6YXRpb25JbnZvaWNlEgoKAmlkGAEgASgJEg4KBmFtb3VudBgCIAEoAxIQCghjdXJyZW5jeRgDIAEoCRINCgVzdGF0ZRgEIAEoCRIUCgxpbnZvaWNlX2xpbmsYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGb3JnX2lkGAcgASgJImwKH1NlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi3QMKIFNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlEmoKE29yZ2FuaXphdGlvbl90b2tlbnMYASADKAsyTS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblRva2VuEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UawAEKEU9yZ2FuaXphdGlvblRva2VuEg4KBmFtb3VudBgBIAEoAxIMCgR0eXBlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg8KB3VzZXJfaWQYBCABKAkSEgoKdXNlcl90aXRsZRgFIAEoCRITCgt1c2VyX2F2YXRhchgGIAEoCRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZvcmdfaWQYCCABKAkiNgofRXhwb3J0T3JnYW5pemF0aW9uVG9rZW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJ8Ci9TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLsAwowU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlEpsBCiRvcmdhbml6YXRpb25fc2VydmljZXVzZXJfY3JlZGVudGlhbHMYASADKAsybS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXNwb25zZS5Pcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWwSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRqNAQohT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsEg0KBXRpdGxlGAEgASgJEhkKEXNlcnZpY2V1c2VyX3RpdGxlGAIgASgJEi4KCmNyZWF0ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgEIAEoCSJKChJTZWFyY2hVc2Vyc1JlcXVlc3QSNAoFcXVlcnkYASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi0QEKE1NlYXJjaFVzZXJzUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZSIUChJFeHBvcnRVc2Vyc1JlcXVlc3QifAoeU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXF1ZXN0EiQKAmlkGAEgASgJQhiSQQkyB3VzZXIgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3QiigQKH1NlYXJjaFVzZXJPcmdhbml6YXRpb25zUmVzcG9uc2USZwoSdXNlcl9vcmdhbml6YXRpb25zGAEgAygLMksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1Jlc3BvbnNlLlVzZXJPcmdhbml6YXRpb24SSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrxAQoQVXNlck9yZ2FuaXphdGlvbhIOCgZvcmdfaWQYASABKAkSEQoJb3JnX3RpdGxlGAIgASgJEhAKCG9yZ19uYW1lGAMgASgJEhIKCm9yZ19hdmF0YXIYBCABKAkSFQoNcHJvamVjdF9jb3VudBgFIAEoAxISCgpyb2xlX25hbWVzGAYgAygJEhMKC3JvbGVfdGl0bGVzGAcgAygJEhAKCHJvbGVfaWRzGAggAygJEjEKDW9yZ19qb2luZWRfb24YCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg8KB3VzZXJfaWQYCiABKAkipQEKGVNlYXJjaFVzZXJQcm9qZWN0c1JlcXVlc3QSKQoHdXNlcl9pZBgBIAEoCUIYkkEJMgd1c2VyIElE4kEBAvpCBXIDsAEBEicKBm9yZ19pZBgCIAEoCUIXkkEIMgZvcmcgSUTiQQEC+kIFcgOwAQESNAoFcXVlcnkYAyABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3Qi/QMKGlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlElgKDXVzZXJfcHJvamVjdHMYASADKAsyQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlLlVzZXJQcm9qZWN0EkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2Ua+AEKC1VzZXJQcm9qZWN0EhIKCnByb2plY3RfaWQYASABKAkSFQoNcHJvamVjdF90aXRsZRgCIAEoCRIUCgxwcm9qZWN0X25hbWUYAyABKAkSNgoScHJvamVjdF9jcmVhdGVkX29uGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgp1c2VyX25hbWVzGAUgAygJEhMKC3VzZXJfdGl0bGVzGAYgAygJEhAKCHVzZXJfaWRzGAcgAygJEhQKDHVzZXJfYXZhdGFycxgIIAMoCRIOCgZvcmdfaWQYCSABKAkSDwoHdXNlcl9pZBgKIAEoCSLiDAoeQWRtaW5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0EmkKBGJvZHkYASABKAsyUS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdC5Pcmdhbml6YXRpb25SZXF1ZXN0Qm9keUII+kIFigECEAEa1AsKF09yZ2FuaXphdGlvblJlcXVlc3RCb2R5EvsBCgRuYW1lGAEgASgJQuwBkkHNATLKAVRoZSBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24uIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZW50aXJlIEZyb250aWVyIGluc3RhbmNlLiBUaGUgbmFtZSBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLjxici8+KkV4YW1wbGU6KmAiZnJvbnRpZXItb3JnMS1hY21lImDiQQEC+kIUchIyEF5bQS1aYS16MC05LV9dKyQSsgEKBXRpdGxlGAIgASgJQqIBkkGeATKbAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgb3JnYW5pemF0aW9uLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5Ljxici8+ICpFeGFtcGxlKjogYCJBY21lIEluYyJgEukDCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCvQOSQbkDMrYDTWV0YWRhdGEgb2JqZWN0IGZvciBvcmdhbml6YXRpb25zIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIGRlZmluZWQgaW4gT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEuIFRoZSBtZXRhZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmdhbml6YXRpb24gc3VjaCBhcyBsYWJlbHMsIGRlc2NyaXB0aW9ucyBldGMuIFRoZSBkZWZhdWx0IE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRvbiBmaWVsZHMuIFVwZGF0ZSB0aGUgT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEgdG8gYWRkIG1vcmUgZmllbGRzLiA8YnIvPipFeGFtcGxlKjpgeyJsYWJlbHMiOiB7ImtleSI6ICJ2YWx1ZSJ9LCAiZGVzY3JpcHRpb24iOiAiT3JnYW5pemF0aW9uIGRlc2NyaXB0aW9uIn1gEvACCgZhdmF0YXIYBCABKAlC3wKSQY8CMtMBVGhlIGF2YXRhciBpcyBiYXNlNjQgZW5jb2RlZCBpbWFnZSBkYXRhIG9mIHRoZSB1c2VyLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiBUaGUgaW1hZ2Ugc2hvdWxkIGJlIGxlc3MgdGhhbiAyMDBLQi4gU2hvdWxkIGZvbGxvdyB0aGUgcmVnZXggcGF0dGVybiBgXmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyRgLko3ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBIvpCSXJHGJChDzI+XmRhdGE6aW1hZ2UvKHBuZ3xqcGd8anBlZ3xnaWYpO2Jhc2U2NCwoW2EtekEtWjAtOSsvXSs9ezAsMn0pKyTQAQESpgEKD29yZ19vd25lcl9lbWFpbBgFIAEoCUKMAZJBfjJ8VGhlIGVtYWlsIG9mIHRoZSB1c2VyLiBUaGUgZW1haWwgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuPGJyLz4qRXhhbXBsZToqYCJqb2huLmRvZUByYXlzdGFjay5vcmciYOJBAQL6QgRyAmABImAKH0FkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2USPQoMb3JnYW5pemF0aW9uGAEgASgLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iTQoVU2VhcmNoSW52b2ljZXNSZXF1ZXN0EjQKBXF1ZXJ5GAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IrUDChZTZWFyY2hJbnZvaWNlc1Jlc3BvbnNlEksKCGludm9pY2VzGAEgAygLMjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1Jlc3BvbnNlLkludm9pY2USSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrBAQoHSW52b2ljZRIKCgJpZBgBIAEoCRIOCgZhbW91bnQYAiABKAMSEAoIY3VycmVuY3kYAyABKAkSDQoFc3RhdGUYBCABKAkSFAoMaW52b2ljZV9saW5rGAUgASgJEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgHIAEoCRIQCghvcmdfbmFtZRgIIAEoCRIRCglvcmdfdGl0bGUYCSABKAkicgolU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCK7BAomU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2USfQoab3JnYW5pemF0aW9uX3NlcnZpY2VfdXNlcnMYASADKAsyWS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblNlcnZpY2VVc2VyEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UaMgoHUHJvamVjdBIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIMCgRuYW1lGAMgASgJGtEBChdPcmdhbml6YXRpb25TZXJ2aWNlVXNlchIKCgJpZBgBIAEoCRINCgV0aXRsZRgCIAEoCRIOCgZvcmdfaWQYAyABKAkSWwoIcHJvamVjdHMYBCADKAsySS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlLlByb2plY3QSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiHAoaR2V0Q3VycmVudEFkbWluVXNlclJlcXVlc3QiigEKG0dldEN1cnJlbnRBZG1pblVzZXJSZXNwb25zZRItCgR1c2VyGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyEjwKDHNlcnZpY2VfdXNlchgCIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIy7HkKDEFkbWluU2VydmljZRKvAgoMTGlzdEFsbFVzZXJzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsVXNlcnNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsVXNlcnNSZXNwb25zZSK9AZJBnQEKBFVzZXISDkxpc3QgYWxsIHVzZXJzGoQBTGlzdHMgYWxsIHRoZSB1c2VycyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkga2V5d29yZCwgb3JnYW5pemF0aW9uLCBncm91cCBhbmQgc3RhdGUugtPkkwIWEhQvdjFiZXRhMS9hZG1pbi91c2VycxKbAgoTTGlzdEFsbFNlcnZpY2VVc2VycxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbFNlcnZpY2VVc2Vyc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZSKUAZJBbgoEVXNlchIWTGlzdCBhbGwgc2VydmljZSB1c2VycxpOTGlzdHMgYWxsIHRoZSBzZXJ2aWNlIHVzZXJzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIdEhsvdjFiZXRhMS9hZG1pbi9zZXJ2aWNldXNlcnMSnAIKCkxpc3RHcm91cHMSLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cHNSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0R3JvdXBzUmVzcG9uc2UisAGSQY8BCgVHcm91cBIPTGlzdCBhbGwgZ3JvdXBzGnVMaXN0cyBhbGwgdGhlIGdyb3VwcyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgb3JnYW5pemF0aW9uIGFuZCBzdGF0ZS6C0+STAhcSFS92MWJldGExL2FkbWluL2dyb3VwcxKzAgoUTGlzdEFsbE9yZ2FuaXphdGlvbnMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZSKpAZJBgQEKDE9yZ2FuaXphdGlvbhIWTGlzdCBhbGwgb3JnYW5pemF0aW9ucxpZTGlzdHMgYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSB1c2VyIGFuZCBzdGF0ZS6C0+STAh4SHC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMS8AEKF0FkbWluQ3JlYXRlT3JnYW5pemF0aW9uEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZG1pbkNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2UiXpJBMQoMT3JnYW5pemF0aW9uEiFDcmVhdGUgb3JnYW5pemF0aW9uIGFzIHN1cGVyYWRtaW6C0+STAiQiHC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnM6BGJvZHkSsgIKE1NlYXJjaE9yZ2FuaXphdGlvbnMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25zUmVzcG9uc2UiqwGSQXYKDE9yZ2FuaXphdGlvbhIUU2VhcmNoIG9yZ2FuaXphdGlvbnMaUFNlYXJjaCBvcmdhbml6YXRpb24gYmFzZWQgb24gb3JnIGRlbW9ncmFwaGljIHByb3BlcnRpZXMgYW5kIGJpbGxpbmcgcGxhbiBkZXRhaWxzgtPkkwIsIiMvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3NlYXJjaDoFcXVlcnkS+wEKF1NlYXJjaE9yZ2FuaXphdGlvblVzZXJzEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2UiaZJBKQoMT3JnYW5pemF0aW9uEhlTZWFyY2ggb3JnYW5pemF0aW9uIHVzZXJzgtPkkwI3Ii4vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdXNlcnMvc2VhcmNoOgVxdWVyeRLdAQoSU2VhcmNoUHJvamVjdFVzZXJzEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hQcm9qZWN0VXNlcnNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hQcm9qZWN0VXNlcnNSZXNwb25zZSJakkEfCgdQcm9qZWN0EhRTZWFyY2ggUHJvamVjdCB1c2Vyc4LT5JMCMiIpL3YxYmV0YTEvYWRtaW4vcHJvamVjdHMve2lkfS91c2Vycy9zZWFyY2g6BXF1ZXJ5EooCChpTZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0cxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0c1Jlc3BvbnNlIm+SQSwKDE9yZ2FuaXphdGlvbhIcU2VhcmNoIG9yZ2FuaXphdGlvbiBwcm9qZWN0c4LT5JMCOiIxL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzL3NlYXJjaDoFcXVlcnkSigIKGlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25JbnZvaWNlc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVzcG9uc2Uib5JBLAoMT3JnYW5pemF0aW9uEhxTZWFyY2ggb3JnYW5pemF0aW9uIGludm9pY2VzgtPkkwI6IjEvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vaW52b2ljZXMvc2VhcmNoOgVxdWVyeRKAAgoYU2VhcmNoT3JnYW5pemF0aW9uVG9rZW5zEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Ub2tlbnNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Ub2tlbnNSZXNwb25zZSJrkkEqCgxPcmdhbml6YXRpb24SGlNlYXJjaCBvcmdhbml6YXRpb24gdG9rZW5zgtPkkwI4Ii8vdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vdG9rZW5zL3NlYXJjaDoFcXVlcnkS1AIKKFNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHMSSi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXF1ZXN0GksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVzcG9uc2UijgGSQTwKDE9yZ2FuaXphdGlvbhIsU2VhcmNoIG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbHOC0+STAkkiQC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS9zZXJ2aWNldXNlcl9jcmVkZW50aWFscy9zZWFyY2g6BXF1ZXJ5Ep8CCh5TZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnMSQC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1JlcXVlc3QaQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlIniSQTEKDE9yZ2FuaXphdGlvbhIhU2VhcmNoIG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXJzgtPkkwI+IjUvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vc2VydmljZXVzZXJzL3NlYXJjaDoFcXVlcnkSjQIKE0V4cG9ydE9yZ2FuaXphdGlvbnMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvbnNSZXF1ZXN0GhQuZ29vZ2xlLmFwaS5IdHRwQm9keSKmAZJBeAoMT3JnYW5pemF0aW9uEhRFeHBvcnQgb3JnYW5pemF0aW9ucxpIRXhwb3J0IG9yZ2FuaXphdGlvbiB3aXRoIGRlbW9ncmFwaGljIHByb3BlcnRpZXMgYW5kIGJpbGxpbmcgcGxhbiBkZXRhaWxzOgh0ZXh0L2NzdoLT5JMCJRIjL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy9leHBvcnQwARKIAgoXRXhwb3J0T3JnYW5pemF0aW9uVXNlcnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkimQGSQWAKDE9yZ2FuaXphdGlvbhIZRXhwb3J0IG9yZ2FuaXphdGlvbiB1c2VycxorRXhwb3J0IG9yZ2FuaXphdGlvbiB1c2VyIHRoZWlyIHJvbGUgZGV0YWlsczoIdGV4dC9jc3aC0+STAjASLi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS91c2Vycy9leHBvcnQwARKTAgoaRXhwb3J0T3JnYW5pemF0aW9uUHJvamVjdHMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkingGSQWIKDE9yZ2FuaXphdGlvbhIcRXhwb3J0IG9yZ2FuaXphdGlvbiBwcm9qZWN0cxoqRXhwb3J0IG9yZ2FuaXphdGlvbiBwcm9qZWN0cyB3aXRoIHVzZXIgSURzOgh0ZXh0L2NzdoLT5JMCMxIxL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzL2V4cG9ydDABEvsBChhFeHBvcnRPcmdhbml6YXRpb25Ub2tlbnMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IooBkkFQCgxPcmdhbml6YXRpb24SGkV4cG9ydCBvcmdhbml6YXRpb24gdG9rZW5zGhpFeHBvcnQgb3JnYW5pemF0aW9uIHRva2VuczoIdGV4dC9jc3aC0+STAjESLy92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS90b2tlbnMvZXhwb3J0MAES3QEKC0V4cG9ydFVzZXJzEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FeHBvcnRVc2Vyc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IoYBkkFgCgRVc2VyEgxFeHBvcnQgdXNlcnMaQEV4cG9ydCB1c2VyIHdpdGggZGVtb2dyYXBoaWMgcHJvcGVydGllcyBhbmQgYmlsbGluZyBwbGFuIGRldGFpbHM6CHRleHQvY3N2gtPkkwIdEhsvdjFiZXRhMS9hZG1pbi91c2Vycy9leHBvcnQwARLXAQoLU2VhcmNoVXNlcnMSLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJzUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlcnNSZXNwb25zZSJpkkE8CgRVc2VyEgxTZWFyY2ggdXNlcnMaJlNlYXJjaCB1c2VycyBiYXNlZCBvbiB0aGVpciBwcm9wZXJ0aWVzgtPkkwIkIhsvdjFiZXRhMS9hZG1pbi91c2Vycy9zZWFyY2g6BXF1ZXJ5EvQBChdTZWFyY2hVc2VyT3JnYW5pemF0aW9ucxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1Jlc3BvbnNlImKSQSIKBFVzZXISGlNlYXJjaCB1c2VycyBvcmdhbml6YXRpb25zgtPkkwI3Ii4vdjFiZXRhMS9hZG1pbi91c2Vycy97aWR9L29yZ2FuaXphdGlvbnMvc2VhcmNoOgVxdWVyeRKCAgoSU2VhcmNoVXNlclByb2plY3RzEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyUHJvamVjdHNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyUHJvamVjdHNSZXNwb25zZSJ/kkEvCgRVc2VyEidTZWFyY2ggcHJvamVjdHMgb2YgYSB1c2VyIHdpdGhpbiBhbiBvcmeC0+STAkciPi92MWJldGExL2FkbWluL3VzZXJzL3t1c2VyX2lkfS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3Byb2plY3RzOgVxdWVyeRKtAgoSU2V0T3JnYW5pemF0aW9uS3ljEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZSKpAZJBcgoPT3JnYW5pemF0aW9uS3ljEiZTZXQgS1lDIGluZm9ybWF0aW9uIG9mIGFuIG9yZ2FuaXphdGlvbho3U2V0IEtZQyBpbmZvcm1hdGlvbiBvZiBhbiBvcmdhbml6YXRpb24gdXNpbmcgSUQgb3IgbmFtZYLT5JMCLhopL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9reWM6ASoSmwIKFExpc3RPcmdhbml6YXRpb25zS3ljEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0t5Y1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zS3ljUmVzcG9uc2UikQGSQWYKD09yZ2FuaXphdGlvbkt5YxIpTGlzdCBLWUMgaW5mb3JtYXRpb24gb2YgYWxsIG9yZ2FuaXphdGlvbnMaKExpc3QgS1lDIGluZm9ybWF0aW9uIG9mIGFsbCBvcmdhbml6YXRpb26C0+STAiISIC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMva3ljEqoCCgxMaXN0UHJvamVjdHMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c1Jlc3BvbnNlIrgBkkGVAQoHUHJvamVjdBIRTGlzdCBhbGwgcHJvamVjdHMad0xpc3RzIGFsbCB0aGUgcHJvamVjdHMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbiBhbmQgc3RhdGUugtPkkwIZEhcvdjFiZXRhMS9hZG1pbi9wcm9qZWN0cxK1AQoNTGlzdFJlbGF0aW9ucxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJlbGF0aW9uc1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZWxhdGlvbnNSZXNwb25zZSJBkkEeCghSZWxhdGlvbhISTGlzdCBhbGwgcmVsYXRpb25zgtPkkwIaEhgvdjFiZXRhMS9hZG1pbi9yZWxhdGlvbnMSxQIKDUxpc3RSZXNvdXJjZXMSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZXNvdXJjZXNSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UmVzb3VyY2VzUmVzcG9uc2Ui0AGSQawBCghSZXNvdXJjZRISTGlzdCBhbGwgcmVzb3VyY2VzGosBTGlzdHMgYWxsIHRoZSByZXNvdXJjZXMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBhbmQgbmFtZXNwYWNlLoLT5JMCGhIYL3YxYmV0YTEvYWRtaW4vcmVzb3VyY2VzEpgCCgpDcmVhdGVSb2xlEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVSb2xlUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUm9sZVJlc3BvbnNlIqwBkkGMAQoEUm9sZRIUQ3JlYXRlIHBsYXRmb3JtIHJvbGUabkNyZWF0ZXMgYSBwbGF0Zm9ybSB3aWRlIHJvbGUuIEl0IGNhbiBiZSB1c2VkIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIGFsbCB0aGUgcmVzb3VyY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIWIg4vdjFiZXRhMS9yb2xlczoEYm9keRLVAQoKVXBkYXRlUm9sZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUm9sZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVJvbGVSZXNwb25zZSJqkkFGCgRSb2xlEgtVcGRhdGUgcm9sZRoxVXBkYXRlIGEgcm9sZSB0aXRsZSwgZGVzY3JpcHRpb24gYW5kIHBlcm1pc3Npb25zLoLT5JMCGxoTL3YxYmV0YTEvcm9sZXMve2lkfToEYm9keRLcAQoKRGVsZXRlUm9sZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUm9sZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVJvbGVSZXNwb25zZSJxkkFTCgRSb2xlEhREZWxldGUgcGxhdGZvcm0gcm9sZRo1RGVsZXRlIGEgcGxhdGZvcm0gd2lkZSByb2xlIGFuZCBhbGwgb2YgaXRzIHJlbGF0aW9ucy6C0+STAhUqEy92MWJldGExL3JvbGVzL3tpZH0SsQIKEENyZWF0ZVBlcm1pc3Npb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBlcm1pc3Npb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQZXJtaXNzaW9uUmVzcG9uc2UiswGSQZABCgpQZXJtaXNzaW9uEhpDcmVhdGUgcGxhdGZvcm0gcGVybWlzc2lvbhpmQ3JlYXRlcyBhIHBlcm1pc3Npb24uIEl0IGNhbiBiZSB1c2VkIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvIGFsbCB0aGUgcmVzb3VyY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UugtPkkwIZIhQvdjFiZXRhMS9wZXJtaXNzaW9uczoBKhK/AgoQVXBkYXRlUGVybWlzc2lvbhIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUGVybWlzc2lvblJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBlcm1pc3Npb25SZXNwb25zZSLBAZJBlgEKClBlcm1pc3Npb24SGlVwZGF0ZSBwbGF0Zm9ybSBwZXJtaXNzaW9uGmxVcGRhdGVzIGEgcGVybWlzc2lvbiBieSBJRC4gSXQgY2FuIGJlIHVzZWQgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gYWxsIHRoZSByZXNvdXJjZXMgaW4gYSBGcm9udGllciBpbnN0YW5jZS6C0+STAiEaGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH06BGJvZHkSyQEKEERlbGV0ZVBlcm1pc3Npb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVBlcm1pc3Npb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiTJJBKAoKUGVybWlzc2lvbhIaRGVsZXRlIHBsYXRmb3JtIHBlcm1pc3Npb26C0+STAhsqGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH0SsAIKD0xpc3RQcmVmZXJlbmNlcxIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByZWZlcmVuY2VzUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByZWZlcmVuY2VzUmVzcG9uc2UitQGSQZUBCgpQcmVmZXJlbmNlEhlMaXN0IHBsYXRmb3JtIHByZWZlcmVuY2VzGmxSZXR1cm5zIGEgbGlzdCBvZiBhbGwgcHJlZmVyZW5jZXMgY29uZmlndXJlZCBvbiBhbiBpbnN0YW5jZSBpbiBGcm9udGllci4gZS5nIHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBldGOC0+STAhYSFC92MWJldGExL3ByZWZlcmVuY2VzEvsCChFDcmVhdGVQcmVmZXJlbmNlcxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJlZmVyZW5jZXNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlIvoBkkHXAQoKUHJlZmVyZW5jZRIbQ3JlYXRlIHBsYXRmb3JtIHByZWZlcmVuY2VzGqsBQ3JlYXRlIG5ldyBwbGF0Zm9ybSBwcmVmZXJlbmNlcy4gVGhlIHBsYXRmb3JtIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcGxhdGZvcm0gYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMugtPkkwIZIhQvdjFiZXRhMS9wcmVmZXJlbmNlczoBKhKDAwogQ2hlY2tGZWRlcmF0ZWRSZXNvdXJjZVBlcm1pc3Npb24SQi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBpDLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tGZWRlcmF0ZWRSZXNvdXJjZVBlcm1pc3Npb25SZXNwb25zZSLVAZJBsgEKBUF1dGh6EgVDaGVjaxqhAVJldHVybnMgdHJ1ZSBpZiBhIHByaW5jaXBhbCBoYXMgcmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gYWNjZXNzIGEgcmVzb3VyY2UgYW5kIGZhbHNlIG90aGVyd2lzZS48YnIvPiBOb3RlIHRoZSBwcmluY2lwYWwgY2FuIGJlIGEgdXNlciwgZ3JvdXAgb3IgYSBzZXJ2aWNlIGFjY291bnQugtPkkwIZIhQvdjFiZXRhMS9hZG1pbi9jaGVjazoBKhLgAQoPQWRkUGxhdGZvcm1Vc2VyEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRQbGF0Zm9ybVVzZXJSZXNwb25zZSJmkkE7CghQbGF0Zm9ybRIRQWRkIHBsYXRmb3JtIHVzZXIaHEFkZHMgYSB1c2VyIHRvIHRoZSBwbGF0Zm9ybS6C0+STAiIiHS92MWJldGExL2FkbWluL3BsYXRmb3JtL3VzZXJzOgEqEvMBChFMaXN0UGxhdGZvcm1Vc2VycxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBsYXRmb3JtVXNlcnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGxhdGZvcm1Vc2Vyc1Jlc3BvbnNlInOSQUsKCFBsYXRmb3JtEhNMaXN0IHBsYXRmb3JtIHVzZXJzGipMaXN0cyBhbGwgdGhlIHVzZXJzIGFkZGVkIHRvIHRoZSBwbGF0Zm9ybS6C0+STAh8SHS92MWJldGExL2FkbWluL3BsYXRmb3JtL3VzZXJzEvgBChJSZW1vdmVQbGF0Zm9ybVVzZXISNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZVBsYXRmb3JtVXNlclJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZVBsYXRmb3JtVXNlclJlc3BvbnNlInWSQUMKCFBsYXRmb3JtEhRSZW1vdmUgcGxhdGZvcm0gdXNlchohUmVtb3ZlcyBhIHVzZXIgZnJvbSB0aGUgcGxhdGZvcm0ugtPkkwIpIiQvdjFiZXRhMS9hZG1pbi9wbGF0Zm9ybS91c2Vycy9yZW1vdmU6ASoSwAMKEURlbGVnYXRlZENoZWNrb3V0EjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxlZ2F0ZWRDaGVja291dFJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGVnYXRlZENoZWNrb3V0UmVzcG9uc2UivwKSQa0BCghDaGVja291dBIiQ2hlY2tvdXQgYSBwcm9kdWN0IG9yIHN1YnNjcmlwdGlvbhp9Q2hlY2tvdXQgYSBwcm9kdWN0IHRvIGJ1eSBpdCBvbmUgdGltZSBvciBzdGFydCBhIHN1YnNjcmlwdGlvbiBwbGFuIG9uIGEgYmlsbGluZyBhY2NvdW50IG1hbnVhbGx5LiBJdCBieXBhc3NlcyBiaWxsaW5nIGVuZ2luZS6C0+STAocBIkQvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2NoZWNrb3V0czoBKlo8IjcvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzOgEqErECCg9MaXN0QWxsSW52b2ljZXMSMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxJbnZvaWNlc1JlcXVlc3QaMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxJbnZvaWNlc1Jlc3BvbnNlIrYBkkGLAQoHSW52b2ljZRIRTGlzdCBhbGwgaW52b2ljZXMabUxpc3RzIGFsbCB0aGUgaW52b2ljZXMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbi6C0+STAiESHy92MWJldGExL2FkbWluL2JpbGxpbmcvaW52b2ljZXMSpwIKEEdlbmVyYXRlSW52b2ljZXMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdlbmVyYXRlSW52b2ljZXNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZW5lcmF0ZUludm9pY2VzUmVzcG9uc2UiqQGSQXMKB0ludm9pY2USGlRyaWdnZXIgaW52b2ljZSBnZW5lcmF0aW9uGkxUcmlnZ2VycyB0aGUgY3JlYXRpb24gb2YgY3JlZGl0IG92ZXJkcmFmdCBpbnZvaWNlcyBmb3IgYWxsIGJpbGxpbmcgYWNjb3VudHMugtPkkwItIigvdjFiZXRhMS9hZG1pbi9iaWxsaW5nL2ludm9pY2VzL2dlbmVyYXRlOgEqEtYCChZMaXN0QWxsQmlsbGluZ0FjY291bnRzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlIsYBkkGbAQoHQmlsbGluZxIZTGlzdCBhbGwgYmlsbGluZyBhY2NvdW50cxp1TGlzdHMgYWxsIHRoZSBiaWxsaW5nIGFjY291bnRzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBvcmdhbml6YXRpb24ugtPkkwIhEh8vdjFiZXRhMS9hZG1pbi9iaWxsaW5nL2FjY291bnRzEuQCChJSZXZlcnRCaWxsaW5nVXNhZ2USNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldmVydEJpbGxpbmdVc2FnZVJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldmVydEJpbGxpbmdVc2FnZVJlc3BvbnNlIuABkkFMCgdCaWxsaW5nEhRSZXZlcnQgYmlsbGluZyB1c2FnZRorUmV2ZXJ0IGJpbGxpbmcgdXNhZ2UgZm9yIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCigEiUi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vdXNhZ2Uve3VzYWdlX2lkfS9yZXZlcnQ6ASpaMSIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy9iaWxsaW5nL3VzYWdlcy9yZXZlcnQ6ASoSyQEKDUNyZWF0ZVdlYmhvb2sSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVdlYmhvb2tSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVXZWJob29rUmVzcG9uc2UiVZJBMAoHV2ViaG9vaxIOQ3JlYXRlIHdlYmhvb2saFUNyZWF0ZSBhIG5ldyB3ZWJob29rLoLT5JMCHCIXL3YxYmV0YTEvYWRtaW4vd2ViaG9va3M6ASoSygEKDVVwZGF0ZVdlYmhvb2sSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVdlYmhvb2tSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVXZWJob29rUmVzcG9uc2UiVpJBLAoHV2ViaG9vaxIOVXBkYXRlIHdlYmhvb2saEVVwZGF0ZSBhIHdlYmhvb2sugtPkkwIhGhwvdjFiZXRhMS9hZG1pbi93ZWJob29rcy97aWR9OgEqEscBCg1EZWxldGVXZWJob29rEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVXZWJob29rUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlV2ViaG9va1Jlc3BvbnNlIlOSQSwKB1dlYmhvb2sSDkRlbGV0ZSB3ZWJob29rGhFEZWxldGUgYSB3ZWJob29rLoLT5JMCHiocL3YxYmV0YTEvYWRtaW4vd2ViaG9va3Mve2lkfRK/AQoMTGlzdFdlYmhvb2tzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0V2ViaG9va3NSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0V2ViaG9va3NSZXNwb25zZSJOkkEsCgdXZWJob29rEg1MaXN0IHdlYmhvb2tzGhJMaXN0IGFsbCB3ZWJob29rcy6C0+STAhkSFy92MWJldGExL2FkbWluL3dlYmhvb2tzErACChpVcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0cxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0c1Jlc3BvbnNlIpQBiAIBkkFKCgdCaWxsaW5nEh1VcGRhdGUgYmlsbGluZyBhY2NvdW50IGxpbWl0cxoeVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBsaW1pdHMuWAGC0+STAj4aOS92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L2xpbWl0czoBKhKzAgoYR2V0QmlsbGluZ0FjY291bnREZXRhaWxzEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSKdAZJBWAoHQmlsbGluZxIbR2V0IGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzGjBHZXQgYmlsbGluZyBhY2NvdW50IGRldGFpbHMgdGhhdCBjYW4gYmUgdXBkYXRlZC6C0+STAjwSOi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L2RldGFpbHMSsQIKG1VwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlscxI9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzUmVxdWVzdBo+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzUmVzcG9uc2UikgGSQUoKB0JpbGxpbmcSHlVwZGF0ZSBiaWxsaW5nIGFjY291bnQgZGV0YWlscxofVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzLoLT5JMCPxo6L3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vZGV0YWlsczoBKhLnAQoOQ3JlYXRlUHJvc3BlY3QSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb3NwZWN0UmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvc3BlY3RSZXNwb25zZSJwkkFKCghQcm9zcGVjdBIPQ3JlYXRlIHByb3NwZWN0Gi1DcmVhdGUgcHJvc3BlY3QgZm9yIGdpdmVuIGVtYWlsIGFuZCBhY3Rpdml0eS6C0+STAh0iGC92MWJldGExL2FkbWluL3Byb3NwZWN0czoBKhL8AQoNTGlzdFByb3NwZWN0cxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb3NwZWN0c1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9zcGVjdHNSZXNwb25zZSKHAZJBWAoIUHJvc3BlY3QSDkxpc3QgcHJvc3BlY3RzGjxMaXN0IHByb3NwZWN0cyBhbmQgc3VwcG9ydHMgZmlsdGVycywgc29ydGluZyBhbmQgcGFnaW5hdGlvbi6C0+STAiYiHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy9saXN0OgVxdWVyeRLCAQoLR2V0UHJvc3BlY3QSLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFByb3NwZWN0UmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvc3BlY3RSZXNwb25zZSJUkkEsCghQcm9zcGVjdBIMR2V0IHByb3NwZWN0GhJHZXQgcHJvc3BlY3QgYnkgSUSC0+STAh8SHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9EtsBCg5VcGRhdGVQcm9zcGVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvc3BlY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9zcGVjdFJlc3BvbnNlImSSQTkKCFByb3NwZWN0Eg9VcGRhdGUgcHJvc3BlY3QaHFVwZGF0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gSUSC0+STAiIaHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9OgEqEtgBCg5EZWxldGVQcm9zcGVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvc3BlY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9zcGVjdFJlc3BvbnNlImGSQTkKCFByb3NwZWN0Eg9EZWxldGUgcHJvc3BlY3QaHERlbGV0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gSUSC0+STAh8qHS92MWJldGExL2FkbWluL3Byb3NwZWN0cy97aWR9EtoBCg5TZWFyY2hJbnZvaWNlcxIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoSW52b2ljZXNSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1Jlc3BvbnNlImOSQTMKB2ludm9pY2USKFNlYXJjaCBpbnZvaWNlcyBhY3Jvc3MgYWxsIG9yZ2FuaXphdGlvbnOC0+STAiciHi92MWJldGExL2FkbWluL2ludm9pY2VzL3NlYXJjaDoFcXVlcnkStAIKE0dldEN1cnJlbnRBZG1pblVzZXISNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEN1cnJlbnRBZG1pblVzZXJSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDdXJyZW50QWRtaW5Vc2VyUmVzcG9uc2UirQGSQYgBCgRVc2VyEhZHZXQgY3VycmVudCBhZG1pbiB1c2VyGmhSZXR1cm5zIHRoZSBjdXJyZW50IGF1dGhlbnRpY2F0ZWQgYWRtaW4gdXNlciBwcm9maWxlLiBSZXR1cm5zIDQwMyBGb3JiaWRkZW4gaWYgdGhlIHVzZXIgaXMgbm90IGFuIGFkbWluLoLT5JMCGxIZL3YxYmV0YTEvYWRtaW4vdXNlcnMvc2VsZkLwDgojaW8ucmF5c3RhY2sucHJvdG9uLmZyb250aWVyLnYxYmV0YTFCCEZyb250aWVyWjtnaXRodWIuY29tL3JheXN0YWNrL3Byb3Rvbi9mcm9udGllci92MWJldGExO2Zyb250aWVydjFiZXRhMZJBgA4S/gYKG0Zyb250aWVyIEFkbWluaXN0cmF0aW9uIEFQSRLPBVRoZSBGcm9udGllciBBUElzIGFkaGVyZSB0byB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBhbHNvIGtub3duIGFzIFN3YWdnZXIsIHdoaWNoIHByb3ZpZGVzIGEgc3RhbmRhcmRpemVkIGFwcHJvYWNoIGZvciBkZXNpZ25pbmcsIGRvY3VtZW50aW5nLCBhbmQgY29uc3VtaW5nIFJFU1RmdWwgQVBJcy4gV2l0aCBPcGVuQVBJLCB5b3UgZ2FpbiBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIEFQSSBlbmRwb2ludHMsIHJlcXVlc3QvcmVzcG9uc2Ugc3RydWN0dXJlcywgYW5kIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMgc3VwcG9ydGVkIGJ5IHRoZSBGcm9udGllciBBUElzLiBCeSBsZXZlcmFnaW5nIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24sIGRldmVsb3BlcnMgY2FuIGVhc2lseSBleHBsb3JlIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBGcm9udGllciBBUElzIHVzaW5nIGEgdmFyaWV0eSBvZiB0b29scyBhbmQgbGlicmFyaWVzLiBUaGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGVuYWJsZXMgYXV0b21hdGljIGNvZGUgZ2VuZXJhdGlvbiwgaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24sIGFuZCBzZWFtbGVzcyBpbnRlZ3JhdGlvbiB3aXRoIEFQSSB0ZXN0aW5nIGZyYW1ld29ya3MsIG1ha2luZyBpdCBlYXNpZXIgdGhhbiBldmVyIHRvIGludGVncmF0ZSBGcm9udGllciBpbnRvIHlvdXIgZXhpc3RpbmcgYXBwbGljYXRpb25zIGFuZCB3b3JrZmxvd3MuIkAKE1JheXN0YWNrIEZvdW5kYXRpb24SFWh0dHBzOi8vcmF5c3RhY2sub3JnLxoSaGVsbG9AcmF5c3RhY2sub3JnKkQKCkFwYWNoZSAyLjASNmh0dHBzOi8vZ2l0aHViLmNvbS9yYXlzdGFjay9mcm9udGllci9ibG9iL21haW4vTElDRU5TRTIFMC4yLjAaDjEyNy4wLjAuMTo3NDAwKgEBMhBhcHBsaWNhdGlvbi9qc29uOhBhcHBsaWNhdGlvbi9qc29uUjwKAzIwMBI1ChtPSyAtIEEgc3VjY2Vzc2Z1bCByZXNwb25zZS4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSaQoDNDAwEmIKSEJhZCBSZXF1ZXN0IC0gVGhlIHJlcXVlc3Qgd2FzIG1hbGZvcm1lZCBvciBjb250YWluZWQgaW52YWxpZCBwYXJhbWV0ZXJzLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JKCgM0MDESQwopVW5hdXRob3JpemVkIC0gQXV0aGVudGljYXRpb24gaXMgcmVxdWlyZWQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSYQoDNDAzEloKQEZvcmJpZGRlbiAtIFVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGUgcmVzb3VyY2USFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSUQoDNDA0EkoKME5vdCBGb3VuZCAtIFRoZSByZXF1ZXN0ZWQgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZBIWChQaEi5nb29nbGUucnBjLlN0YXR1c1J1CgM1MDASbgpUSW50ZXJuYWwgU2VydmVyIEVycm9yLiBSZXR1cm5lZCB3aGVuIHRoZXJlcyBpcyBzb21ldGhpbmcgd3Jvbmcgd2l0aCBGcm9udGllciBzZXJ2ZXIuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzWqgBCk4KBUJhc2ljEkUIARI3dXNlIENsaWVudCBJRCBhcyB1c2VybmFtZSBhbmQgQ2xpZW50IFNlY3JldCBhcyBwYXNzd29yZBoGQmFzaWMgIAIKVgoGQmVhcmVyEkwIAxI9QWNjZXNzIHRva2VuIG9yIEpXVCB0b2tlbiwgcHJlZml4ZWQgYnkgQmVhcmVyOiBCZWFyZXIgPHRva2VuPhoHQmVhcmVyICACYgkKBwoFQmFzaWNiCgoICgZCZWFyZXJqBgoEVXNlcmoHCgVHcm91cGoOCgxPcmdhbml6YXRpb25qCQoHUHJvamVjdGoKCghSZWxhdGlvbmoKCghSZXNvdXJjZWoICgZQb2xpY3lqBgoEUm9sZWoMCgpQZXJtaXNzaW9uYgZwcm90bzM", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_google_api_httpbody, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
|
|
23
|
+
fileDesc("CiVyYXlzdGFjay9mcm9udGllci92MWJldGExL2FkbWluLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIuADChNMaXN0QWxsVXNlcnNSZXF1ZXN0EmMKCXBhZ2Vfc2l6ZRgBIAEoBUJQkkFEMkJUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyA1MC76QgYaBCgBQAESTAoIcGFnZV9udW0YAiABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAESXwoHa2V5d29yZBgDIAEoCUJOkkFLMklUaGUga2V5d29yZCB0byBzZWFyY2ggZm9yLiBJdCBjYW4gYmUgYSB1c2VyJ3MgbmFtZSwgZW1haWwsbWV0YWRhdGEgb3IgaWQuEjYKBm9yZ19pZBgEIAEoCUImkkEjMiFUaGUgb3JnYW5pemF0aW9uIGlkIHRvIGZpbHRlciBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYBiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuIlUKFExpc3RBbGxVc2Vyc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFEi4KBXVzZXJzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIhwKGkxpc3RBbGxTZXJ2aWNlVXNlcnNSZXF1ZXN0IlwKG0xpc3RBbGxTZXJ2aWNlVXNlcnNSZXNwb25zZRI9Cg1zZXJ2aWNlX3VzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciKdAQoRTGlzdEdyb3Vwc1JlcXVlc3QSNgoGb3JnX2lkGAIgASgJQiaSQSMyIVRoZSBvcmdhbml6YXRpb24gaWQgdG8gZmlsdGVyIGJ5LhJKCgVzdGF0ZRgDIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC5KBAgBEAIiRgoSTGlzdEdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAi1QIKG0xpc3RBbGxPcmdhbml6YXRpb25zUmVxdWVzdBIvCgd1c2VyX2lkGAEgASgJQh6SQRsyGVRoZSB1c2VyIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYAiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuEmsKCXBhZ2Vfc2l6ZRgDIAEoBUJYkkFMMkpUaGUgbWF4aW11bSBudW1iZXIgb2Ygb3JnYW5pemF0aW9ucyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDUwLvpCBhoEKAFAARJMCghwYWdlX251bRgEIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASKTAQocTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24SMwoFY291bnQYAiABKAVCJJJBITIfVG90YWwgbnVtYmVyIG9mIHJlY29yZHMgcHJlc2VudCKZAQoTTGlzdFByb2plY3RzUmVxdWVzdBI2CgZvcmdfaWQYASABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEkoKBXN0YXRlGAIgASgJQjuSQTgyNlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLiJMChRMaXN0UHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCJ2ChRMaXN0UmVsYXRpb25zUmVxdWVzdBIvCgdzdWJqZWN0GAEgASgJQh6SQRsyGVRoZSBzdWJqZWN0IHRvIGZpbHRlciBieS4SLQoGb2JqZWN0GAIgASgJQh2SQRoyGFRoZSBvYmplY3QgdG8gZmlsdGVyIGJ5LiJPChVMaXN0UmVsYXRpb25zUmVzcG9uc2USNgoJcmVsYXRpb25zGAEgAygLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvbiL7AQoUTGlzdFJlc291cmNlc1JlcXVlc3QSLwoHdXNlcl9pZBgBIAEoCUIekkEbMhlUaGUgdXNlciBpZCB0byBmaWx0ZXIgYnkuEjUKCnByb2plY3RfaWQYAiABKAlCIZJBHjIcVGhlIHByb2plY3QgaWQgdG8gZmlsdGVyIGJ5LhI/Cg9vcmdhbml6YXRpb25faWQYAyABKAlCJpJBIzIhVGhlIG9yZ2FuaXphdGlvbiBpZCB0byBmaWx0ZXIgYnkuEjoKCW5hbWVzcGFjZRgEIAEoCUInkkEdMhtUaGUgbmFtZXNwYWNlIHRvIGZpbHRlciBieS76QgRyAhADIk8KFUxpc3RSZXNvdXJjZXNSZXNwb25zZRI2CglyZXNvdXJjZXMYASADKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlIk0KEUNyZWF0ZVJvbGVSZXF1ZXN0EjgKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keSJDChJDcmVhdGVSb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJ6ChFVcGRhdGVSb2xlUmVxdWVzdBIrCgJpZBgBIAEoCUIfkkEYMhZUaGUgcm9sZSBpZCB0byB1cGRhdGUu4kEBAhI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlUmVxdWVzdEJvZHkiQwoSVXBkYXRlUm9sZVJlc3BvbnNlEi0KBHJvbGUYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiQAoRRGVsZXRlUm9sZVJlcXVlc3QSKwoCaWQYASABKAlCH5JBGDIWVGhlIHJvbGUgaWQgdG8gZGVsZXRlLuJBAQIiFAoSRGVsZXRlUm9sZVJlc3BvbnNlIr4GChVQZXJtaXNzaW9uUmVxdWVzdEJvZHkSjQEKBG5hbWUYASABKAlCfxgBkkF6MnhUaGUgbmFtZSBvZiB0aGUgcGVybWlzc2lvbi4gSXQgc2hvdWxkIGJlIHVuaXF1ZSBhY3Jvc3MgYSBGcm9udGllciBpbnN0YW5jZSBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4SjwEKCW5hbWVzcGFjZRgCIAEoCUJ8GAGSQXcydVRoZSBuYW1lc3BhY2Ugb2YgdGhlIHBlcm1pc3Npb24uIFRoZSBuYW1lc3BhY2Ugc2hvdWxkIGJlIGluIHNlcnZpY2UvcmVzb3VyY2UgZm9ybWF0Ljxici8+KkV4YW1wbGU6KmBjb21wdXRlL2d1YXJkaWFuYBJyCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCR5JBRDJCVGhlIG1ldGFkYXRhIG9iamVjdCBmb3IgcGVybWlzc2lvbnMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMuEpIBCgV0aXRsZRgEIAEoCUKCAZJBfzJ9VGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBwZXJtaXNzaW9ucy4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4S+QEKA2tleRgFIAEoCULrAZJB5wEyzAFQZXJtaXNzaW9uIHBhdGgga2V5IGlzIGNvbXBvc2VkIG9mIHRocmVlIHBhcnRzLCAnc2VydmljZS5yZXNvdXJjZS52ZXJiJy4gV2hlcmUgJ3NlcnZpY2UucmVzb3VyY2UnIHdvcmtzIGFzIGEgbmFtZXNwYWNlIGZvciB0aGUgJ3ZlcmInLiBOYW1lc3BhY2UgbmFtZSBjYW5ub3QgYmUgYGFwcGAgYXMgaXQncyByZXNlcnZlZCBmb3IgY29yZSBwZXJtaXNzaW9ucy5KFiJjb21wdXRlLmluc3RhbmNlLmdldCIiWwoXQ3JlYXRlUGVybWlzc2lvblJlcXVlc3QSQAoGYm9kaWVzGAEgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uUmVxdWVzdEJvZHkiVgoYQ3JlYXRlUGVybWlzc2lvblJlc3BvbnNlEjoKC3Blcm1pc3Npb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uImsKF1VwZGF0ZVBlcm1pc3Npb25SZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEj4KBGJvZHkYAiABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBlcm1pc3Npb25SZXF1ZXN0Qm9keSJVChhVcGRhdGVQZXJtaXNzaW9uUmVzcG9uc2USOQoKcGVybWlzc2lvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIlChdEZWxldGVQZXJtaXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIaChhEZWxldGVQZXJtaXNzaW9uUmVzcG9uc2UiGAoWTGlzdFByZWZlcmVuY2VzUmVxdWVzdCJVChdMaXN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJhChhDcmVhdGVQcmVmZXJlbmNlc1JlcXVlc3QSRQoLcHJlZmVyZW5jZXMYASADKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VSZXF1ZXN0Qm9keSJWChlDcmVhdGVQcmVmZXJlbmNlc1Jlc3BvbnNlEjkKCnByZWZlcmVuY2UYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2Ui1wUKJ0NoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBJWCgdzdWJqZWN0GAEgASgJQkWSQT4yPHRoZSBzdWJqZWN0IHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGB1c2VyOi4udXVpZG9mdXNlci4uYOJBAQISxAMKCHJlc291cmNlGAIgASgJQrEDkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAhKMAQoKcGVybWlzc2lvbhgDIAEoCUJ4kkFZMld0aGUgcGVybWlzc2lvbiBuYW1lIHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGBnZXRgLCBgbGlzdGAsIGBjb21wdXRlLmluc3RhbmNlLmNyZWF0ZWDiQQEC+kIVchMyEV5bQS1aYS16MC05Ll8tXSskIjoKKENoZWNrRmVkZXJhdGVkUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgIIvwBChZBZGRQbGF0Zm9ybVVzZXJSZXF1ZXN0EjkKB3VzZXJfaWQYASABKAlCKJJBJTIjVGhlIHVzZXIgaWQgdG8gYWRkIHRvIHRoZSBwbGF0Zm9ybS4SSAoOc2VydmljZXVzZXJfaWQYAiABKAlCMJJBLTIrVGhlIHNlcnZpY2UgdXNlciBpZCB0byBhZGQgdG8gdGhlIHBsYXRmb3JtLhJdCghyZWxhdGlvbhgDIAEoCUJLkkFEMkJUaGUgcmVsYXRpb24gdG8gYWRkIGFzIGluIHRoZSBwbGF0Zm9ybS4gSXQgY2FuIGJlIGFkbWluIG9yIG1lbWJlci7iQQECIhkKF0FkZFBsYXRmb3JtVXNlclJlc3BvbnNlIhoKGExpc3RQbGF0Zm9ybVVzZXJzUmVxdWVzdCKJAQoZTGlzdFBsYXRmb3JtVXNlcnNSZXNwb25zZRIuCgV1c2VycxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchI8CgxzZXJ2aWNldXNlcnMYAiADKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyIrIBChlSZW1vdmVQbGF0Zm9ybVVzZXJSZXF1ZXN0EkIKB3VzZXJfaWQYASABKAlCMZJBLjIsVGhlIHVzZXIgaWQgdG8gcmVtb3ZlIGZyb20gdGhlIHRoZSBwbGF0Zm9ybS4SUQoOc2VydmljZXVzZXJfaWQYAiABKAlCOZJBNjI0VGhlIHNlcnZpY2UgdXNlciBpZCB0byByZW1vdmUgZnJvbSB0aGUgdGhlIHBsYXRmb3JtLiIcChpSZW1vdmVQbGF0Zm9ybVVzZXJSZXNwb25zZSLsAQoYRGVsZWdhdGVkQ2hlY2tvdXRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIhCgpiaWxsaW5nX2lkGAIgASgJQg0YAfpCCHIGsAEB0AEBEk4KEXN1YnNjcmlwdGlvbl9ib2R5GAogASgLMjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFN1YnNjcmlwdGlvbkJvZHkSRAoMcHJvZHVjdF9ib2R5GAsgASgLMi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFByb2R1Y3RCb2R5Io8BChlEZWxlZ2F0ZWRDaGVja291dFJlc3BvbnNlEj0KDHN1YnNjcmlwdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU3Vic2NyaXB0aW9uEjMKB3Byb2R1Y3QYAiABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3Qi3gEKFkxpc3RBbGxJbnZvaWNlc1JlcXVlc3QSDgoGb3JnX2lkGAEgASgJEmYKCXBhZ2Vfc2l6ZRgCIAEoBUJTkkFHMkVUaGUgbWF4aW11bSBudW1iZXIgb2YgaW52b2ljZXMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyA1MC76QgYaBCgBQAESTAoIcGFnZV9udW0YAyABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAEihAEKF0xpc3RBbGxJbnZvaWNlc1Jlc3BvbnNlEjQKCGludm9pY2VzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5JbnZvaWNlEjMKBWNvdW50GAIgASgFQiSSQSEyH1RvdGFsIG51bWJlciBvZiByZWNvcmRzIHByZXNlbnQiGQoXR2VuZXJhdGVJbnZvaWNlc1JlcXVlc3QiGgoYR2VuZXJhdGVJbnZvaWNlc1Jlc3BvbnNlIi8KHUxpc3RBbGxCaWxsaW5nQWNjb3VudHNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCSJlCh5MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVzcG9uc2USQwoQYmlsbGluZ19hY2NvdW50cxgBIAMoCzIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQimwEKGVJldmVydEJpbGxpbmdVc2FnZVJlcXVlc3QSDgoGb3JnX2lkGAEgASgJEhYKCnByb2plY3RfaWQYAiABKAlCAhgBEiEKCmJpbGxpbmdfaWQYAyABKAlCDRgB+kIIcgawAQHQAQESGgoIdXNhZ2VfaWQYBCABKAlCCPpCBXIDsAEBEhcKBmFtb3VudBgFIAEoA0IH+kIEIgIoACIcChpSZXZlcnRCaWxsaW5nVXNhZ2VSZXNwb25zZSKvAgoSV2ViaG9va1JlcXVlc3RCb2R5EhUKA3VybBgBIAEoCUII+kIFcgOIAQESEwoLZGVzY3JpcHRpb24YAiABKAkSGQoRc3Vic2NyaWJlZF9ldmVudHMYAyADKAkSSwoHaGVhZGVycxgEIAMoCzI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9va1JlcXVlc3RCb2R5LkhlYWRlcnNFbnRyeRIqCgVzdGF0ZRgFIAEoCUIb+kIYchZSB2VuYWJsZWRSCGRpc2FibGVk0AEBEikKCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBouCgxIZWFkZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJTChRDcmVhdGVXZWJob29rUmVxdWVzdBI7CgRib2R5GAEgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rUmVxdWVzdEJvZHkiTAoVQ3JlYXRlV2ViaG9va1Jlc3BvbnNlEjMKB3dlYmhvb2sYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2siiwEKFFVwZGF0ZVdlYmhvb2tSZXF1ZXN0EjYKAmlkGAEgASgJQiqSQRsyGVRoZSB3ZWJob29rIGlkIHRvIHVwZGF0ZS7iQQEC+kIFcgOwAQESOwoEYm9keRgCIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuV2ViaG9va1JlcXVlc3RCb2R5IkwKFVVwZGF0ZVdlYmhvb2tSZXNwb25zZRIzCgd3ZWJob29rGAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5XZWJob29rIk4KFERlbGV0ZVdlYmhvb2tSZXF1ZXN0EjYKAmlkGAEgASgJQiqSQRsyGVRoZSB3ZWJob29rIGlkIHRvIGRlbGV0ZS7iQQEC+kIFcgOwAQEiFwoVRGVsZXRlV2ViaG9va1Jlc3BvbnNlIhUKE0xpc3RXZWJob29rc1JlcXVlc3QiTAoUTGlzdFdlYmhvb2tzUmVzcG9uc2USNAoId2ViaG9va3MYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLldlYmhvb2siaQohVXBkYXRlQmlsbGluZ0FjY291bnRMaW1pdHNSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIXCgJpZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKY3JlZGl0X21pbhgDIAEoAyIkCiJVcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0c1Jlc3BvbnNlIlQKH0dldEJpbGxpbmdBY2NvdW50RGV0YWlsc1JlcXVlc3QSGAoGb3JnX2lkGAEgASgJQgj6QgVyA7ABARIXCgJpZBgCIAEoCUIL+kIIcgawAQHQAQEiSwogR2V0QmlsbGluZ0FjY291bnREZXRhaWxzUmVzcG9uc2USEgoKY3JlZGl0X21pbhgBIAEoAxITCgtkdWVfaW5fZGF5cxgCIAEoAyKJAQoiVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzUmVxdWVzdBIYCgZvcmdfaWQYASABKAlCCPpCBXIDsAEBEhcKAmlkGAIgASgJQgv6QghyBrABAdABARISCgpjcmVkaXRfbWluGAMgASgDEhwKC2R1ZV9pbl9kYXlzGAQgASgDQgf6QgQiAigAIiUKI1VwZGF0ZUJpbGxpbmdBY2NvdW50RGV0YWlsc1Jlc3BvbnNlIkkKGVNldE9yZ2FuaXphdGlvbkt5Y1JlcXVlc3QSDgoGb3JnX2lkGAEgASgJEg4KBnN0YXR1cxgCIAEoCBIMCgRsaW5rGAMgASgJIlIKGlNlYXJjaE9yZ2FuaXphdGlvbnNSZXF1ZXN0EjQKBXF1ZXJ5GAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0ImIKGlNldE9yZ2FuaXphdGlvbkt5Y1Jlc3BvbnNlEkQKEG9yZ2FuaXphdGlvbl9reWMYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbkt5YyIdChtMaXN0T3JnYW5pemF0aW9uc0t5Y1JlcXVlc3QiZQocTGlzdE9yZ2FuaXphdGlvbnNLeWNSZXNwb25zZRJFChFvcmdhbml6YXRpb25zX2t5YxgBIAMoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uS3ljIrUFChtTZWFyY2hPcmdhbml6YXRpb25zUmVzcG9uc2USYAoNb3JnYW5pemF0aW9ucxgBIAMoCzJJLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblJlc3VsdBJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGqcDChJPcmdhbml6YXRpb25SZXN1bHQSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBINCgVzdGF0ZRgGIAEoCRIOCgZhdmF0YXIYByABKAkSEgoKY3JlYXRlZF9ieRgIIAEoCRIRCglwbGFuX25hbWUYCSABKAkSLgoMcGF5bWVudF9tb2RlGAogASgJQhj6QhVyE1IHcHJlcGFpZFIIcG9zdHBhaWQSPQoZc3Vic2NyaXB0aW9uX2N5Y2xlX2VuZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHY291bnRyeRgMIAEoCRIaChJzdWJzY3JpcHRpb25fc3RhdGUYDiABKAkSFQoNcGxhbl9pbnRlcnZhbBgPIAEoCRIPCgdwbGFuX2lkGBAgASgJIkwKFExpc3RQcm9zcGVjdHNSZXF1ZXN0EjQKBXF1ZXJ5GAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0ItsBChVMaXN0UHJvc3BlY3RzUmVzcG9uc2USNgoJcHJvc3BlY3RzGAEgAygLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9zcGVjdBJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlIkcKEkdldFByb3NwZWN0UmVxdWVzdBIxCgJpZBgBIAEoCUIlkkEUMhJpZCBvZiB0aGUgcHJvc3BlY3TiQQEC+kIHcgUQAbABASJMChNHZXRQcm9zcGVjdFJlc3BvbnNlEjUKCHByb3NwZWN0GAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9zcGVjdCKzBgoVVXBkYXRlUHJvc3BlY3RSZXF1ZXN0EjEKAmlkGAEgASgJQiWSQRQyEmlkIG9mIHRoZSBwcm9zcGVjdOJBAQL6QgdyBRABsAEBEj4KBG5hbWUYAiABKAlCMJJBFzIVZnVsbCBuYW1lIG9mIHRoZSB1c2Vy+kITchEyDF5bQS1aYS16IF0rJNABARIyCgVlbWFpbBgFIAEoCUIjkkETMhFlbWFpbCBvZiB0aGUgdXNlcuJBAQL6QgZyBBABYAESLAoFcGhvbmUYBiABKAlCHZJBGjIYcGhvbmUgbnVtYmVyIG9mIHRoZSB1c2VyEoABCghhY3Rpdml0eRgHIAEoCUJukkFOMkxhY3Rpdml0eSBmb3Igd2hpY2ggdXNlciBpcyBzdWJzY3JpYmluZywgZS5nLiBuZXdzbGV0dGVyLCB3YWl0bGlzdCwgYmxvZ3MgZXRj4kEBAvpCFnIUEAEyEF5bQS1aYS16MC05LV9dKyQSrAEKBnN0YXR1cxgIIAEoDjIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QuU3RhdHVzQnCSQV8yXXN1YnNjcmlwdGlvbiBzdGF0dXMgZm9yIHRoaXMgYWN0aXZpdHkuIEFsbG93ZWQgdmFsdWVzIC0gMSBmb3IgVU5TVUJTQ1JJQkVEOyAyIGZvciBTVUJTQ1JJQkVEO+JBAQL6QgeCAQQYARgCEm0KBnNvdXJjZRgJIAEoCUJdkkFAMj5zb3VyY2Ugb2YgdGhpcyB1c2VyIGFkZGl0aW9uIGUuZy4gcGxhdGZvcm0sIHdlYnNpdGUsIGFkbWluIGV0Y/pCF3IVMhBeW0EtWmEtejAtOS1fXSsk0AEBElEKCHZlcmlmaWVkGAogASgIQj+SQTwyOnZlcmlmaWNhdGlvbiBzdGF0dXMgb2YgdGhpcyB1c2VyIGFkZGl0aW9uIGUuZy4gdHJ1ZSwgZmFsc2USUQoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QiaSQSMyIWFkZGl0aW9uYWwgaW5mbyBhcyBrZXkgdmFsdWUgcGFpciJPChZVcGRhdGVQcm9zcGVjdFJlc3BvbnNlEjUKCHByb3NwZWN0GAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9zcGVjdCJKChVEZWxldGVQcm9zcGVjdFJlcXVlc3QSMQoCaWQYASABKAlCJZJBFDISaWQgb2YgdGhlIHByb3NwZWN04kEBAvpCB3IFEAGwAQEiGAoWRGVsZXRlUHJvc3BlY3RSZXNwb25zZSKABgoVQ3JlYXRlUHJvc3BlY3RSZXF1ZXN0Ej4KBG5hbWUYASABKAlCMJJBFzIVZnVsbCBuYW1lIG9mIHRoZSB1c2Vy+kITchEyDF5bQS1aYS16IF0rJNABARIyCgVlbWFpbBgFIAEoCUIjkkETMhFlbWFpbCBvZiB0aGUgdXNlcuJBAQL6QgZyBBABYAESLAoFcGhvbmUYBiABKAlCHZJBGjIYcGhvbmUgbnVtYmVyIG9mIHRoZSB1c2VyEoABCghhY3Rpdml0eRgHIAEoCUJukkFOMkxhY3Rpdml0eSBmb3Igd2hpY2ggdXNlciBpcyBzdWJzY3JpYmluZywgZS5nLiBuZXdzbGV0dGVyLCB3YWl0bGlzdCwgYmxvZ3MgZXRj4kEBAvpCFnIUEAEyEF5bQS1aYS16MC05LV9dKyQSrAEKBnN0YXR1cxgIIAEoDjIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvc3BlY3QuU3RhdHVzQnCSQV8yXXN1YnNjcmlwdGlvbiBzdGF0dXMgZm9yIHRoaXMgYWN0aXZpdHkuIEFsbG93ZWQgdmFsdWVzIC0gMSBmb3IgVU5TVUJTQ1JJQkVEOyAyIGZvciBTVUJTQ1JJQkVEO+JBAQL6QgeCAQQYARgCEm0KBnNvdXJjZRgJIAEoCUJdkkFAMj5zb3VyY2Ugb2YgdGhpcyB1c2VyIGFkZGl0aW9uIGUuZy4gcGxhdGZvcm0sIHdlYnNpdGUsIGFkbWluIGV0Y/pCF3IVMhBeW0EtWmEtejAtOS1fXSsk0AEBElEKCHZlcmlmaWVkGAogASgIQj+SQTwyOnZlcmlmaWNhdGlvbiBzdGF0dXMgb2YgdGhpcyB1c2VyIGFkZGl0aW9uIGUuZy4gdHJ1ZSwgZmFsc2USUQoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QiaSQSMyIWFkZGl0aW9uYWwgaW5mbyBhcyBrZXkgdmFsdWUgcGFpciJPChZDcmVhdGVQcm9zcGVjdFJlc3BvbnNlEjUKCHByb3NwZWN0GAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9zcGVjdCJrCh5TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSNAoFcXVlcnkYAiABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3QigAQKH1NlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2USXgoJb3JnX3VzZXJzGAEgAygLMksucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrwAQoQT3JnYW5pemF0aW9uVXNlchIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBXRpdGxlGAMgASgJEg0KBWVtYWlsGAQgASgJEjEKDW9yZ19qb2luZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXN0YXRlGAYgASgJEg4KBmF2YXRhchgHIAEoCRISCgpyb2xlX25hbWVzGAggAygJEhMKC3JvbGVfdGl0bGVzGAkgAygJEhAKCHJvbGVfaWRzGAogAygJEhcKD29yZ2FuaXphdGlvbl9pZBgLIAEoCSI1Ch5FeHBvcnRPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMibgohU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0ItoDCiJTZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0c1Jlc3BvbnNlEmcKDG9yZ19wcm9qZWN0cxgBIAMoCzJRLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZS5Pcmdhbml6YXRpb25Qcm9qZWN0EkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UavgEKE09yZ2FuaXphdGlvblByb2plY3QSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgV0aXRsZRgDIAEoCRINCgVzdGF0ZRgEIAEoCRIUCgxtZW1iZXJfY291bnQYBSABKAMSEAoIdXNlcl9pZHMYBiADKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPb3JnYW5pemF0aW9uX2lkGAggASgJIjgKIUV4cG9ydE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJmChlTZWFyY2hQcm9qZWN0VXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IqkDChpTZWFyY2hQcm9qZWN0VXNlcnNSZXNwb25zZRJYCg1wcm9qZWN0X3VzZXJzGAEgAygLMkEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hQcm9qZWN0VXNlcnNSZXNwb25zZS5Qcm9qZWN0VXNlchJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGqQBCgtQcm9qZWN0VXNlchIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBXRpdGxlGAMgASgJEg0KBWVtYWlsGAQgASgJEg4KBmF2YXRhchgHIAEoCRISCgpyb2xlX25hbWVzGAggAygJEhMKC3JvbGVfdGl0bGVzGAkgAygJEhAKCHJvbGVfaWRzGAogAygJEhIKCnByb2plY3RfaWQYCyABKAkibgohU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0Is0DCiJTZWFyY2hPcmdhbml6YXRpb25JbnZvaWNlc1Jlc3BvbnNlEnAKFW9yZ2FuaXphdGlvbl9pbnZvaWNlcxgBIAMoCzJRLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXNSZXNwb25zZS5Pcmdhbml6YXRpb25JbnZvaWNlEkkKCnBhZ2luYXRpb24YAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5UGFnaW5hdGlvblJlc3BvbnNlEj8KBWdyb3VwGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeUdyb3VwUmVzcG9uc2UaqAEKE09yZ2FuaXphdGlvbkludm9pY2USCgoCaWQYASABKAkSDgoGYW1vdW50GAIgASgDEhAKCGN1cnJlbmN5GAMgASgJEg0KBXN0YXRlGAQgASgJEhQKDGludm9pY2VfbGluaxgFIAEoCRIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZvcmdfaWQYByABKAkibAofU2VhcmNoT3JnYW5pemF0aW9uVG9rZW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLdAwogU2VhcmNoT3JnYW5pemF0aW9uVG9rZW5zUmVzcG9uc2USagoTb3JnYW5pemF0aW9uX3Rva2VucxgBIAMoCzJNLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVG9rZW5zUmVzcG9uc2UuT3JnYW5pemF0aW9uVG9rZW4SSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRrAAQoRT3JnYW5pemF0aW9uVG9rZW4SDgoGYW1vdW50GAEgASgDEgwKBHR5cGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHdXNlcl9pZBgEIAEoCRISCgp1c2VyX3RpdGxlGAUgASgJEhMKC3VzZXJfYXZhdGFyGAYgASgJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg4KBm9yZ19pZBgIIAEoCSI2Ch9FeHBvcnRPcmdhbml6YXRpb25Ub2tlbnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADInwKL1NlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IuwDCjBTZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVzcG9uc2USmwEKJG9yZ2FuaXphdGlvbl9zZXJ2aWNldXNlcl9jcmVkZW50aWFscxgBIAMoCzJtLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlLk9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbBJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGo0BCiFPcmdhbml6YXRpb25TZXJ2aWNlVXNlckNyZWRlbnRpYWwSDQoFdGl0bGUYASABKAkSGQoRc2VydmljZXVzZXJfdGl0bGUYAiABKAkSLgoKY3JlYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGb3JnX2lkGAQgASgJIkoKElNlYXJjaFVzZXJzUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCLRAQoTU2VhcmNoVXNlcnNSZXNwb25zZRIuCgV1c2VycxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlIhQKEkV4cG9ydFVzZXJzUmVxdWVzdCJ8Ch5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1JlcXVlc3QSJAoCaWQYASABKAlCGJJBCTIHdXNlciBJROJBAQL6QgVyA7ABARI0CgVxdWVyeRgCIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCKKBAofU2VhcmNoVXNlck9yZ2FuaXphdGlvbnNSZXNwb25zZRJnChJ1c2VyX29yZ2FuaXphdGlvbnMYASADKAsySy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJPcmdhbml6YXRpb25zUmVzcG9uc2UuVXNlck9yZ2FuaXphdGlvbhJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGvEBChBVc2VyT3JnYW5pemF0aW9uEg4KBm9yZ19pZBgBIAEoCRIRCglvcmdfdGl0bGUYAiABKAkSEAoIb3JnX25hbWUYAyABKAkSEgoKb3JnX2F2YXRhchgEIAEoCRIVCg1wcm9qZWN0X2NvdW50GAUgASgDEhIKCnJvbGVfbmFtZXMYBiADKAkSEwoLcm9sZV90aXRsZXMYByADKAkSEAoIcm9sZV9pZHMYCCADKAkSMQoNb3JnX2pvaW5lZF9vbhgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHdXNlcl9pZBgKIAEoCSKlAQoZU2VhcmNoVXNlclByb2plY3RzUmVxdWVzdBIpCgd1c2VyX2lkGAEgASgJQhiSQQkyB3VzZXIgSUTiQQEC+kIFcgOwAQESJwoGb3JnX2lkGAIgASgJQheSQQgyBm9yZyBJROJBAQL6QgVyA7ABARI0CgVxdWVyeRgDIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCL9AwoaU2VhcmNoVXNlclByb2plY3RzUmVzcG9uc2USWAoNdXNlcl9wcm9qZWN0cxgBIAMoCzJBLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlclByb2plY3RzUmVzcG9uc2UuVXNlclByb2plY3QSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRr4AQoLVXNlclByb2plY3QSEgoKcHJvamVjdF9pZBgBIAEoCRIVCg1wcm9qZWN0X3RpdGxlGAIgASgJEhQKDHByb2plY3RfbmFtZRgDIAEoCRI2ChJwcm9qZWN0X2NyZWF0ZWRfb24YBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnVzZXJfbmFtZXMYBSADKAkSEwoLdXNlcl90aXRsZXMYBiADKAkSEAoIdXNlcl9pZHMYByADKAkSFAoMdXNlcl9hdmF0YXJzGAggAygJEg4KBm9yZ19pZBgJIAEoCRIPCgd1c2VyX2lkGAogASgJIuIMCh5BZG1pbkNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QSaQoEYm9keRgBIAEoCzJRLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRtaW5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0Lk9yZ2FuaXphdGlvblJlcXVlc3RCb2R5Qgj6QgWKAQIQARrUCwoXT3JnYW5pemF0aW9uUmVxdWVzdEJvZHkS+wEKBG5hbWUYASABKAlC7AGSQc0BMsoBVGhlIG5hbWUgb2YgdGhlIG9yZ2FuaXphdGlvbi4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMuPGJyLz4qRXhhbXBsZToqYCJmcm9udGllci1vcmcxLWFjbWUiYOJBAQL6QhRyEjIQXltBLVphLXowLTktX10rJBKyAQoFdGl0bGUYAiABKAlCogGSQZ4BMpsBVGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmdhbml6YXRpb24uIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuPGJyLz4gKkV4YW1wbGUqOiBgIkFjbWUgSW5jImAS6QMKCG1ldGFkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEK9A5JBuQMytgNNZXRhZGF0YSBvYmplY3QgZm9yIG9yZ2FuaXphdGlvbnMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMgZGVmaW5lZCBpbiBPcmdhbml6YXRpb24gTWV0YXNjaGVtYS4gVGhlIG1ldGFkYXRhIG9iamVjdCBjYW4gYmUgdXNlZCB0byBzdG9yZSBhcmJpdHJhcnkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yZ2FuaXphdGlvbiBzdWNoIGFzIGxhYmVscywgZGVzY3JpcHRpb25zIGV0Yy4gVGhlIGRlZmF1bHQgT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEgY29udGFpbnMgbGFiZWxzIGFuZCBkZXNjcmlwdG9uIGZpZWxkcy4gVXBkYXRlIHRoZSBPcmdhbml6YXRpb24gTWV0YXNjaGVtYSB0byBhZGQgbW9yZSBmaWVsZHMuIDxici8+KkV4YW1wbGUqOmB7ImxhYmVscyI6IHsia2V5IjogInZhbHVlIn0sICJkZXNjcmlwdGlvbiI6ICJPcmdhbml6YXRpb24gZGVzY3JpcHRpb24ifWAS8AIKBmF2YXRhchgEIAEoCULfApJBjwIy0wFUaGUgYXZhdGFyIGlzIGJhc2U2NCBlbmNvZGVkIGltYWdlIGRhdGEgb2YgdGhlIHVzZXIuIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuIFRoZSBpbWFnZSBzaG91bGQgYmUgbGVzcyB0aGFuIDIwMEtCLiBTaG91bGQgZm9sbG93IHRoZSByZWdleCBwYXR0ZXJuIGBeZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJGAuSjciZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUEi+kJJckcYkKEPMj5eZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJNABARKmAQoPb3JnX293bmVyX2VtYWlsGAUgASgJQowBkkF+MnxUaGUgZW1haWwgb2YgdGhlIHVzZXIuIFRoZSBlbWFpbCBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS48YnIvPipFeGFtcGxlOipgImpvaG4uZG9lQHJheXN0YWNrLm9yZyJg4kEBAvpCBHICYAEiYAofQWRtaW5DcmVhdGVPcmdhbml6YXRpb25SZXNwb25zZRI9Cgxvcmdhbml6YXRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbiJNChVTZWFyY2hJbnZvaWNlc1JlcXVlc3QSNAoFcXVlcnkYASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFJlcXVlc3QitQMKFlNlYXJjaEludm9pY2VzUmVzcG9uc2USSwoIaW52b2ljZXMYASADKAsyOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaEludm9pY2VzUmVzcG9uc2UuSW52b2ljZRJJCgpwYWdpbmF0aW9uGAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxRdWVyeVBhZ2luYXRpb25SZXNwb25zZRI/CgVncm91cBgDIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlHcm91cFJlc3BvbnNlGsEBCgdJbnZvaWNlEgoKAmlkGAEgASgJEg4KBmFtb3VudBgCIAEoAxIQCghjdXJyZW5jeRgDIAEoCRINCgVzdGF0ZRgEIAEoCRIUCgxpbnZvaWNlX2xpbmsYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGb3JnX2lkGAcgASgJEhAKCG9yZ19uYW1lGAggASgJEhEKCW9yZ190aXRsZRgJIAEoCSJyCiVTZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEjQKBXF1ZXJ5GAIgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxSZXF1ZXN0IrsECiZTZWFyY2hPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnNSZXNwb25zZRJ9Chpvcmdhbml6YXRpb25fc2VydmljZV91c2VycxgBIAMoCzJZLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2UuT3JnYW5pemF0aW9uU2VydmljZVVzZXISSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZRoyCgdQcm9qZWN0EgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEgwKBG5hbWUYAyABKAka0QEKF09yZ2FuaXphdGlvblNlcnZpY2VVc2VyEgoKAmlkGAEgASgJEg0KBXRpdGxlGAIgASgJEg4KBm9yZ19pZBgDIAEoCRJbCghwcm9qZWN0cxgEIAMoCzJJLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2UuUHJvamVjdBIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIcChpHZXRDdXJyZW50QWRtaW5Vc2VyUmVxdWVzdCKKAQobR2V0Q3VycmVudEFkbWluVXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISPAoMc2VydmljZV91c2VyGAIgASgLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciI4ChdMaXN0VXNlclNlc3Npb25zUmVxdWVzdBIdCgd1c2VyX2lkGAEgASgJQgziQQEC+kIFcgOwAQEiUAoYTGlzdFVzZXJTZXNzaW9uc1Jlc3BvbnNlEjQKCHNlc3Npb25zGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXNzaW9uIkIKGFJldm9rZVVzZXJTZXNzaW9uUmVxdWVzdBIgCgpzZXNzaW9uX2lkGAIgASgJQgziQQEC+kIFcgOwAQFKBAgBEAIiGwoZUmV2b2tlVXNlclNlc3Npb25SZXNwb25zZSJPChdMaXN0QXVkaXRSZWNvcmRzUmVxdWVzdBI0CgVxdWVyeRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUmVxdWVzdCJXChlFeHBvcnRBdWRpdFJlY29yZHNSZXF1ZXN0EjoKBXF1ZXJ5GAEgASgLMisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SUUxFeHBvcnRSZXF1ZXN0IuUBChhMaXN0QXVkaXRSZWNvcmRzUmVzcG9uc2USPQoNYXVkaXRfcmVjb3JkcxgBIAMoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRSZWNvcmQSSQoKcGFnaW5hdGlvbhgCIAEoCzI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUlFMUXVlcnlQYWdpbmF0aW9uUmVzcG9uc2USPwoFZ3JvdXAYAyABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJRTFF1ZXJ5R3JvdXBSZXNwb25zZTLTfQoMQWRtaW5TZXJ2aWNlEq8CCgxMaXN0QWxsVXNlcnMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxVc2Vyc1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxVc2Vyc1Jlc3BvbnNlIr0BkkGdAQoEVXNlchIOTGlzdCBhbGwgdXNlcnMahAFMaXN0cyBhbGwgdGhlIHVzZXJzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBrZXl3b3JkLCBvcmdhbml6YXRpb24sIGdyb3VwIGFuZCBzdGF0ZS6C0+STAhYSFC92MWJldGExL2FkbWluL3VzZXJzEpsCChNMaXN0QWxsU2VydmljZVVzZXJzEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsU2VydmljZVVzZXJzUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbFNlcnZpY2VVc2Vyc1Jlc3BvbnNlIpQBkkFuCgRVc2VyEhZMaXN0IGFsbCBzZXJ2aWNlIHVzZXJzGk5MaXN0cyBhbGwgdGhlIHNlcnZpY2UgdXNlcnMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS6C0+STAh0SGy92MWJldGExL2FkbWluL3NlcnZpY2V1c2VycxKcAgoKTGlzdEdyb3VwcxIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3Vwc1JlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cHNSZXNwb25zZSKwAZJBjwEKBUdyb3VwEg9MaXN0IGFsbCBncm91cHMadUxpc3RzIGFsbCB0aGUgZ3JvdXBzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBvcmdhbml6YXRpb24gYW5kIHN0YXRlLoLT5JMCFxIVL3YxYmV0YTEvYWRtaW4vZ3JvdXBzErMCChRMaXN0QWxsT3JnYW5pemF0aW9ucxI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbE9yZ2FuaXphdGlvbnNSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsT3JnYW5pemF0aW9uc1Jlc3BvbnNlIqkBkkGBAQoMT3JnYW5pemF0aW9uEhZMaXN0IGFsbCBvcmdhbml6YXRpb25zGllMaXN0cyBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IHVzZXIgYW5kIHN0YXRlLoLT5JMCHhIcL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucxLwAQoXQWRtaW5DcmVhdGVPcmdhbml6YXRpb24SOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkbWluQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRtaW5DcmVhdGVPcmdhbml6YXRpb25SZXNwb25zZSJekkExCgxPcmdhbml6YXRpb24SIUNyZWF0ZSBvcmdhbml6YXRpb24gYXMgc3VwZXJhZG1pboLT5JMCJCIcL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9uczoEYm9keRKyAgoTU2VhcmNoT3JnYW5pemF0aW9ucxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbnNSZXNwb25zZSKrAZJBdgoMT3JnYW5pemF0aW9uEhRTZWFyY2ggb3JnYW5pemF0aW9ucxpQU2VhcmNoIG9yZ2FuaXphdGlvbiBiYXNlZCBvbiBvcmcgZGVtb2dyYXBoaWMgcHJvcGVydGllcyBhbmQgYmlsbGluZyBwbGFuIGRldGFpbHOC0+STAiwiIy92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMvc2VhcmNoOgVxdWVyeRL7AQoXU2VhcmNoT3JnYW5pemF0aW9uVXNlcnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZSJpkkEpCgxPcmdhbml6YXRpb24SGVNlYXJjaCBvcmdhbml6YXRpb24gdXNlcnOC0+STAjciLi92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS91c2Vycy9zZWFyY2g6BXF1ZXJ5Et0BChJTZWFyY2hQcm9qZWN0VXNlcnMSNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFByb2plY3RVc2Vyc1JlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFByb2plY3RVc2Vyc1Jlc3BvbnNlIlqSQR8KB1Byb2plY3QSFFNlYXJjaCBQcm9qZWN0IHVzZXJzgtPkkwIyIikvdjFiZXRhMS9hZG1pbi9wcm9qZWN0cy97aWR9L3VzZXJzL3NlYXJjaDoFcXVlcnkSigIKGlNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hPcmdhbml6YXRpb25Qcm9qZWN0c1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblByb2plY3RzUmVzcG9uc2Uib5JBLAoMT3JnYW5pemF0aW9uEhxTZWFyY2ggb3JnYW5pemF0aW9uIHByb2plY3RzgtPkkwI6IjEvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vcHJvamVjdHMvc2VhcmNoOgVxdWVyeRKKAgoaU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvbkludm9pY2VzUmVxdWVzdBo9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uSW52b2ljZXNSZXNwb25zZSJvkkEsCgxPcmdhbml6YXRpb24SHFNlYXJjaCBvcmdhbml6YXRpb24gaW52b2ljZXOC0+STAjoiMS92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS9pbnZvaWNlcy9zZWFyY2g6BXF1ZXJ5EoACChhTZWFyY2hPcmdhbml6YXRpb25Ub2tlbnMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1JlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblRva2Vuc1Jlc3BvbnNlImuSQSoKDE9yZ2FuaXphdGlvbhIaU2VhcmNoIG9yZ2FuaXphdGlvbiB0b2tlbnOC0+STAjgiLy92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS90b2tlbnMvc2VhcmNoOgVxdWVyeRLUAgooU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFscxJKLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJDcmVkZW50aWFsc1JlcXVlc3QaSy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXNwb25zZSKOAZJBPAoMT3JnYW5pemF0aW9uEixTZWFyY2ggb3JnYW5pemF0aW9uIHNlcnZpY2UgdXNlciBjcmVkZW50aWFsc4LT5JMCSSJAL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3NlcnZpY2V1c2VyX2NyZWRlbnRpYWxzL3NlYXJjaDoFcXVlcnkSnwIKHlNlYXJjaE9yZ2FuaXphdGlvblNlcnZpY2VVc2VycxJALnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBpBLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoT3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2UieJJBMQoMT3JnYW5pemF0aW9uEiFTZWFyY2ggb3JnYW5pemF0aW9uIHNlcnZpY2UgdXNlcnOC0+STAj4iNS92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve2lkfS9zZXJ2aWNldXNlcnMvc2VhcmNoOgVxdWVyeRKNAgoTRXhwb3J0T3JnYW5pemF0aW9ucxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRXhwb3J0T3JnYW5pemF0aW9uc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IqYBkkF4CgxPcmdhbml6YXRpb24SFEV4cG9ydCBvcmdhbml6YXRpb25zGkhFeHBvcnQgb3JnYW5pemF0aW9uIHdpdGggZGVtb2dyYXBoaWMgcHJvcGVydGllcyBhbmQgYmlsbGluZyBwbGFuIGRldGFpbHM6CHRleHQvY3N2gtPkkwIlEiMvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL2V4cG9ydDABEogCChdFeHBvcnRPcmdhbml6YXRpb25Vc2VycxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRXhwb3J0T3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0GhQuZ29vZ2xlLmFwaS5IdHRwQm9keSKZAZJBYAoMT3JnYW5pemF0aW9uEhlFeHBvcnQgb3JnYW5pemF0aW9uIHVzZXJzGitFeHBvcnQgb3JnYW5pemF0aW9uIHVzZXIgdGhlaXIgcm9sZSBkZXRhaWxzOgh0ZXh0L2NzdoLT5JMCMBIuL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3VzZXJzL2V4cG9ydDABEpMCChpFeHBvcnRPcmdhbml6YXRpb25Qcm9qZWN0cxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRXhwb3J0T3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0GhQuZ29vZ2xlLmFwaS5IdHRwQm9keSKeAZJBYgoMT3JnYW5pemF0aW9uEhxFeHBvcnQgb3JnYW5pemF0aW9uIHByb2plY3RzGipFeHBvcnQgb3JnYW5pemF0aW9uIHByb2plY3RzIHdpdGggdXNlciBJRHM6CHRleHQvY3N2gtPkkwIzEjEvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tpZH0vcHJvamVjdHMvZXhwb3J0MAES+wEKGEV4cG9ydE9yZ2FuaXphdGlvblRva2VucxI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRXhwb3J0T3JnYW5pemF0aW9uVG9rZW5zUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkiigGSQVAKDE9yZ2FuaXphdGlvbhIaRXhwb3J0IG9yZ2FuaXphdGlvbiB0b2tlbnMaGkV4cG9ydCBvcmdhbml6YXRpb24gdG9rZW5zOgh0ZXh0L2NzdoLT5JMCMRIvL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97aWR9L3Rva2Vucy9leHBvcnQwARLdAQoLRXhwb3J0VXNlcnMSLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydFVzZXJzUmVxdWVzdBoULmdvb2dsZS5hcGkuSHR0cEJvZHkihgGSQWAKBFVzZXISDEV4cG9ydCB1c2VycxpARXhwb3J0IHVzZXIgd2l0aCBkZW1vZ3JhcGhpYyBwcm9wZXJ0aWVzIGFuZCBiaWxsaW5nIHBsYW4gZGV0YWlsczoIdGV4dC9jc3aC0+STAh0SGy92MWJldGExL2FkbWluL3VzZXJzL2V4cG9ydDABEtcBCgtTZWFyY2hVc2VycxItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VhcmNoVXNlcnNSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2Vyc1Jlc3BvbnNlImmSQTwKBFVzZXISDFNlYXJjaCB1c2VycxomU2VhcmNoIHVzZXJzIGJhc2VkIG9uIHRoZWlyIHByb3BlcnRpZXOC0+STAiQiGy92MWJldGExL2FkbWluL3VzZXJzL3NlYXJjaDoFcXVlcnkS9AEKF1NlYXJjaFVzZXJPcmdhbml6YXRpb25zEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hVc2VyT3JnYW5pemF0aW9uc1JlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJPcmdhbml6YXRpb25zUmVzcG9uc2UiYpJBIgoEVXNlchIaU2VhcmNoIHVzZXJzIG9yZ2FuaXphdGlvbnOC0+STAjciLi92MWJldGExL2FkbWluL3VzZXJzL3tpZH0vb3JnYW5pemF0aW9ucy9zZWFyY2g6BXF1ZXJ5EoICChJTZWFyY2hVc2VyUHJvamVjdHMSNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJQcm9qZWN0c1JlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaFVzZXJQcm9qZWN0c1Jlc3BvbnNlIn+SQS8KBFVzZXISJ1NlYXJjaCBwcm9qZWN0cyBvZiBhIHVzZXIgd2l0aGluIGFuIG9yZ4LT5JMCRyI+L3YxYmV0YTEvYWRtaW4vdXNlcnMve3VzZXJfaWR9L29yZ2FuaXphdGlvbnMve29yZ19pZH0vcHJvamVjdHM6BXF1ZXJ5Eq0CChJTZXRPcmdhbml6YXRpb25LeWMSNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNldE9yZ2FuaXphdGlvbkt5Y1JlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNldE9yZ2FuaXphdGlvbkt5Y1Jlc3BvbnNlIqkBkkFyCg9Pcmdhbml6YXRpb25LeWMSJlNldCBLWUMgaW5mb3JtYXRpb24gb2YgYW4gb3JnYW5pemF0aW9uGjdTZXQgS1lDIGluZm9ybWF0aW9uIG9mIGFuIG9yZ2FuaXphdGlvbiB1c2luZyBJRCBvciBuYW1lgtPkkwIuGikvdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2t5YzoBKhKbAgoUTGlzdE9yZ2FuaXphdGlvbnNLeWMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zS3ljUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNLeWNSZXNwb25zZSKRAZJBZgoPT3JnYW5pemF0aW9uS3ljEilMaXN0IEtZQyBpbmZvcm1hdGlvbiBvZiBhbGwgb3JnYW5pemF0aW9ucxooTGlzdCBLWUMgaW5mb3JtYXRpb24gb2YgYWxsIG9yZ2FuaXphdGlvboLT5JMCIhIgL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy9reWMSqgIKDExpc3RQcm9qZWN0cxIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzUmVzcG9uc2UiuAGSQZUBCgdQcm9qZWN0EhFMaXN0IGFsbCBwcm9qZWN0cxp3TGlzdHMgYWxsIHRoZSBwcm9qZWN0cyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgb3JnYW5pemF0aW9uIGFuZCBzdGF0ZS6C0+STAhkSFy92MWJldGExL2FkbWluL3Byb2plY3RzErUBCg1MaXN0UmVsYXRpb25zEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UmVsYXRpb25zUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJlbGF0aW9uc1Jlc3BvbnNlIkGSQR4KCFJlbGF0aW9uEhJMaXN0IGFsbCByZWxhdGlvbnOC0+STAhoSGC92MWJldGExL2FkbWluL3JlbGF0aW9ucxLFAgoNTGlzdFJlc291cmNlcxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJlc291cmNlc1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSZXNvdXJjZXNSZXNwb25zZSLQAZJBrAEKCFJlc291cmNlEhJMaXN0IGFsbCByZXNvdXJjZXMaiwFMaXN0cyBhbGwgdGhlIHJlc291cmNlcyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgdXNlciwgcHJvamVjdCwgb3JnYW5pemF0aW9uIGFuZCBuYW1lc3BhY2UugtPkkwIaEhgvdjFiZXRhMS9hZG1pbi9yZXNvdXJjZXMSmAIKCkNyZWF0ZVJvbGUSLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVJvbGVSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVSb2xlUmVzcG9uc2UirAGSQYwBCgRSb2xlEhRDcmVhdGUgcGxhdGZvcm0gcm9sZRpuQ3JlYXRlcyBhIHBsYXRmb3JtIHdpZGUgcm9sZS4gSXQgY2FuIGJlIHVzZWQgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gYWxsIHRoZSByZXNvdXJjZXMgaW4gYSBGcm9udGllciBpbnN0YW5jZS6C0+STAhYiDi92MWJldGExL3JvbGVzOgRib2R5EtUBCgpVcGRhdGVSb2xlEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVSb2xlUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUm9sZVJlc3BvbnNlImqSQUYKBFJvbGUSC1VwZGF0ZSByb2xlGjFVcGRhdGUgYSByb2xlIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgcGVybWlzc2lvbnMugtPkkwIbGhMvdjFiZXRhMS9yb2xlcy97aWR9OgRib2R5EtwBCgpEZWxldGVSb2xlEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVSb2xlUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUm9sZVJlc3BvbnNlInGSQVMKBFJvbGUSFERlbGV0ZSBwbGF0Zm9ybSByb2xlGjVEZWxldGUgYSBwbGF0Zm9ybSB3aWRlIHJvbGUgYW5kIGFsbCBvZiBpdHMgcmVsYXRpb25zLoLT5JMCFSoTL3YxYmV0YTEvcm9sZXMve2lkfRKxAgoQQ3JlYXRlUGVybWlzc2lvbhIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUGVybWlzc2lvblJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBlcm1pc3Npb25SZXNwb25zZSKzAZJBkAEKClBlcm1pc3Npb24SGkNyZWF0ZSBwbGF0Zm9ybSBwZXJtaXNzaW9uGmZDcmVhdGVzIGEgcGVybWlzc2lvbi4gSXQgY2FuIGJlIHVzZWQgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gYWxsIHRoZSByZXNvdXJjZXMgaW4gYSBGcm9udGllciBpbnN0YW5jZS6C0+STAhkiFC92MWJldGExL3Blcm1pc3Npb25zOgEqEr8CChBVcGRhdGVQZXJtaXNzaW9uEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQZXJtaXNzaW9uUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUGVybWlzc2lvblJlc3BvbnNlIsEBkkGWAQoKUGVybWlzc2lvbhIaVXBkYXRlIHBsYXRmb3JtIHBlcm1pc3Npb24abFVwZGF0ZXMgYSBwZXJtaXNzaW9uIGJ5IElELiBJdCBjYW4gYmUgdXNlZCB0byBncmFudCBwZXJtaXNzaW9ucyB0byBhbGwgdGhlIHJlc291cmNlcyBpbiBhIEZyb250aWVyIGluc3RhbmNlLoLT5JMCIRoZL3YxYmV0YTEvcGVybWlzc2lvbnMve2lkfToEYm9keRLJAQoQRGVsZXRlUGVybWlzc2lvbhIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUGVybWlzc2lvblJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVBlcm1pc3Npb25SZXNwb25zZSJMkkEoCgpQZXJtaXNzaW9uEhpEZWxldGUgcGxhdGZvcm0gcGVybWlzc2lvboLT5JMCGyoZL3YxYmV0YTEvcGVybWlzc2lvbnMve2lkfRKwAgoPTGlzdFByZWZlcmVuY2VzEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJlZmVyZW5jZXNSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJlZmVyZW5jZXNSZXNwb25zZSK1AZJBlQEKClByZWZlcmVuY2USGUxpc3QgcGxhdGZvcm0gcHJlZmVyZW5jZXMabFJldHVybnMgYSBsaXN0IG9mIGFsbCBwcmVmZXJlbmNlcyBjb25maWd1cmVkIG9uIGFuIGluc3RhbmNlIGluIEZyb250aWVyLiBlLmcgdXNlciwgcHJvamVjdCwgb3JnYW5pemF0aW9uIGV0Y4LT5JMCFhIUL3YxYmV0YTEvcHJlZmVyZW5jZXMS+wIKEUNyZWF0ZVByZWZlcmVuY2VzEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcmVmZXJlbmNlc1JlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByZWZlcmVuY2VzUmVzcG9uc2Ui+gGSQdcBCgpQcmVmZXJlbmNlEhtDcmVhdGUgcGxhdGZvcm0gcHJlZmVyZW5jZXMaqwFDcmVhdGUgbmV3IHBsYXRmb3JtIHByZWZlcmVuY2VzLiBUaGUgcGxhdGZvcm0gcHJlZmVyZW5jZXMgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBwbGF0Zm9ybSBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy6C0+STAhkiFC92MWJldGExL3ByZWZlcmVuY2VzOgEqEoMDCiBDaGVja0ZlZGVyYXRlZFJlc291cmNlUGVybWlzc2lvbhJCLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tGZWRlcmF0ZWRSZXNvdXJjZVBlcm1pc3Npb25SZXF1ZXN0GkMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0ZlZGVyYXRlZFJlc291cmNlUGVybWlzc2lvblJlc3BvbnNlItUBkkGyAQoFQXV0aHoSBUNoZWNrGqEBUmV0dXJucyB0cnVlIGlmIGEgcHJpbmNpcGFsIGhhcyByZXF1aXJlZCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgYSByZXNvdXJjZSBhbmQgZmFsc2Ugb3RoZXJ3aXNlLjxici8+IE5vdGUgdGhlIHByaW5jaXBhbCBjYW4gYmUgYSB1c2VyLCBncm91cCBvciBhIHNlcnZpY2UgYWNjb3VudC6C0+STAhkiFC92MWJldGExL2FkbWluL2NoZWNrOgEqEuABCg9BZGRQbGF0Zm9ybVVzZXISMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkZFBsYXRmb3JtVXNlclJlcXVlc3QaMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkZFBsYXRmb3JtVXNlclJlc3BvbnNlImaSQTsKCFBsYXRmb3JtEhFBZGQgcGxhdGZvcm0gdXNlchocQWRkcyBhIHVzZXIgdG8gdGhlIHBsYXRmb3JtLoLT5JMCIiIdL3YxYmV0YTEvYWRtaW4vcGxhdGZvcm0vdXNlcnM6ASoS8wEKEUxpc3RQbGF0Zm9ybVVzZXJzEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGxhdGZvcm1Vc2Vyc1JlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQbGF0Zm9ybVVzZXJzUmVzcG9uc2Uic5JBSwoIUGxhdGZvcm0SE0xpc3QgcGxhdGZvcm0gdXNlcnMaKkxpc3RzIGFsbCB0aGUgdXNlcnMgYWRkZWQgdG8gdGhlIHBsYXRmb3JtLoLT5JMCHxIdL3YxYmV0YTEvYWRtaW4vcGxhdGZvcm0vdXNlcnMS+AEKElJlbW92ZVBsYXRmb3JtVXNlchI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVtb3ZlUGxhdGZvcm1Vc2VyUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVtb3ZlUGxhdGZvcm1Vc2VyUmVzcG9uc2UidZJBQwoIUGxhdGZvcm0SFFJlbW92ZSBwbGF0Zm9ybSB1c2VyGiFSZW1vdmVzIGEgdXNlciBmcm9tIHRoZSBwbGF0Zm9ybS6C0+STAikiJC92MWJldGExL2FkbWluL3BsYXRmb3JtL3VzZXJzL3JlbW92ZToBKhLAAwoRRGVsZWdhdGVkQ2hlY2tvdXQSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGVnYXRlZENoZWNrb3V0UmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZWdhdGVkQ2hlY2tvdXRSZXNwb25zZSK/ApJBrQEKCENoZWNrb3V0EiJDaGVja291dCBhIHByb2R1Y3Qgb3Igc3Vic2NyaXB0aW9uGn1DaGVja291dCBhIHByb2R1Y3QgdG8gYnV5IGl0IG9uZSB0aW1lIG9yIHN0YXJ0IGEgc3Vic2NyaXB0aW9uIHBsYW4gb24gYSBiaWxsaW5nIGFjY291bnQgbWFudWFsbHkuIEl0IGJ5cGFzc2VzIGJpbGxpbmcgZW5naW5lLoLT5JMChwEiRC92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vY2hlY2tvdXRzOgEqWjwiNy92MWJldGExL2FkbWluL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9jaGVja291dHM6ASoSsQIKD0xpc3RBbGxJbnZvaWNlcxIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbEludm9pY2VzUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEFsbEludm9pY2VzUmVzcG9uc2UitgGSQYsBCgdJbnZvaWNlEhFMaXN0IGFsbCBpbnZvaWNlcxptTGlzdHMgYWxsIHRoZSBpbnZvaWNlcyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgb3JnYW5pemF0aW9uLoLT5JMCIRIfL3YxYmV0YTEvYWRtaW4vYmlsbGluZy9pbnZvaWNlcxKnAgoQR2VuZXJhdGVJbnZvaWNlcxIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2VuZXJhdGVJbnZvaWNlc1JlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdlbmVyYXRlSW52b2ljZXNSZXNwb25zZSKpAZJBcwoHSW52b2ljZRIaVHJpZ2dlciBpbnZvaWNlIGdlbmVyYXRpb24aTFRyaWdnZXJzIHRoZSBjcmVhdGlvbiBvZiBjcmVkaXQgb3ZlcmRyYWZ0IGludm9pY2VzIGZvciBhbGwgYmlsbGluZyBhY2NvdW50cy6C0+STAi0iKC92MWJldGExL2FkbWluL2JpbGxpbmcvaW52b2ljZXMvZ2VuZXJhdGU6ASoS1gIKFkxpc3RBbGxCaWxsaW5nQWNjb3VudHMSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBbGxCaWxsaW5nQWNjb3VudHNSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QWxsQmlsbGluZ0FjY291bnRzUmVzcG9uc2UixgGSQZsBCgdCaWxsaW5nEhlMaXN0IGFsbCBiaWxsaW5nIGFjY291bnRzGnVMaXN0cyBhbGwgdGhlIGJpbGxpbmcgYWNjb3VudHMgZnJvbSBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IG9yZ2FuaXphdGlvbi6C0+STAiESHy92MWJldGExL2FkbWluL2JpbGxpbmcvYWNjb3VudHMS5AIKElJldmVydEJpbGxpbmdVc2FnZRI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmV2ZXJ0QmlsbGluZ1VzYWdlUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmV2ZXJ0QmlsbGluZ1VzYWdlUmVzcG9uc2Ui4AGSQUwKB0JpbGxpbmcSFFJldmVydCBiaWxsaW5nIHVzYWdlGitSZXZlcnQgYmlsbGluZyB1c2FnZSBmb3IgYSBiaWxsaW5nIGFjY291bnQugtPkkwKKASJSL3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS91c2FnZS97dXNhZ2VfaWR9L3JldmVydDoBKloxIiwvdjFiZXRhMS9vcmdhbml6YXRpb25zL2JpbGxpbmcvdXNhZ2VzL3JldmVydDoBKhLJAQoNQ3JlYXRlV2ViaG9vaxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlV2ViaG9va1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVdlYmhvb2tSZXNwb25zZSJVkkEwCgdXZWJob29rEg5DcmVhdGUgd2ViaG9vaxoVQ3JlYXRlIGEgbmV3IHdlYmhvb2sugtPkkwIcIhcvdjFiZXRhMS9hZG1pbi93ZWJob29rczoBKhLKAQoNVXBkYXRlV2ViaG9vaxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlV2ViaG9va1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVdlYmhvb2tSZXNwb25zZSJWkkEsCgdXZWJob29rEg5VcGRhdGUgd2ViaG9vaxoRVXBkYXRlIGEgd2ViaG9vay6C0+STAiEaHC92MWJldGExL2FkbWluL3dlYmhvb2tzL3tpZH06ASoSxwEKDURlbGV0ZVdlYmhvb2sSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVdlYmhvb2tSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVXZWJob29rUmVzcG9uc2UiU5JBLAoHV2ViaG9vaxIORGVsZXRlIHdlYmhvb2saEURlbGV0ZSBhIHdlYmhvb2sugtPkkwIeKhwvdjFiZXRhMS9hZG1pbi93ZWJob29rcy97aWR9Er8BCgxMaXN0V2ViaG9va3MSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RXZWJob29rc1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RXZWJob29rc1Jlc3BvbnNlIk6SQSwKB1dlYmhvb2sSDUxpc3Qgd2ViaG9va3MaEkxpc3QgYWxsIHdlYmhvb2tzLoLT5JMCGRIXL3YxYmV0YTEvYWRtaW4vd2ViaG9va3MSsAIKGlVwZGF0ZUJpbGxpbmdBY2NvdW50TGltaXRzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudExpbWl0c1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUJpbGxpbmdBY2NvdW50TGltaXRzUmVzcG9uc2UilAGIAgGSQUoKB0JpbGxpbmcSHVVwZGF0ZSBiaWxsaW5nIGFjY291bnQgbGltaXRzGh5VcGRhdGUgYmlsbGluZyBhY2NvdW50IGxpbWl0cy5YAYLT5JMCPho5L3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vbGltaXRzOgEqErMCChhHZXRCaWxsaW5nQWNjb3VudERldGFpbHMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEJpbGxpbmdBY2NvdW50RGV0YWlsc1JlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEJpbGxpbmdBY2NvdW50RGV0YWlsc1Jlc3BvbnNlIp0BkkFYCgdCaWxsaW5nEhtHZXQgYmlsbGluZyBhY2NvdW50IGRldGFpbHMaMEdldCBiaWxsaW5nIGFjY291bnQgZGV0YWlscyB0aGF0IGNhbiBiZSB1cGRhdGVkLoLT5JMCPBI6L3YxYmV0YTEvYWRtaW4vb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vZGV0YWlscxKxAgobVXBkYXRlQmlsbGluZ0FjY291bnREZXRhaWxzEj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudERldGFpbHNSZXF1ZXN0Gj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudERldGFpbHNSZXNwb25zZSKSAZJBSgoHQmlsbGluZxIeVXBkYXRlIGJpbGxpbmcgYWNjb3VudCBkZXRhaWxzGh9VcGRhdGUgYmlsbGluZyBhY2NvdW50IGRldGFpbHMugtPkkwI/GjovdjFiZXRhMS9hZG1pbi9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9kZXRhaWxzOgEqEucBCg5DcmVhdGVQcm9zcGVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvc3BlY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9zcGVjdFJlc3BvbnNlInCSQUoKCFByb3NwZWN0Eg9DcmVhdGUgcHJvc3BlY3QaLUNyZWF0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gZW1haWwgYW5kIGFjdGl2aXR5LoLT5JMCHSIYL3YxYmV0YTEvYWRtaW4vcHJvc3BlY3RzOgEqEvwBCg1MaXN0UHJvc3BlY3RzEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvc3BlY3RzUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb3NwZWN0c1Jlc3BvbnNlIocBkkFYCghQcm9zcGVjdBIOTGlzdCBwcm9zcGVjdHMaPExpc3QgcHJvc3BlY3RzIGFuZCBzdXBwb3J0cyBmaWx0ZXJzLCBzb3J0aW5nIGFuZCBwYWdpbmF0aW9uLoLT5JMCJiIdL3YxYmV0YTEvYWRtaW4vcHJvc3BlY3RzL2xpc3Q6BXF1ZXJ5EsIBCgtHZXRQcm9zcGVjdBItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvc3BlY3RSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9zcGVjdFJlc3BvbnNlIlSSQSwKCFByb3NwZWN0EgxHZXQgcHJvc3BlY3QaEkdldCBwcm9zcGVjdCBieSBJRILT5JMCHxIdL3YxYmV0YTEvYWRtaW4vcHJvc3BlY3RzL3tpZH0S2wEKDlVwZGF0ZVByb3NwZWN0EjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9zcGVjdFJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb3NwZWN0UmVzcG9uc2UiZJJBOQoIUHJvc3BlY3QSD1VwZGF0ZSBwcm9zcGVjdBocVXBkYXRlIHByb3NwZWN0IGZvciBnaXZlbiBJRILT5JMCIhodL3YxYmV0YTEvYWRtaW4vcHJvc3BlY3RzL3tpZH06ASoS2AEKDkRlbGV0ZVByb3NwZWN0EjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9zcGVjdFJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVByb3NwZWN0UmVzcG9uc2UiYZJBOQoIUHJvc3BlY3QSD0RlbGV0ZSBwcm9zcGVjdBocRGVsZXRlIHByb3NwZWN0IGZvciBnaXZlbiBJRILT5JMCHyodL3YxYmV0YTEvYWRtaW4vcHJvc3BlY3RzL3tpZH0S2gEKDlNlYXJjaEludm9pY2VzEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWFyY2hJbnZvaWNlc1JlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlYXJjaEludm9pY2VzUmVzcG9uc2UiY5JBMwoHaW52b2ljZRIoU2VhcmNoIGludm9pY2VzIGFjcm9zcyBhbGwgb3JnYW5pemF0aW9uc4LT5JMCJyIeL3YxYmV0YTEvYWRtaW4vaW52b2ljZXMvc2VhcmNoOgVxdWVyeRK0AgoTR2V0Q3VycmVudEFkbWluVXNlchI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0Q3VycmVudEFkbWluVXNlclJlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEN1cnJlbnRBZG1pblVzZXJSZXNwb25zZSKtAZJBiAEKBFVzZXISFkdldCBjdXJyZW50IGFkbWluIHVzZXIaaFJldHVybnMgdGhlIGN1cnJlbnQgYXV0aGVudGljYXRlZCBhZG1pbiB1c2VyIHByb2ZpbGUuIFJldHVybnMgNDAzIEZvcmJpZGRlbiBpZiB0aGUgdXNlciBpcyBub3QgYW4gYWRtaW4ugtPkkwIbEhkvdjFiZXRhMS9hZG1pbi91c2Vycy9zZWxmEn0KEExpc3RVc2VyU2Vzc2lvbnMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyU2Vzc2lvbnNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0VXNlclNlc3Npb25zUmVzcG9uc2UiABKAAQoRUmV2b2tlVXNlclNlc3Npb24SMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldm9rZVVzZXJTZXNzaW9uUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmV2b2tlVXNlclNlc3Npb25SZXNwb25zZSIAEn0KEExpc3RBdWRpdFJlY29yZHMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBdWRpdFJlY29yZHNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QXVkaXRSZWNvcmRzUmVzcG9uc2UiABJkChJFeHBvcnRBdWRpdFJlY29yZHMSNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkV4cG9ydEF1ZGl0UmVjb3Jkc1JlcXVlc3QaFC5nb29nbGUuYXBpLkh0dHBCb2R5IgAwAULwDgojaW8ucmF5c3RhY2sucHJvdG9uLmZyb250aWVyLnYxYmV0YTFCCEZyb250aWVyWjtnaXRodWIuY29tL3JheXN0YWNrL3Byb3Rvbi9mcm9udGllci92MWJldGExO2Zyb250aWVydjFiZXRhMZJBgA4S/gYKG0Zyb250aWVyIEFkbWluaXN0cmF0aW9uIEFQSRLPBVRoZSBGcm9udGllciBBUElzIGFkaGVyZSB0byB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLCBhbHNvIGtub3duIGFzIFN3YWdnZXIsIHdoaWNoIHByb3ZpZGVzIGEgc3RhbmRhcmRpemVkIGFwcHJvYWNoIGZvciBkZXNpZ25pbmcsIGRvY3VtZW50aW5nLCBhbmQgY29uc3VtaW5nIFJFU1RmdWwgQVBJcy4gV2l0aCBPcGVuQVBJLCB5b3UgZ2FpbiBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIEFQSSBlbmRwb2ludHMsIHJlcXVlc3QvcmVzcG9uc2Ugc3RydWN0dXJlcywgYW5kIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMgc3VwcG9ydGVkIGJ5IHRoZSBGcm9udGllciBBUElzLiBCeSBsZXZlcmFnaW5nIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24sIGRldmVsb3BlcnMgY2FuIGVhc2lseSBleHBsb3JlIGFuZCBpbnRlcmFjdCB3aXRoIHRoZSBGcm9udGllciBBUElzIHVzaW5nIGEgdmFyaWV0eSBvZiB0b29scyBhbmQgbGlicmFyaWVzLiBUaGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uIGVuYWJsZXMgYXV0b21hdGljIGNvZGUgZ2VuZXJhdGlvbiwgaW50ZXJhY3RpdmUgQVBJIGRvY3VtZW50YXRpb24sIGFuZCBzZWFtbGVzcyBpbnRlZ3JhdGlvbiB3aXRoIEFQSSB0ZXN0aW5nIGZyYW1ld29ya3MsIG1ha2luZyBpdCBlYXNpZXIgdGhhbiBldmVyIHRvIGludGVncmF0ZSBGcm9udGllciBpbnRvIHlvdXIgZXhpc3RpbmcgYXBwbGljYXRpb25zIGFuZCB3b3JrZmxvd3MuIkAKE1JheXN0YWNrIEZvdW5kYXRpb24SFWh0dHBzOi8vcmF5c3RhY2sub3JnLxoSaGVsbG9AcmF5c3RhY2sub3JnKkQKCkFwYWNoZSAyLjASNmh0dHBzOi8vZ2l0aHViLmNvbS9yYXlzdGFjay9mcm9udGllci9ibG9iL21haW4vTElDRU5TRTIFMC4yLjAaDjEyNy4wLjAuMTo3NDAwKgEBMhBhcHBsaWNhdGlvbi9qc29uOhBhcHBsaWNhdGlvbi9qc29uUjwKAzIwMBI1ChtPSyAtIEEgc3VjY2Vzc2Z1bCByZXNwb25zZS4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSaQoDNDAwEmIKSEJhZCBSZXF1ZXN0IC0gVGhlIHJlcXVlc3Qgd2FzIG1hbGZvcm1lZCBvciBjb250YWluZWQgaW52YWxpZCBwYXJhbWV0ZXJzLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JKCgM0MDESQwopVW5hdXRob3JpemVkIC0gQXV0aGVudGljYXRpb24gaXMgcmVxdWlyZWQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSYQoDNDAzEloKQEZvcmJpZGRlbiAtIFVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGUgcmVzb3VyY2USFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSUQoDNDA0EkoKME5vdCBGb3VuZCAtIFRoZSByZXF1ZXN0ZWQgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZBIWChQaEi5nb29nbGUucnBjLlN0YXR1c1J1CgM1MDASbgpUSW50ZXJuYWwgU2VydmVyIEVycm9yLiBSZXR1cm5lZCB3aGVuIHRoZXJlcyBpcyBzb21ldGhpbmcgd3Jvbmcgd2l0aCBGcm9udGllciBzZXJ2ZXIuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzWqgBCk4KBUJhc2ljEkUIARI3dXNlIENsaWVudCBJRCBhcyB1c2VybmFtZSBhbmQgQ2xpZW50IFNlY3JldCBhcyBwYXNzd29yZBoGQmFzaWMgIAIKVgoGQmVhcmVyEkwIAxI9QWNjZXNzIHRva2VuIG9yIEpXVCB0b2tlbiwgcHJlZml4ZWQgYnkgQmVhcmVyOiBCZWFyZXIgPHRva2VuPhoHQmVhcmVyICACYgkKBwoFQmFzaWNiCgoICgZCZWFyZXJqBgoEVXNlcmoHCgVHcm91cGoOCgxPcmdhbml6YXRpb25qCQoHUHJvamVjdGoKCghSZWxhdGlvbmoKCghSZXNvdXJjZWoICgZQb2xpY3lqBgoEUm9sZWoMCgpQZXJtaXNzaW9uYgZwcm90bzM", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_google_api_httpbody, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* @generated from message raystack.frontier.v1beta1.ListAllUsersRequest
|
|
@@ -814,9 +814,11 @@ export type DelegatedCheckoutRequest = Message<"raystack.frontier.v1beta1.Delega
|
|
|
814
814
|
orgId: string;
|
|
815
815
|
|
|
816
816
|
/**
|
|
817
|
+
* DEPRECATED: billing_id will be inferred from org_id
|
|
817
818
|
* ID of the billing account to update the subscription for
|
|
818
819
|
*
|
|
819
|
-
* @generated from field: string billing_id = 2;
|
|
820
|
+
* @generated from field: string billing_id = 2 [deprecated = true];
|
|
821
|
+
* @deprecated
|
|
820
822
|
*/
|
|
821
823
|
billingId: string;
|
|
822
824
|
|
|
@@ -982,22 +984,23 @@ export const ListAllBillingAccountsResponseSchema: GenMessage<ListAllBillingAcco
|
|
|
982
984
|
*/
|
|
983
985
|
export type RevertBillingUsageRequest = Message<"raystack.frontier.v1beta1.RevertBillingUsageRequest"> & {
|
|
984
986
|
/**
|
|
985
|
-
* either provide org_id or infer org from project_id
|
|
986
|
-
*
|
|
987
987
|
* @generated from field: string org_id = 1;
|
|
988
988
|
*/
|
|
989
989
|
orgId: string;
|
|
990
990
|
|
|
991
991
|
/**
|
|
992
|
-
*
|
|
992
|
+
* DEPRECATED
|
|
993
|
+
*
|
|
994
|
+
* @generated from field: string project_id = 2 [deprecated = true];
|
|
995
|
+
* @deprecated
|
|
993
996
|
*/
|
|
994
997
|
projectId: string;
|
|
995
998
|
|
|
996
999
|
/**
|
|
997
|
-
*
|
|
998
|
-
* billing ID from either org_id or project_id, not both
|
|
1000
|
+
* DEPRECATED: billing_id will be inferred from org_id
|
|
999
1001
|
*
|
|
1000
|
-
* @generated from field: string billing_id = 3;
|
|
1002
|
+
* @generated from field: string billing_id = 3 [deprecated = true];
|
|
1003
|
+
* @deprecated
|
|
1001
1004
|
*/
|
|
1002
1005
|
billingId: string;
|
|
1003
1006
|
|
|
@@ -3081,6 +3084,131 @@ export type GetCurrentAdminUserResponse = Message<"raystack.frontier.v1beta1.Get
|
|
|
3081
3084
|
export const GetCurrentAdminUserResponseSchema: GenMessage<GetCurrentAdminUserResponse> = /*@__PURE__*/
|
|
3082
3085
|
messageDesc(file_raystack_frontier_v1beta1_admin, 109);
|
|
3083
3086
|
|
|
3087
|
+
/**
|
|
3088
|
+
* @generated from message raystack.frontier.v1beta1.ListUserSessionsRequest
|
|
3089
|
+
*/
|
|
3090
|
+
export type ListUserSessionsRequest = Message<"raystack.frontier.v1beta1.ListUserSessionsRequest"> & {
|
|
3091
|
+
/**
|
|
3092
|
+
* @generated from field: string user_id = 1;
|
|
3093
|
+
*/
|
|
3094
|
+
userId: string;
|
|
3095
|
+
};
|
|
3096
|
+
|
|
3097
|
+
/**
|
|
3098
|
+
* Describes the message raystack.frontier.v1beta1.ListUserSessionsRequest.
|
|
3099
|
+
* Use `create(ListUserSessionsRequestSchema)` to create a new message.
|
|
3100
|
+
*/
|
|
3101
|
+
export const ListUserSessionsRequestSchema: GenMessage<ListUserSessionsRequest> = /*@__PURE__*/
|
|
3102
|
+
messageDesc(file_raystack_frontier_v1beta1_admin, 110);
|
|
3103
|
+
|
|
3104
|
+
/**
|
|
3105
|
+
* @generated from message raystack.frontier.v1beta1.ListUserSessionsResponse
|
|
3106
|
+
*/
|
|
3107
|
+
export type ListUserSessionsResponse = Message<"raystack.frontier.v1beta1.ListUserSessionsResponse"> & {
|
|
3108
|
+
/**
|
|
3109
|
+
* @generated from field: repeated raystack.frontier.v1beta1.Session sessions = 1;
|
|
3110
|
+
*/
|
|
3111
|
+
sessions: Session[];
|
|
3112
|
+
};
|
|
3113
|
+
|
|
3114
|
+
/**
|
|
3115
|
+
* Describes the message raystack.frontier.v1beta1.ListUserSessionsResponse.
|
|
3116
|
+
* Use `create(ListUserSessionsResponseSchema)` to create a new message.
|
|
3117
|
+
*/
|
|
3118
|
+
export const ListUserSessionsResponseSchema: GenMessage<ListUserSessionsResponse> = /*@__PURE__*/
|
|
3119
|
+
messageDesc(file_raystack_frontier_v1beta1_admin, 111);
|
|
3120
|
+
|
|
3121
|
+
/**
|
|
3122
|
+
* @generated from message raystack.frontier.v1beta1.RevokeUserSessionRequest
|
|
3123
|
+
*/
|
|
3124
|
+
export type RevokeUserSessionRequest = Message<"raystack.frontier.v1beta1.RevokeUserSessionRequest"> & {
|
|
3125
|
+
/**
|
|
3126
|
+
* @generated from field: string session_id = 2;
|
|
3127
|
+
*/
|
|
3128
|
+
sessionId: string;
|
|
3129
|
+
};
|
|
3130
|
+
|
|
3131
|
+
/**
|
|
3132
|
+
* Describes the message raystack.frontier.v1beta1.RevokeUserSessionRequest.
|
|
3133
|
+
* Use `create(RevokeUserSessionRequestSchema)` to create a new message.
|
|
3134
|
+
*/
|
|
3135
|
+
export const RevokeUserSessionRequestSchema: GenMessage<RevokeUserSessionRequest> = /*@__PURE__*/
|
|
3136
|
+
messageDesc(file_raystack_frontier_v1beta1_admin, 112);
|
|
3137
|
+
|
|
3138
|
+
/**
|
|
3139
|
+
* @generated from message raystack.frontier.v1beta1.RevokeUserSessionResponse
|
|
3140
|
+
*/
|
|
3141
|
+
export type RevokeUserSessionResponse = Message<"raystack.frontier.v1beta1.RevokeUserSessionResponse"> & {
|
|
3142
|
+
};
|
|
3143
|
+
|
|
3144
|
+
/**
|
|
3145
|
+
* Describes the message raystack.frontier.v1beta1.RevokeUserSessionResponse.
|
|
3146
|
+
* Use `create(RevokeUserSessionResponseSchema)` to create a new message.
|
|
3147
|
+
*/
|
|
3148
|
+
export const RevokeUserSessionResponseSchema: GenMessage<RevokeUserSessionResponse> = /*@__PURE__*/
|
|
3149
|
+
messageDesc(file_raystack_frontier_v1beta1_admin, 113);
|
|
3150
|
+
|
|
3151
|
+
/**
|
|
3152
|
+
* @generated from message raystack.frontier.v1beta1.ListAuditRecordsRequest
|
|
3153
|
+
*/
|
|
3154
|
+
export type ListAuditRecordsRequest = Message<"raystack.frontier.v1beta1.ListAuditRecordsRequest"> & {
|
|
3155
|
+
/**
|
|
3156
|
+
* @generated from field: raystack.frontier.v1beta1.RQLRequest query = 1;
|
|
3157
|
+
*/
|
|
3158
|
+
query?: RQLRequest;
|
|
3159
|
+
};
|
|
3160
|
+
|
|
3161
|
+
/**
|
|
3162
|
+
* Describes the message raystack.frontier.v1beta1.ListAuditRecordsRequest.
|
|
3163
|
+
* Use `create(ListAuditRecordsRequestSchema)` to create a new message.
|
|
3164
|
+
*/
|
|
3165
|
+
export const ListAuditRecordsRequestSchema: GenMessage<ListAuditRecordsRequest> = /*@__PURE__*/
|
|
3166
|
+
messageDesc(file_raystack_frontier_v1beta1_admin, 114);
|
|
3167
|
+
|
|
3168
|
+
/**
|
|
3169
|
+
* @generated from message raystack.frontier.v1beta1.ExportAuditRecordsRequest
|
|
3170
|
+
*/
|
|
3171
|
+
export type ExportAuditRecordsRequest = Message<"raystack.frontier.v1beta1.ExportAuditRecordsRequest"> & {
|
|
3172
|
+
/**
|
|
3173
|
+
* @generated from field: raystack.frontier.v1beta1.RQLExportRequest query = 1;
|
|
3174
|
+
*/
|
|
3175
|
+
query?: RQLExportRequest;
|
|
3176
|
+
};
|
|
3177
|
+
|
|
3178
|
+
/**
|
|
3179
|
+
* Describes the message raystack.frontier.v1beta1.ExportAuditRecordsRequest.
|
|
3180
|
+
* Use `create(ExportAuditRecordsRequestSchema)` to create a new message.
|
|
3181
|
+
*/
|
|
3182
|
+
export const ExportAuditRecordsRequestSchema: GenMessage<ExportAuditRecordsRequest> = /*@__PURE__*/
|
|
3183
|
+
messageDesc(file_raystack_frontier_v1beta1_admin, 115);
|
|
3184
|
+
|
|
3185
|
+
/**
|
|
3186
|
+
* @generated from message raystack.frontier.v1beta1.ListAuditRecordsResponse
|
|
3187
|
+
*/
|
|
3188
|
+
export type ListAuditRecordsResponse = Message<"raystack.frontier.v1beta1.ListAuditRecordsResponse"> & {
|
|
3189
|
+
/**
|
|
3190
|
+
* @generated from field: repeated raystack.frontier.v1beta1.AuditRecord audit_records = 1;
|
|
3191
|
+
*/
|
|
3192
|
+
auditRecords: AuditRecord[];
|
|
3193
|
+
|
|
3194
|
+
/**
|
|
3195
|
+
* @generated from field: raystack.frontier.v1beta1.RQLQueryPaginationResponse pagination = 2;
|
|
3196
|
+
*/
|
|
3197
|
+
pagination?: RQLQueryPaginationResponse;
|
|
3198
|
+
|
|
3199
|
+
/**
|
|
3200
|
+
* @generated from field: raystack.frontier.v1beta1.RQLQueryGroupResponse group = 3;
|
|
3201
|
+
*/
|
|
3202
|
+
group?: RQLQueryGroupResponse;
|
|
3203
|
+
};
|
|
3204
|
+
|
|
3205
|
+
/**
|
|
3206
|
+
* Describes the message raystack.frontier.v1beta1.ListAuditRecordsResponse.
|
|
3207
|
+
* Use `create(ListAuditRecordsResponseSchema)` to create a new message.
|
|
3208
|
+
*/
|
|
3209
|
+
export const ListAuditRecordsResponseSchema: GenMessage<ListAuditRecordsResponse> = /*@__PURE__*/
|
|
3210
|
+
messageDesc(file_raystack_frontier_v1beta1_admin, 116);
|
|
3211
|
+
|
|
3084
3212
|
/**
|
|
3085
3213
|
* @generated from service raystack.frontier.v1beta1.AdminService
|
|
3086
3214
|
*/
|
|
@@ -3593,6 +3721,47 @@ export const AdminService: GenService<{
|
|
|
3593
3721
|
input: typeof GetCurrentAdminUserRequestSchema;
|
|
3594
3722
|
output: typeof GetCurrentAdminUserResponseSchema;
|
|
3595
3723
|
},
|
|
3724
|
+
/**
|
|
3725
|
+
* Returns a list of all sessions for a specific user. Admin access required.
|
|
3726
|
+
*
|
|
3727
|
+
* @generated from rpc raystack.frontier.v1beta1.AdminService.ListUserSessions
|
|
3728
|
+
*/
|
|
3729
|
+
listUserSessions: {
|
|
3730
|
+
methodKind: "unary";
|
|
3731
|
+
input: typeof ListUserSessionsRequestSchema;
|
|
3732
|
+
output: typeof ListUserSessionsResponseSchema;
|
|
3733
|
+
},
|
|
3734
|
+
/**
|
|
3735
|
+
* Revoke a specific session for a specific user (admin only).
|
|
3736
|
+
*
|
|
3737
|
+
* @generated from rpc raystack.frontier.v1beta1.AdminService.RevokeUserSession
|
|
3738
|
+
*/
|
|
3739
|
+
revokeUserSession: {
|
|
3740
|
+
methodKind: "unary";
|
|
3741
|
+
input: typeof RevokeUserSessionRequestSchema;
|
|
3742
|
+
output: typeof RevokeUserSessionResponseSchema;
|
|
3743
|
+
},
|
|
3744
|
+
/**
|
|
3745
|
+
* Audit Records (Admin Only)
|
|
3746
|
+
*
|
|
3747
|
+
* @generated from rpc raystack.frontier.v1beta1.AdminService.ListAuditRecords
|
|
3748
|
+
*/
|
|
3749
|
+
listAuditRecords: {
|
|
3750
|
+
methodKind: "unary";
|
|
3751
|
+
input: typeof ListAuditRecordsRequestSchema;
|
|
3752
|
+
output: typeof ListAuditRecordsResponseSchema;
|
|
3753
|
+
},
|
|
3754
|
+
/**
|
|
3755
|
+
* buf:lint:ignore RPC_RESPONSE_STANDARD_NAME
|
|
3756
|
+
* buf:lint:ignore RPC_REQUEST_RESPONSE_UNIQUE
|
|
3757
|
+
*
|
|
3758
|
+
* @generated from rpc raystack.frontier.v1beta1.AdminService.ExportAuditRecords
|
|
3759
|
+
*/
|
|
3760
|
+
exportAuditRecords: {
|
|
3761
|
+
methodKind: "server_streaming";
|
|
3762
|
+
input: typeof ExportAuditRecordsRequestSchema;
|
|
3763
|
+
output: typeof HttpBodySchema;
|
|
3764
|
+
},
|
|
3596
3765
|
}> = /*@__PURE__*/
|
|
3597
3766
|
serviceDesc(file_raystack_frontier_v1beta1_admin, 0);
|
|
3598
3767
|
|