@eide/foir-proto-ts 0.86.0 → 0.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-proto-ts",
3
- "version": "0.86.0",
3
+ "version": "0.88.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./common/v1/pagination_pb": "./src/common/v1/pagination_pb.js",
@@ -1359,21 +1359,17 @@ export declare const GetMeResponseSchema: GenMessage<GetMeResponse>;
1359
1359
  */
1360
1360
  export declare type CreateAdminUserRequest = Message<"identity.v1.CreateAdminUserRequest"> & {
1361
1361
  /**
1362
- * @generated from field: string email = 1;
1363
- */
1364
- email: string;
1365
-
1366
- /**
1367
- * @generated from field: optional string first_name = 2;
1368
- */
1369
- firstName?: string | undefined;
1370
-
1371
- /**
1372
- * @generated from field: optional string last_name = 3;
1362
+ * create is the field->value admin-user data: email (required), firstName,
1363
+ * lastName. Status is server-set to PENDING.
1364
+ *
1365
+ * @generated from field: google.protobuf.Struct create = 1;
1373
1366
  */
1374
- lastName?: string | undefined;
1367
+ create?: JsonObject | undefined;
1375
1368
 
1376
1369
  /**
1370
+ * tenant_id / project_id / role drive an optional initial access grant
1371
+ * (a side-effect coda, like CreateCustomer's password) — not user-row data.
1372
+ *
1377
1373
  * @generated from field: string tenant_id = 4;
1378
1374
  */
1379
1375
  tenantId: string;
@@ -1453,24 +1449,12 @@ export declare type UpdateAdminUserRequest = Message<"identity.v1.UpdateAdminUse
1453
1449
  id: string;
1454
1450
 
1455
1451
  /**
1456
- * @generated from field: optional string first_name = 2;
1457
- */
1458
- firstName?: string | undefined;
1459
-
1460
- /**
1461
- * @generated from field: optional string last_name = 3;
1462
- */
1463
- lastName?: string | undefined;
1464
-
1465
- /**
1466
- * @generated from field: optional string avatar_url = 4;
1467
- */
1468
- avatarUrl?: string | undefined;
1469
-
1470
- /**
1471
- * @generated from field: optional identity.v1.AdminUserStatus status = 5;
1452
+ * update is the field->op-map UpdateInput tree: firstName, lastName,
1453
+ * avatarUrl, status (each `{set: ...}`).
1454
+ *
1455
+ * @generated from field: google.protobuf.Struct update = 2;
1472
1456
  */
1473
- status?: AdminUserStatus | undefined;
1457
+ update?: JsonObject | undefined;
1474
1458
  };
1475
1459
 
1476
1460
  /**
@@ -1500,19 +1484,15 @@ export declare const UpdateAdminUserResponseSchema: GenMessage<UpdateAdminUserRe
1500
1484
  */
1501
1485
  export declare type ListAdminUsersRequest = Message<"identity.v1.ListAdminUsersRequest"> & {
1502
1486
  /**
1503
- * @generated from field: optional string search = 1;
1504
- */
1505
- search?: string | undefined;
1506
-
1507
- /**
1508
- * @generated from field: optional identity.v1.AccessRole role = 2;
1509
- */
1510
- role?: AccessRole | undefined;
1511
-
1512
- /**
1513
- * @generated from field: optional identity.v1.AdminUserStatus status = 3;
1487
+ * Typed WhereInput tree fed through services/internal/whereinput.
1488
+ * Supported keys mirror admin_users columns: id, email, firstName,
1489
+ * lastName, status, emailVerifiedAt, lastLoginAt, createdAt, updatedAt,
1490
+ * plus AND/OR/NOT. RBAC tenant/project scoping is enforced server-side
1491
+ * separately from this filter.
1492
+ *
1493
+ * @generated from field: optional google.protobuf.Struct where = 1;
1514
1494
  */
1515
- status?: AdminUserStatus | undefined;
1495
+ where?: JsonObject | undefined;
1516
1496
 
1517
1497
  /**
1518
1498
  * @generated from field: optional string after = 4;
@@ -11,7 +11,7 @@ import { file_common_v1_pagination } from "../../common/v1/pagination_pb.js";
11
11
  * Describes the file identity/v1/identity.proto.
12
12
  */
13
13
  export const file_identity_v1_identity = /*@__PURE__*/
14
- fileDesc("ChppZGVudGl0eS92MS9pZGVudGl0eS5wcm90bxILaWRlbnRpdHkudjEijwQKCUFkbWluVXNlchIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIXCgpmaXJzdF9uYW1lGAMgASgJSACIAQESFgoJbGFzdF9uYW1lGAQgASgJSAGIAQESFwoKYXZhdGFyX3VybBgFIAEoCUgCiAEBEhkKEWlzX3BsYXRmb3JtX2FkbWluGAYgASgIEiwKBnN0YXR1cxgUIAEoDjIcLmlkZW50aXR5LnYxLkFkbWluVXNlclN0YXR1cxI6ChFlbWFpbF92ZXJpZmllZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI2Cg1sYXN0X2xvZ2luX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEiwKBmFjY2VzcxgoIAMoCzIcLmlkZW50aXR5LnYxLkFkbWluVXNlckFjY2VzcxIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19hdmF0YXJfdXJsQhQKEl9lbWFpbF92ZXJpZmllZF9hdEIQCg5fbGFzdF9sb2dpbl9hdCLuAQoPQWRtaW5Vc2VyQWNjZXNzEgoKAmlkGAEgASgJEhUKDWFkbWluX3VzZXJfaWQYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhcKCnByb2plY3RfaWQYBCABKAlIAIgBARIlCgRyb2xlGAUgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZRIuCgpncmFudGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpncmFudGVkX2J5GDMgASgJSAGIAQFCDQoLX3Byb2plY3RfaWRCDQoLX2dyYW50ZWRfYnki9QIKCEN1c3RvbWVyEgoKAmlkGAEgASgJEg0KBWVtYWlsGAIgASgJEhEKCXRlbmFudF9pZBgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEisKBnN0YXR1cxgUIAEoDjIbLmlkZW50aXR5LnYxLkN1c3RvbWVyU3RhdHVzEjoKEWVtYWlsX3ZlcmlmaWVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjYKDWxhc3RfbG9naW5fYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCFAoSX2VtYWlsX3ZlcmlmaWVkX2F0QhAKDl9sYXN0X2xvZ2luX2F0IvQCCgZUZW5hbnQSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIpCgZzdGF0dXMYFCABKA4yGS5pZGVudGl0eS52MS5UZW5hbnRTdGF0dXMSNQoMc3VzcGVuZGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEkIKGWNhbmNlbGxhdGlvbl9zY2hlZHVsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESGwoTZGF0YV9yZXRlbnRpb25fZGF5cxgeIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIPCg1fc3VzcGVuZGVkX2F0QhwKGl9jYW5jZWxsYXRpb25fc2NoZWR1bGVkX2F0It4GCgdQcm9qZWN0EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEgoKaXNfZGVmYXVsdBgFIAEoCBIqCgZzdGF0dXMYFCABKA4yGi5pZGVudGl0eS52MS5Qcm9qZWN0U3RhdHVzEj4KFWRlbGV0aW9uX3NjaGVkdWxlZF9hdBgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIXCgpjcmVhdGVkX2J5GCggASgJSAKIAQESFwoKdXBkYXRlZF9ieRgpIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKDGRpc3BsYXlfbmFtZRg8IAEoCUgEiAEBEhUKCGxvZ29fdXJsGD0gASgJSAWIAQESGgoNcHJpbWFyeV9jb2xvchg+IAEoCUgGiAEBEhYKCWZyb21fbmFtZRg/IAEoCUgHiAEBEhUKCHJlcGx5X3RvGEAgASgJSAiIAQESGgoNc3VwcG9ydF9lbWFpbBhBIAEoCUgJiAEBEhkKDGFwcF9iYXNlX3VybBhCIAEoCUgKiAEBEisKHmN1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZBhGIAEoCEgLiAEBEiQKF2N1c3RvbWVyX3NpZ251cF9lbmFibGVkGFAgASgISAyIAQFCDgoMX2Rlc2NyaXB0aW9uQhgKFl9kZWxldGlvbl9zY2hlZHVsZWRfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUILCglfcmVwbHlfdG9CEAoOX3N1cHBvcnRfZW1haWxCDwoNX2FwcF9iYXNlX3VybEIhCh9fY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkQhoKGF9jdXN0b21lcl9zaWdudXBfZW5hYmxlZCKvAwoKSW52aXRhdGlvbhIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEwoLcHJvamVjdF9pZHMYBCADKAkSJQoEcm9sZRgFIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGUSLAoLaW52aXRlX3R5cGUYBiABKA4yFy5pZGVudGl0eS52MS5JbnZpdGVUeXBlEhIKCmludml0ZWRfYnkYByABKAkSFAoHbWVzc2FnZRgIIAEoCUgAiAEBEi0KBnN0YXR1cxgUIAEoDjIdLmlkZW50aXR5LnYxLkludml0YXRpb25TdGF0dXMSLgoKZXhwaXJlc19hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLYWNjZXB0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCDgoMX2FjY2VwdGVkX2F0IukDChJDdXN0b21lckludml0YXRpb24SCgoCaWQYASABKAkSDQoFZW1haWwYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhIKCnByb2plY3RfaWQYBCABKAkSFwoKaW52aXRlZF9ieRgFIAEoCUgAiAEBEhQKB21lc3NhZ2UYBiABKAlIAYgBARI1CgZzdGF0dXMYFCABKA4yJS5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb25TdGF0dXMSLgoKZXhwaXJlc19hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLYWNjZXB0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESIQoUYWNjZXB0ZWRfY3VzdG9tZXJfaWQYICABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfaW52aXRlZF9ieUIKCghfbWVzc2FnZUIOCgxfYWNjZXB0ZWRfYXRCFwoVX2FjY2VwdGVkX2N1c3RvbWVyX2lkItkECgZBcGlLZXkSCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSDAoEbmFtZRgEIAEoCRISCgprZXlfcHJlZml4GAUgASgJEikKCGtleV90eXBlGAYgASgOMhcuaWRlbnRpdHkudjEuQXBpS2V5VHlwZRIUCgdyYXdfa2V5GAogASgJSACIAQESEQoJaXNfYWN0aXZlGBQgASgIEiAKE3JhdGVfbGltaXRfcGVyX2hvdXIYFSABKAVIAYgBARIzCgpleHBpcmVzX2F0GBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEg4KBnNjb3BlcxgXIAMoCRIuCghtZXRhZGF0YRgYIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARI1CgxsYXN0X3VzZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEwoLdXNhZ2VfY291bnQYHyABKAUSEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfcmF3X2tleUIWChRfcmF0ZV9saW1pdF9wZXJfaG91ckINCgtfZXhwaXJlc19hdEILCglfbWV0YWRhdGFCDwoNX2xhc3RfdXNlZF9hdCKWAgoOU2Vzc2lvbkNvbnRleHQSFgoJdGVuYW50X2lkGAEgASgJSACIAQESFwoKcHJvamVjdF9pZBgCIAEoCUgBiAEBEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXISGwoOZWZmZWN0aXZlX3JvbGUYBCABKAlIAogBARIuChFhdmFpbGFibGVfdGVuYW50cxgFIAMoCzITLmlkZW50aXR5LnYxLlRlbmFudBIwChJhdmFpbGFibGVfcHJvamVjdHMYBiADKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0QgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCEQoPX2VmZmVjdGl2ZV9yb2xlIn0KDExvZ2luUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCJfCg1Mb2dpblJlc3BvbnNlEhIKCnNlc3Npb25faWQYASABKAkSFAoMYWNjZXNzX3Rva2VuGAIgASgJEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIifwoTTG9naW5XaXRoT1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRILCgNvdHAYAiABKAkSFgoJdGVuYW50X2lkGAMgASgJSACIAQESFwoKcHJvamVjdF9pZBgEIAEoCUgBiAEBQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWQiZgoUTG9naW5XaXRoT1RQUmVzcG9uc2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAiABKAkSJAoEdXNlchgDIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciJwChFSZXF1ZXN0T1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIWCgl0ZW5hbnRfaWQYAiABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAMgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCIlChJSZXF1ZXN0T1RQUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIPCg1Mb2dvdXRSZXF1ZXN0IiEKDkxvZ291dFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgitQEKD1JlZ2lzdGVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQESKgoEcm9sZRgFIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGVIAogBAUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQgcKBV9yb2xlIjgKEFJlZ2lzdGVyUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciIjChJWZXJpZnlFbWFpbFJlcXVlc3QSDQoFdG9rZW4YASABKAkiJgoTVmVyaWZ5RW1haWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiAKHlJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVxdWVzdCIyCh9SZXNlbmRWZXJpZmljYXRpb25FbWFpbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMQogU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlcXVlc3QSDQoFZW1haWwYASABKAkiNAohU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiNQoWVmVyaWZ5RW1haWxDb2RlUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIMCgRjb2RlGAIgASgJIjwKF1ZlcmlmeUVtYWlsQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSEAoIdmVyaWZpZWQYAiABKAgiLAobUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIi8KHFJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI7ChRSZXNldFBhc3N3b3JkUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiKAoVUmVzZXRQYXNzd29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiRwoVVXBkYXRlUGFzc3dvcmRSZXF1ZXN0EhgKEGN1cnJlbnRfcGFzc3dvcmQYASABKAkSFAoMbmV3X3Bhc3N3b3JkGAIgASgJIikKFlVwZGF0ZVBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChNSZWZyZXNoVG9rZW5SZXF1ZXN0EhUKDXJlZnJlc2hfdG9rZW4YASABKAkiQwoUUmVmcmVzaFRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkiGgoYR2V0U2Vzc2lvbkNvbnRleHRSZXF1ZXN0IkkKGUdldFNlc3Npb25Db250ZXh0UmVzcG9uc2USLAoHY29udGV4dBgBIAEoCzIbLmlkZW50aXR5LnYxLlNlc3Npb25Db250ZXh0IigKE1N3aXRjaFRlbmFudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIkQKFFN3aXRjaFRlbmFudFJlc3BvbnNlEiwKB2NvbnRleHQYASABKAsyGy5pZGVudGl0eS52MS5TZXNzaW9uQ29udGV4dCIqChRTd2l0Y2hQcm9qZWN0UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIkUKFVN3aXRjaFByb2plY3RSZXNwb25zZRIsCgdjb250ZXh0GAEgASgLMhsuaWRlbnRpdHkudjEuU2Vzc2lvbkNvbnRleHQiHAoaQ2xlYXJTZXNzaW9uQ29udGV4dFJlcXVlc3QiLgobQ2xlYXJTZXNzaW9uQ29udGV4dFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiDgoMR2V0TWVSZXF1ZXN0IjUKDUdldE1lUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciLXAQoWQ3JlYXRlQWRtaW5Vc2VyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIXCgpmaXJzdF9uYW1lGAIgASgJSACIAQESFgoJbGFzdF9uYW1lGAMgASgJSAGIAQESEQoJdGVuYW50X2lkGAQgASgJEhcKCnByb2plY3RfaWQYBSABKAlIAogBARIlCgRyb2xlGAYgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZUINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19wcm9qZWN0X2lkIj8KF0NyZWF0ZUFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIiIQoTR2V0QWRtaW5Vc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSI8ChRHZXRBZG1pblVzZXJSZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyItgBChZVcGRhdGVBZG1pblVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhcKCmZpcnN0X25hbWUYAiABKAlIAIgBARIWCglsYXN0X25hbWUYAyABKAlIAYgBARIXCgphdmF0YXJfdXJsGAQgASgJSAKIAQESMQoGc3RhdHVzGAUgASgOMhwuaWRlbnRpdHkudjEuQWRtaW5Vc2VyU3RhdHVzSAOIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUINCgtfYXZhdGFyX3VybEIJCgdfc3RhdHVzIj8KF1VwZGF0ZUFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIiogIKFUxpc3RBZG1pblVzZXJzUmVxdWVzdBITCgZzZWFyY2gYASABKAlIAIgBARIqCgRyb2xlGAIgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZUgBiAEBEjEKBnN0YXR1cxgDIAEoDjIcLmlkZW50aXR5LnYxLkFkbWluVXNlclN0YXR1c0gCiAEBEhIKBWFmdGVyGAQgASgJSAOIAQESEwoGYmVmb3JlGAUgASgJSASIAQESEgoFZmlyc3QYBiABKAVIBYgBARIRCgRsYXN0GAcgASgFSAaIAQFCCQoHX3NlYXJjaEIHCgVfcm9sZUIJCgdfc3RhdHVzQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKaAQoWTGlzdEFkbWluVXNlcnNSZXNwb25zZRIlCgVpdGVtcxgBIAMoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlchINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ijQEKEkdyYW50QWNjZXNzUmVxdWVzdBIVCg1hZG1pbl91c2VyX2lkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIXCgpwcm9qZWN0X2lkGAMgASgJSACIAQESJQoEcm9sZRgEIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGVCDQoLX3Byb2plY3RfaWQiQwoTR3JhbnRBY2Nlc3NSZXNwb25zZRIsCgZhY2Nlc3MYASABKAsyHC5pZGVudGl0eS52MS5BZG1pblVzZXJBY2Nlc3MiKAoTUmV2b2tlQWNjZXNzUmVxdWVzdBIRCglhY2Nlc3NfaWQYASABKAkiJwoUUmV2b2tlQWNjZXNzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJkChVDcmVhdGVDdXN0b21lclJlcXVlc3QSJwoGY3JlYXRlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIVCghwYXNzd29yZBgCIAEoCUgAiAEBQgsKCV9wYXNzd29yZCJBChZDcmVhdGVDdXN0b21lclJlc3BvbnNlEicKCGN1c3RvbWVyGAEgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiIAoSR2V0Q3VzdG9tZXJSZXF1ZXN0EgoKAmlkGAEgASgJIj4KE0dldEN1c3RvbWVyUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciJMChVVcGRhdGVDdXN0b21lclJlcXVlc3QSCgoCaWQYASABKAkSJwoGdXBkYXRlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJBChZVcGRhdGVDdXN0b21lclJlc3BvbnNlEicKCGN1c3RvbWVyGAEgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiIwoVRGVsZXRlQ3VzdG9tZXJSZXF1ZXN0EgoKAmlkGAEgASgJIikKFkRlbGV0ZUN1c3RvbWVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLFAQoUTGlzdEN1c3RvbWVyc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpgBChVMaXN0Q3VzdG9tZXJzUmVzcG9uc2USJAoFaXRlbXMYASADKAsyFS5pZGVudGl0eS52MS5DdXN0b21lchINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iJAoWU3VzcGVuZEN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCSJCChdTdXNwZW5kQ3VzdG9tZXJSZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIj4KGlNldEN1c3RvbWVyUGFzc3dvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhQKDG5ld19wYXNzd29yZBgCIAEoCSIuChtTZXRDdXN0b21lclBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLcAQofQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIXCgppbnZpdGVkX2J5GAIgASgJSACIAQESFAoHbWVzc2FnZRgDIAEoCUgBiAEBEhcKCnNlbmRfZW1haWwYBCABKAhIAogBARIgChNhY2NlcHRfdXJsX292ZXJyaWRlGAUgASgJSAOIAQFCDQoLX2ludml0ZWRfYnlCCgoIX21lc3NhZ2VCDQoLX3NlbmRfZW1haWxCFgoUX2FjY2VwdF91cmxfb3ZlcnJpZGUiegogQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbhISCgphY2NlcHRfdXJsGAIgASgJEg0KBXRva2VuGAMgASgJIv8BCh5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1JlcXVlc3QSOgoGc3RhdHVzGAEgASgOMiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uU3RhdHVzSACIAQESEwoGc2VhcmNoGAIgASgJSAGIAQESEgoFYWZ0ZXIYAyABKAlIAogBARITCgZiZWZvcmUYBCABKAlIA4gBARISCgVmaXJzdBgFIAEoBUgEiAEBEhEKBGxhc3QYBiABKAVIBYgBAUIJCgdfc3RhdHVzQgkKB19zZWFyY2hCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqwBCh9MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1Jlc3BvbnNlEi4KBWl0ZW1zGAEgAygLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIqChxHZXRDdXN0b21lckludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlQKHUdldEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEjMKCmludml0YXRpb24YASABKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb24iLQofUmV2b2tlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIzCiBSZXZva2VDdXN0b21lckludml0YXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIo8BCh9SZXNlbmRDdXN0b21lckludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEhcKCnNlbmRfZW1haWwYAiABKAhIAIgBARIgChNhY2NlcHRfdXJsX292ZXJyaWRlGAMgASgJSAGIAQFCDQoLX3NlbmRfZW1haWxCFgoUX2FjY2VwdF91cmxfb3ZlcnJpZGUiegogUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbhISCgphY2NlcHRfdXJsGAIgASgJEg0KBXRva2VuGAMgASgJIjIKIVZhbGlkYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBINCgV0b2tlbhgBIAEoCSKHAQoiVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXNwb25zZRIzCgppbnZpdGF0aW9uGAEgASgLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uEiwKCXByb3ZpZGVycxgCIAMoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciJUCh9BY2NlcHRDdXN0b21lckludml0YXRpb25SZXF1ZXN0Eg0KBXRva2VuGAEgASgJEhUKCHBhc3N3b3JkGAIgASgJSACIAQFCCwoJX3Bhc3N3b3JkIngKIEFjY2VwdEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEicKCGN1c3RvbWVyGAEgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXISFAoMYWNjZXNzX3Rva2VuGAIgASgJEhUKDXJlZnJlc2hfdG9rZW4YAyABKAkiIwoTQ3JlYXRlVGVuYW50UmVxdWVzdBIMCgRuYW1lGAEgASgJIjsKFENyZWF0ZVRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCIeChBHZXRUZW5hbnRSZXF1ZXN0EgoKAmlkGAEgASgJIjgKEUdldFRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCJ4ChNVcGRhdGVUZW5hbnRSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIuCgZzdGF0dXMYAyABKA4yGS5pZGVudGl0eS52MS5UZW5hbnRTdGF0dXNIAYgBAUIHCgVfbmFtZUIJCgdfc3RhdHVzIjsKFFVwZGF0ZVRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCLHAQoSTGlzdFRlbmFudHNSZXF1ZXN0Ei4KBnN0YXR1cxgBIAEoDjIZLmlkZW50aXR5LnYxLlRlbmFudFN0YXR1c0gAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCQoHX3N0YXR1c0IICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilAEKE0xpc3RUZW5hbnRzUmVzcG9uc2USIgoFaXRlbXMYASADKAsyEy5pZGVudGl0eS52MS5UZW5hbnQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIiEKE0RlbGV0ZVRlbmFudFJlcXVlc3QSCgoCaWQYASABKAkiJwoURGVsZXRlVGVuYW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKfBgoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCRIYCgtkZXNjcmlwdGlvbhgCIAEoCUgAiAEBEhEKCXRlbmFudF9pZBgDIAEoCRIgChNkZWZhdWx0X2xvY2FsZV9jb2RlGAQgASgJSAGIAQESKAobZGVmYXVsdF9sb2NhbGVfZGlzcGxheV9uYW1lGAUgASgJSAKIAQESJwoaZGVmYXVsdF9sb2NhbGVfbmF0aXZlX25hbWUYBiABKAlIA4gBARIiChVkZWZhdWx0X2xvY2FsZV9pc19ydGwYByABKAhIBIgBARIZCgxkaXNwbGF5X25hbWUYCiABKAlIBYgBARIVCghsb2dvX3VybBgLIAEoCUgGiAEBEhoKDXByaW1hcnlfY29sb3IYDCABKAlIB4gBARIWCglmcm9tX25hbWUYDSABKAlICIgBARIVCghyZXBseV90bxgOIAEoCUgJiAEBEhoKDXN1cHBvcnRfZW1haWwYDyABKAlICogBARIZCgxhcHBfYmFzZV91cmwYECABKAlIC4gBARIrCh5jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWQYFCABKAhIDIgBARIkChdjdXN0b21lcl9zaWdudXBfZW5hYmxlZBgeIAEoCEgNiAEBQg4KDF9kZXNjcmlwdGlvbkIWChRfZGVmYXVsdF9sb2NhbGVfY29kZUIeChxfZGVmYXVsdF9sb2NhbGVfZGlzcGxheV9uYW1lQh0KG19kZWZhdWx0X2xvY2FsZV9uYXRpdmVfbmFtZUIYChZfZGVmYXVsdF9sb2NhbGVfaXNfcnRsQg8KDV9kaXNwbGF5X25hbWVCCwoJX2xvZ29fdXJsQhAKDl9wcmltYXJ5X2NvbG9yQgwKCl9mcm9tX25hbWVCCwoJX3JlcGx5X3RvQhAKDl9zdXBwb3J0X2VtYWlsQg8KDV9hcHBfYmFzZV91cmxCIQofX2N1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZEIaChhfY3VzdG9tZXJfc2lnbnVwX2VuYWJsZWQiPgoVQ3JlYXRlUHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Ih8KEUdldFByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJIjsKEkdldFByb2plY3RSZXNwb25zZRIlCgdwcm9qZWN0GAEgASgLMhQuaWRlbnRpdHkudjEuUHJvamVjdCLYBAoUVXBkYXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESLwoGc3RhdHVzGAQgASgOMhouaWRlbnRpdHkudjEuUHJvamVjdFN0YXR1c0gCiAEBEhkKDGRpc3BsYXlfbmFtZRgKIAEoCUgDiAEBEhUKCGxvZ29fdXJsGAsgASgJSASIAQESGgoNcHJpbWFyeV9jb2xvchgMIAEoCUgFiAEBEhYKCWZyb21fbmFtZRgNIAEoCUgGiAEBEhUKCHJlcGx5X3RvGA4gASgJSAeIAQESGgoNc3VwcG9ydF9lbWFpbBgPIAEoCUgIiAEBEhkKDGFwcF9iYXNlX3VybBgQIAEoCUgJiAEBEisKHmN1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZBgUIAEoCEgKiAEBEiQKF2N1c3RvbWVyX3NpZ251cF9lbmFibGVkGB4gASgISAuIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgkKB19zdGF0dXNCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUILCglfcmVwbHlfdG9CEAoOX3N1cHBvcnRfZW1haWxCDwoNX2FwcF9iYXNlX3VybEIhCh9fY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkQhoKGF9jdXN0b21lcl9zaWdudXBfZW5hYmxlZCI+ChVVcGRhdGVQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3Qi3AEKE0xpc3RQcm9qZWN0c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEi8KBnN0YXR1cxgCIAEoDjIaLmlkZW50aXR5LnYxLlByb2plY3RTdGF0dXNIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQgkKB19zdGF0dXNCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpYBChRMaXN0UHJvamVjdHNSZXNwb25zZRIjCgVpdGVtcxgBIAMoCzIULmlkZW50aXR5LnYxLlByb2plY3QSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIiIKFERlbGV0ZVByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJIigKFURlbGV0ZVByb2plY3RSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIi0KGEdldERlZmF1bHRQcm9qZWN0UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiQgoZR2V0RGVmYXVsdFByb2plY3RSZXNwb25zZRIlCgdwcm9qZWN0GAEgASgLMhQuaWRlbnRpdHkudjEuUHJvamVjdCIuChhTZXREZWZhdWx0UHJvamVjdFJlcXVlc3QSEgoKcHJvamVjdF9pZBgBIAEoCSJCChlTZXREZWZhdWx0UHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0IscBChdDcmVhdGVJbnZpdGF0aW9uUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSEwoLcHJvamVjdF9pZHMYAyADKAkSJQoEcm9sZRgEIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGUSLAoLaW52aXRlX3R5cGUYBSABKA4yFy5pZGVudGl0eS52MS5JbnZpdGVUeXBlEhQKB21lc3NhZ2UYBiABKAlIAIgBAUIKCghfbWVzc2FnZSJHChhDcmVhdGVJbnZpdGF0aW9uUmVzcG9uc2USKwoKaW52aXRhdGlvbhgBIAEoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24i4gEKFkxpc3RJbnZpdGF0aW9uc1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEjIKBnN0YXR1cxgCIAEoDjIdLmlkZW50aXR5LnYxLkludml0YXRpb25TdGF0dXNIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQgkKB19zdGF0dXNCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpwBChdMaXN0SW52aXRhdGlvbnNSZXNwb25zZRImCgVpdGVtcxgBIAMoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIjAKF1Jldm9rZUludml0YXRpb25SZXF1ZXN0EhUKDWludml0YXRpb25faWQYASABKAkiKwoYUmV2b2tlSW52aXRhdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiTAoXQWNjZXB0SW52aXRhdGlvblJlcXVlc3QSDQoFdG9rZW4YASABKAkSFQoIcGFzc3dvcmQYAiABKAlIAIgBAUILCglfcGFzc3dvcmQiVAoYQWNjZXB0SW52aXRhdGlvblJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXISEgoKc2Vzc2lvbl9pZBgCIAEoCSIqChlWYWxpZGF0ZUludml0YXRpb25SZXF1ZXN0Eg0KBXRva2VuGAEgASgJIkkKGlZhbGlkYXRlSW52aXRhdGlvblJlc3BvbnNlEisKCmludml0YXRpb24YASABKAsyFy5pZGVudGl0eS52MS5JbnZpdGF0aW9uIpACChNDcmVhdGVBcGlLZXlSZXF1ZXN0EgwKBG5hbWUYASABKAkSKQoIa2V5X3R5cGUYAiABKA4yFy5pZGVudGl0eS52MS5BcGlLZXlUeXBlEg4KBnNjb3BlcxgDIAMoCRIgChNyYXRlX2xpbWl0X3Blcl9ob3VyGAQgASgFSACIAQESMwoKZXhwaXJlc19hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIWCg5hbGxvd2VkX21vZGVscxgGIAMoCRIaChJhbGxvd2VkX2ZpbGVfdHlwZXMYByADKAlCFgoUX3JhdGVfbGltaXRfcGVyX2hvdXJCDQoLX2V4cGlyZXNfYXQiPAoUQ3JlYXRlQXBpS2V5UmVzcG9uc2USJAoHYXBpX2tleRgBIAEoCzITLmlkZW50aXR5LnYxLkFwaUtleSIeChBHZXRBcGlLZXlSZXF1ZXN0EgoKAmlkGAEgASgJIjkKEUdldEFwaUtleVJlc3BvbnNlEiQKB2FwaV9rZXkYASABKAsyEy5pZGVudGl0eS52MS5BcGlLZXkijAEKEkxpc3RBcGlLZXlzUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKUAQoTTGlzdEFwaUtleXNSZXNwb25zZRIiCgVpdGVtcxgBIAMoCzITLmlkZW50aXR5LnYxLkFwaUtleRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ixAEKE1VwZGF0ZUFwaUtleVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhYKCWlzX2FjdGl2ZRgDIAEoCEgBiAEBEg4KBnNjb3BlcxgEIAMoCRIVCg11cGRhdGVfc2NvcGVzGAYgASgIEiAKE3JhdGVfbGltaXRfcGVyX2hvdXIYBSABKAVIAogBAUIHCgVfbmFtZUIMCgpfaXNfYWN0aXZlQhYKFF9yYXRlX2xpbWl0X3Blcl9ob3VyIjwKFFVwZGF0ZUFwaUtleVJlc3BvbnNlEiQKB2FwaV9rZXkYASABKAsyEy5pZGVudGl0eS52MS5BcGlLZXkiIQoTUm90YXRlQXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCSI8ChRSb3RhdGVBcGlLZXlSZXNwb25zZRIkCgdhcGlfa2V5GAEgASgLMhMuaWRlbnRpdHkudjEuQXBpS2V5IiEKE1Jldm9rZUFwaUtleVJlcXVlc3QSCgoCaWQYASABKAkiJwoUUmV2b2tlQXBpS2V5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKxBQoMQXV0aFByb3ZpZGVyEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEgwKBHR5cGUYBCABKAkSJwoGY29uZmlnGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIPCgdlbmFibGVkGAYgASgIEhIKCmlzX2RlZmF1bHQYByABKAgSEAoIcHJpb3JpdHkYCCABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgAiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIAYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI2ChBwdWJsaXNoZWRfY29uZmlnGDwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEh4KEXB1Ymxpc2hlZF9lbmFibGVkGD0gASgISAOIAQESPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg/IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUITChFfcHVibGlzaGVkX2NvbmZpZ0IUChJfcHVibGlzaGVkX2VuYWJsZWRCFwoVX3NjaGVkdWxlZF9wdWJsaXNoX2F0QhkKF19zY2hlZHVsZWRfdW5wdWJsaXNoX2F0ItQBChhMaXN0QXV0aFByb3ZpZGVyc1JlcXVlc3QSFAoHZW5hYmxlZBgBIAEoCEgAiAEBEhMKBnNlYXJjaBgCIAEoCUgBiAEBEhIKBWFmdGVyGAMgASgJSAKIAQESEwoGYmVmb3JlGAQgASgJSAOIAQESEgoFZmlyc3QYBSABKAVIBIgBARIRCgRsYXN0GAYgASgFSAWIAQFCCgoIX2VuYWJsZWRCCQoHX3NlYXJjaEIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QipAEKGUxpc3RBdXRoUHJvdmlkZXJzUmVzcG9uc2USLAoJcHJvdmlkZXJzGAEgAygLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIkChZHZXRBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJIkYKF0dldEF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyItsBChlDcmVhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBHR5cGUYAyABKAkSJwoGY29uZmlnGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgdlbmFibGVkGAUgASgISACIAQESFwoKaXNfZGVmYXVsdBgGIAEoCEgBiAEBEhUKCHByaW9yaXR5GAcgASgFSAKIAQFCCgoIX2VuYWJsZWRCDQoLX2lzX2RlZmF1bHRCCwoJX3ByaW9yaXR5IkkKGkNyZWF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIuoBChlVcGRhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIsCgZjb25maWcYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESFAoHZW5hYmxlZBgEIAEoCEgCiAEBEhcKCmlzX2RlZmF1bHQYBSABKAhIA4gBARIVCghwcmlvcml0eRgGIAEoBUgEiAEBQgcKBV9uYW1lQgkKB19jb25maWdCCgoIX2VuYWJsZWRCDQoLX2lzX2RlZmF1bHRCCwoJX3ByaW9yaXR5IkkKGlVwZGF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIicKGURlbGV0ZUF1dGhQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkiLQoaRGVsZXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIoChpQdWJsaXNoQXV0aFByb3ZpZGVyUmVxdWVzdBIKCgJpZBgBIAEoCSKAAQobUHVibGlzaEF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIioKHFVucHVibGlzaEF1dGhQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkiTAodVW5wdWJsaXNoQXV0aFByb3ZpZGVyUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiMQojR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1JlcXVlc3QSCgoCaWQYASABKAkiUQokR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1Jlc3BvbnNlEikKBnN0YXR1cxgBIAEoCzIZLnB1Ymxpc2gudjEuUHVibGlzaFN0YXR1cyKoAQoiU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCRIuCgpwdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1Cgx1bnB1Ymxpc2hfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX3VucHVibGlzaF9hdCJSCiNTY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2hSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciI3CilDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJZCipDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiHgocRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVxdWVzdCIyCh1FbmFibGVkT0F1dGhQcm92aWRlcnNSZXNwb25zZRIRCglwcm92aWRlcnMYASADKAkiKgoXTWludFNlcnZpY2VUb2tlblJlcXVlc3QSDwoHcHVycG9zZRgBIAEoCSJOChhNaW50U2VydmljZVRva2VuUmVzcG9uc2USDQoFdG9rZW4YASABKAkSDwoHcHVycG9zZRgCIAEoCRISCgpleHBpcmVzX2F0GAMgASgJIo4BChZVcGRhdGVNeVByb2ZpbGVSZXF1ZXN0EhcKCmZpcnN0X25hbWUYASABKAlIAIgBARIWCglsYXN0X25hbWUYAiABKAlIAYgBARIXCgphdmF0YXJfdXJsGAMgASgJSAKIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUINCgtfYXZhdGFyX3VybCI/ChdVcGRhdGVNeVByb2ZpbGVSZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyIpcBCh1MaXN0TXlPQXV0aENvbm5lY3Rpb25zUmVxdWVzdBISCgVmaXJzdBgBIAEoBUgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEQoEbGFzdBgDIAEoBUgCiAEBEhMKBmJlZm9yZRgEIAEoCUgDiAEBQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZSKNAQoPT0F1dGhDb25uZWN0aW9uEhAKCHByb3ZpZGVyGAEgASgJEhgKEHByb3ZpZGVyX3VzZXJfaWQYAiABKAkSEgoFZW1haWwYAyABKAlIAIgBARIwCgxjb25uZWN0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl9lbWFpbCKuAQoeTGlzdE15T0F1dGhDb25uZWN0aW9uc1Jlc3BvbnNlEjEKC2Nvbm5lY3Rpb25zGAEgAygLMhwuaWRlbnRpdHkudjEuT0F1dGhDb25uZWN0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIuChpVbmxpbmtPQXV0aFByb3ZpZGVyUmVxdWVzdBIQCghwcm92aWRlchgBIAEoCSIuChtVbmxpbmtPQXV0aFByb3ZpZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIuCh1DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVxdWVzdBINCgVlbWFpbBgBIAEoCSIzCh5DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVzcG9uc2USEQoJYXZhaWxhYmxlGAEgASgIIo8BChtDb21wbGV0ZUFjY291bnRTZXR1cFJlcXVlc3QSFwoKZmlyc3RfbmFtZRgBIAEoCUgAiAEBEhYKCWxhc3RfbmFtZRgCIAEoCUgBiAEBEhUKCHBhc3N3b3JkGAMgASgJSAKIAQFCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUILCglfcGFzc3dvcmQiWwocQ29tcGxldGVBY2NvdW50U2V0dXBSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhkKDHJlZGlyZWN0X3VybBgCIAEoCUgAiAEBQg8KDV9yZWRpcmVjdF91cmwiLQoaQ3JlYXRlU2lnbnVwU2Vzc2lvblJlcXVlc3QSDwoHdXNlcl9pZBgBIAEoCSIuChtDcmVhdGVTaWdudXBTZXNzaW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIwChdSZXNlbmRJbnZpdGF0aW9uUmVxdWVzdBIVCg1pbnZpdGF0aW9uX2lkGAEgASgJIisKGFJlc2VuZEludml0YXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiIKFEdldEludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIkQKFUdldEludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiIqChVBY3RpdmF0ZVRlbmFudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIj0KFkFjdGl2YXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IjAKG1N1c3BlbmRUZW5hbnRBY2NvdW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiQwocU3VzcGVuZFRlbmFudEFjY291bnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiKAoTQ2FuY2VsVGVuYW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiOwoUQ2FuY2VsVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IiwKF1JlYWN0aXZhdGVUZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSI/ChhSZWFjdGl2YXRlVGVuYW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50Ii0KGE1hcmtUZW5hbnRQYXN0RHVlUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiQAoZTWFya1RlbmFudFBhc3REdWVSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiJwoSQ2h1cm5UZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSI6ChNDaHVyblRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCIeChxHZXRDdXN0b21lckF1dGhDb25maWdSZXF1ZXN0IpoCChJDdXN0b21lckF1dGhDb25maWcSEQoJYWxnb3JpdGhtGAEgASgJEhMKBmlzc3VlchgCIAEoCUgAiAEBEhUKCGF1ZGllbmNlGAMgASgJSAGIAQESNwoOa2V5X3JvdGF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGAoLc2lnbmluZ19rZXkYBSABKAlIA4gBARIsCgZjbGFpbXMYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCQoHX2lzc3VlckILCglfYXVkaWVuY2VCEQoPX2tleV9yb3RhdGVkX2F0Qg4KDF9zaWduaW5nX2tleUIJCgdfY2xhaW1zIlAKHUdldEN1c3RvbWVyQXV0aENvbmZpZ1Jlc3BvbnNlEi8KBmNvbmZpZxgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVyQXV0aENvbmZpZyIrChpWZXJpZnlDdXN0b21lclRva2VuUmVxdWVzdBINCgV0b2tlbhgBIAEoCSKzAgobVmVyaWZ5Q3VzdG9tZXJUb2tlblJlc3BvbnNlEg0KBXZhbGlkGAEgASgIEhIKBWVycm9yGAIgASgJSACIAQESGAoLY3VzdG9tZXJfaWQYAyABKAlIAYgBARISCgVlbWFpbBgEIAEoCUgCiAEBEhYKCXRlbmFudF9pZBgFIAEoCUgDiAEBEhcKCnByb2plY3RfaWQYBiABKAlIBIgBARINCgVyb2xlcxgHIAMoCRIzCgpleHBpcmVzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQggKBl9lcnJvckIOCgxfY3VzdG9tZXJfaWRCCAoGX2VtYWlsQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDQoLX2V4cGlyZXNfYXQiJAoiR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzUmVxdWVzdCLbAQoYQ3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzEiEKGW5hdGl2ZV9tYW5hZ2VtZW50X2VuYWJsZWQYASABKAgSIgoVZXh0ZXJuYWxfcHJvdmlkZXJfdXJsGAIgASgJSACIAQESIwoWZXh0ZXJuYWxfcHJvdmlkZXJfbmFtZRgDIAEoCUgBiAEBEhMKBnJlYXNvbhgEIAEoCUgCiAEBQhgKFl9leHRlcm5hbF9wcm92aWRlcl91cmxCGQoXX2V4dGVybmFsX3Byb3ZpZGVyX25hbWVCCQoHX3JlYXNvbiJcCiNHZXRDdXN0b21lck1hbmFnZW1lbnRTdGF0dXNSZXNwb25zZRI1CgZzdGF0dXMYASABKAsyJS5pZGVudGl0eS52MS5DdXN0b21lck1hbmFnZW1lbnRTdGF0dXMiKAoVVmFsaWRhdGVBcGlLZXlSZXF1ZXN0Eg8KB2FwaV9rZXkYASABKAkizAEKFlZhbGlkYXRlQXBpS2V5UmVzcG9uc2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEgoKcHJvamVjdF9pZBgEIAEoCRIQCghrZXlfdHlwZRgFIAEoCRIOCgZzY29wZXMYBiADKAkSFgoOYWxsb3dlZF9tb2RlbHMYByADKAkSGgoSYWxsb3dlZF9maWxlX3R5cGVzGAggAygJEhsKE3JhdGVfbGltaXRfcGVyX2hvdXIYCSABKAUiNwoUQ3VzdG9tZXJMb2dpblJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkibQoVQ3VzdG9tZXJMb2dpblJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEicKCGN1c3RvbWVyGAMgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIifwoXQ3VzdG9tZXJSZWdpc3RlclJlcXVlc3QSDQoFZW1haWwYASABKAkSEAoIcGFzc3dvcmQYAiABKAkSMgoMcHJvZmlsZV9kYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQg8KDV9wcm9maWxlX2RhdGEicAoYQ3VzdG9tZXJSZWdpc3RlclJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEicKCGN1c3RvbWVyGAMgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiNAobQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXF1ZXN0EhUKDXJlZnJlc2hfdG9rZW4YASABKAkiSwocQ3VzdG9tZXJSZWZyZXNoVG9rZW5SZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSFQoNcmVmcmVzaF90b2tlbhgCIAEoCSIqChlDdXN0b21lclJlcXVlc3RPVFBSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIioKGkN1c3RvbWVyUmVxdWVzdE9UUFJlc3BvbnNlEgwKBHNlbnQYASABKAgiOwoYQ3VzdG9tZXJWZXJpZnlPVFBSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCG90cF9jb2RlGAIgASgJInEKGUN1c3RvbWVyVmVyaWZ5T1RQUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkSJwoIY3VzdG9tZXIYAyABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciI0CiNDdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0UmVxdWVzdBINCgVlbWFpbBgBIAEoCSI0CiRDdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USDAoEc2VudBgBIAEoCCJDChxDdXN0b21lclJlc2V0UGFzc3dvcmRSZXF1ZXN0Eg0KBXRva2VuGAEgASgJEhQKDG5ld19wYXNzd29yZBgCIAEoCSIwCh1DdXN0b21lclJlc2V0UGFzc3dvcmRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIItkBChlTdG9yZVByb3ZpZGVyVG9rZW5SZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEhQKDHByb3ZpZGVyX2tleRgCIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAyABKAkSFQoNcmVmcmVzaF90b2tlbhgEIAEoCRIQCghpZF90b2tlbhgFIAEoCRIOCgZzY29wZXMYBiABKAkSMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUINCgtfZXhwaXJlc19hdCIcChpTdG9yZVByb3ZpZGVyVG9rZW5SZXNwb25zZSKDAQoZU3RhcnRQcm92aWRlckxvZ2luUmVxdWVzdBIUCgxwcm92aWRlcl9rZXkYASABKAkSFgoJcmV0dXJuX3RvGAIgASgJSACIAQESGQoMcmVkaXJlY3RfdXJpGAMgASgJSAGIAQFCDAoKX3JldHVybl90b0IPCg1fcmVkaXJlY3RfdXJpIjIKGlN0YXJ0UHJvdmlkZXJMb2dpblJlc3BvbnNlEhQKDHJlZGlyZWN0X3VybBgBIAEoCSJPChpGaW5pc2hQcm92aWRlckxvZ2luUmVxdWVzdBIUCgxwcm92aWRlcl9rZXkYASABKAkSDAoEY29kZRgCIAEoCRINCgVzdGF0ZRgDIAEoCSJuChtGaW5pc2hQcm92aWRlckxvZ2luUmVzcG9uc2USEwoLY3VzdG9tZXJfaWQYASABKAkSDQoFZW1haWwYAiABKAkSFAoMYWNjZXNzX3Rva2VuGAMgASgJEhUKDXJlZnJlc2hfdG9rZW4YBCABKAkiRAoXR2V0UHJvdmlkZXJUb2tlblJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSFAoMcHJvdmlkZXJfa2V5GAIgASgJIq0BChhHZXRQcm92aWRlclRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkSEAoIaWRfdG9rZW4YAyABKAkSDgoGc2NvcGVzGAQgASgJEjMKCmV4cGlyZXNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDQoLX2V4cGlyZXNfYXQiMgobRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIh4KHERlbGV0ZVByb3ZpZGVyVG9rZW5zUmVzcG9uc2UqsQEKD0FkbWluVXNlclN0YXR1cxIhCh1BRE1JTl9VU0VSX1NUQVRVU19VTlNQRUNJRklFRBAAEhwKGEFETUlOX1VTRVJfU1RBVFVTX0FDVElWRRABEh0KGUFETUlOX1VTRVJfU1RBVFVTX1BFTkRJTkcQAhIfChtBRE1JTl9VU0VSX1NUQVRVU19TVVNQRU5ERUQQAxIdChlBRE1JTl9VU0VSX1NUQVRVU19ERUxFVEVEEAQqiQEKDkN1c3RvbWVyU3RhdHVzEh8KG0NVU1RPTUVSX1NUQVRVU19VTlNQRUNJRklFRBAAEhoKFkNVU1RPTUVSX1NUQVRVU19BQ1RJVkUQARIbChdDVVNUT01FUl9TVEFUVVNfUEVORElORxACEh0KGUNVU1RPTUVSX1NUQVRVU19TVVNQRU5ERUQQAyrZAQoMVGVuYW50U3RhdHVzEh0KGVRFTkFOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtURU5BTlRfU1RBVFVTX1BFTkRJTkdfU0VUVVAQARIYChRURU5BTlRfU1RBVFVTX0FDVElWRRACEhoKFlRFTkFOVF9TVEFUVVNfUEFTVF9EVUUQAxIbChdURU5BTlRfU1RBVFVTX1NVU1BFTkRFRBAEEhsKF1RFTkFOVF9TVEFUVVNfQ0FOQ0VMTEVEEAUSGQoVVEVOQU5UX1NUQVRVU19DSFVSTkVEEAYqZgoNUHJvamVjdFN0YXR1cxIeChpQUk9KRUNUX1NUQVRVU19VTlNQRUNJRklFRBAAEhkKFVBST0pFQ1RfU1RBVFVTX0FDVElWRRABEhoKFlBST0pFQ1RfU1RBVFVTX0RFTEVURUQQAiqmAQoKQWNjZXNzUm9sZRIbChdBQ0NFU1NfUk9MRV9VTlNQRUNJRklFRBAAEhwKGEFDQ0VTU19ST0xFX1RFTkFOVF9PV05FUhABEh0KGUFDQ0VTU19ST0xFX1BST0pFQ1RfQURNSU4QAhIeChpBQ0NFU1NfUk9MRV9QUk9KRUNUX0VESVRPUhADEh4KGkFDQ0VTU19ST0xFX1BST0pFQ1RfVklFV0VSEAQqZAoKSW52aXRlVHlwZRIbChdJTlZJVEVfVFlQRV9VTlNQRUNJRklFRBAAEhwKGElOVklURV9UWVBFX1RFTkFOVF9PV05FUhABEhsKF0lOVklURV9UWVBFX1RFQU1fTUVNQkVSEAIqsgEKEEludml0YXRpb25TdGF0dXMSIQodSU5WSVRBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlJTlZJVEFUSU9OX1NUQVRVU19QRU5ESU5HEAESHgoaSU5WSVRBVElPTl9TVEFUVVNfQUNDRVBURUQQAhIdChlJTlZJVEFUSU9OX1NUQVRVU19FWFBJUkVEEAMSHQoZSU5WSVRBVElPTl9TVEFUVVNfUkVWT0tFRBAEKucBChhDdXN0b21lckludml0YXRpb25TdGF0dXMSKgomQ1VTVE9NRVJfSU5WSVRBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABImCiJDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19QRU5ESU5HEAESJwojQ1VTVE9NRVJfSU5WSVRBVElPTl9TVEFUVVNfQUNDRVBURUQQAhImCiJDVVNUT01FUl9JTlZJVEFUSU9OX1NUQVRVU19FWFBJUkVEEAMSJgoiQ1VTVE9NRVJfSU5WSVRBVElPTl9TVEFUVVNfUkVWT0tFRBAEKlwKCkFwaUtleVR5cGUSHAoYQVBJX0tFWV9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTQVBJX0tFWV9UWVBFX1BVQkxJQxABEhcKE0FQSV9LRVlfVFlQRV9TRUNSRVQQAjL3TgoPSWRlbnRpdHlTZXJ2aWNlEj4KBUxvZ2luEhkuaWRlbnRpdHkudjEuTG9naW5SZXF1ZXN0GhouaWRlbnRpdHkudjEuTG9naW5SZXNwb25zZRJTCgxMb2dpbldpdGhPVFASIC5pZGVudGl0eS52MS5Mb2dpbldpdGhPVFBSZXF1ZXN0GiEuaWRlbnRpdHkudjEuTG9naW5XaXRoT1RQUmVzcG9uc2USTQoKUmVxdWVzdE9UUBIeLmlkZW50aXR5LnYxLlJlcXVlc3RPVFBSZXF1ZXN0Gh8uaWRlbnRpdHkudjEuUmVxdWVzdE9UUFJlc3BvbnNlEkEKBkxvZ291dBIaLmlkZW50aXR5LnYxLkxvZ291dFJlcXVlc3QaGy5pZGVudGl0eS52MS5Mb2dvdXRSZXNwb25zZRJHCghSZWdpc3RlchIcLmlkZW50aXR5LnYxLlJlZ2lzdGVyUmVxdWVzdBodLmlkZW50aXR5LnYxLlJlZ2lzdGVyUmVzcG9uc2USUAoLVmVyaWZ5RW1haWwSHy5pZGVudGl0eS52MS5WZXJpZnlFbWFpbFJlcXVlc3QaIC5pZGVudGl0eS52MS5WZXJpZnlFbWFpbFJlc3BvbnNlEnQKF1Jlc2VuZFZlcmlmaWNhdGlvbkVtYWlsEisuaWRlbnRpdHkudjEuUmVzZW5kVmVyaWZpY2F0aW9uRW1haWxSZXF1ZXN0GiwuaWRlbnRpdHkudjEuUmVzZW5kVmVyaWZpY2F0aW9uRW1haWxSZXNwb25zZRJ6ChlTZW5kRW1haWxWZXJpZmljYXRpb25Db2RlEi0uaWRlbnRpdHkudjEuU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlcXVlc3QaLi5pZGVudGl0eS52MS5TZW5kRW1haWxWZXJpZmljYXRpb25Db2RlUmVzcG9uc2USXAoPVmVyaWZ5RW1haWxDb2RlEiMuaWRlbnRpdHkudjEuVmVyaWZ5RW1haWxDb2RlUmVxdWVzdBokLmlkZW50aXR5LnYxLlZlcmlmeUVtYWlsQ29kZVJlc3BvbnNlEmsKFFJlcXVlc3RQYXNzd29yZFJlc2V0EiguaWRlbnRpdHkudjEuUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0GikuaWRlbnRpdHkudjEuUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXNwb25zZRJWCg1SZXNldFBhc3N3b3JkEiEuaWRlbnRpdHkudjEuUmVzZXRQYXNzd29yZFJlcXVlc3QaIi5pZGVudGl0eS52MS5SZXNldFBhc3N3b3JkUmVzcG9uc2USWQoOVXBkYXRlUGFzc3dvcmQSIi5pZGVudGl0eS52MS5VcGRhdGVQYXNzd29yZFJlcXVlc3QaIy5pZGVudGl0eS52MS5VcGRhdGVQYXNzd29yZFJlc3BvbnNlElMKDFJlZnJlc2hUb2tlbhIgLmlkZW50aXR5LnYxLlJlZnJlc2hUb2tlblJlcXVlc3QaIS5pZGVudGl0eS52MS5SZWZyZXNoVG9rZW5SZXNwb25zZRJiChFHZXRTZXNzaW9uQ29udGV4dBIlLmlkZW50aXR5LnYxLkdldFNlc3Npb25Db250ZXh0UmVxdWVzdBomLmlkZW50aXR5LnYxLkdldFNlc3Npb25Db250ZXh0UmVzcG9uc2USUwoMU3dpdGNoVGVuYW50EiAuaWRlbnRpdHkudjEuU3dpdGNoVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLlN3aXRjaFRlbmFudFJlc3BvbnNlElYKDVN3aXRjaFByb2plY3QSIS5pZGVudGl0eS52MS5Td2l0Y2hQcm9qZWN0UmVxdWVzdBoiLmlkZW50aXR5LnYxLlN3aXRjaFByb2plY3RSZXNwb25zZRJoChNDbGVhclNlc3Npb25Db250ZXh0EicuaWRlbnRpdHkudjEuQ2xlYXJTZXNzaW9uQ29udGV4dFJlcXVlc3QaKC5pZGVudGl0eS52MS5DbGVhclNlc3Npb25Db250ZXh0UmVzcG9uc2USPgoFR2V0TWUSGS5pZGVudGl0eS52MS5HZXRNZVJlcXVlc3QaGi5pZGVudGl0eS52MS5HZXRNZVJlc3BvbnNlElwKD0NyZWF0ZUFkbWluVXNlchIjLmlkZW50aXR5LnYxLkNyZWF0ZUFkbWluVXNlclJlcXVlc3QaJC5pZGVudGl0eS52MS5DcmVhdGVBZG1pblVzZXJSZXNwb25zZRJTCgxHZXRBZG1pblVzZXISIC5pZGVudGl0eS52MS5HZXRBZG1pblVzZXJSZXF1ZXN0GiEuaWRlbnRpdHkudjEuR2V0QWRtaW5Vc2VyUmVzcG9uc2USXAoPVXBkYXRlQWRtaW5Vc2VyEiMuaWRlbnRpdHkudjEuVXBkYXRlQWRtaW5Vc2VyUmVxdWVzdBokLmlkZW50aXR5LnYxLlVwZGF0ZUFkbWluVXNlclJlc3BvbnNlElkKDkxpc3RBZG1pblVzZXJzEiIuaWRlbnRpdHkudjEuTGlzdEFkbWluVXNlcnNSZXF1ZXN0GiMuaWRlbnRpdHkudjEuTGlzdEFkbWluVXNlcnNSZXNwb25zZRJQCgtHcmFudEFjY2VzcxIfLmlkZW50aXR5LnYxLkdyYW50QWNjZXNzUmVxdWVzdBogLmlkZW50aXR5LnYxLkdyYW50QWNjZXNzUmVzcG9uc2USUwoMUmV2b2tlQWNjZXNzEiAuaWRlbnRpdHkudjEuUmV2b2tlQWNjZXNzUmVxdWVzdBohLmlkZW50aXR5LnYxLlJldm9rZUFjY2Vzc1Jlc3BvbnNlElkKDkNyZWF0ZUN1c3RvbWVyEiIuaWRlbnRpdHkudjEuQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0GiMuaWRlbnRpdHkudjEuQ3JlYXRlQ3VzdG9tZXJSZXNwb25zZRJQCgtHZXRDdXN0b21lchIfLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyUmVxdWVzdBogLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyUmVzcG9uc2USWQoOVXBkYXRlQ3VzdG9tZXISIi5pZGVudGl0eS52MS5VcGRhdGVDdXN0b21lclJlcXVlc3QaIy5pZGVudGl0eS52MS5VcGRhdGVDdXN0b21lclJlc3BvbnNlElkKDkRlbGV0ZUN1c3RvbWVyEiIuaWRlbnRpdHkudjEuRGVsZXRlQ3VzdG9tZXJSZXF1ZXN0GiMuaWRlbnRpdHkudjEuRGVsZXRlQ3VzdG9tZXJSZXNwb25zZRJWCg1MaXN0Q3VzdG9tZXJzEiEuaWRlbnRpdHkudjEuTGlzdEN1c3RvbWVyc1JlcXVlc3QaIi5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJzUmVzcG9uc2USXAoPU3VzcGVuZEN1c3RvbWVyEiMuaWRlbnRpdHkudjEuU3VzcGVuZEN1c3RvbWVyUmVxdWVzdBokLmlkZW50aXR5LnYxLlN1c3BlbmRDdXN0b21lclJlc3BvbnNlEmgKE1NldEN1c3RvbWVyUGFzc3dvcmQSJy5pZGVudGl0eS52MS5TZXRDdXN0b21lclBhc3N3b3JkUmVxdWVzdBooLmlkZW50aXR5LnYxLlNldEN1c3RvbWVyUGFzc3dvcmRSZXNwb25zZRJ3ChhDcmVhdGVDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5DcmVhdGVDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USdAoXTGlzdEN1c3RvbWVySW52aXRhdGlvbnMSKy5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1JlcXVlc3QaLC5pZGVudGl0eS52MS5MaXN0Q3VzdG9tZXJJbnZpdGF0aW9uc1Jlc3BvbnNlEm4KFUdldEN1c3RvbWVySW52aXRhdGlvbhIpLmlkZW50aXR5LnYxLkdldEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaKi5pZGVudGl0eS52MS5HZXRDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ3ChhSZXZva2VDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5SZXZva2VDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuUmV2b2tlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USdwoYUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uEiwuaWRlbnRpdHkudjEuUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBotLmlkZW50aXR5LnYxLlJlc2VuZEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEn0KGlZhbGlkYXRlQ3VzdG9tZXJJbnZpdGF0aW9uEi4uaWRlbnRpdHkudjEuVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi8uaWRlbnRpdHkudjEuVmFsaWRhdGVDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ3ChhBY2NlcHRDdXN0b21lckludml0YXRpb24SLC5pZGVudGl0eS52MS5BY2NlcHRDdXN0b21lckludml0YXRpb25SZXF1ZXN0Gi0uaWRlbnRpdHkudjEuQWNjZXB0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USUwoMQ3JlYXRlVGVuYW50EiAuaWRlbnRpdHkudjEuQ3JlYXRlVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLkNyZWF0ZVRlbmFudFJlc3BvbnNlEkoKCUdldFRlbmFudBIdLmlkZW50aXR5LnYxLkdldFRlbmFudFJlcXVlc3QaHi5pZGVudGl0eS52MS5HZXRUZW5hbnRSZXNwb25zZRJTCgxVcGRhdGVUZW5hbnQSIC5pZGVudGl0eS52MS5VcGRhdGVUZW5hbnRSZXF1ZXN0GiEuaWRlbnRpdHkudjEuVXBkYXRlVGVuYW50UmVzcG9uc2USUAoLTGlzdFRlbmFudHMSHy5pZGVudGl0eS52MS5MaXN0VGVuYW50c1JlcXVlc3QaIC5pZGVudGl0eS52MS5MaXN0VGVuYW50c1Jlc3BvbnNlElMKDERlbGV0ZVRlbmFudBIgLmlkZW50aXR5LnYxLkRlbGV0ZVRlbmFudFJlcXVlc3QaIS5pZGVudGl0eS52MS5EZWxldGVUZW5hbnRSZXNwb25zZRJWCg1DcmVhdGVQcm9qZWN0EiEuaWRlbnRpdHkudjEuQ3JlYXRlUHJvamVjdFJlcXVlc3QaIi5pZGVudGl0eS52MS5DcmVhdGVQcm9qZWN0UmVzcG9uc2USTQoKR2V0UHJvamVjdBIeLmlkZW50aXR5LnYxLkdldFByb2plY3RSZXF1ZXN0Gh8uaWRlbnRpdHkudjEuR2V0UHJvamVjdFJlc3BvbnNlElYKDVVwZGF0ZVByb2plY3QSIS5pZGVudGl0eS52MS5VcGRhdGVQcm9qZWN0UmVxdWVzdBoiLmlkZW50aXR5LnYxLlVwZGF0ZVByb2plY3RSZXNwb25zZRJTCgxMaXN0UHJvamVjdHMSIC5pZGVudGl0eS52MS5MaXN0UHJvamVjdHNSZXF1ZXN0GiEuaWRlbnRpdHkudjEuTGlzdFByb2plY3RzUmVzcG9uc2USVgoNRGVsZXRlUHJvamVjdBIhLmlkZW50aXR5LnYxLkRlbGV0ZVByb2plY3RSZXF1ZXN0GiIuaWRlbnRpdHkudjEuRGVsZXRlUHJvamVjdFJlc3BvbnNlEmIKEUdldERlZmF1bHRQcm9qZWN0EiUuaWRlbnRpdHkudjEuR2V0RGVmYXVsdFByb2plY3RSZXF1ZXN0GiYuaWRlbnRpdHkudjEuR2V0RGVmYXVsdFByb2plY3RSZXNwb25zZRJiChFTZXREZWZhdWx0UHJvamVjdBIlLmlkZW50aXR5LnYxLlNldERlZmF1bHRQcm9qZWN0UmVxdWVzdBomLmlkZW50aXR5LnYxLlNldERlZmF1bHRQcm9qZWN0UmVzcG9uc2USXwoQQ3JlYXRlSW52aXRhdGlvbhIkLmlkZW50aXR5LnYxLkNyZWF0ZUludml0YXRpb25SZXF1ZXN0GiUuaWRlbnRpdHkudjEuQ3JlYXRlSW52aXRhdGlvblJlc3BvbnNlElwKD0xpc3RJbnZpdGF0aW9ucxIjLmlkZW50aXR5LnYxLkxpc3RJbnZpdGF0aW9uc1JlcXVlc3QaJC5pZGVudGl0eS52MS5MaXN0SW52aXRhdGlvbnNSZXNwb25zZRJfChBSZXZva2VJbnZpdGF0aW9uEiQuaWRlbnRpdHkudjEuUmV2b2tlSW52aXRhdGlvblJlcXVlc3QaJS5pZGVudGl0eS52MS5SZXZva2VJbnZpdGF0aW9uUmVzcG9uc2USXwoQQWNjZXB0SW52aXRhdGlvbhIkLmlkZW50aXR5LnYxLkFjY2VwdEludml0YXRpb25SZXF1ZXN0GiUuaWRlbnRpdHkudjEuQWNjZXB0SW52aXRhdGlvblJlc3BvbnNlEmUKElZhbGlkYXRlSW52aXRhdGlvbhImLmlkZW50aXR5LnYxLlZhbGlkYXRlSW52aXRhdGlvblJlcXVlc3QaJy5pZGVudGl0eS52MS5WYWxpZGF0ZUludml0YXRpb25SZXNwb25zZRJTCgxDcmVhdGVBcGlLZXkSIC5pZGVudGl0eS52MS5DcmVhdGVBcGlLZXlSZXF1ZXN0GiEuaWRlbnRpdHkudjEuQ3JlYXRlQXBpS2V5UmVzcG9uc2USSgoJR2V0QXBpS2V5Eh0uaWRlbnRpdHkudjEuR2V0QXBpS2V5UmVxdWVzdBoeLmlkZW50aXR5LnYxLkdldEFwaUtleVJlc3BvbnNlElAKC0xpc3RBcGlLZXlzEh8uaWRlbnRpdHkudjEuTGlzdEFwaUtleXNSZXF1ZXN0GiAuaWRlbnRpdHkudjEuTGlzdEFwaUtleXNSZXNwb25zZRJTCgxVcGRhdGVBcGlLZXkSIC5pZGVudGl0eS52MS5VcGRhdGVBcGlLZXlSZXF1ZXN0GiEuaWRlbnRpdHkudjEuVXBkYXRlQXBpS2V5UmVzcG9uc2USUwoMUm90YXRlQXBpS2V5EiAuaWRlbnRpdHkudjEuUm90YXRlQXBpS2V5UmVxdWVzdBohLmlkZW50aXR5LnYxLlJvdGF0ZUFwaUtleVJlc3BvbnNlElMKDFJldm9rZUFwaUtleRIgLmlkZW50aXR5LnYxLlJldm9rZUFwaUtleVJlcXVlc3QaIS5pZGVudGl0eS52MS5SZXZva2VBcGlLZXlSZXNwb25zZRJiChFMaXN0QXV0aFByb3ZpZGVycxIlLmlkZW50aXR5LnYxLkxpc3RBdXRoUHJvdmlkZXJzUmVxdWVzdBomLmlkZW50aXR5LnYxLkxpc3RBdXRoUHJvdmlkZXJzUmVzcG9uc2USXAoPR2V0QXV0aFByb3ZpZGVyEiMuaWRlbnRpdHkudjEuR2V0QXV0aFByb3ZpZGVyUmVxdWVzdBokLmlkZW50aXR5LnYxLkdldEF1dGhQcm92aWRlclJlc3BvbnNlEmUKEkNyZWF0ZUF1dGhQcm92aWRlchImLmlkZW50aXR5LnYxLkNyZWF0ZUF1dGhQcm92aWRlclJlcXVlc3QaJy5pZGVudGl0eS52MS5DcmVhdGVBdXRoUHJvdmlkZXJSZXNwb25zZRJlChJVcGRhdGVBdXRoUHJvdmlkZXISJi5pZGVudGl0eS52MS5VcGRhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0GicuaWRlbnRpdHkudjEuVXBkYXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USZQoSRGVsZXRlQXV0aFByb3ZpZGVyEiYuaWRlbnRpdHkudjEuRGVsZXRlQXV0aFByb3ZpZGVyUmVxdWVzdBonLmlkZW50aXR5LnYxLkRlbGV0ZUF1dGhQcm92aWRlclJlc3BvbnNlEmgKE1B1Ymxpc2hBdXRoUHJvdmlkZXISJy5pZGVudGl0eS52MS5QdWJsaXNoQXV0aFByb3ZpZGVyUmVxdWVzdBooLmlkZW50aXR5LnYxLlB1Ymxpc2hBdXRoUHJvdmlkZXJSZXNwb25zZRJuChVVbnB1Ymxpc2hBdXRoUHJvdmlkZXISKS5pZGVudGl0eS52MS5VbnB1Ymxpc2hBdXRoUHJvdmlkZXJSZXF1ZXN0GiouaWRlbnRpdHkudjEuVW5wdWJsaXNoQXV0aFByb3ZpZGVyUmVzcG9uc2USgwEKHEdldEF1dGhQcm92aWRlclB1Ymxpc2hTdGF0dXMSMC5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzUmVxdWVzdBoxLmlkZW50aXR5LnYxLkdldEF1dGhQcm92aWRlclB1Ymxpc2hTdGF0dXNSZXNwb25zZRKAAQobU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoEi8uaWRlbnRpdHkudjEuU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVxdWVzdBowLmlkZW50aXR5LnYxLlNjaGVkdWxlQXV0aFByb3ZpZGVyUHVibGlzaFJlc3BvbnNlEpUBCiJDYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoEjYuaWRlbnRpdHkudjEuQ2FuY2VsU2NoZWR1bGVkQXV0aFByb3ZpZGVyUHVibGlzaFJlcXVlc3QaNy5pZGVudGl0eS52MS5DYW5jZWxTY2hlZHVsZWRBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USbgoVRW5hYmxlZE9BdXRoUHJvdmlkZXJzEikuaWRlbnRpdHkudjEuRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVxdWVzdBoqLmlkZW50aXR5LnYxLkVuYWJsZWRPQXV0aFByb3ZpZGVyc1Jlc3BvbnNlEl8KEE1pbnRTZXJ2aWNlVG9rZW4SJC5pZGVudGl0eS52MS5NaW50U2VydmljZVRva2VuUmVxdWVzdBolLmlkZW50aXR5LnYxLk1pbnRTZXJ2aWNlVG9rZW5SZXNwb25zZRJcCg9VcGRhdGVNeVByb2ZpbGUSIy5pZGVudGl0eS52MS5VcGRhdGVNeVByb2ZpbGVSZXF1ZXN0GiQuaWRlbnRpdHkudjEuVXBkYXRlTXlQcm9maWxlUmVzcG9uc2UScQoWTGlzdE15T0F1dGhDb25uZWN0aW9ucxIqLmlkZW50aXR5LnYxLkxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXF1ZXN0GisuaWRlbnRpdHkudjEuTGlzdE15T0F1dGhDb25uZWN0aW9uc1Jlc3BvbnNlEmgKE1VubGlua09BdXRoUHJvdmlkZXISJy5pZGVudGl0eS52MS5VbmxpbmtPQXV0aFByb3ZpZGVyUmVxdWVzdBooLmlkZW50aXR5LnYxLlVubGlua09BdXRoUHJvdmlkZXJSZXNwb25zZRJxChZDaGVja0VtYWlsQXZhaWxhYmlsaXR5EiouaWRlbnRpdHkudjEuQ2hlY2tFbWFpbEF2YWlsYWJpbGl0eVJlcXVlc3QaKy5pZGVudGl0eS52MS5DaGVja0VtYWlsQXZhaWxhYmlsaXR5UmVzcG9uc2USawoUQ29tcGxldGVBY2NvdW50U2V0dXASKC5pZGVudGl0eS52MS5Db21wbGV0ZUFjY291bnRTZXR1cFJlcXVlc3QaKS5pZGVudGl0eS52MS5Db21wbGV0ZUFjY291bnRTZXR1cFJlc3BvbnNlEmgKE0NyZWF0ZVNpZ251cFNlc3Npb24SJy5pZGVudGl0eS52MS5DcmVhdGVTaWdudXBTZXNzaW9uUmVxdWVzdBooLmlkZW50aXR5LnYxLkNyZWF0ZVNpZ251cFNlc3Npb25SZXNwb25zZRJfChBSZXNlbmRJbnZpdGF0aW9uEiQuaWRlbnRpdHkudjEuUmVzZW5kSW52aXRhdGlvblJlcXVlc3QaJS5pZGVudGl0eS52MS5SZXNlbmRJbnZpdGF0aW9uUmVzcG9uc2USVgoNR2V0SW52aXRhdGlvbhIhLmlkZW50aXR5LnYxLkdldEludml0YXRpb25SZXF1ZXN0GiIuaWRlbnRpdHkudjEuR2V0SW52aXRhdGlvblJlc3BvbnNlElkKDkFjdGl2YXRlVGVuYW50EiIuaWRlbnRpdHkudjEuQWN0aXZhdGVUZW5hbnRSZXF1ZXN0GiMuaWRlbnRpdHkudjEuQWN0aXZhdGVUZW5hbnRSZXNwb25zZRJrChRTdXNwZW5kVGVuYW50QWNjb3VudBIoLmlkZW50aXR5LnYxLlN1c3BlbmRUZW5hbnRBY2NvdW50UmVxdWVzdBopLmlkZW50aXR5LnYxLlN1c3BlbmRUZW5hbnRBY2NvdW50UmVzcG9uc2USUwoMQ2FuY2VsVGVuYW50EiAuaWRlbnRpdHkudjEuQ2FuY2VsVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLkNhbmNlbFRlbmFudFJlc3BvbnNlEl8KEFJlYWN0aXZhdGVUZW5hbnQSJC5pZGVudGl0eS52MS5SZWFjdGl2YXRlVGVuYW50UmVxdWVzdBolLmlkZW50aXR5LnYxLlJlYWN0aXZhdGVUZW5hbnRSZXNwb25zZRJiChFNYXJrVGVuYW50UGFzdER1ZRIlLmlkZW50aXR5LnYxLk1hcmtUZW5hbnRQYXN0RHVlUmVxdWVzdBomLmlkZW50aXR5LnYxLk1hcmtUZW5hbnRQYXN0RHVlUmVzcG9uc2USUAoLQ2h1cm5UZW5hbnQSHy5pZGVudGl0eS52MS5DaHVyblRlbmFudFJlcXVlc3QaIC5pZGVudGl0eS52MS5DaHVyblRlbmFudFJlc3BvbnNlEm4KFUdldEN1c3RvbWVyQXV0aENvbmZpZxIpLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyQXV0aENvbmZpZ1JlcXVlc3QaKi5pZGVudGl0eS52MS5HZXRDdXN0b21lckF1dGhDb25maWdSZXNwb25zZRJoChNWZXJpZnlDdXN0b21lclRva2VuEicuaWRlbnRpdHkudjEuVmVyaWZ5Q3VzdG9tZXJUb2tlblJlcXVlc3QaKC5pZGVudGl0eS52MS5WZXJpZnlDdXN0b21lclRva2VuUmVzcG9uc2USgAEKG0dldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1cxIvLmlkZW50aXR5LnYxLkdldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1c1JlcXVlc3QaMC5pZGVudGl0eS52MS5HZXRDdXN0b21lck1hbmFnZW1lbnRTdGF0dXNSZXNwb25zZRJZCg5WYWxpZGF0ZUFwaUtleRIiLmlkZW50aXR5LnYxLlZhbGlkYXRlQXBpS2V5UmVxdWVzdBojLmlkZW50aXR5LnYxLlZhbGlkYXRlQXBpS2V5UmVzcG9uc2USVgoNQ3VzdG9tZXJMb2dpbhIhLmlkZW50aXR5LnYxLkN1c3RvbWVyTG9naW5SZXF1ZXN0GiIuaWRlbnRpdHkudjEuQ3VzdG9tZXJMb2dpblJlc3BvbnNlEl8KEEN1c3RvbWVyUmVnaXN0ZXISJC5pZGVudGl0eS52MS5DdXN0b21lclJlZ2lzdGVyUmVxdWVzdBolLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVnaXN0ZXJSZXNwb25zZRJrChRDdXN0b21lclJlZnJlc2hUb2tlbhIoLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVmcmVzaFRva2VuUmVxdWVzdBopLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVmcmVzaFRva2VuUmVzcG9uc2USZQoSQ3VzdG9tZXJSZXF1ZXN0T1RQEiYuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0T1RQUmVxdWVzdBonLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVxdWVzdE9UUFJlc3BvbnNlEmIKEUN1c3RvbWVyVmVyaWZ5T1RQEiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJWZXJpZnlPVFBSZXF1ZXN0GiYuaWRlbnRpdHkudjEuQ3VzdG9tZXJWZXJpZnlPVFBSZXNwb25zZRKDAQocQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldBIwLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0GjEuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldFJlc3BvbnNlEm4KFUN1c3RvbWVyUmVzZXRQYXNzd29yZBIpLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVzZXRQYXNzd29yZFJlcXVlc3QaKi5pZGVudGl0eS52MS5DdXN0b21lclJlc2V0UGFzc3dvcmRSZXNwb25zZRJlChJTdG9yZVByb3ZpZGVyVG9rZW4SJi5pZGVudGl0eS52MS5TdG9yZVByb3ZpZGVyVG9rZW5SZXF1ZXN0GicuaWRlbnRpdHkudjEuU3RvcmVQcm92aWRlclRva2VuUmVzcG9uc2USXwoQR2V0UHJvdmlkZXJUb2tlbhIkLmlkZW50aXR5LnYxLkdldFByb3ZpZGVyVG9rZW5SZXF1ZXN0GiUuaWRlbnRpdHkudjEuR2V0UHJvdmlkZXJUb2tlblJlc3BvbnNlEmsKFERlbGV0ZVByb3ZpZGVyVG9rZW5zEiguaWRlbnRpdHkudjEuRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXF1ZXN0GikuaWRlbnRpdHkudjEuRGVsZXRlUHJvdmlkZXJUb2tlbnNSZXNwb25zZRJlChJTdGFydFByb3ZpZGVyTG9naW4SJi5pZGVudGl0eS52MS5TdGFydFByb3ZpZGVyTG9naW5SZXF1ZXN0GicuaWRlbnRpdHkudjEuU3RhcnRQcm92aWRlckxvZ2luUmVzcG9uc2USaAoTRmluaXNoUHJvdmlkZXJMb2dpbhInLmlkZW50aXR5LnYxLkZpbmlzaFByb3ZpZGVyTG9naW5SZXF1ZXN0GiguaWRlbnRpdHkudjEuRmluaXNoUHJvdmlkZXJMb2dpblJlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9pZGVudGl0eS92MTtpZGVudGl0eXYxYgZwcm90bzM", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_publish_v1_publish, file_common_v1_pagination]);
14
+ fileDesc("ChppZGVudGl0eS92MS9pZGVudGl0eS5wcm90bxILaWRlbnRpdHkudjEijwQKCUFkbWluVXNlchIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIXCgpmaXJzdF9uYW1lGAMgASgJSACIAQESFgoJbGFzdF9uYW1lGAQgASgJSAGIAQESFwoKYXZhdGFyX3VybBgFIAEoCUgCiAEBEhkKEWlzX3BsYXRmb3JtX2FkbWluGAYgASgIEiwKBnN0YXR1cxgUIAEoDjIcLmlkZW50aXR5LnYxLkFkbWluVXNlclN0YXR1cxI6ChFlbWFpbF92ZXJpZmllZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI2Cg1sYXN0X2xvZ2luX2F0GB8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEiwKBmFjY2VzcxgoIAMoCzIcLmlkZW50aXR5LnYxLkFkbWluVXNlckFjY2VzcxIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg0KC19hdmF0YXJfdXJsQhQKEl9lbWFpbF92ZXJpZmllZF9hdEIQCg5fbGFzdF9sb2dpbl9hdCLuAQoPQWRtaW5Vc2VyQWNjZXNzEgoKAmlkGAEgASgJEhUKDWFkbWluX3VzZXJfaWQYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhcKCnByb2plY3RfaWQYBCABKAlIAIgBARIlCgRyb2xlGAUgASgOMhcuaWRlbnRpdHkudjEuQWNjZXNzUm9sZRIuCgpncmFudGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpncmFudGVkX2J5GDMgASgJSAGIAQFCDQoLX3Byb2plY3RfaWRCDQoLX2dyYW50ZWRfYnki9QIKCEN1c3RvbWVyEgoKAmlkGAEgASgJEg0KBWVtYWlsGAIgASgJEhEKCXRlbmFudF9pZBgDIAEoCRISCgpwcm9qZWN0X2lkGAQgASgJEisKBnN0YXR1cxgUIAEoDjIbLmlkZW50aXR5LnYxLkN1c3RvbWVyU3RhdHVzEjoKEWVtYWlsX3ZlcmlmaWVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjYKDWxhc3RfbG9naW5fYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCFAoSX2VtYWlsX3ZlcmlmaWVkX2F0QhAKDl9sYXN0X2xvZ2luX2F0IvQCCgZUZW5hbnQSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIpCgZzdGF0dXMYFCABKA4yGS5pZGVudGl0eS52MS5UZW5hbnRTdGF0dXMSNQoMc3VzcGVuZGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEkIKGWNhbmNlbGxhdGlvbl9zY2hlZHVsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESGwoTZGF0YV9yZXRlbnRpb25fZGF5cxgeIAEoBRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIPCg1fc3VzcGVuZGVkX2F0QhwKGl9jYW5jZWxsYXRpb25fc2NoZWR1bGVkX2F0It4GCgdQcm9qZWN0EgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEgoKaXNfZGVmYXVsdBgFIAEoCBIqCgZzdGF0dXMYFCABKA4yGi5pZGVudGl0eS52MS5Qcm9qZWN0U3RhdHVzEj4KFWRlbGV0aW9uX3NjaGVkdWxlZF9hdBgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIXCgpjcmVhdGVkX2J5GCggASgJSAKIAQESFwoKdXBkYXRlZF9ieRgpIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhkKDGRpc3BsYXlfbmFtZRg8IAEoCUgEiAEBEhUKCGxvZ29fdXJsGD0gASgJSAWIAQESGgoNcHJpbWFyeV9jb2xvchg+IAEoCUgGiAEBEhYKCWZyb21fbmFtZRg/IAEoCUgHiAEBEhUKCHJlcGx5X3RvGEAgASgJSAiIAQESGgoNc3VwcG9ydF9lbWFpbBhBIAEoCUgJiAEBEhkKDGFwcF9iYXNlX3VybBhCIAEoCUgKiAEBEisKHmN1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZBhGIAEoCEgLiAEBEiQKF2N1c3RvbWVyX3NpZ251cF9lbmFibGVkGFAgASgISAyIAQFCDgoMX2Rlc2NyaXB0aW9uQhgKFl9kZWxldGlvbl9zY2hlZHVsZWRfYXRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCDwoNX2Rpc3BsYXlfbmFtZUILCglfbG9nb191cmxCEAoOX3ByaW1hcnlfY29sb3JCDAoKX2Zyb21fbmFtZUILCglfcmVwbHlfdG9CEAoOX3N1cHBvcnRfZW1haWxCDwoNX2FwcF9iYXNlX3VybEIhCh9fY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkQhoKGF9jdXN0b21lcl9zaWdudXBfZW5hYmxlZCKvAwoKSW52aXRhdGlvbhIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIRCgl0ZW5hbnRfaWQYAyABKAkSEwoLcHJvamVjdF9pZHMYBCADKAkSJQoEcm9sZRgFIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGUSLAoLaW52aXRlX3R5cGUYBiABKA4yFy5pZGVudGl0eS52MS5JbnZpdGVUeXBlEhIKCmludml0ZWRfYnkYByABKAkSFAoHbWVzc2FnZRgIIAEoCUgAiAEBEi0KBnN0YXR1cxgUIAEoDjIdLmlkZW50aXR5LnYxLkludml0YXRpb25TdGF0dXMSLgoKZXhwaXJlc19hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLYWNjZXB0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCDgoMX2FjY2VwdGVkX2F0IukDChJDdXN0b21lckludml0YXRpb24SCgoCaWQYASABKAkSDQoFZW1haWwYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhIKCnByb2plY3RfaWQYBCABKAkSFwoKaW52aXRlZF9ieRgFIAEoCUgAiAEBEhQKB21lc3NhZ2UYBiABKAlIAYgBARI1CgZzdGF0dXMYFCABKA4yJS5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb25TdGF0dXMSLgoKZXhwaXJlc19hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoLYWNjZXB0ZWRfYXQYHyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESIQoUYWNjZXB0ZWRfY3VzdG9tZXJfaWQYICABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEINCgtfaW52aXRlZF9ieUIKCghfbWVzc2FnZUIOCgxfYWNjZXB0ZWRfYXRCFwoVX2FjY2VwdGVkX2N1c3RvbWVyX2lkItkECgZBcGlLZXkSCgoCaWQYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhIKCnByb2plY3RfaWQYAyABKAkSDAoEbmFtZRgEIAEoCRISCgprZXlfcHJlZml4GAUgASgJEikKCGtleV90eXBlGAYgASgOMhcuaWRlbnRpdHkudjEuQXBpS2V5VHlwZRIUCgdyYXdfa2V5GAogASgJSACIAQESEQoJaXNfYWN0aXZlGBQgASgIEiAKE3JhdGVfbGltaXRfcGVyX2hvdXIYFSABKAVIAYgBARIzCgpleHBpcmVzX2F0GBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEg4KBnNjb3BlcxgXIAMoCRIuCghtZXRhZGF0YRgYIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARI1CgxsYXN0X3VzZWRfYXQYHiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESEwoLdXNhZ2VfY291bnQYHyABKAUSEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfcmF3X2tleUIWChRfcmF0ZV9saW1pdF9wZXJfaG91ckINCgtfZXhwaXJlc19hdEILCglfbWV0YWRhdGFCDwoNX2xhc3RfdXNlZF9hdCKWAgoOU2Vzc2lvbkNvbnRleHQSFgoJdGVuYW50X2lkGAEgASgJSACIAQESFwoKcHJvamVjdF9pZBgCIAEoCUgBiAEBEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXISGwoOZWZmZWN0aXZlX3JvbGUYBCABKAlIAogBARIuChFhdmFpbGFibGVfdGVuYW50cxgFIAMoCzITLmlkZW50aXR5LnYxLlRlbmFudBIwChJhdmFpbGFibGVfcHJvamVjdHMYBiADKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0QgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCEQoPX2VmZmVjdGl2ZV9yb2xlIn0KDExvZ2luUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCJfCg1Mb2dpblJlc3BvbnNlEhIKCnNlc3Npb25faWQYASABKAkSFAoMYWNjZXNzX3Rva2VuGAIgASgJEiQKBHVzZXIYAyABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIifwoTTG9naW5XaXRoT1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRILCgNvdHAYAiABKAkSFgoJdGVuYW50X2lkGAMgASgJSACIAQESFwoKcHJvamVjdF9pZBgEIAEoCUgBiAEBQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWQiZgoUTG9naW5XaXRoT1RQUmVzcG9uc2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIUCgxhY2Nlc3NfdG9rZW4YAiABKAkSJAoEdXNlchgDIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciJwChFSZXF1ZXN0T1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIWCgl0ZW5hbnRfaWQYAiABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAMgASgJSAGIAQFCDAoKX3RlbmFudF9pZEINCgtfcHJvamVjdF9pZCIlChJSZXF1ZXN0T1RQUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIPCg1Mb2dvdXRSZXF1ZXN0IiEKDkxvZ291dFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgitQEKD1JlZ2lzdGVyUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghwYXNzd29yZBgCIAEoCRIWCgl0ZW5hbnRfaWQYAyABKAlIAIgBARIXCgpwcm9qZWN0X2lkGAQgASgJSAGIAQESKgoEcm9sZRgFIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGVIAogBAUIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQgcKBV9yb2xlIjgKEFJlZ2lzdGVyUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciIjChJWZXJpZnlFbWFpbFJlcXVlc3QSDQoFdG9rZW4YASABKAkiJgoTVmVyaWZ5RW1haWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiAKHlJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVxdWVzdCIyCh9SZXNlbmRWZXJpZmljYXRpb25FbWFpbFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMQogU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlcXVlc3QSDQoFZW1haWwYASABKAkiNAohU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiNQoWVmVyaWZ5RW1haWxDb2RlUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIMCgRjb2RlGAIgASgJIjwKF1ZlcmlmeUVtYWlsQ29kZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSEAoIdmVyaWZpZWQYAiABKAgiLAobUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJIi8KHFJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI7ChRSZXNldFBhc3N3b3JkUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiKAoVUmVzZXRQYXNzd29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiRwoVVXBkYXRlUGFzc3dvcmRSZXF1ZXN0EhgKEGN1cnJlbnRfcGFzc3dvcmQYASABKAkSFAoMbmV3X3Bhc3N3b3JkGAIgASgJIikKFlVwZGF0ZVBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChNSZWZyZXNoVG9rZW5SZXF1ZXN0EhUKDXJlZnJlc2hfdG9rZW4YASABKAkiQwoUUmVmcmVzaFRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkiGgoYR2V0U2Vzc2lvbkNvbnRleHRSZXF1ZXN0IkkKGUdldFNlc3Npb25Db250ZXh0UmVzcG9uc2USLAoHY29udGV4dBgBIAEoCzIbLmlkZW50aXR5LnYxLlNlc3Npb25Db250ZXh0IigKE1N3aXRjaFRlbmFudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIkQKFFN3aXRjaFRlbmFudFJlc3BvbnNlEiwKB2NvbnRleHQYASABKAsyGy5pZGVudGl0eS52MS5TZXNzaW9uQ29udGV4dCIqChRTd2l0Y2hQcm9qZWN0UmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIkUKFVN3aXRjaFByb2plY3RSZXNwb25zZRIsCgdjb250ZXh0GAEgASgLMhsuaWRlbnRpdHkudjEuU2Vzc2lvbkNvbnRleHQiHAoaQ2xlYXJTZXNzaW9uQ29udGV4dFJlcXVlc3QiLgobQ2xlYXJTZXNzaW9uQ29udGV4dFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiDgoMR2V0TWVSZXF1ZXN0IjUKDUdldE1lUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciKjAQoWQ3JlYXRlQWRtaW5Vc2VyUmVxdWVzdBInCgZjcmVhdGUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhEKCXRlbmFudF9pZBgEIAEoCRIXCgpwcm9qZWN0X2lkGAUgASgJSACIAQESJQoEcm9sZRgGIAEoDjIXLmlkZW50aXR5LnYxLkFjY2Vzc1JvbGVCDQoLX3Byb2plY3RfaWQiPwoXQ3JlYXRlQWRtaW5Vc2VyUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciIhChNHZXRBZG1pblVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIjwKFEdldEFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIiTQoWVXBkYXRlQWRtaW5Vc2VyUmVxdWVzdBIKCgJpZBgBIAEoCRInCgZ1cGRhdGUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ij8KF1VwZGF0ZUFkbWluVXNlclJlc3BvbnNlEiQKBHVzZXIYASABKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXIixgEKFUxpc3RBZG1pblVzZXJzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgEIAEoCUgBiAEBEhMKBmJlZm9yZRgFIAEoCUgCiAEBEhIKBWZpcnN0GAYgASgFSAOIAQESEQoEbGFzdBgHIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QimgEKFkxpc3RBZG1pblVzZXJzUmVzcG9uc2USJQoFaXRlbXMYASADKAsyFi5pZGVudGl0eS52MS5BZG1pblVzZXISDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIo0BChJHcmFudEFjY2Vzc1JlcXVlc3QSFQoNYWRtaW5fdXNlcl9pZBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSFwoKcHJvamVjdF9pZBgDIAEoCUgAiAEBEiUKBHJvbGUYBCABKA4yFy5pZGVudGl0eS52MS5BY2Nlc3NSb2xlQg0KC19wcm9qZWN0X2lkIkMKE0dyYW50QWNjZXNzUmVzcG9uc2USLAoGYWNjZXNzGAEgASgLMhwuaWRlbnRpdHkudjEuQWRtaW5Vc2VyQWNjZXNzIigKE1Jldm9rZUFjY2Vzc1JlcXVlc3QSEQoJYWNjZXNzX2lkGAEgASgJIicKFFJldm9rZUFjY2Vzc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiZAoVQ3JlYXRlQ3VzdG9tZXJSZXF1ZXN0EicKBmNyZWF0ZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFQoIcGFzc3dvcmQYAiABKAlIAIgBAUILCglfcGFzc3dvcmQiQQoWQ3JlYXRlQ3VzdG9tZXJSZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIiAKEkdldEN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCSI+ChNHZXRDdXN0b21lclJlc3BvbnNlEicKCGN1c3RvbWVyGAEgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiTAoVVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0EgoKAmlkGAEgASgJEicKBnVwZGF0ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiQQoWVXBkYXRlQ3VzdG9tZXJSZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIiMKFURlbGV0ZUN1c3RvbWVyUmVxdWVzdBIKCgJpZBgBIAEoCSIpChZEZWxldGVDdXN0b21lclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgixQEKFExpc3RDdXN0b21lcnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKYAQoVTGlzdEN1c3RvbWVyc1Jlc3BvbnNlEiQKBWl0ZW1zGAEgAygLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXISDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIiQKFlN1c3BlbmRDdXN0b21lclJlcXVlc3QSCgoCaWQYASABKAkiQgoXU3VzcGVuZEN1c3RvbWVyUmVzcG9uc2USJwoIY3VzdG9tZXIYASABKAsyFS5pZGVudGl0eS52MS5DdXN0b21lciI+ChpTZXRDdXN0b21lclBhc3N3b3JkUmVxdWVzdBIKCgJpZBgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiLgobU2V0Q3VzdG9tZXJQYXNzd29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgi3AEKH0NyZWF0ZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSDQoFZW1haWwYASABKAkSFwoKaW52aXRlZF9ieRgCIAEoCUgAiAEBEhQKB21lc3NhZ2UYAyABKAlIAYgBARIXCgpzZW5kX2VtYWlsGAQgASgISAKIAQESIAoTYWNjZXB0X3VybF9vdmVycmlkZRgFIAEoCUgDiAEBQg0KC19pbnZpdGVkX2J5QgoKCF9tZXNzYWdlQg0KC19zZW5kX2VtYWlsQhYKFF9hY2NlcHRfdXJsX292ZXJyaWRlInoKIENyZWF0ZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEjMKCmludml0YXRpb24YASABKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb24SEgoKYWNjZXB0X3VybBgCIAEoCRINCgV0b2tlbhgDIAEoCSL/AQoeTGlzdEN1c3RvbWVySW52aXRhdGlvbnNSZXF1ZXN0EjoKBnN0YXR1cxgBIAEoDjIlLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvblN0YXR1c0gAiAEBEhMKBnNlYXJjaBgCIAEoCUgBiAEBEhIKBWFmdGVyGAMgASgJSAKIAQESEwoGYmVmb3JlGAQgASgJSAOIAQESEgoFZmlyc3QYBSABKAVIBIgBARIRCgRsYXN0GAYgASgFSAWIAQFCCQoHX3N0YXR1c0IJCgdfc2VhcmNoQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKsAQofTGlzdEN1c3RvbWVySW52aXRhdGlvbnNSZXNwb25zZRIuCgVpdGVtcxgBIAMoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iKgocR2V0Q3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJUCh1HZXRDdXN0b21lckludml0YXRpb25SZXNwb25zZRIzCgppbnZpdGF0aW9uGAEgASgLMh8uaWRlbnRpdHkudjEuQ3VzdG9tZXJJbnZpdGF0aW9uIi0KH1Jldm9rZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkiMwogUmV2b2tlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCKPAQofUmVzZW5kQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgpzZW5kX2VtYWlsGAIgASgISACIAQESIAoTYWNjZXB0X3VybF9vdmVycmlkZRgDIAEoCUgBiAEBQg0KC19zZW5kX2VtYWlsQhYKFF9hY2NlcHRfdXJsX292ZXJyaWRlInoKIFJlc2VuZEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEjMKCmludml0YXRpb24YASABKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckludml0YXRpb24SEgoKYWNjZXB0X3VybBgCIAEoCRINCgV0b2tlbhgDIAEoCSIyCiFWYWxpZGF0ZUN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QSDQoFdG9rZW4YASABKAkihwEKIlZhbGlkYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USMwoKaW52aXRhdGlvbhgBIAEoCzIfLmlkZW50aXR5LnYxLkN1c3RvbWVySW52aXRhdGlvbhIsCglwcm92aWRlcnMYAiADKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiVAofQWNjZXB0Q3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIVCghwYXNzd29yZBgCIAEoCUgAiAEBQgsKCV9wYXNzd29yZCJ4CiBBY2NlcHRDdXN0b21lckludml0YXRpb25SZXNwb25zZRInCghjdXN0b21lchgBIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyEhQKDGFjY2Vzc190b2tlbhgCIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAMgASgJIiMKE0NyZWF0ZVRlbmFudFJlcXVlc3QSDAoEbmFtZRgBIAEoCSI7ChRDcmVhdGVUZW5hbnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiHgoQR2V0VGVuYW50UmVxdWVzdBIKCgJpZBgBIAEoCSI4ChFHZXRUZW5hbnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQieAoTVXBkYXRlVGVuYW50UmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESLgoGc3RhdHVzGAMgASgOMhkuaWRlbnRpdHkudjEuVGVuYW50U3RhdHVzSAGIAQFCBwoFX25hbWVCCQoHX3N0YXR1cyI7ChRVcGRhdGVUZW5hbnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQixwEKEkxpc3RUZW5hbnRzUmVxdWVzdBIuCgZzdGF0dXMYASABKA4yGS5pZGVudGl0eS52MS5UZW5hbnRTdGF0dXNIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQgkKB19zdGF0dXNCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpQBChNMaXN0VGVuYW50c1Jlc3BvbnNlEiIKBWl0ZW1zGAEgAygLMhMuaWRlbnRpdHkudjEuVGVuYW50Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIhChNEZWxldGVUZW5hbnRSZXF1ZXN0EgoKAmlkGAEgASgJIicKFERlbGV0ZVRlbmFudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAginwYKFENyZWF0ZVByb2plY3RSZXF1ZXN0EgwKBG5hbWUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARIRCgl0ZW5hbnRfaWQYAyABKAkSIAoTZGVmYXVsdF9sb2NhbGVfY29kZRgEIAEoCUgBiAEBEigKG2RlZmF1bHRfbG9jYWxlX2Rpc3BsYXlfbmFtZRgFIAEoCUgCiAEBEicKGmRlZmF1bHRfbG9jYWxlX25hdGl2ZV9uYW1lGAYgASgJSAOIAQESIgoVZGVmYXVsdF9sb2NhbGVfaXNfcnRsGAcgASgISASIAQESGQoMZGlzcGxheV9uYW1lGAogASgJSAWIAQESFQoIbG9nb191cmwYCyABKAlIBogBARIaCg1wcmltYXJ5X2NvbG9yGAwgASgJSAeIAQESFgoJZnJvbV9uYW1lGA0gASgJSAiIAQESFQoIcmVwbHlfdG8YDiABKAlICYgBARIaCg1zdXBwb3J0X2VtYWlsGA8gASgJSAqIAQESGQoMYXBwX2Jhc2VfdXJsGBAgASgJSAuIAQESKwoeY3VzdG9tZXJfd2VsY29tZV9lbWFpbF9lbmFibGVkGBQgASgISAyIAQESJAoXY3VzdG9tZXJfc2lnbnVwX2VuYWJsZWQYHiABKAhIDYgBAUIOCgxfZGVzY3JpcHRpb25CFgoUX2RlZmF1bHRfbG9jYWxlX2NvZGVCHgocX2RlZmF1bHRfbG9jYWxlX2Rpc3BsYXlfbmFtZUIdChtfZGVmYXVsdF9sb2NhbGVfbmF0aXZlX25hbWVCGAoWX2RlZmF1bHRfbG9jYWxlX2lzX3J0bEIPCg1fZGlzcGxheV9uYW1lQgsKCV9sb2dvX3VybEIQCg5fcHJpbWFyeV9jb2xvckIMCgpfZnJvbV9uYW1lQgsKCV9yZXBseV90b0IQCg5fc3VwcG9ydF9lbWFpbEIPCg1fYXBwX2Jhc2VfdXJsQiEKH19jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWRCGgoYX2N1c3RvbWVyX3NpZ251cF9lbmFibGVkIj4KFUNyZWF0ZVByb2plY3RSZXNwb25zZRIlCgdwcm9qZWN0GAEgASgLMhQuaWRlbnRpdHkudjEuUHJvamVjdCIfChFHZXRQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSI7ChJHZXRQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3Qi2AQKFFVwZGF0ZVByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEi8KBnN0YXR1cxgEIAEoDjIaLmlkZW50aXR5LnYxLlByb2plY3RTdGF0dXNIAogBARIZCgxkaXNwbGF5X25hbWUYCiABKAlIA4gBARIVCghsb2dvX3VybBgLIAEoCUgEiAEBEhoKDXByaW1hcnlfY29sb3IYDCABKAlIBYgBARIWCglmcm9tX25hbWUYDSABKAlIBogBARIVCghyZXBseV90bxgOIAEoCUgHiAEBEhoKDXN1cHBvcnRfZW1haWwYDyABKAlICIgBARIZCgxhcHBfYmFzZV91cmwYECABKAlICYgBARIrCh5jdXN0b21lcl93ZWxjb21lX2VtYWlsX2VuYWJsZWQYFCABKAhICogBARIkChdjdXN0b21lcl9zaWdudXBfZW5hYmxlZBgeIAEoCEgLiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfc3RhdHVzQg8KDV9kaXNwbGF5X25hbWVCCwoJX2xvZ29fdXJsQhAKDl9wcmltYXJ5X2NvbG9yQgwKCl9mcm9tX25hbWVCCwoJX3JlcGx5X3RvQhAKDl9zdXBwb3J0X2VtYWlsQg8KDV9hcHBfYmFzZV91cmxCIQofX2N1c3RvbWVyX3dlbGNvbWVfZW1haWxfZW5hYmxlZEIaChhfY3VzdG9tZXJfc2lnbnVwX2VuYWJsZWQiPgoVVXBkYXRlUHJvamVjdFJlc3BvbnNlEiUKB3Byb2plY3QYASABKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0ItwBChNMaXN0UHJvamVjdHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIvCgZzdGF0dXMYAiABKA4yGi5pZGVudGl0eS52MS5Qcm9qZWN0U3RhdHVzSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIJCgdfc3RhdHVzQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKWAQoUTGlzdFByb2plY3RzUmVzcG9uc2USIwoFaXRlbXMYASADKAsyFC5pZGVudGl0eS52MS5Qcm9qZWN0Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIiChREZWxldGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSIoChVEZWxldGVQcm9qZWN0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCItChhHZXREZWZhdWx0UHJvamVjdFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIkIKGUdldERlZmF1bHRQcm9qZWN0UmVzcG9uc2USJQoHcHJvamVjdBgBIAEoCzIULmlkZW50aXR5LnYxLlByb2plY3QiLgoYU2V0RGVmYXVsdFByb2plY3RSZXF1ZXN0EhIKCnByb2plY3RfaWQYASABKAkiQgoZU2V0RGVmYXVsdFByb2plY3RSZXNwb25zZRIlCgdwcm9qZWN0GAEgASgLMhQuaWRlbnRpdHkudjEuUHJvamVjdCLHAQoXQ3JlYXRlSW52aXRhdGlvblJlcXVlc3QSDQoFZW1haWwYASABKAkSEQoJdGVuYW50X2lkGAIgASgJEhMKC3Byb2plY3RfaWRzGAMgAygJEiUKBHJvbGUYBCABKA4yFy5pZGVudGl0eS52MS5BY2Nlc3NSb2xlEiwKC2ludml0ZV90eXBlGAUgASgOMhcuaWRlbnRpdHkudjEuSW52aXRlVHlwZRIUCgdtZXNzYWdlGAYgASgJSACIAQFCCgoIX21lc3NhZ2UiRwoYQ3JlYXRlSW52aXRhdGlvblJlc3BvbnNlEisKCmludml0YXRpb24YASABKAsyFy5pZGVudGl0eS52MS5JbnZpdGF0aW9uIuIBChZMaXN0SW52aXRhdGlvbnNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRIyCgZzdGF0dXMYAiABKA4yHS5pZGVudGl0eS52MS5JbnZpdGF0aW9uU3RhdHVzSACIAQESEgoFYWZ0ZXIYAyABKAlIAYgBARITCgZiZWZvcmUYBCABKAlIAogBARISCgVmaXJzdBgFIAEoBUgDiAEBEhEKBGxhc3QYBiABKAVIBIgBAUIJCgdfc3RhdHVzQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKcAQoXTGlzdEludml0YXRpb25zUmVzcG9uc2USJgoFaXRlbXMYASADKAsyFy5pZGVudGl0eS52MS5JbnZpdGF0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIwChdSZXZva2VJbnZpdGF0aW9uUmVxdWVzdBIVCg1pbnZpdGF0aW9uX2lkGAEgASgJIisKGFJldm9rZUludml0YXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkwKF0FjY2VwdEludml0YXRpb25SZXF1ZXN0Eg0KBXRva2VuGAEgASgJEhUKCHBhc3N3b3JkGAIgASgJSACIAQFCCwoJX3Bhc3N3b3JkIlQKGEFjY2VwdEludml0YXRpb25SZXNwb25zZRIkCgR1c2VyGAEgASgLMhYuaWRlbnRpdHkudjEuQWRtaW5Vc2VyEhIKCnNlc3Npb25faWQYAiABKAkiKgoZVmFsaWRhdGVJbnZpdGF0aW9uUmVxdWVzdBINCgV0b2tlbhgBIAEoCSJJChpWYWxpZGF0ZUludml0YXRpb25SZXNwb25zZRIrCgppbnZpdGF0aW9uGAEgASgLMhcuaWRlbnRpdHkudjEuSW52aXRhdGlvbiKQAgoTQ3JlYXRlQXBpS2V5UmVxdWVzdBIMCgRuYW1lGAEgASgJEikKCGtleV90eXBlGAIgASgOMhcuaWRlbnRpdHkudjEuQXBpS2V5VHlwZRIOCgZzY29wZXMYAyADKAkSIAoTcmF0ZV9saW1pdF9wZXJfaG91chgEIAEoBUgAiAEBEjMKCmV4cGlyZXNfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESFgoOYWxsb3dlZF9tb2RlbHMYBiADKAkSGgoSYWxsb3dlZF9maWxlX3R5cGVzGAcgAygJQhYKFF9yYXRlX2xpbWl0X3Blcl9ob3VyQg0KC19leHBpcmVzX2F0IjwKFENyZWF0ZUFwaUtleVJlc3BvbnNlEiQKB2FwaV9rZXkYASABKAsyEy5pZGVudGl0eS52MS5BcGlLZXkiHgoQR2V0QXBpS2V5UmVxdWVzdBIKCgJpZBgBIAEoCSI5ChFHZXRBcGlLZXlSZXNwb25zZRIkCgdhcGlfa2V5GAEgASgLMhMuaWRlbnRpdHkudjEuQXBpS2V5IowBChJMaXN0QXBpS2V5c1JlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilAEKE0xpc3RBcGlLZXlzUmVzcG9uc2USIgoFaXRlbXMYASADKAsyEy5pZGVudGl0eS52MS5BcGlLZXkSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIsQBChNVcGRhdGVBcGlLZXlSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIWCglpc19hY3RpdmUYAyABKAhIAYgBARIOCgZzY29wZXMYBCADKAkSFQoNdXBkYXRlX3Njb3BlcxgGIAEoCBIgChNyYXRlX2xpbWl0X3Blcl9ob3VyGAUgASgFSAKIAQFCBwoFX25hbWVCDAoKX2lzX2FjdGl2ZUIWChRfcmF0ZV9saW1pdF9wZXJfaG91ciI8ChRVcGRhdGVBcGlLZXlSZXNwb25zZRIkCgdhcGlfa2V5GAEgASgLMhMuaWRlbnRpdHkudjEuQXBpS2V5IiEKE1JvdGF0ZUFwaUtleVJlcXVlc3QSCgoCaWQYASABKAkiPAoUUm90YXRlQXBpS2V5UmVzcG9uc2USJAoHYXBpX2tleRgBIAEoCzITLmlkZW50aXR5LnYxLkFwaUtleSIhChNSZXZva2VBcGlLZXlSZXF1ZXN0EgoKAmlkGAEgASgJIicKFFJldm9rZUFwaUtleVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgisQUKDEF1dGhQcm92aWRlchIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgR0eXBlGAQgASgJEicKBmNvbmZpZxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHZW5hYmxlZBgGIAEoCBISCgppc19kZWZhdWx0GAcgASgIEhAKCHByaW9yaXR5GAggASgFEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIAIgBARIXCgp1cGRhdGVkX2J5GB8gASgJSAGIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoQcHVibGlzaGVkX2NvbmZpZxg8IAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIeChFwdWJsaXNoZWRfZW5hYmxlZBg9IAEoCEgDiAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GD4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYPyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQFCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnlCEwoRX3B1Ymxpc2hlZF9jb25maWdCFAoSX3B1Ymxpc2hlZF9lbmFibGVkQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCLUAQoYTGlzdEF1dGhQcm92aWRlcnNSZXF1ZXN0EhQKB2VuYWJsZWQYASABKAhIAIgBARITCgZzZWFyY2gYAiABKAlIAYgBARISCgVhZnRlchgDIAEoCUgCiAEBEhMKBmJlZm9yZRgEIAEoCUgDiAEBEhIKBWZpcnN0GAUgASgFSASIAQESEQoEbGFzdBgGIAEoBUgFiAEBQgoKCF9lbmFibGVkQgkKB19zZWFyY2hCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqQBChlMaXN0QXV0aFByb3ZpZGVyc1Jlc3BvbnNlEiwKCXByb3ZpZGVycxgBIAMoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlchINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iJAoWR2V0QXV0aFByb3ZpZGVyUmVxdWVzdBIKCgJpZBgBIAEoCSJGChdHZXRBdXRoUHJvdmlkZXJSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciLbAQoZQ3JlYXRlQXV0aFByb3ZpZGVyUmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEicKBmNvbmZpZxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoHZW5hYmxlZBgFIAEoCEgAiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIAYgBARIVCghwcmlvcml0eRgHIAEoBUgCiAEBQgoKCF9lbmFibGVkQg0KC19pc19kZWZhdWx0QgsKCV9wcmlvcml0eSJJChpDcmVhdGVBdXRoUHJvdmlkZXJSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciLqAQoZVXBkYXRlQXV0aFByb3ZpZGVyUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESLAoGY29uZmlnGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEhQKB2VuYWJsZWQYBCABKAhIAogBARIXCgppc19kZWZhdWx0GAUgASgISAOIAQESFQoIcHJpb3JpdHkYBiABKAVIBIgBAUIHCgVfbmFtZUIJCgdfY29uZmlnQgoKCF9lbmFibGVkQg0KC19pc19kZWZhdWx0QgsKCV9wcmlvcml0eSJJChpVcGRhdGVBdXRoUHJvdmlkZXJSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlciInChlEZWxldGVBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJIi0KGkRlbGV0ZUF1dGhQcm92aWRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiKAoaUHVibGlzaEF1dGhQcm92aWRlclJlcXVlc3QSCgoCaWQYASABKAkigAEKG1B1Ymxpc2hBdXRoUHJvdmlkZXJSZXNwb25zZRIrCghwcm92aWRlchgBIAEoCzIZLmlkZW50aXR5LnYxLkF1dGhQcm92aWRlchI0ChBicmVha2luZ19jaGFuZ2VzGAIgAygLMhoucHVibGlzaC52MS5CcmVha2luZ0NoYW5nZSIqChxVbnB1Ymxpc2hBdXRoUHJvdmlkZXJSZXF1ZXN0EgoKAmlkGAEgASgJIkwKHVVucHVibGlzaEF1dGhQcm92aWRlclJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIjEKI0dldEF1dGhQcm92aWRlclB1Ymxpc2hTdGF0dXNSZXF1ZXN0EgoKAmlkGAEgASgJIlEKJEdldEF1dGhQcm92aWRlclB1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMiqAEKIlNjaGVkdWxlQXV0aFByb3ZpZGVyUHVibGlzaFJlcXVlc3QSCgoCaWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiUgojU2NoZWR1bGVBdXRoUHJvdmlkZXJQdWJsaXNoUmVzcG9uc2USKwoIcHJvdmlkZXIYASABKAsyGS5pZGVudGl0eS52MS5BdXRoUHJvdmlkZXIiNwopQ2FuY2VsU2NoZWR1bGVkQXV0aFByb3ZpZGVyUHVibGlzaFJlcXVlc3QSCgoCaWQYASABKAkiWQoqQ2FuY2VsU2NoZWR1bGVkQXV0aFByb3ZpZGVyUHVibGlzaFJlc3BvbnNlEisKCHByb3ZpZGVyGAEgASgLMhkuaWRlbnRpdHkudjEuQXV0aFByb3ZpZGVyIh4KHEVuYWJsZWRPQXV0aFByb3ZpZGVyc1JlcXVlc3QiMgodRW5hYmxlZE9BdXRoUHJvdmlkZXJzUmVzcG9uc2USEQoJcHJvdmlkZXJzGAEgAygJIioKF01pbnRTZXJ2aWNlVG9rZW5SZXF1ZXN0Eg8KB3B1cnBvc2UYASABKAkiTgoYTWludFNlcnZpY2VUb2tlblJlc3BvbnNlEg0KBXRva2VuGAEgASgJEg8KB3B1cnBvc2UYAiABKAkSEgoKZXhwaXJlc19hdBgDIAEoCSKOAQoWVXBkYXRlTXlQcm9maWxlUmVxdWVzdBIXCgpmaXJzdF9uYW1lGAEgASgJSACIAQESFgoJbGFzdF9uYW1lGAIgASgJSAGIAQESFwoKYXZhdGFyX3VybBgDIAEoCUgCiAEBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCDQoLX2F2YXRhcl91cmwiPwoXVXBkYXRlTXlQcm9maWxlUmVzcG9uc2USJAoEdXNlchgBIAEoCzIWLmlkZW50aXR5LnYxLkFkbWluVXNlciKXAQodTGlzdE15T0F1dGhDb25uZWN0aW9uc1JlcXVlc3QSEgoFZmlyc3QYASABKAVIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhEKBGxhc3QYAyABKAVIAogBARITCgZiZWZvcmUYBCABKAlIA4gBAUIICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmUijQEKD09BdXRoQ29ubmVjdGlvbhIQCghwcm92aWRlchgBIAEoCRIYChBwcm92aWRlcl91c2VyX2lkGAIgASgJEhIKBWVtYWlsGAMgASgJSACIAQESMAoMY29ubmVjdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIICgZfZW1haWwirgEKHkxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXNwb25zZRIxCgtjb25uZWN0aW9ucxgBIAMoCzIcLmlkZW50aXR5LnYxLk9BdXRoQ29ubmVjdGlvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iLgoaVW5saW5rT0F1dGhQcm92aWRlclJlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkiLgobVW5saW5rT0F1dGhQcm92aWRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLgodQ2hlY2tFbWFpbEF2YWlsYWJpbGl0eVJlcXVlc3QSDQoFZW1haWwYASABKAkiMwoeQ2hlY2tFbWFpbEF2YWlsYWJpbGl0eVJlc3BvbnNlEhEKCWF2YWlsYWJsZRgBIAEoCCKPAQobQ29tcGxldGVBY2NvdW50U2V0dXBSZXF1ZXN0EhcKCmZpcnN0X25hbWUYASABKAlIAIgBARIWCglsYXN0X25hbWUYAiABKAlIAYgBARIVCghwYXNzd29yZBgDIAEoCUgCiAEBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCCwoJX3Bhc3N3b3JkIlsKHENvbXBsZXRlQWNjb3VudFNldHVwUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIZCgxyZWRpcmVjdF91cmwYAiABKAlIAIgBAUIPCg1fcmVkaXJlY3RfdXJsIi0KGkNyZWF0ZVNpZ251cFNlc3Npb25SZXF1ZXN0Eg8KB3VzZXJfaWQYASABKAkiLgobQ3JlYXRlU2lnbnVwU2Vzc2lvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiMAoXUmVzZW5kSW52aXRhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCSIrChhSZXNlbmRJbnZpdGF0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIiChRHZXRJbnZpdGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJEChVHZXRJbnZpdGF0aW9uUmVzcG9uc2USKwoKaW52aXRhdGlvbhgBIAEoCzIXLmlkZW50aXR5LnYxLkludml0YXRpb24iKgoVQWN0aXZhdGVUZW5hbnRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCSI9ChZBY3RpdmF0ZVRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCIwChtTdXNwZW5kVGVuYW50QWNjb3VudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIkMKHFN1c3BlbmRUZW5hbnRBY2NvdW50UmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IigKE0NhbmNlbFRlbmFudFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIjsKFENhbmNlbFRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCIsChdSZWFjdGl2YXRlVGVuYW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiPwoYUmVhY3RpdmF0ZVRlbmFudFJlc3BvbnNlEiMKBnRlbmFudBgBIAEoCzITLmlkZW50aXR5LnYxLlRlbmFudCItChhNYXJrVGVuYW50UGFzdER1ZVJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJIkAKGU1hcmtUZW5hbnRQYXN0RHVlUmVzcG9uc2USIwoGdGVuYW50GAEgASgLMhMuaWRlbnRpdHkudjEuVGVuYW50IicKEkNodXJuVGVuYW50UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkiOgoTQ2h1cm5UZW5hbnRSZXNwb25zZRIjCgZ0ZW5hbnQYASABKAsyEy5pZGVudGl0eS52MS5UZW5hbnQiHgocR2V0Q3VzdG9tZXJBdXRoQ29uZmlnUmVxdWVzdCKaAgoSQ3VzdG9tZXJBdXRoQ29uZmlnEhEKCWFsZ29yaXRobRgBIAEoCRITCgZpc3N1ZXIYAiABKAlIAIgBARIVCghhdWRpZW5jZRgDIAEoCUgBiAEBEjcKDmtleV9yb3RhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhgKC3NpZ25pbmdfa2V5GAUgASgJSAOIAQESLAoGY2xhaW1zGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQgkKB19pc3N1ZXJCCwoJX2F1ZGllbmNlQhEKD19rZXlfcm90YXRlZF9hdEIOCgxfc2lnbmluZ19rZXlCCQoHX2NsYWltcyJQCh1HZXRDdXN0b21lckF1dGhDb25maWdSZXNwb25zZRIvCgZjb25maWcYASABKAsyHy5pZGVudGl0eS52MS5DdXN0b21lckF1dGhDb25maWciKwoaVmVyaWZ5Q3VzdG9tZXJUb2tlblJlcXVlc3QSDQoFdG9rZW4YASABKAkiswIKG1ZlcmlmeUN1c3RvbWVyVG9rZW5SZXNwb25zZRINCgV2YWxpZBgBIAEoCBISCgVlcnJvchgCIAEoCUgAiAEBEhgKC2N1c3RvbWVyX2lkGAMgASgJSAGIAQESEgoFZW1haWwYBCABKAlIAogBARIWCgl0ZW5hbnRfaWQYBSABKAlIA4gBARIXCgpwcm9qZWN0X2lkGAYgASgJSASIAQESDQoFcm9sZXMYByADKAkSMwoKZXhwaXJlc19hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUIICgZfZXJyb3JCDgoMX2N1c3RvbWVyX2lkQggKBl9lbWFpbEIMCgpfdGVuYW50X2lkQg0KC19wcm9qZWN0X2lkQg0KC19leHBpcmVzX2F0IiQKIkdldEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1c1JlcXVlc3Qi2wEKGEN1c3RvbWVyTWFuYWdlbWVudFN0YXR1cxIhChluYXRpdmVfbWFuYWdlbWVudF9lbmFibGVkGAEgASgIEiIKFWV4dGVybmFsX3Byb3ZpZGVyX3VybBgCIAEoCUgAiAEBEiMKFmV4dGVybmFsX3Byb3ZpZGVyX25hbWUYAyABKAlIAYgBARITCgZyZWFzb24YBCABKAlIAogBAUIYChZfZXh0ZXJuYWxfcHJvdmlkZXJfdXJsQhkKF19leHRlcm5hbF9wcm92aWRlcl9uYW1lQgkKB19yZWFzb24iXAojR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzUmVzcG9uc2USNQoGc3RhdHVzGAEgASgLMiUuaWRlbnRpdHkudjEuQ3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzIigKFVZhbGlkYXRlQXBpS2V5UmVxdWVzdBIPCgdhcGlfa2V5GAEgASgJIswBChZWYWxpZGF0ZUFwaUtleVJlc3BvbnNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhIKCnByb2plY3RfaWQYBCABKAkSEAoIa2V5X3R5cGUYBSABKAkSDgoGc2NvcGVzGAYgAygJEhYKDmFsbG93ZWRfbW9kZWxzGAcgAygJEhoKEmFsbG93ZWRfZmlsZV90eXBlcxgIIAMoCRIbChNyYXRlX2xpbWl0X3Blcl9ob3VyGAkgASgFIjcKFEN1c3RvbWVyTG9naW5SZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJIm0KFUN1c3RvbWVyTG9naW5SZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSFQoNcmVmcmVzaF90b2tlbhgCIAEoCRInCghjdXN0b21lchgDIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIn8KF0N1c3RvbWVyUmVnaXN0ZXJSZXF1ZXN0Eg0KBWVtYWlsGAEgASgJEhAKCHBhc3N3b3JkGAIgASgJEjIKDHByb2ZpbGVfZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIPCg1fcHJvZmlsZV9kYXRhInAKGEN1c3RvbWVyUmVnaXN0ZXJSZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkSFQoNcmVmcmVzaF90b2tlbhgCIAEoCRInCghjdXN0b21lchgDIAEoCzIVLmlkZW50aXR5LnYxLkN1c3RvbWVyIjQKG0N1c3RvbWVyUmVmcmVzaFRva2VuUmVxdWVzdBIVCg1yZWZyZXNoX3Rva2VuGAEgASgJIksKHEN1c3RvbWVyUmVmcmVzaFRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhUKDXJlZnJlc2hfdG9rZW4YAiABKAkiKgoZQ3VzdG9tZXJSZXF1ZXN0T1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCSIqChpDdXN0b21lclJlcXVlc3RPVFBSZXNwb25zZRIMCgRzZW50GAEgASgIIjsKGEN1c3RvbWVyVmVyaWZ5T1RQUmVxdWVzdBINCgVlbWFpbBgBIAEoCRIQCghvdHBfY29kZRgCIAEoCSJxChlDdXN0b21lclZlcmlmeU9UUFJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEicKCGN1c3RvbWVyGAMgASgLMhUuaWRlbnRpdHkudjEuQ3VzdG9tZXIiNAojQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldFJlcXVlc3QSDQoFZW1haWwYASABKAkiNAokQ3VzdG9tZXJSZXF1ZXN0UGFzc3dvcmRSZXNldFJlc3BvbnNlEgwKBHNlbnQYASABKAgiQwocQ3VzdG9tZXJSZXNldFBhc3N3b3JkUmVxdWVzdBINCgV0b2tlbhgBIAEoCRIUCgxuZXdfcGFzc3dvcmQYAiABKAkiMAodQ3VzdG9tZXJSZXNldFBhc3N3b3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLZAQoZU3RvcmVQcm92aWRlclRva2VuUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIUCgxwcm92aWRlcl9rZXkYAiABKAkSFAoMYWNjZXNzX3Rva2VuGAMgASgJEhUKDXJlZnJlc2hfdG9rZW4YBCABKAkSEAoIaWRfdG9rZW4YBSABKAkSDgoGc2NvcGVzGAYgASgJEjMKCmV4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDQoLX2V4cGlyZXNfYXQiHAoaU3RvcmVQcm92aWRlclRva2VuUmVzcG9uc2UigwEKGVN0YXJ0UHJvdmlkZXJMb2dpblJlcXVlc3QSFAoMcHJvdmlkZXJfa2V5GAEgASgJEhYKCXJldHVybl90bxgCIAEoCUgAiAEBEhkKDHJlZGlyZWN0X3VyaRgDIAEoCUgBiAEBQgwKCl9yZXR1cm5fdG9CDwoNX3JlZGlyZWN0X3VyaSIyChpTdGFydFByb3ZpZGVyTG9naW5SZXNwb25zZRIUCgxyZWRpcmVjdF91cmwYASABKAkiTwoaRmluaXNoUHJvdmlkZXJMb2dpblJlcXVlc3QSFAoMcHJvdmlkZXJfa2V5GAEgASgJEgwKBGNvZGUYAiABKAkSDQoFc3RhdGUYAyABKAkibgobRmluaXNoUHJvdmlkZXJMb2dpblJlc3BvbnNlEhMKC2N1c3RvbWVyX2lkGAEgASgJEg0KBWVtYWlsGAIgASgJEhQKDGFjY2Vzc190b2tlbhgDIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAQgASgJIkQKF0dldFByb3ZpZGVyVG9rZW5SZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEhQKDHByb3ZpZGVyX2tleRgCIAEoCSKtAQoYR2V0UHJvdmlkZXJUb2tlblJlc3BvbnNlEhQKDGFjY2Vzc190b2tlbhgBIAEoCRIVCg1yZWZyZXNoX3Rva2VuGAIgASgJEhAKCGlkX3Rva2VuGAMgASgJEg4KBnNjb3BlcxgEIAEoCRIzCgpleHBpcmVzX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg0KC19leHBpcmVzX2F0IjIKG0RlbGV0ZVByb3ZpZGVyVG9rZW5zUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCSIeChxEZWxldGVQcm92aWRlclRva2Vuc1Jlc3BvbnNlKrEBCg9BZG1pblVzZXJTdGF0dXMSIQodQURNSU5fVVNFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIcChhBRE1JTl9VU0VSX1NUQVRVU19BQ1RJVkUQARIdChlBRE1JTl9VU0VSX1NUQVRVU19QRU5ESU5HEAISHwobQURNSU5fVVNFUl9TVEFUVVNfU1VTUEVOREVEEAMSHQoZQURNSU5fVVNFUl9TVEFUVVNfREVMRVRFRBAEKokBCg5DdXN0b21lclN0YXR1cxIfChtDVVNUT01FUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZDVVNUT01FUl9TVEFUVVNfQUNUSVZFEAESGwoXQ1VTVE9NRVJfU1RBVFVTX1BFTkRJTkcQAhIdChlDVVNUT01FUl9TVEFUVVNfU1VTUEVOREVEEAMq2QEKDFRlbmFudFN0YXR1cxIdChlURU5BTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobVEVOQU5UX1NUQVRVU19QRU5ESU5HX1NFVFVQEAESGAoUVEVOQU5UX1NUQVRVU19BQ1RJVkUQAhIaChZURU5BTlRfU1RBVFVTX1BBU1RfRFVFEAMSGwoXVEVOQU5UX1NUQVRVU19TVVNQRU5ERUQQBBIbChdURU5BTlRfU1RBVFVTX0NBTkNFTExFRBAFEhkKFVRFTkFOVF9TVEFUVVNfQ0hVUk5FRBAGKmYKDVByb2plY3RTdGF0dXMSHgoaUFJPSkVDVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIZChVQUk9KRUNUX1NUQVRVU19BQ1RJVkUQARIaChZQUk9KRUNUX1NUQVRVU19ERUxFVEVEEAIqpgEKCkFjY2Vzc1JvbGUSGwoXQUNDRVNTX1JPTEVfVU5TUEVDSUZJRUQQABIcChhBQ0NFU1NfUk9MRV9URU5BTlRfT1dORVIQARIdChlBQ0NFU1NfUk9MRV9QUk9KRUNUX0FETUlOEAISHgoaQUNDRVNTX1JPTEVfUFJPSkVDVF9FRElUT1IQAxIeChpBQ0NFU1NfUk9MRV9QUk9KRUNUX1ZJRVdFUhAEKmQKCkludml0ZVR5cGUSGwoXSU5WSVRFX1RZUEVfVU5TUEVDSUZJRUQQABIcChhJTlZJVEVfVFlQRV9URU5BTlRfT1dORVIQARIbChdJTlZJVEVfVFlQRV9URUFNX01FTUJFUhACKrIBChBJbnZpdGF0aW9uU3RhdHVzEiEKHUlOVklUQVRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHQoZSU5WSVRBVElPTl9TVEFUVVNfUEVORElORxABEh4KGklOVklUQVRJT05fU1RBVFVTX0FDQ0VQVEVEEAISHQoZSU5WSVRBVElPTl9TVEFUVVNfRVhQSVJFRBADEh0KGUlOVklUQVRJT05fU1RBVFVTX1JFVk9LRUQQBCrnAQoYQ3VzdG9tZXJJbnZpdGF0aW9uU3RhdHVzEioKJkNVU1RPTUVSX0lOVklUQVRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASJgoiQ1VTVE9NRVJfSU5WSVRBVElPTl9TVEFUVVNfUEVORElORxABEicKI0NVU1RPTUVSX0lOVklUQVRJT05fU1RBVFVTX0FDQ0VQVEVEEAISJgoiQ1VTVE9NRVJfSU5WSVRBVElPTl9TVEFUVVNfRVhQSVJFRBADEiYKIkNVU1RPTUVSX0lOVklUQVRJT05fU1RBVFVTX1JFVk9LRUQQBCpcCgpBcGlLZXlUeXBlEhwKGEFQSV9LRVlfVFlQRV9VTlNQRUNJRklFRBAAEhcKE0FQSV9LRVlfVFlQRV9QVUJMSUMQARIXChNBUElfS0VZX1RZUEVfU0VDUkVUEAIy904KD0lkZW50aXR5U2VydmljZRI+CgVMb2dpbhIZLmlkZW50aXR5LnYxLkxvZ2luUmVxdWVzdBoaLmlkZW50aXR5LnYxLkxvZ2luUmVzcG9uc2USUwoMTG9naW5XaXRoT1RQEiAuaWRlbnRpdHkudjEuTG9naW5XaXRoT1RQUmVxdWVzdBohLmlkZW50aXR5LnYxLkxvZ2luV2l0aE9UUFJlc3BvbnNlEk0KClJlcXVlc3RPVFASHi5pZGVudGl0eS52MS5SZXF1ZXN0T1RQUmVxdWVzdBofLmlkZW50aXR5LnYxLlJlcXVlc3RPVFBSZXNwb25zZRJBCgZMb2dvdXQSGi5pZGVudGl0eS52MS5Mb2dvdXRSZXF1ZXN0GhsuaWRlbnRpdHkudjEuTG9nb3V0UmVzcG9uc2USRwoIUmVnaXN0ZXISHC5pZGVudGl0eS52MS5SZWdpc3RlclJlcXVlc3QaHS5pZGVudGl0eS52MS5SZWdpc3RlclJlc3BvbnNlElAKC1ZlcmlmeUVtYWlsEh8uaWRlbnRpdHkudjEuVmVyaWZ5RW1haWxSZXF1ZXN0GiAuaWRlbnRpdHkudjEuVmVyaWZ5RW1haWxSZXNwb25zZRJ0ChdSZXNlbmRWZXJpZmljYXRpb25FbWFpbBIrLmlkZW50aXR5LnYxLlJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVxdWVzdBosLmlkZW50aXR5LnYxLlJlc2VuZFZlcmlmaWNhdGlvbkVtYWlsUmVzcG9uc2USegoZU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZRItLmlkZW50aXR5LnYxLlNlbmRFbWFpbFZlcmlmaWNhdGlvbkNvZGVSZXF1ZXN0Gi4uaWRlbnRpdHkudjEuU2VuZEVtYWlsVmVyaWZpY2F0aW9uQ29kZVJlc3BvbnNlElwKD1ZlcmlmeUVtYWlsQ29kZRIjLmlkZW50aXR5LnYxLlZlcmlmeUVtYWlsQ29kZVJlcXVlc3QaJC5pZGVudGl0eS52MS5WZXJpZnlFbWFpbENvZGVSZXNwb25zZRJrChRSZXF1ZXN0UGFzc3dvcmRSZXNldBIoLmlkZW50aXR5LnYxLlJlcXVlc3RQYXNzd29yZFJlc2V0UmVxdWVzdBopLmlkZW50aXR5LnYxLlJlcXVlc3RQYXNzd29yZFJlc2V0UmVzcG9uc2USVgoNUmVzZXRQYXNzd29yZBIhLmlkZW50aXR5LnYxLlJlc2V0UGFzc3dvcmRSZXF1ZXN0GiIuaWRlbnRpdHkudjEuUmVzZXRQYXNzd29yZFJlc3BvbnNlElkKDlVwZGF0ZVBhc3N3b3JkEiIuaWRlbnRpdHkudjEuVXBkYXRlUGFzc3dvcmRSZXF1ZXN0GiMuaWRlbnRpdHkudjEuVXBkYXRlUGFzc3dvcmRSZXNwb25zZRJTCgxSZWZyZXNoVG9rZW4SIC5pZGVudGl0eS52MS5SZWZyZXNoVG9rZW5SZXF1ZXN0GiEuaWRlbnRpdHkudjEuUmVmcmVzaFRva2VuUmVzcG9uc2USYgoRR2V0U2Vzc2lvbkNvbnRleHQSJS5pZGVudGl0eS52MS5HZXRTZXNzaW9uQ29udGV4dFJlcXVlc3QaJi5pZGVudGl0eS52MS5HZXRTZXNzaW9uQ29udGV4dFJlc3BvbnNlElMKDFN3aXRjaFRlbmFudBIgLmlkZW50aXR5LnYxLlN3aXRjaFRlbmFudFJlcXVlc3QaIS5pZGVudGl0eS52MS5Td2l0Y2hUZW5hbnRSZXNwb25zZRJWCg1Td2l0Y2hQcm9qZWN0EiEuaWRlbnRpdHkudjEuU3dpdGNoUHJvamVjdFJlcXVlc3QaIi5pZGVudGl0eS52MS5Td2l0Y2hQcm9qZWN0UmVzcG9uc2USaAoTQ2xlYXJTZXNzaW9uQ29udGV4dBInLmlkZW50aXR5LnYxLkNsZWFyU2Vzc2lvbkNvbnRleHRSZXF1ZXN0GiguaWRlbnRpdHkudjEuQ2xlYXJTZXNzaW9uQ29udGV4dFJlc3BvbnNlEj4KBUdldE1lEhkuaWRlbnRpdHkudjEuR2V0TWVSZXF1ZXN0GhouaWRlbnRpdHkudjEuR2V0TWVSZXNwb25zZRJcCg9DcmVhdGVBZG1pblVzZXISIy5pZGVudGl0eS52MS5DcmVhdGVBZG1pblVzZXJSZXF1ZXN0GiQuaWRlbnRpdHkudjEuQ3JlYXRlQWRtaW5Vc2VyUmVzcG9uc2USUwoMR2V0QWRtaW5Vc2VyEiAuaWRlbnRpdHkudjEuR2V0QWRtaW5Vc2VyUmVxdWVzdBohLmlkZW50aXR5LnYxLkdldEFkbWluVXNlclJlc3BvbnNlElwKD1VwZGF0ZUFkbWluVXNlchIjLmlkZW50aXR5LnYxLlVwZGF0ZUFkbWluVXNlclJlcXVlc3QaJC5pZGVudGl0eS52MS5VcGRhdGVBZG1pblVzZXJSZXNwb25zZRJZCg5MaXN0QWRtaW5Vc2VycxIiLmlkZW50aXR5LnYxLkxpc3RBZG1pblVzZXJzUmVxdWVzdBojLmlkZW50aXR5LnYxLkxpc3RBZG1pblVzZXJzUmVzcG9uc2USUAoLR3JhbnRBY2Nlc3MSHy5pZGVudGl0eS52MS5HcmFudEFjY2Vzc1JlcXVlc3QaIC5pZGVudGl0eS52MS5HcmFudEFjY2Vzc1Jlc3BvbnNlElMKDFJldm9rZUFjY2VzcxIgLmlkZW50aXR5LnYxLlJldm9rZUFjY2Vzc1JlcXVlc3QaIS5pZGVudGl0eS52MS5SZXZva2VBY2Nlc3NSZXNwb25zZRJZCg5DcmVhdGVDdXN0b21lchIiLmlkZW50aXR5LnYxLkNyZWF0ZUN1c3RvbWVyUmVxdWVzdBojLmlkZW50aXR5LnYxLkNyZWF0ZUN1c3RvbWVyUmVzcG9uc2USUAoLR2V0Q3VzdG9tZXISHy5pZGVudGl0eS52MS5HZXRDdXN0b21lclJlcXVlc3QaIC5pZGVudGl0eS52MS5HZXRDdXN0b21lclJlc3BvbnNlElkKDlVwZGF0ZUN1c3RvbWVyEiIuaWRlbnRpdHkudjEuVXBkYXRlQ3VzdG9tZXJSZXF1ZXN0GiMuaWRlbnRpdHkudjEuVXBkYXRlQ3VzdG9tZXJSZXNwb25zZRJZCg5EZWxldGVDdXN0b21lchIiLmlkZW50aXR5LnYxLkRlbGV0ZUN1c3RvbWVyUmVxdWVzdBojLmlkZW50aXR5LnYxLkRlbGV0ZUN1c3RvbWVyUmVzcG9uc2USVgoNTGlzdEN1c3RvbWVycxIhLmlkZW50aXR5LnYxLkxpc3RDdXN0b21lcnNSZXF1ZXN0GiIuaWRlbnRpdHkudjEuTGlzdEN1c3RvbWVyc1Jlc3BvbnNlElwKD1N1c3BlbmRDdXN0b21lchIjLmlkZW50aXR5LnYxLlN1c3BlbmRDdXN0b21lclJlcXVlc3QaJC5pZGVudGl0eS52MS5TdXNwZW5kQ3VzdG9tZXJSZXNwb25zZRJoChNTZXRDdXN0b21lclBhc3N3b3JkEicuaWRlbnRpdHkudjEuU2V0Q3VzdG9tZXJQYXNzd29yZFJlcXVlc3QaKC5pZGVudGl0eS52MS5TZXRDdXN0b21lclBhc3N3b3JkUmVzcG9uc2USdwoYQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uEiwuaWRlbnRpdHkudjEuQ3JlYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBotLmlkZW50aXR5LnYxLkNyZWF0ZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEnQKF0xpc3RDdXN0b21lckludml0YXRpb25zEisuaWRlbnRpdHkudjEuTGlzdEN1c3RvbWVySW52aXRhdGlvbnNSZXF1ZXN0GiwuaWRlbnRpdHkudjEuTGlzdEN1c3RvbWVySW52aXRhdGlvbnNSZXNwb25zZRJuChVHZXRDdXN0b21lckludml0YXRpb24SKS5pZGVudGl0eS52MS5HZXRDdXN0b21lckludml0YXRpb25SZXF1ZXN0GiouaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USdwoYUmV2b2tlQ3VzdG9tZXJJbnZpdGF0aW9uEiwuaWRlbnRpdHkudjEuUmV2b2tlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBotLmlkZW50aXR5LnYxLlJldm9rZUN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlEncKGFJlc2VuZEN1c3RvbWVySW52aXRhdGlvbhIsLmlkZW50aXR5LnYxLlJlc2VuZEN1c3RvbWVySW52aXRhdGlvblJlcXVlc3QaLS5pZGVudGl0eS52MS5SZXNlbmRDdXN0b21lckludml0YXRpb25SZXNwb25zZRJ9ChpWYWxpZGF0ZUN1c3RvbWVySW52aXRhdGlvbhIuLmlkZW50aXR5LnYxLlZhbGlkYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBovLmlkZW50aXR5LnYxLlZhbGlkYXRlQ3VzdG9tZXJJbnZpdGF0aW9uUmVzcG9uc2USdwoYQWNjZXB0Q3VzdG9tZXJJbnZpdGF0aW9uEiwuaWRlbnRpdHkudjEuQWNjZXB0Q3VzdG9tZXJJbnZpdGF0aW9uUmVxdWVzdBotLmlkZW50aXR5LnYxLkFjY2VwdEN1c3RvbWVySW52aXRhdGlvblJlc3BvbnNlElMKDENyZWF0ZVRlbmFudBIgLmlkZW50aXR5LnYxLkNyZWF0ZVRlbmFudFJlcXVlc3QaIS5pZGVudGl0eS52MS5DcmVhdGVUZW5hbnRSZXNwb25zZRJKCglHZXRUZW5hbnQSHS5pZGVudGl0eS52MS5HZXRUZW5hbnRSZXF1ZXN0Gh4uaWRlbnRpdHkudjEuR2V0VGVuYW50UmVzcG9uc2USUwoMVXBkYXRlVGVuYW50EiAuaWRlbnRpdHkudjEuVXBkYXRlVGVuYW50UmVxdWVzdBohLmlkZW50aXR5LnYxLlVwZGF0ZVRlbmFudFJlc3BvbnNlElAKC0xpc3RUZW5hbnRzEh8uaWRlbnRpdHkudjEuTGlzdFRlbmFudHNSZXF1ZXN0GiAuaWRlbnRpdHkudjEuTGlzdFRlbmFudHNSZXNwb25zZRJTCgxEZWxldGVUZW5hbnQSIC5pZGVudGl0eS52MS5EZWxldGVUZW5hbnRSZXF1ZXN0GiEuaWRlbnRpdHkudjEuRGVsZXRlVGVuYW50UmVzcG9uc2USVgoNQ3JlYXRlUHJvamVjdBIhLmlkZW50aXR5LnYxLkNyZWF0ZVByb2plY3RSZXF1ZXN0GiIuaWRlbnRpdHkudjEuQ3JlYXRlUHJvamVjdFJlc3BvbnNlEk0KCkdldFByb2plY3QSHi5pZGVudGl0eS52MS5HZXRQcm9qZWN0UmVxdWVzdBofLmlkZW50aXR5LnYxLkdldFByb2plY3RSZXNwb25zZRJWCg1VcGRhdGVQcm9qZWN0EiEuaWRlbnRpdHkudjEuVXBkYXRlUHJvamVjdFJlcXVlc3QaIi5pZGVudGl0eS52MS5VcGRhdGVQcm9qZWN0UmVzcG9uc2USUwoMTGlzdFByb2plY3RzEiAuaWRlbnRpdHkudjEuTGlzdFByb2plY3RzUmVxdWVzdBohLmlkZW50aXR5LnYxLkxpc3RQcm9qZWN0c1Jlc3BvbnNlElYKDURlbGV0ZVByb2plY3QSIS5pZGVudGl0eS52MS5EZWxldGVQcm9qZWN0UmVxdWVzdBoiLmlkZW50aXR5LnYxLkRlbGV0ZVByb2plY3RSZXNwb25zZRJiChFHZXREZWZhdWx0UHJvamVjdBIlLmlkZW50aXR5LnYxLkdldERlZmF1bHRQcm9qZWN0UmVxdWVzdBomLmlkZW50aXR5LnYxLkdldERlZmF1bHRQcm9qZWN0UmVzcG9uc2USYgoRU2V0RGVmYXVsdFByb2plY3QSJS5pZGVudGl0eS52MS5TZXREZWZhdWx0UHJvamVjdFJlcXVlc3QaJi5pZGVudGl0eS52MS5TZXREZWZhdWx0UHJvamVjdFJlc3BvbnNlEl8KEENyZWF0ZUludml0YXRpb24SJC5pZGVudGl0eS52MS5DcmVhdGVJbnZpdGF0aW9uUmVxdWVzdBolLmlkZW50aXR5LnYxLkNyZWF0ZUludml0YXRpb25SZXNwb25zZRJcCg9MaXN0SW52aXRhdGlvbnMSIy5pZGVudGl0eS52MS5MaXN0SW52aXRhdGlvbnNSZXF1ZXN0GiQuaWRlbnRpdHkudjEuTGlzdEludml0YXRpb25zUmVzcG9uc2USXwoQUmV2b2tlSW52aXRhdGlvbhIkLmlkZW50aXR5LnYxLlJldm9rZUludml0YXRpb25SZXF1ZXN0GiUuaWRlbnRpdHkudjEuUmV2b2tlSW52aXRhdGlvblJlc3BvbnNlEl8KEEFjY2VwdEludml0YXRpb24SJC5pZGVudGl0eS52MS5BY2NlcHRJbnZpdGF0aW9uUmVxdWVzdBolLmlkZW50aXR5LnYxLkFjY2VwdEludml0YXRpb25SZXNwb25zZRJlChJWYWxpZGF0ZUludml0YXRpb24SJi5pZGVudGl0eS52MS5WYWxpZGF0ZUludml0YXRpb25SZXF1ZXN0GicuaWRlbnRpdHkudjEuVmFsaWRhdGVJbnZpdGF0aW9uUmVzcG9uc2USUwoMQ3JlYXRlQXBpS2V5EiAuaWRlbnRpdHkudjEuQ3JlYXRlQXBpS2V5UmVxdWVzdBohLmlkZW50aXR5LnYxLkNyZWF0ZUFwaUtleVJlc3BvbnNlEkoKCUdldEFwaUtleRIdLmlkZW50aXR5LnYxLkdldEFwaUtleVJlcXVlc3QaHi5pZGVudGl0eS52MS5HZXRBcGlLZXlSZXNwb25zZRJQCgtMaXN0QXBpS2V5cxIfLmlkZW50aXR5LnYxLkxpc3RBcGlLZXlzUmVxdWVzdBogLmlkZW50aXR5LnYxLkxpc3RBcGlLZXlzUmVzcG9uc2USUwoMVXBkYXRlQXBpS2V5EiAuaWRlbnRpdHkudjEuVXBkYXRlQXBpS2V5UmVxdWVzdBohLmlkZW50aXR5LnYxLlVwZGF0ZUFwaUtleVJlc3BvbnNlElMKDFJvdGF0ZUFwaUtleRIgLmlkZW50aXR5LnYxLlJvdGF0ZUFwaUtleVJlcXVlc3QaIS5pZGVudGl0eS52MS5Sb3RhdGVBcGlLZXlSZXNwb25zZRJTCgxSZXZva2VBcGlLZXkSIC5pZGVudGl0eS52MS5SZXZva2VBcGlLZXlSZXF1ZXN0GiEuaWRlbnRpdHkudjEuUmV2b2tlQXBpS2V5UmVzcG9uc2USYgoRTGlzdEF1dGhQcm92aWRlcnMSJS5pZGVudGl0eS52MS5MaXN0QXV0aFByb3ZpZGVyc1JlcXVlc3QaJi5pZGVudGl0eS52MS5MaXN0QXV0aFByb3ZpZGVyc1Jlc3BvbnNlElwKD0dldEF1dGhQcm92aWRlchIjLmlkZW50aXR5LnYxLkdldEF1dGhQcm92aWRlclJlcXVlc3QaJC5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJSZXNwb25zZRJlChJDcmVhdGVBdXRoUHJvdmlkZXISJi5pZGVudGl0eS52MS5DcmVhdGVBdXRoUHJvdmlkZXJSZXF1ZXN0GicuaWRlbnRpdHkudjEuQ3JlYXRlQXV0aFByb3ZpZGVyUmVzcG9uc2USZQoSVXBkYXRlQXV0aFByb3ZpZGVyEiYuaWRlbnRpdHkudjEuVXBkYXRlQXV0aFByb3ZpZGVyUmVxdWVzdBonLmlkZW50aXR5LnYxLlVwZGF0ZUF1dGhQcm92aWRlclJlc3BvbnNlEmUKEkRlbGV0ZUF1dGhQcm92aWRlchImLmlkZW50aXR5LnYxLkRlbGV0ZUF1dGhQcm92aWRlclJlcXVlc3QaJy5pZGVudGl0eS52MS5EZWxldGVBdXRoUHJvdmlkZXJSZXNwb25zZRJoChNQdWJsaXNoQXV0aFByb3ZpZGVyEicuaWRlbnRpdHkudjEuUHVibGlzaEF1dGhQcm92aWRlclJlcXVlc3QaKC5pZGVudGl0eS52MS5QdWJsaXNoQXV0aFByb3ZpZGVyUmVzcG9uc2USbgoVVW5wdWJsaXNoQXV0aFByb3ZpZGVyEikuaWRlbnRpdHkudjEuVW5wdWJsaXNoQXV0aFByb3ZpZGVyUmVxdWVzdBoqLmlkZW50aXR5LnYxLlVucHVibGlzaEF1dGhQcm92aWRlclJlc3BvbnNlEoMBChxHZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzEjAuaWRlbnRpdHkudjEuR2V0QXV0aFByb3ZpZGVyUHVibGlzaFN0YXR1c1JlcXVlc3QaMS5pZGVudGl0eS52MS5HZXRBdXRoUHJvdmlkZXJQdWJsaXNoU3RhdHVzUmVzcG9uc2USgAEKG1NjaGVkdWxlQXV0aFByb3ZpZGVyUHVibGlzaBIvLmlkZW50aXR5LnYxLlNjaGVkdWxlQXV0aFByb3ZpZGVyUHVibGlzaFJlcXVlc3QaMC5pZGVudGl0eS52MS5TY2hlZHVsZUF1dGhQcm92aWRlclB1Ymxpc2hSZXNwb25zZRKVAQoiQ2FuY2VsU2NoZWR1bGVkQXV0aFByb3ZpZGVyUHVibGlzaBI2LmlkZW50aXR5LnYxLkNhbmNlbFNjaGVkdWxlZEF1dGhQcm92aWRlclB1Ymxpc2hSZXF1ZXN0GjcuaWRlbnRpdHkudjEuQ2FuY2VsU2NoZWR1bGVkQXV0aFByb3ZpZGVyUHVibGlzaFJlc3BvbnNlEm4KFUVuYWJsZWRPQXV0aFByb3ZpZGVycxIpLmlkZW50aXR5LnYxLkVuYWJsZWRPQXV0aFByb3ZpZGVyc1JlcXVlc3QaKi5pZGVudGl0eS52MS5FbmFibGVkT0F1dGhQcm92aWRlcnNSZXNwb25zZRJfChBNaW50U2VydmljZVRva2VuEiQuaWRlbnRpdHkudjEuTWludFNlcnZpY2VUb2tlblJlcXVlc3QaJS5pZGVudGl0eS52MS5NaW50U2VydmljZVRva2VuUmVzcG9uc2USXAoPVXBkYXRlTXlQcm9maWxlEiMuaWRlbnRpdHkudjEuVXBkYXRlTXlQcm9maWxlUmVxdWVzdBokLmlkZW50aXR5LnYxLlVwZGF0ZU15UHJvZmlsZVJlc3BvbnNlEnEKFkxpc3RNeU9BdXRoQ29ubmVjdGlvbnMSKi5pZGVudGl0eS52MS5MaXN0TXlPQXV0aENvbm5lY3Rpb25zUmVxdWVzdBorLmlkZW50aXR5LnYxLkxpc3RNeU9BdXRoQ29ubmVjdGlvbnNSZXNwb25zZRJoChNVbmxpbmtPQXV0aFByb3ZpZGVyEicuaWRlbnRpdHkudjEuVW5saW5rT0F1dGhQcm92aWRlclJlcXVlc3QaKC5pZGVudGl0eS52MS5VbmxpbmtPQXV0aFByb3ZpZGVyUmVzcG9uc2UScQoWQ2hlY2tFbWFpbEF2YWlsYWJpbGl0eRIqLmlkZW50aXR5LnYxLkNoZWNrRW1haWxBdmFpbGFiaWxpdHlSZXF1ZXN0GisuaWRlbnRpdHkudjEuQ2hlY2tFbWFpbEF2YWlsYWJpbGl0eVJlc3BvbnNlEmsKFENvbXBsZXRlQWNjb3VudFNldHVwEiguaWRlbnRpdHkudjEuQ29tcGxldGVBY2NvdW50U2V0dXBSZXF1ZXN0GikuaWRlbnRpdHkudjEuQ29tcGxldGVBY2NvdW50U2V0dXBSZXNwb25zZRJoChNDcmVhdGVTaWdudXBTZXNzaW9uEicuaWRlbnRpdHkudjEuQ3JlYXRlU2lnbnVwU2Vzc2lvblJlcXVlc3QaKC5pZGVudGl0eS52MS5DcmVhdGVTaWdudXBTZXNzaW9uUmVzcG9uc2USXwoQUmVzZW5kSW52aXRhdGlvbhIkLmlkZW50aXR5LnYxLlJlc2VuZEludml0YXRpb25SZXF1ZXN0GiUuaWRlbnRpdHkudjEuUmVzZW5kSW52aXRhdGlvblJlc3BvbnNlElYKDUdldEludml0YXRpb24SIS5pZGVudGl0eS52MS5HZXRJbnZpdGF0aW9uUmVxdWVzdBoiLmlkZW50aXR5LnYxLkdldEludml0YXRpb25SZXNwb25zZRJZCg5BY3RpdmF0ZVRlbmFudBIiLmlkZW50aXR5LnYxLkFjdGl2YXRlVGVuYW50UmVxdWVzdBojLmlkZW50aXR5LnYxLkFjdGl2YXRlVGVuYW50UmVzcG9uc2USawoUU3VzcGVuZFRlbmFudEFjY291bnQSKC5pZGVudGl0eS52MS5TdXNwZW5kVGVuYW50QWNjb3VudFJlcXVlc3QaKS5pZGVudGl0eS52MS5TdXNwZW5kVGVuYW50QWNjb3VudFJlc3BvbnNlElMKDENhbmNlbFRlbmFudBIgLmlkZW50aXR5LnYxLkNhbmNlbFRlbmFudFJlcXVlc3QaIS5pZGVudGl0eS52MS5DYW5jZWxUZW5hbnRSZXNwb25zZRJfChBSZWFjdGl2YXRlVGVuYW50EiQuaWRlbnRpdHkudjEuUmVhY3RpdmF0ZVRlbmFudFJlcXVlc3QaJS5pZGVudGl0eS52MS5SZWFjdGl2YXRlVGVuYW50UmVzcG9uc2USYgoRTWFya1RlbmFudFBhc3REdWUSJS5pZGVudGl0eS52MS5NYXJrVGVuYW50UGFzdER1ZVJlcXVlc3QaJi5pZGVudGl0eS52MS5NYXJrVGVuYW50UGFzdER1ZVJlc3BvbnNlElAKC0NodXJuVGVuYW50Eh8uaWRlbnRpdHkudjEuQ2h1cm5UZW5hbnRSZXF1ZXN0GiAuaWRlbnRpdHkudjEuQ2h1cm5UZW5hbnRSZXNwb25zZRJuChVHZXRDdXN0b21lckF1dGhDb25maWcSKS5pZGVudGl0eS52MS5HZXRDdXN0b21lckF1dGhDb25maWdSZXF1ZXN0GiouaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJBdXRoQ29uZmlnUmVzcG9uc2USaAoTVmVyaWZ5Q3VzdG9tZXJUb2tlbhInLmlkZW50aXR5LnYxLlZlcmlmeUN1c3RvbWVyVG9rZW5SZXF1ZXN0GiguaWRlbnRpdHkudjEuVmVyaWZ5Q3VzdG9tZXJUb2tlblJlc3BvbnNlEoABChtHZXRDdXN0b21lck1hbmFnZW1lbnRTdGF0dXMSLy5pZGVudGl0eS52MS5HZXRDdXN0b21lck1hbmFnZW1lbnRTdGF0dXNSZXF1ZXN0GjAuaWRlbnRpdHkudjEuR2V0Q3VzdG9tZXJNYW5hZ2VtZW50U3RhdHVzUmVzcG9uc2USWQoOVmFsaWRhdGVBcGlLZXkSIi5pZGVudGl0eS52MS5WYWxpZGF0ZUFwaUtleVJlcXVlc3QaIy5pZGVudGl0eS52MS5WYWxpZGF0ZUFwaUtleVJlc3BvbnNlElYKDUN1c3RvbWVyTG9naW4SIS5pZGVudGl0eS52MS5DdXN0b21lckxvZ2luUmVxdWVzdBoiLmlkZW50aXR5LnYxLkN1c3RvbWVyTG9naW5SZXNwb25zZRJfChBDdXN0b21lclJlZ2lzdGVyEiQuaWRlbnRpdHkudjEuQ3VzdG9tZXJSZWdpc3RlclJlcXVlc3QaJS5pZGVudGl0eS52MS5DdXN0b21lclJlZ2lzdGVyUmVzcG9uc2USawoUQ3VzdG9tZXJSZWZyZXNoVG9rZW4SKC5pZGVudGl0eS52MS5DdXN0b21lclJlZnJlc2hUb2tlblJlcXVlc3QaKS5pZGVudGl0eS52MS5DdXN0b21lclJlZnJlc2hUb2tlblJlc3BvbnNlEmUKEkN1c3RvbWVyUmVxdWVzdE9UUBImLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVxdWVzdE9UUFJlcXVlc3QaJy5pZGVudGl0eS52MS5DdXN0b21lclJlcXVlc3RPVFBSZXNwb25zZRJiChFDdXN0b21lclZlcmlmeU9UUBIlLmlkZW50aXR5LnYxLkN1c3RvbWVyVmVyaWZ5T1RQUmVxdWVzdBomLmlkZW50aXR5LnYxLkN1c3RvbWVyVmVyaWZ5T1RQUmVzcG9uc2USgwEKHEN1c3RvbWVyUmVxdWVzdFBhc3N3b3JkUmVzZXQSMC5pZGVudGl0eS52MS5DdXN0b21lclJlcXVlc3RQYXNzd29yZFJlc2V0UmVxdWVzdBoxLmlkZW50aXR5LnYxLkN1c3RvbWVyUmVxdWVzdFBhc3N3b3JkUmVzZXRSZXNwb25zZRJuChVDdXN0b21lclJlc2V0UGFzc3dvcmQSKS5pZGVudGl0eS52MS5DdXN0b21lclJlc2V0UGFzc3dvcmRSZXF1ZXN0GiouaWRlbnRpdHkudjEuQ3VzdG9tZXJSZXNldFBhc3N3b3JkUmVzcG9uc2USZQoSU3RvcmVQcm92aWRlclRva2VuEiYuaWRlbnRpdHkudjEuU3RvcmVQcm92aWRlclRva2VuUmVxdWVzdBonLmlkZW50aXR5LnYxLlN0b3JlUHJvdmlkZXJUb2tlblJlc3BvbnNlEl8KEEdldFByb3ZpZGVyVG9rZW4SJC5pZGVudGl0eS52MS5HZXRQcm92aWRlclRva2VuUmVxdWVzdBolLmlkZW50aXR5LnYxLkdldFByb3ZpZGVyVG9rZW5SZXNwb25zZRJrChREZWxldGVQcm92aWRlclRva2VucxIoLmlkZW50aXR5LnYxLkRlbGV0ZVByb3ZpZGVyVG9rZW5zUmVxdWVzdBopLmlkZW50aXR5LnYxLkRlbGV0ZVByb3ZpZGVyVG9rZW5zUmVzcG9uc2USZQoSU3RhcnRQcm92aWRlckxvZ2luEiYuaWRlbnRpdHkudjEuU3RhcnRQcm92aWRlckxvZ2luUmVxdWVzdBonLmlkZW50aXR5LnYxLlN0YXJ0UHJvdmlkZXJMb2dpblJlc3BvbnNlEmgKE0ZpbmlzaFByb3ZpZGVyTG9naW4SJy5pZGVudGl0eS52MS5GaW5pc2hQcm92aWRlckxvZ2luUmVxdWVzdBooLmlkZW50aXR5LnYxLkZpbmlzaFByb3ZpZGVyTG9naW5SZXNwb25zZUI9WjtnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vaWRlbnRpdHkvdjE7aWRlbnRpdHl2MWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_publish_v1_publish, file_common_v1_pagination]);
15
15
 
16
16
  /**
17
17
  * Describes the message identity.v1.AdminUser.
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { AcceptShareRequest, AcceptShareResponse, BulkSetSettingsRequest, BulkSetSettingsResponse, CancelScheduledContextDimensionPublishRequest, CancelScheduledContextDimensionPublishResponse, CancelScheduledDesignTokensPublishRequest, CancelScheduledDesignTokensPublishResponse, CancelScheduledProfileSchemaPublishRequest, CancelScheduledProfileSchemaPublishResponse, ClearRecentlyOpenedRequest, ClearRecentlyOpenedResponse, CountDesignTokenReferencesRequest, CountDesignTokenReferencesResponse, CreateContextDimensionRequest, CreateContextDimensionResponse, CreateLocaleRequest, CreateLocaleResponse, CreateNoteRequest, CreateNoteResponse, CreateShareRequest, CreateShareResponse, CreateVariantCatalogEntryRequest, CreateVariantCatalogEntryResponse, DeclineShareRequest, DeclineShareResponse, DeleteContextDimensionRequest, DeleteContextDimensionResponse, DeleteCustomerProfileRequest, DeleteCustomerProfileResponse, DeleteLocaleRequest, DeleteLocaleResponse, DeleteNoteRequest, DeleteNoteResponse, DeleteSettingRequest, DeleteSettingResponse, DeleteSettingsByCategoryRequest, DeleteSettingsByCategoryResponse, DeleteVariantCatalogEntryRequest, DeleteVariantCatalogEntryResponse, EnsureDefaultVariantCatalogEntryRequest, EnsureDefaultVariantCatalogEntryResponse, GetContextDimensionByKeyRequest, GetContextDimensionByKeyResponse, GetContextDimensionPublishStatusRequest, GetContextDimensionPublishStatusResponse, GetContextDimensionRequest, GetContextDimensionResponse, GetContextDimensionValuesRequest, GetContextDimensionValuesResponse, GetCustomerProfileRequest, GetCustomerProfileResponse, GetCustomerProfileSchemaRequest, GetCustomerProfileSchemaResponse, GetCustomerResolutionAttributesRequest, GetCustomerResolutionAttributesResponse, GetDefaultLocaleRequest, GetDefaultLocaleResponse, GetDefaultVariantCatalogEntryRequest, GetDefaultVariantCatalogEntryResponse, GetDesignTokensPublishStatusRequest, GetDesignTokensPublishStatusResponse, GetDesignTokensRequest, GetDesignTokensResponse, GetEditorConfigsRequest, GetEditorConfigsResponse, GetLocaleByCodeRequest, GetLocaleByCodeResponse, GetLocaleRequest, GetLocaleResponse, GetNavPreferencesRequest, GetNavPreferencesResponse, GetNoteRequest, GetNoteResponse, GetProfileSchemaPublishStatusRequest, GetProfileSchemaPublishStatusResponse, GetProjectPublishStatusRequest, GetProjectPublishStatusResponse, GetProjectSchemaRequest, GetProjectSchemaResponse, GetSettingsRequest, GetSettingsResponse, GetShareRequest, GetShareResponse, GetVariantCatalogEntryRequest, GetVariantCatalogEntryResponse, ListAuditLogsRequest, ListAuditLogsResponse, ListContextDimensionsRequest, ListContextDimensionsResponse, ListLocalesRequest, ListLocalesResponse, ListMyMentionsRequest, ListMyMentionsResponse, ListNotesRequest, ListNotesResponse, ListRecentlyOpenedRequest, ListRecentlyOpenedResponse, ListSharesRequest, ListSharesResponse, ListVariantCatalogRequest, ListVariantCatalogResponse, MarkMentionsSeenRequest, MarkMentionsSeenResponse, PublishContextDimensionRequest, PublishContextDimensionResponse, PublishDesignTokensRequest, PublishDesignTokensResponse, PublishProfileSchemaRequest, PublishProfileSchemaResponse, PublishProjectSchemaRequest, PublishProjectSchemaResponse, RemoveRecentlyOpenedRequest, RemoveRecentlyOpenedResponse, ResolveNoteRequest, ResolveNoteResponse, RevokeShareRequest, RevokeShareResponse, ScheduleContextDimensionPublishRequest, ScheduleContextDimensionPublishResponse, ScheduleDesignTokensPublishRequest, ScheduleDesignTokensPublishResponse, ScheduleProfileSchemaPublishRequest, ScheduleProfileSchemaPublishResponse, SearchCustomerProfilesRequest, SearchCustomerProfilesResponse, SearchNotesRequest, SearchNotesResponse, SetCustomerProfileRequest, SetCustomerProfileResponse, TrackRecentlyOpenedRequest, TrackRecentlyOpenedResponse, UnpublishContextDimensionRequest, UnpublishContextDimensionResponse, UnpublishDesignTokensRequest, UnpublishDesignTokensResponse, UnpublishProfileSchemaRequest, UnpublishProfileSchemaResponse, UnresolveNoteRequest, UnresolveNoteResponse, UpdateContextDimensionRequest, UpdateContextDimensionResponse, UpdateCustomerProfileSchemaRequest, UpdateCustomerProfileSchemaResponse, UpdateDesignTokensRequest, UpdateDesignTokensResponse, UpdateLocaleRequest, UpdateLocaleResponse, UpdateMentionStatusRequest, UpdateMentionStatusResponse, UpdateNavPreferencesRequest, UpdateNavPreferencesResponse, UpdateNoteRequest, UpdateNoteResponse, UpdateSettingRequest, UpdateSettingResponse, UpdateShareRequest, UpdateShareResponse, UpdateVariantCatalogEntryRequest, UpdateVariantCatalogEntryResponse } from "./settings_pbjs";
6
+ import { AcceptShareRequest, AcceptShareResponse, BulkSetSettingsRequest, BulkSetSettingsResponse, CancelScheduledContextDimensionPublishRequest, CancelScheduledContextDimensionPublishResponse, CancelScheduledDesignTokensPublishRequest, CancelScheduledDesignTokensPublishResponse, CancelScheduledProfileSchemaPublishRequest, CancelScheduledProfileSchemaPublishResponse, ClearRecentlyOpenedRequest, ClearRecentlyOpenedResponse, CountDesignTokenReferencesRequest, CountDesignTokenReferencesResponse, CreateContextDimensionRequest, CreateContextDimensionResponse, CreateCustomerProfileRequest, CreateCustomerProfileResponse, CreateLocaleRequest, CreateLocaleResponse, CreateNoteRequest, CreateNoteResponse, CreateShareRequest, CreateShareResponse, CreateVariantCatalogEntryRequest, CreateVariantCatalogEntryResponse, DeclineShareRequest, DeclineShareResponse, DeleteContextDimensionRequest, DeleteContextDimensionResponse, DeleteCustomerProfileRequest, DeleteCustomerProfileResponse, DeleteLocaleRequest, DeleteLocaleResponse, DeleteNoteRequest, DeleteNoteResponse, DeleteSettingRequest, DeleteSettingResponse, DeleteSettingsByCategoryRequest, DeleteSettingsByCategoryResponse, DeleteVariantCatalogEntryRequest, DeleteVariantCatalogEntryResponse, EnsureDefaultVariantCatalogEntryRequest, EnsureDefaultVariantCatalogEntryResponse, GetContextDimensionByKeyRequest, GetContextDimensionByKeyResponse, GetContextDimensionPublishStatusRequest, GetContextDimensionPublishStatusResponse, GetContextDimensionRequest, GetContextDimensionResponse, GetContextDimensionValuesRequest, GetContextDimensionValuesResponse, GetCustomerProfileRequest, GetCustomerProfileResponse, GetCustomerProfileSchemaRequest, GetCustomerProfileSchemaResponse, GetCustomerResolutionAttributesRequest, GetCustomerResolutionAttributesResponse, GetDefaultLocaleRequest, GetDefaultLocaleResponse, GetDefaultVariantCatalogEntryRequest, GetDefaultVariantCatalogEntryResponse, GetDesignTokensPublishStatusRequest, GetDesignTokensPublishStatusResponse, GetDesignTokensRequest, GetDesignTokensResponse, GetEditorConfigsRequest, GetEditorConfigsResponse, GetLocaleByCodeRequest, GetLocaleByCodeResponse, GetLocaleRequest, GetLocaleResponse, GetNavPreferencesRequest, GetNavPreferencesResponse, GetNoteRequest, GetNoteResponse, GetProfileSchemaPublishStatusRequest, GetProfileSchemaPublishStatusResponse, GetProjectPublishStatusRequest, GetProjectPublishStatusResponse, GetProjectSchemaRequest, GetProjectSchemaResponse, GetSettingsRequest, GetSettingsResponse, GetShareRequest, GetShareResponse, GetVariantCatalogEntryRequest, GetVariantCatalogEntryResponse, ListAuditLogsRequest, ListAuditLogsResponse, ListContextDimensionsRequest, ListContextDimensionsResponse, ListLocalesRequest, ListLocalesResponse, ListMyMentionsRequest, ListMyMentionsResponse, ListNotesRequest, ListNotesResponse, ListRecentlyOpenedRequest, ListRecentlyOpenedResponse, ListSharesRequest, ListSharesResponse, ListVariantCatalogRequest, ListVariantCatalogResponse, MarkMentionsSeenRequest, MarkMentionsSeenResponse, PublishContextDimensionRequest, PublishContextDimensionResponse, PublishDesignTokensRequest, PublishDesignTokensResponse, PublishProfileSchemaRequest, PublishProfileSchemaResponse, PublishProjectSchemaRequest, PublishProjectSchemaResponse, RemoveRecentlyOpenedRequest, RemoveRecentlyOpenedResponse, ResolveNoteRequest, ResolveNoteResponse, RevokeShareRequest, RevokeShareResponse, ScheduleContextDimensionPublishRequest, ScheduleContextDimensionPublishResponse, ScheduleDesignTokensPublishRequest, ScheduleDesignTokensPublishResponse, ScheduleProfileSchemaPublishRequest, ScheduleProfileSchemaPublishResponse, SearchCustomerProfilesRequest, SearchCustomerProfilesResponse, SearchNotesRequest, SearchNotesResponse, TrackRecentlyOpenedRequest, TrackRecentlyOpenedResponse, UnpublishContextDimensionRequest, UnpublishContextDimensionResponse, UnpublishDesignTokensRequest, UnpublishDesignTokensResponse, UnpublishProfileSchemaRequest, UnpublishProfileSchemaResponse, UnresolveNoteRequest, UnresolveNoteResponse, UpdateContextDimensionRequest, UpdateContextDimensionResponse, UpdateCustomerProfileRequest, UpdateCustomerProfileResponse, UpdateCustomerProfileSchemaRequest, UpdateCustomerProfileSchemaResponse, UpdateDesignTokensRequest, UpdateDesignTokensResponse, UpdateLocaleRequest, UpdateLocaleResponse, UpdateMentionStatusRequest, UpdateMentionStatusResponse, UpdateNavPreferencesRequest, UpdateNavPreferencesResponse, UpdateNoteRequest, UpdateNoteResponse, UpdateSettingRequest, UpdateSettingResponse, UpdateShareRequest, UpdateShareResponse, UpdateVariantCatalogEntryRequest, UpdateVariantCatalogEntryResponse } from "./settings_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -449,12 +449,21 @@ export declare const SettingsService: {
449
449
  readonly kind: MethodKind.Unary,
450
450
  },
451
451
  /**
452
- * @generated from rpc settings.v1.SettingsService.SetCustomerProfile
452
+ * @generated from rpc settings.v1.SettingsService.CreateCustomerProfile
453
453
  */
454
- readonly setCustomerProfile: {
455
- readonly name: "SetCustomerProfile",
456
- readonly I: typeof SetCustomerProfileRequest,
457
- readonly O: typeof SetCustomerProfileResponse,
454
+ readonly createCustomerProfile: {
455
+ readonly name: "CreateCustomerProfile",
456
+ readonly I: typeof CreateCustomerProfileRequest,
457
+ readonly O: typeof CreateCustomerProfileResponse,
458
+ readonly kind: MethodKind.Unary,
459
+ },
460
+ /**
461
+ * @generated from rpc settings.v1.SettingsService.UpdateCustomerProfile
462
+ */
463
+ readonly updateCustomerProfile: {
464
+ readonly name: "UpdateCustomerProfile",
465
+ readonly I: typeof UpdateCustomerProfileRequest,
466
+ readonly O: typeof UpdateCustomerProfileResponse,
458
467
  readonly kind: MethodKind.Unary,
459
468
  },
460
469
  /**
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { AcceptShareRequest, AcceptShareResponse, BulkSetSettingsRequest, BulkSetSettingsResponse, CancelScheduledContextDimensionPublishRequest, CancelScheduledContextDimensionPublishResponse, CancelScheduledDesignTokensPublishRequest, CancelScheduledDesignTokensPublishResponse, CancelScheduledProfileSchemaPublishRequest, CancelScheduledProfileSchemaPublishResponse, ClearRecentlyOpenedRequest, ClearRecentlyOpenedResponse, CountDesignTokenReferencesRequest, CountDesignTokenReferencesResponse, CreateContextDimensionRequest, CreateContextDimensionResponse, CreateLocaleRequest, CreateLocaleResponse, CreateNoteRequest, CreateNoteResponse, CreateShareRequest, CreateShareResponse, CreateVariantCatalogEntryRequest, CreateVariantCatalogEntryResponse, DeclineShareRequest, DeclineShareResponse, DeleteContextDimensionRequest, DeleteContextDimensionResponse, DeleteCustomerProfileRequest, DeleteCustomerProfileResponse, DeleteLocaleRequest, DeleteLocaleResponse, DeleteNoteRequest, DeleteNoteResponse, DeleteSettingRequest, DeleteSettingResponse, DeleteSettingsByCategoryRequest, DeleteSettingsByCategoryResponse, DeleteVariantCatalogEntryRequest, DeleteVariantCatalogEntryResponse, EnsureDefaultVariantCatalogEntryRequest, EnsureDefaultVariantCatalogEntryResponse, GetContextDimensionByKeyRequest, GetContextDimensionByKeyResponse, GetContextDimensionPublishStatusRequest, GetContextDimensionPublishStatusResponse, GetContextDimensionRequest, GetContextDimensionResponse, GetContextDimensionValuesRequest, GetContextDimensionValuesResponse, GetCustomerProfileRequest, GetCustomerProfileResponse, GetCustomerProfileSchemaRequest, GetCustomerProfileSchemaResponse, GetCustomerResolutionAttributesRequest, GetCustomerResolutionAttributesResponse, GetDefaultLocaleRequest, GetDefaultLocaleResponse, GetDefaultVariantCatalogEntryRequest, GetDefaultVariantCatalogEntryResponse, GetDesignTokensPublishStatusRequest, GetDesignTokensPublishStatusResponse, GetDesignTokensRequest, GetDesignTokensResponse, GetEditorConfigsRequest, GetEditorConfigsResponse, GetLocaleByCodeRequest, GetLocaleByCodeResponse, GetLocaleRequest, GetLocaleResponse, GetNavPreferencesRequest, GetNavPreferencesResponse, GetNoteRequest, GetNoteResponse, GetProfileSchemaPublishStatusRequest, GetProfileSchemaPublishStatusResponse, GetProjectPublishStatusRequest, GetProjectPublishStatusResponse, GetProjectSchemaRequest, GetProjectSchemaResponse, GetSettingsRequest, GetSettingsResponse, GetShareRequest, GetShareResponse, GetVariantCatalogEntryRequest, GetVariantCatalogEntryResponse, ListAuditLogsRequest, ListAuditLogsResponse, ListContextDimensionsRequest, ListContextDimensionsResponse, ListLocalesRequest, ListLocalesResponse, ListMyMentionsRequest, ListMyMentionsResponse, ListNotesRequest, ListNotesResponse, ListRecentlyOpenedRequest, ListRecentlyOpenedResponse, ListSharesRequest, ListSharesResponse, ListVariantCatalogRequest, ListVariantCatalogResponse, MarkMentionsSeenRequest, MarkMentionsSeenResponse, PublishContextDimensionRequest, PublishContextDimensionResponse, PublishDesignTokensRequest, PublishDesignTokensResponse, PublishProfileSchemaRequest, PublishProfileSchemaResponse, PublishProjectSchemaRequest, PublishProjectSchemaResponse, RemoveRecentlyOpenedRequest, RemoveRecentlyOpenedResponse, ResolveNoteRequest, ResolveNoteResponse, RevokeShareRequest, RevokeShareResponse, ScheduleContextDimensionPublishRequest, ScheduleContextDimensionPublishResponse, ScheduleDesignTokensPublishRequest, ScheduleDesignTokensPublishResponse, ScheduleProfileSchemaPublishRequest, ScheduleProfileSchemaPublishResponse, SearchCustomerProfilesRequest, SearchCustomerProfilesResponse, SearchNotesRequest, SearchNotesResponse, SetCustomerProfileRequest, SetCustomerProfileResponse, TrackRecentlyOpenedRequest, TrackRecentlyOpenedResponse, UnpublishContextDimensionRequest, UnpublishContextDimensionResponse, UnpublishDesignTokensRequest, UnpublishDesignTokensResponse, UnpublishProfileSchemaRequest, UnpublishProfileSchemaResponse, UnresolveNoteRequest, UnresolveNoteResponse, UpdateContextDimensionRequest, UpdateContextDimensionResponse, UpdateCustomerProfileSchemaRequest, UpdateCustomerProfileSchemaResponse, UpdateDesignTokensRequest, UpdateDesignTokensResponse, UpdateLocaleRequest, UpdateLocaleResponse, UpdateMentionStatusRequest, UpdateMentionStatusResponse, UpdateNavPreferencesRequest, UpdateNavPreferencesResponse, UpdateNoteRequest, UpdateNoteResponse, UpdateSettingRequest, UpdateSettingResponse, UpdateShareRequest, UpdateShareResponse, UpdateVariantCatalogEntryRequest, UpdateVariantCatalogEntryResponse } from "./settings_pbjs";
6
+ import { AcceptShareRequest, AcceptShareResponse, BulkSetSettingsRequest, BulkSetSettingsResponse, CancelScheduledContextDimensionPublishRequest, CancelScheduledContextDimensionPublishResponse, CancelScheduledDesignTokensPublishRequest, CancelScheduledDesignTokensPublishResponse, CancelScheduledProfileSchemaPublishRequest, CancelScheduledProfileSchemaPublishResponse, ClearRecentlyOpenedRequest, ClearRecentlyOpenedResponse, CountDesignTokenReferencesRequest, CountDesignTokenReferencesResponse, CreateContextDimensionRequest, CreateContextDimensionResponse, CreateCustomerProfileRequest, CreateCustomerProfileResponse, CreateLocaleRequest, CreateLocaleResponse, CreateNoteRequest, CreateNoteResponse, CreateShareRequest, CreateShareResponse, CreateVariantCatalogEntryRequest, CreateVariantCatalogEntryResponse, DeclineShareRequest, DeclineShareResponse, DeleteContextDimensionRequest, DeleteContextDimensionResponse, DeleteCustomerProfileRequest, DeleteCustomerProfileResponse, DeleteLocaleRequest, DeleteLocaleResponse, DeleteNoteRequest, DeleteNoteResponse, DeleteSettingRequest, DeleteSettingResponse, DeleteSettingsByCategoryRequest, DeleteSettingsByCategoryResponse, DeleteVariantCatalogEntryRequest, DeleteVariantCatalogEntryResponse, EnsureDefaultVariantCatalogEntryRequest, EnsureDefaultVariantCatalogEntryResponse, GetContextDimensionByKeyRequest, GetContextDimensionByKeyResponse, GetContextDimensionPublishStatusRequest, GetContextDimensionPublishStatusResponse, GetContextDimensionRequest, GetContextDimensionResponse, GetContextDimensionValuesRequest, GetContextDimensionValuesResponse, GetCustomerProfileRequest, GetCustomerProfileResponse, GetCustomerProfileSchemaRequest, GetCustomerProfileSchemaResponse, GetCustomerResolutionAttributesRequest, GetCustomerResolutionAttributesResponse, GetDefaultLocaleRequest, GetDefaultLocaleResponse, GetDefaultVariantCatalogEntryRequest, GetDefaultVariantCatalogEntryResponse, GetDesignTokensPublishStatusRequest, GetDesignTokensPublishStatusResponse, GetDesignTokensRequest, GetDesignTokensResponse, GetEditorConfigsRequest, GetEditorConfigsResponse, GetLocaleByCodeRequest, GetLocaleByCodeResponse, GetLocaleRequest, GetLocaleResponse, GetNavPreferencesRequest, GetNavPreferencesResponse, GetNoteRequest, GetNoteResponse, GetProfileSchemaPublishStatusRequest, GetProfileSchemaPublishStatusResponse, GetProjectPublishStatusRequest, GetProjectPublishStatusResponse, GetProjectSchemaRequest, GetProjectSchemaResponse, GetSettingsRequest, GetSettingsResponse, GetShareRequest, GetShareResponse, GetVariantCatalogEntryRequest, GetVariantCatalogEntryResponse, ListAuditLogsRequest, ListAuditLogsResponse, ListContextDimensionsRequest, ListContextDimensionsResponse, ListLocalesRequest, ListLocalesResponse, ListMyMentionsRequest, ListMyMentionsResponse, ListNotesRequest, ListNotesResponse, ListRecentlyOpenedRequest, ListRecentlyOpenedResponse, ListSharesRequest, ListSharesResponse, ListVariantCatalogRequest, ListVariantCatalogResponse, MarkMentionsSeenRequest, MarkMentionsSeenResponse, PublishContextDimensionRequest, PublishContextDimensionResponse, PublishDesignTokensRequest, PublishDesignTokensResponse, PublishProfileSchemaRequest, PublishProfileSchemaResponse, PublishProjectSchemaRequest, PublishProjectSchemaResponse, RemoveRecentlyOpenedRequest, RemoveRecentlyOpenedResponse, ResolveNoteRequest, ResolveNoteResponse, RevokeShareRequest, RevokeShareResponse, ScheduleContextDimensionPublishRequest, ScheduleContextDimensionPublishResponse, ScheduleDesignTokensPublishRequest, ScheduleDesignTokensPublishResponse, ScheduleProfileSchemaPublishRequest, ScheduleProfileSchemaPublishResponse, SearchCustomerProfilesRequest, SearchCustomerProfilesResponse, SearchNotesRequest, SearchNotesResponse, TrackRecentlyOpenedRequest, TrackRecentlyOpenedResponse, UnpublishContextDimensionRequest, UnpublishContextDimensionResponse, UnpublishDesignTokensRequest, UnpublishDesignTokensResponse, UnpublishProfileSchemaRequest, UnpublishProfileSchemaResponse, UnresolveNoteRequest, UnresolveNoteResponse, UpdateContextDimensionRequest, UpdateContextDimensionResponse, UpdateCustomerProfileRequest, UpdateCustomerProfileResponse, UpdateCustomerProfileSchemaRequest, UpdateCustomerProfileSchemaResponse, UpdateDesignTokensRequest, UpdateDesignTokensResponse, UpdateLocaleRequest, UpdateLocaleResponse, UpdateMentionStatusRequest, UpdateMentionStatusResponse, UpdateNavPreferencesRequest, UpdateNavPreferencesResponse, UpdateNoteRequest, UpdateNoteResponse, UpdateSettingRequest, UpdateSettingResponse, UpdateShareRequest, UpdateShareResponse, UpdateVariantCatalogEntryRequest, UpdateVariantCatalogEntryResponse } from "./settings_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -449,12 +449,21 @@ export const SettingsService = {
449
449
  kind: MethodKind.Unary,
450
450
  },
451
451
  /**
452
- * @generated from rpc settings.v1.SettingsService.SetCustomerProfile
452
+ * @generated from rpc settings.v1.SettingsService.CreateCustomerProfile
453
453
  */
454
- setCustomerProfile: {
455
- name: "SetCustomerProfile",
456
- I: SetCustomerProfileRequest,
457
- O: SetCustomerProfileResponse,
454
+ createCustomerProfile: {
455
+ name: "CreateCustomerProfile",
456
+ I: CreateCustomerProfileRequest,
457
+ O: CreateCustomerProfileResponse,
458
+ kind: MethodKind.Unary,
459
+ },
460
+ /**
461
+ * @generated from rpc settings.v1.SettingsService.UpdateCustomerProfile
462
+ */
463
+ updateCustomerProfile: {
464
+ name: "UpdateCustomerProfile",
465
+ I: UpdateCustomerProfileRequest,
466
+ O: UpdateCustomerProfileResponse,
458
467
  kind: MethodKind.Unary,
459
468
  },
460
469
  /**
@@ -2956,41 +2956,87 @@ export declare type GetCustomerProfileResponse = Message<"settings.v1.GetCustome
2956
2956
  export declare const GetCustomerProfileResponseSchema: GenMessage<GetCustomerProfileResponse>;
2957
2957
 
2958
2958
  /**
2959
- * @generated from message settings.v1.SetCustomerProfileRequest
2959
+ * @generated from message settings.v1.CreateCustomerProfileRequest
2960
2960
  */
2961
- export declare type SetCustomerProfileRequest = Message<"settings.v1.SetCustomerProfileRequest"> & {
2961
+ export declare type CreateCustomerProfileRequest = Message<"settings.v1.CreateCustomerProfileRequest"> & {
2962
2962
  /**
2963
2963
  * @generated from field: string customer_id = 1;
2964
2964
  */
2965
2965
  customerId: string;
2966
2966
 
2967
2967
  /**
2968
- * @generated from field: google.protobuf.Struct data = 2;
2968
+ * create is the field->value initial profile data, validated against the
2969
+ * project's published customer profile schema with required fields
2970
+ * enforced (create semantics). Fails if a profile already exists.
2971
+ *
2972
+ * @generated from field: google.protobuf.Struct create = 2;
2973
+ */
2974
+ create?: JsonObject | undefined;
2975
+ };
2976
+
2977
+ /**
2978
+ * Describes the message settings.v1.CreateCustomerProfileRequest.
2979
+ * Use `create(CreateCustomerProfileRequestSchema)` to create a new message.
2980
+ */
2981
+ export declare const CreateCustomerProfileRequestSchema: GenMessage<CreateCustomerProfileRequest>;
2982
+
2983
+ /**
2984
+ * @generated from message settings.v1.CreateCustomerProfileResponse
2985
+ */
2986
+ export declare type CreateCustomerProfileResponse = Message<"settings.v1.CreateCustomerProfileResponse"> & {
2987
+ /**
2988
+ * @generated from field: google.protobuf.Struct data = 1;
2969
2989
  */
2970
2990
  data?: JsonObject | undefined;
2971
2991
  };
2972
2992
 
2973
2993
  /**
2974
- * Describes the message settings.v1.SetCustomerProfileRequest.
2975
- * Use `create(SetCustomerProfileRequestSchema)` to create a new message.
2994
+ * Describes the message settings.v1.CreateCustomerProfileResponse.
2995
+ * Use `create(CreateCustomerProfileResponseSchema)` to create a new message.
2976
2996
  */
2977
- export declare const SetCustomerProfileRequestSchema: GenMessage<SetCustomerProfileRequest>;
2997
+ export declare const CreateCustomerProfileResponseSchema: GenMessage<CreateCustomerProfileResponse>;
2978
2998
 
2979
2999
  /**
2980
- * @generated from message settings.v1.SetCustomerProfileResponse
3000
+ * @generated from message settings.v1.UpdateCustomerProfileRequest
2981
3001
  */
2982
- export declare type SetCustomerProfileResponse = Message<"settings.v1.SetCustomerProfileResponse"> & {
3002
+ export declare type UpdateCustomerProfileRequest = Message<"settings.v1.UpdateCustomerProfileRequest"> & {
2983
3003
  /**
2984
- * @generated from field: bool success = 1;
3004
+ * @generated from field: string customer_id = 1;
2985
3005
  */
2986
- success: boolean;
3006
+ customerId: string;
3007
+
3008
+ /**
3009
+ * update is the field->op-map UpdateInput tree (set/setNull/increment/
3010
+ * push/pull/splice/removeWhere/connect/...), applied to the existing
3011
+ * profile data and validated against the published schema with
3012
+ * partial-patch semantics. Fails if no profile exists.
3013
+ *
3014
+ * @generated from field: google.protobuf.Struct update = 2;
3015
+ */
3016
+ update?: JsonObject | undefined;
2987
3017
  };
2988
3018
 
2989
3019
  /**
2990
- * Describes the message settings.v1.SetCustomerProfileResponse.
2991
- * Use `create(SetCustomerProfileResponseSchema)` to create a new message.
3020
+ * Describes the message settings.v1.UpdateCustomerProfileRequest.
3021
+ * Use `create(UpdateCustomerProfileRequestSchema)` to create a new message.
2992
3022
  */
2993
- export declare const SetCustomerProfileResponseSchema: GenMessage<SetCustomerProfileResponse>;
3023
+ export declare const UpdateCustomerProfileRequestSchema: GenMessage<UpdateCustomerProfileRequest>;
3024
+
3025
+ /**
3026
+ * @generated from message settings.v1.UpdateCustomerProfileResponse
3027
+ */
3028
+ export declare type UpdateCustomerProfileResponse = Message<"settings.v1.UpdateCustomerProfileResponse"> & {
3029
+ /**
3030
+ * @generated from field: google.protobuf.Struct data = 1;
3031
+ */
3032
+ data?: JsonObject | undefined;
3033
+ };
3034
+
3035
+ /**
3036
+ * Describes the message settings.v1.UpdateCustomerProfileResponse.
3037
+ * Use `create(UpdateCustomerProfileResponseSchema)` to create a new message.
3038
+ */
3039
+ export declare const UpdateCustomerProfileResponseSchema: GenMessage<UpdateCustomerProfileResponse>;
2994
3040
 
2995
3041
  /**
2996
3042
  * @generated from message settings.v1.UpdateCustomerProfileSchemaRequest
@@ -5751,12 +5797,20 @@ export declare const SettingsService: GenService<{
5751
5797
  output: typeof GetCustomerProfileResponseSchema;
5752
5798
  },
5753
5799
  /**
5754
- * @generated from rpc settings.v1.SettingsService.SetCustomerProfile
5800
+ * @generated from rpc settings.v1.SettingsService.CreateCustomerProfile
5801
+ */
5802
+ createCustomerProfile: {
5803
+ methodKind: "unary";
5804
+ input: typeof CreateCustomerProfileRequestSchema;
5805
+ output: typeof CreateCustomerProfileResponseSchema;
5806
+ },
5807
+ /**
5808
+ * @generated from rpc settings.v1.SettingsService.UpdateCustomerProfile
5755
5809
  */
5756
- setCustomerProfile: {
5810
+ updateCustomerProfile: {
5757
5811
  methodKind: "unary";
5758
- input: typeof SetCustomerProfileRequestSchema;
5759
- output: typeof SetCustomerProfileResponseSchema;
5812
+ input: typeof UpdateCustomerProfileRequestSchema;
5813
+ output: typeof UpdateCustomerProfileResponseSchema;
5760
5814
  },
5761
5815
  /**
5762
5816
  * @generated from rpc settings.v1.SettingsService.UpdateCustomerProfileSchema