@dxos/protocols 0.8.0 → 0.8.1-main.013e445
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/dist/cjs/src/buf/proto/gen/dxos/client/services_pb.d.ts +104 -1
- package/dist/cjs/src/buf/proto/gen/dxos/client/services_pb.d.ts.map +1 -1
- package/dist/cjs/src/buf/proto/gen/dxos/client/services_pb.js +44 -19
- package/dist/cjs/src/buf/proto/gen/dxos/client/services_pb.js.map +1 -1
- package/dist/cjs/src/buf/proto/gen/dxos/edge/signal_pb.d.ts +14 -0
- package/dist/cjs/src/buf/proto/gen/dxos/edge/signal_pb.d.ts.map +1 -1
- package/dist/cjs/src/buf/proto/gen/dxos/edge/signal_pb.js +11 -6
- package/dist/cjs/src/buf/proto/gen/dxos/edge/signal_pb.js.map +1 -1
- package/dist/cjs/src/edge-error.d.ts +26 -0
- package/dist/cjs/src/edge-error.d.ts.map +1 -0
- package/dist/cjs/src/edge-error.js +63 -0
- package/dist/cjs/src/edge-error.js.map +1 -0
- package/dist/cjs/src/edge.d.ts +25 -25
- package/dist/cjs/src/edge.d.ts.map +1 -1
- package/dist/cjs/src/edge.js +13 -57
- package/dist/cjs/src/edge.js.map +1 -1
- package/dist/cjs/src/index.d.ts +2 -0
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +2 -0
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/invitation.d.ts +1 -1
- package/dist/cjs/src/invitation.d.ts.map +1 -1
- package/dist/cjs/src/invitation.js +6 -5
- package/dist/cjs/src/invitation.js.map +1 -1
- package/dist/cjs/src/proto/gen/dxos/client/services.d.ts +45 -0
- package/dist/cjs/src/proto/gen/dxos/client/services.d.ts.map +1 -1
- package/dist/cjs/src/proto/gen/dxos/client/services.js.map +1 -1
- package/dist/cjs/src/proto/gen/dxos/edge/signal.d.ts +7 -0
- package/dist/cjs/src/proto/gen/dxos/edge/signal.d.ts.map +1 -1
- package/dist/cjs/src/proto/gen/index.d.ts +6 -0
- package/dist/cjs/src/proto/gen/index.d.ts.map +1 -1
- package/dist/cjs/src/proto/gen/index.js +1 -1
- package/dist/cjs/src/proto/gen/index.js.map +1 -1
- package/dist/cjs/src/space-archive.d.ts +55 -0
- package/dist/cjs/src/space-archive.d.ts.map +1 -0
- package/dist/cjs/src/space-archive.js +29 -0
- package/dist/cjs/src/space-archive.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/buf/proto/gen/dxos/client/services_pb.d.ts +104 -1
- package/dist/esm/src/buf/proto/gen/dxos/client/services_pb.d.ts.map +1 -1
- package/dist/esm/src/buf/proto/gen/dxos/client/services_pb.js +42 -17
- package/dist/esm/src/buf/proto/gen/dxos/client/services_pb.js.map +1 -1
- package/dist/esm/src/buf/proto/gen/dxos/edge/signal_pb.d.ts +14 -0
- package/dist/esm/src/buf/proto/gen/dxos/edge/signal_pb.d.ts.map +1 -1
- package/dist/esm/src/buf/proto/gen/dxos/edge/signal_pb.js +10 -5
- package/dist/esm/src/buf/proto/gen/dxos/edge/signal_pb.js.map +1 -1
- package/dist/esm/src/edge-error.d.ts +26 -0
- package/dist/esm/src/edge-error.d.ts.map +1 -0
- package/dist/esm/src/edge-error.js +62 -0
- package/dist/esm/src/edge-error.js.map +1 -0
- package/dist/esm/src/edge.d.ts +25 -25
- package/dist/esm/src/edge.d.ts.map +1 -1
- package/dist/esm/src/edge.js +12 -58
- package/dist/esm/src/edge.js.map +1 -1
- package/dist/esm/src/index.d.ts +2 -0
- package/dist/esm/src/index.d.ts.map +1 -1
- package/dist/esm/src/index.js +2 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/invitation.d.ts +1 -1
- package/dist/esm/src/invitation.d.ts.map +1 -1
- package/dist/esm/src/invitation.js +2 -1
- package/dist/esm/src/invitation.js.map +1 -1
- package/dist/esm/src/proto/gen/dxos/client/services.d.ts +45 -0
- package/dist/esm/src/proto/gen/dxos/client/services.d.ts.map +1 -1
- package/dist/esm/src/proto/gen/dxos/client/services.js.map +1 -1
- package/dist/esm/src/proto/gen/dxos/edge/signal.d.ts +7 -0
- package/dist/esm/src/proto/gen/dxos/edge/signal.d.ts.map +1 -1
- package/dist/esm/src/proto/gen/index.d.ts +6 -0
- package/dist/esm/src/proto/gen/index.d.ts.map +1 -1
- package/dist/esm/src/proto/gen/index.js +1 -1
- package/dist/esm/src/proto/gen/index.js.map +1 -1
- package/dist/esm/src/space-archive.d.ts +55 -0
- package/dist/esm/src/space-archive.d.ts.map +1 -0
- package/dist/esm/src/space-archive.js +26 -0
- package/dist/esm/src/space-archive.js.map +1 -0
- package/package.json +12 -8
- package/src/buf/proto/gen/dxos/client/services_pb.ts +137 -18
- package/src/buf/proto/gen/dxos/edge/signal_pb.ts +22 -5
- package/src/edge-error.ts +79 -0
- package/src/edge.ts +19 -71
- package/src/index.ts +2 -0
- package/src/invitation.ts +3 -1
- package/src/proto/dxos/client/services.proto +29 -0
- package/src/proto/dxos/edge/signal.proto +4 -0
- package/src/proto/gen/dxos/client/services.ts +45 -0
- package/src/proto/gen/dxos/edge/signal.ts +7 -0
- package/src/proto/gen/index.ts +7 -1
- package/src/space-archive.ts +66 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/proto/gen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAmEhE,OAAO,aAAa,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/proto/gen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAmEhE,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAimBhD,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,i2uHAAi2uH,CAAC,CAAC,CAAC;AAC15uH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAkB,UAAU,EAAE,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { IdentityDid, SpaceId } from '@dxos/keys';
|
|
2
|
+
/**
|
|
3
|
+
* Space archive is a way to export and import spaces.
|
|
4
|
+
*
|
|
5
|
+
* ## Structure
|
|
6
|
+
*
|
|
7
|
+
* A tar archive with files:
|
|
8
|
+
* - metadata.json -- JSON-encoded {@link SpaceArchiveMetadata} file.
|
|
9
|
+
* - documents
|
|
10
|
+
* - <document-id>.bin -- Automerge document.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Space archive version.
|
|
14
|
+
* Used to track changes to the archive format.
|
|
15
|
+
*/
|
|
16
|
+
export declare enum SpaceArchiveVersion {
|
|
17
|
+
V1 = 1
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Space archive metadata.
|
|
21
|
+
* Stored in the `metadata.json` file.
|
|
22
|
+
*/
|
|
23
|
+
export interface SpaceArchiveMetadata {
|
|
24
|
+
/**
|
|
25
|
+
* Archive version.
|
|
26
|
+
*/
|
|
27
|
+
version: SpaceArchiveVersion;
|
|
28
|
+
/**
|
|
29
|
+
* Original space ID.
|
|
30
|
+
*/
|
|
31
|
+
originalSpaceId?: SpaceId;
|
|
32
|
+
/**
|
|
33
|
+
* Created at timestamp.
|
|
34
|
+
*/
|
|
35
|
+
createdAt?: number;
|
|
36
|
+
/**
|
|
37
|
+
* DID of the identity that exported the space.
|
|
38
|
+
*/
|
|
39
|
+
exportedBy?: IdentityDid;
|
|
40
|
+
/**
|
|
41
|
+
* ECHO section.
|
|
42
|
+
*/
|
|
43
|
+
echo?: {
|
|
44
|
+
/**
|
|
45
|
+
* Current root document in the automerge URL format.
|
|
46
|
+
* @example "automerge:XXXXXXXXXXX"
|
|
47
|
+
*/
|
|
48
|
+
currentRootUrl?: string;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export declare const SpaceArchiveFileStructure: {
|
|
52
|
+
readonly metadata: "metadata.json";
|
|
53
|
+
readonly documents: "documents";
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=space-archive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space-archive.d.ts","sourceRoot":"","sources":["../../../src/space-archive.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;;;;;;GASG;AAEH;;;GAGG;AACH,oBAAY,mBAAmB;IAC7B,EAAE,IAAI;CACP;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,mBAAmB,CAAC;IAE7B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB;;OAEG;IACH,IAAI,CAAC,EAAE;QACL;;;WAGG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
/**
|
|
5
|
+
* Space archive is a way to export and import spaces.
|
|
6
|
+
*
|
|
7
|
+
* ## Structure
|
|
8
|
+
*
|
|
9
|
+
* A tar archive with files:
|
|
10
|
+
* - metadata.json -- JSON-encoded {@link SpaceArchiveMetadata} file.
|
|
11
|
+
* - documents
|
|
12
|
+
* - <document-id>.bin -- Automerge document.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Space archive version.
|
|
16
|
+
* Used to track changes to the archive format.
|
|
17
|
+
*/
|
|
18
|
+
export var SpaceArchiveVersion;
|
|
19
|
+
(function (SpaceArchiveVersion) {
|
|
20
|
+
SpaceArchiveVersion[SpaceArchiveVersion["V1"] = 1] = "V1";
|
|
21
|
+
})(SpaceArchiveVersion || (SpaceArchiveVersion = {}));
|
|
22
|
+
export const SpaceArchiveFileStructure = {
|
|
23
|
+
metadata: 'metadata.json',
|
|
24
|
+
documents: 'documents',
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=space-archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space-archive.js","sourceRoot":"","sources":["../../../src/space-archive.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAIF;;;;;;;;;GASG;AAEH;;;GAGG;AACH,MAAM,CAAN,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,yDAAM,CAAA;AACR,CAAC,EAFW,mBAAmB,KAAnB,mBAAmB,QAE9B;AAuCD,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,QAAQ,EAAE,eAAe;IACzB,SAAS,EAAE,WAAW;CACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/protocols",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1-main.013e445",
|
|
4
4
|
"description": "Protobuf definitions for DXOS protocols.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -72,16 +72,20 @@
|
|
|
72
72
|
],
|
|
73
73
|
"dependencies": {
|
|
74
74
|
"@bufbuild/protobuf": "^2.1.0",
|
|
75
|
-
"@dxos/
|
|
76
|
-
"@dxos/
|
|
77
|
-
"@dxos/
|
|
78
|
-
"@dxos/timeframe": "0.8.
|
|
79
|
-
"@dxos/
|
|
80
|
-
"@dxos/
|
|
75
|
+
"@dxos/codec-protobuf": "0.8.1-main.013e445",
|
|
76
|
+
"@dxos/keys": "0.8.1-main.013e445",
|
|
77
|
+
"@dxos/invariant": "0.8.1-main.013e445",
|
|
78
|
+
"@dxos/timeframe": "0.8.1-main.013e445",
|
|
79
|
+
"@dxos/util": "0.8.1-main.013e445",
|
|
80
|
+
"@dxos/effect": "0.8.1-main.013e445"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@bufbuild/buf": "^1.43.0",
|
|
84
|
-
"@bufbuild/protoc-gen-es": "^2.1.0"
|
|
84
|
+
"@bufbuild/protoc-gen-es": "^2.1.0",
|
|
85
|
+
"effect": "3.13.3"
|
|
86
|
+
},
|
|
87
|
+
"peerDependencies": {
|
|
88
|
+
"effect": "^3.13.3"
|
|
85
89
|
},
|
|
86
90
|
"publishConfig": {
|
|
87
91
|
"access": "public"
|
|
@@ -24,7 +24,7 @@ import type { TimeframeVector } from "../echo/timeframe_pb.js";
|
|
|
24
24
|
import { file_dxos_echo_timeframe } from "../echo/timeframe_pb.js";
|
|
25
25
|
import type { PeerSchema, SwarmResponseSchema } from "../edge/messenger_pb.js";
|
|
26
26
|
import { file_dxos_edge_messenger } from "../edge/messenger_pb.js";
|
|
27
|
-
import type { JoinRequestSchema, LeaveRequestSchema, MessageSchema } from "../edge/signal_pb.js";
|
|
27
|
+
import type { JoinRequestSchema, LeaveRequestSchema, MessageSchema, QueryRequestSchema } from "../edge/signal_pb.js";
|
|
28
28
|
import { file_dxos_edge_signal } from "../edge/signal_pb.js";
|
|
29
29
|
import type { Error } from "../error_pb.js";
|
|
30
30
|
import { file_dxos_error } from "../error_pb.js";
|
|
@@ -45,7 +45,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
|
45
45
|
* Describes the file dxos/client/services.proto.
|
|
46
46
|
*/
|
|
47
47
|
export const file_dxos_client_services: GenFile = /*@__PURE__*/
|
|
48
|
-
fileDesc("ChpkeG9zL2NsaWVudC9zZXJ2aWNlcy5wcm90bxIUZHhvcy5jbGllbnQuc2VydmljZXMiSQoTVXBkYXRlU3RhdHVzUmVxdWVzdBIyCgZzdGF0dXMYASABKA4yIi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TeXN0ZW1TdGF0dXMiOAoSUXVlcnlTdGF0dXNSZXF1ZXN0EhUKCGludGVydmFsGAEgASgFSACIAQFCCwoJX2ludGVydmFsIkkKE1F1ZXJ5U3RhdHVzUmVzcG9uc2USMgoGc3RhdHVzGAEgASgOMiIuZHhvcy5jbGllbnQuc2VydmljZXMuU3lzdGVtU3RhdHVzIp8BChVHZXREaWFnbm9zdGljc1JlcXVlc3QSSQoEa2V5cxgBIAEoDjI2LmR4b3MuY2xpZW50LnNlcnZpY2VzLkdldERpYWdub3N0aWNzUmVxdWVzdC5LRVlfT1BUSU9OSACIAQEiMgoKS0VZX09QVElPThIICgROT05FEAASDAoIVFJVTkNBVEUQARIMCghIVU1BTklaRRACQgcKBV9rZXlzInUKFkdldERpYWdub3N0aWNzUmVzcG9uc2USLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgtkaWFnbm9zdGljcxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi5AIKCFBsYXRmb3JtEjoKBHR5cGUYASABKA4yLC5keG9zLmNsaWVudC5zZXJ2aWNlcy5QbGF0Zm9ybS5QTEFURk9STV9UWVBFEhcKCnVzZXJfYWdlbnQYAiABKAlIAIgBARIVCghwbGF0Zm9ybRgDIAEoCUgBiAEBEhEKBGFyY2gYBCABKAlIAogBARIUCgdydW50aW1lGAUgASgJSAOIAQESEwoGdXB0aW1lGAYgASgNSASIAQESLAoGbWVtb3J5GAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBIjkKDVBMQVRGT1JNX1RZUEUSCwoHQlJPV1NFUhAAEhEKDVNIQVJFRF9XT1JLRVIQARIICgROT0RFEAJCDQoLX3VzZXJfYWdlbnRCCwoJX3BsYXRmb3JtQgcKBV9hcmNoQgoKCF9ydW50aW1lQgkKB191cHRpbWVCCQoHX21lbW9yeSLJAQoISWRlbnRpdHkSCwoDZGlkGAQgASgJEioKDGlkZW50aXR5X2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSLAoJc3BhY2Vfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleUgAiAEBEjwKB3Byb2ZpbGUYAyABKAsyJi5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJvZmlsZURvY3VtZW50SAGIAQFCDAoKX3NwYWNlX2tleUIKCghfcHJvZmlsZSKPAQogUmVxdWVzdFJlY292ZXJ5Q2hhbGxlbmdlUmVzcG9uc2USKAoKZGV2aWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSLgoQY29udHJvbF9mZWVkX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSEQoJY2hhbGxlbmdlGAMgASgJIqkDChZSZWNvdmVySWRlbnRpdHlSZXF1ZXN0EhcKDXJlY292ZXJ5X2NvZGUYASABKAlIABJSCghleHRlcm5hbBgCIAEoCzI+LmR4b3MuY2xpZW50LnNlcnZpY2VzLlJlY292ZXJJZGVudGl0eVJlcXVlc3QuRXh0ZXJuYWxTaWduYXR1cmVIABqWAgoRRXh0ZXJuYWxTaWduYXR1cmUSKAoKbG9va3VwX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSKAoKZGV2aWNlX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSLgoQY29udHJvbF9mZWVkX2tleRgDIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSEQoJc2lnbmF0dXJlGAQgASgMEh0KEGNsaWVudF9kYXRhX2pzb24YBSABKAxIAIgBARIfChJhdXRoZW50aWNhdG9yX2RhdGEYBiABKAxIAYgBAUITChFfY2xpZW50X2RhdGFfanNvbkIVChNfYXV0aGVudGljYXRvcl9kYXRhQgkKB3JlcXVlc3QigQEKFlJlY292ZXJ5Q3JlZGVudGlhbERhdGESKgoMcmVjb3Zlcnlfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgpsb29rdXBfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIRCglhbGdvcml0aG0YAyABKAkiawofQ3JlYXRlUmVjb3ZlcnlDcmVkZW50aWFsUmVxdWVzdBI/CgRkYXRhGAEgASgLMiwuZHhvcy5jbGllbnQuc2VydmljZXMuUmVjb3ZlcnlDcmVkZW50aWFsRGF0YUgAiAEBQgcKBV9kYXRhIlAKIENyZWF0ZVJlY292ZXJ5Q3JlZGVudGlhbFJlc3BvbnNlEhoKDXJlY292ZXJ5X2NvZGUYASABKAlIAIgBAUIQCg5fcmVjb3ZlcnlfY29kZSJbChVRdWVyeUlkZW50aXR5UmVzcG9uc2USNQoIaWRlbnRpdHkYASABKAsyHi5keG9zLmNsaWVudC5zZXJ2aWNlcy5JZGVudGl0eUgAiAEBQgsKCV9pZGVudGl0eSJyChdTaWduUHJlc2VudGF0aW9uUmVxdWVzdBI5CgxwcmVzZW50YXRpb24YASABKAsyIy5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJlc2VudGF0aW9uEhIKBW5vbmNlGAIgASgMSACIAQFCCAoGX25vbmNlIsUBChVDcmVhdGVJZGVudGl0eVJlcXVlc3QSPAoHcHJvZmlsZRgBIAEoCzImLmR4b3MuaGFsby5jcmVkZW50aWFscy5Qcm9maWxlRG9jdW1lbnRIAIgBARJJCg5kZXZpY2VfcHJvZmlsZRgDIAEoCzIsLmR4b3MuaGFsby5jcmVkZW50aWFscy5EZXZpY2VQcm9maWxlRG9jdW1lbnRIAYgBAUIKCghfcHJvZmlsZUIRCg9fZGV2aWNlX3Byb2ZpbGVKBAgCEAMipwIKBkRldmljZRIoCgpkZXZpY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIuCgRraW5kGAIgASgOMiAuZHhvcy5jbGllbnQuc2VydmljZXMuRGV2aWNlS2luZBJCCgdwcm9maWxlGAMgASgLMiwuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkRldmljZVByb2ZpbGVEb2N1bWVudEgAiAEBEjwKCHByZXNlbmNlGAQgASgOMiouZHhvcy5jbGllbnQuc2VydmljZXMuRGV2aWNlLlByZXNlbmNlU3RhdGUiNQoNUHJlc2VuY2VTdGF0ZRILCgdPRkZMSU5FEAASCgoGT05MSU5FEAESCwoHUkVNT1ZFRBACQgoKCF9wcm9maWxlIkUKFFF1ZXJ5RGV2aWNlc1Jlc3BvbnNlEi0KB2RldmljZXMYASADKAsyHC5keG9zLmNsaWVudC5zZXJ2aWNlcy5EZXZpY2UiqgEKB0NvbnRhY3QSKQoLaWRlbnRpdHlLZXkYAiABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EjwKB3Byb2ZpbGUYASABKAsyJi5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJvZmlsZURvY3VtZW50SACIAQESKgoMY29tbW9uU3BhY2VzGAMgAygLMhQuZHhvcy5rZXlzLlB1YmxpY0tleUIKCghfcHJvZmlsZSI+CgtDb250YWN0Qm9vaxIvCghjb250YWN0cxgBIAMoCzIdLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbnRhY3QilgIKC1NwYWNlTWVtYmVyEjAKCGlkZW50aXR5GAEgASgLMh4uZHhvcy5jbGllbnQuc2VydmljZXMuSWRlbnRpdHkSQQoIcHJlc2VuY2UYAiABKA4yLy5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZU1lbWJlci5QcmVzZW5jZVN0YXRlEjEKCnBlZXJTdGF0ZXMYAyADKAsyHS5keG9zLm1lc2gucHJlc2VuY2UuUGVlclN0YXRlEjUKBHJvbGUYBCABKA4yJy5keG9zLmhhbG8uY3JlZGVudGlhbHMuU3BhY2VNZW1iZXIuUm9sZSIoCg1QcmVzZW5jZVN0YXRlEgsKB09GRkxJTkUQABIKCgZPTkxJTkUQASLmEgoFU3BhY2USCgoCaWQYBSABKAkSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIvCgVzdGF0ZRgCIAEoDjIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlU3RhdGUSQAoIcGlwZWxpbmUYAyABKAsyKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZS5QaXBlbGluZVN0YXRlSACIAQESJQoFZXJyb3IYBCABKAsyES5keG9zLmVycm9yLkVycm9ySAGIAQESSQoQZWRnZV9yZXBsaWNhdGlvbhgGIAEoDjIqLmR4b3MuZWNoby5tZXRhZGF0YS5FZGdlUmVwbGljYXRpb25TZXR0aW5nSAKIAQESMgoHbWVtYmVycxgKIAMoCzIhLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlTWVtYmVyEioKB2NyZWF0b3IYCyABKAsyFC5keG9zLmtleXMuUHVibGljS2V5SAOIAQESMgoFY2FjaGUYFCABKAsyHi5keG9zLmVjaG8ubWV0YWRhdGEuU3BhY2VDYWNoZUgEiAEBEjQKB21ldHJpY3MYFSABKAsyIy5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZS5NZXRyaWNzGtcDCgdNZXRyaWNzEi0KBG9wZW4YASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESPAoTcGlwZWxpbmVfaW5pdF9iZWdpbhgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI/ChZjb250cm9sX3BpcGVsaW5lX3JlYWR5GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjsKEmRhdGFfcGlwZWxpbmVfb3BlbhgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI8ChNkYXRhX3BpcGVsaW5lX3JlYWR5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEi4KBXJlYWR5GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQgcKBV9vcGVuQhYKFF9waXBlbGluZV9pbml0X2JlZ2luQhkKF19jb250cm9sX3BpcGVsaW5lX3JlYWR5QhUKE19kYXRhX3BpcGVsaW5lX29wZW5CFgoUX2RhdGFfcGlwZWxpbmVfcmVhZHlCCAoGX3JlYWR5GtwKCg1QaXBlbGluZVN0YXRlEjMKEGNvbnRyb2xfZmVlZF9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5SACIAQESMAoNZGF0YV9mZWVkX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXlIAYgBARIrCg1jb250cm9sX2ZlZWRzGBIgAygLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgpkYXRhX2ZlZWRzGBMgAygLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRI9Cg1jdXJyZW50X2Vwb2NoGBQgASgLMiEuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkNyZWRlbnRpYWxIAogBARI9Cg1hcHBsaWVkX2Vwb2NoGBUgASgLMiEuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkNyZWRlbnRpYWxIA4gBARJMChljdXJyZW50X2NvbnRyb2xfdGltZWZyYW1lGAogASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIBIgBARJLChh0YXJnZXRfY29udHJvbF90aW1lZnJhbWUYCyABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgFiAEBEkoKF3RvdGFsX2NvbnRyb2xfdGltZWZyYW1lGA4gASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIBogBARJKChdrbm93bl9jb250cm9sX3RpbWVmcmFtZRgPIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAeIAQESRwoUc3RhcnRfZGF0YV90aW1lZnJhbWUYZCABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgIiAEBEkkKFmN1cnJlbnRfZGF0YV90aW1lZnJhbWUYDCABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgJiAEBEkgKFXRhcmdldF9kYXRhX3RpbWVmcmFtZRgNIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAqIAQESRwoUdG90YWxfZGF0YV90aW1lZnJhbWUYECABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgLiAEBEkcKFGtub3duX2RhdGFfdGltZWZyYW1lGBEgASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIDIgBARIbCg5zcGFjZV9yb290X3VybBgWIAEoCUgNiAEBQhMKEV9jb250cm9sX2ZlZWRfa2V5QhAKDl9kYXRhX2ZlZWRfa2V5QhAKDl9jdXJyZW50X2Vwb2NoQhAKDl9hcHBsaWVkX2Vwb2NoQhwKGl9jdXJyZW50X2NvbnRyb2xfdGltZWZyYW1lQhsKGV90YXJnZXRfY29udHJvbF90aW1lZnJhbWVCGgoYX3RvdGFsX2NvbnRyb2xfdGltZWZyYW1lQhoKGF9rbm93bl9jb250cm9sX3RpbWVmcmFtZUIXChVfc3RhcnRfZGF0YV90aW1lZnJhbWVCGQoXX2N1cnJlbnRfZGF0YV90aW1lZnJhbWVCGAoWX3RhcmdldF9kYXRhX3RpbWVmcmFtZUIXChVfdG90YWxfZGF0YV90aW1lZnJhbWVCFwoVX2tub3duX2RhdGFfdGltZWZyYW1lQhEKD19zcGFjZV9yb290X3VybEILCglfcGlwZWxpbmVCCAoGX2Vycm9yQhMKEV9lZGdlX3JlcGxpY2F0aW9uQgoKCF9jcmVhdG9yQggKBl9jYWNoZSLdAQoSVXBkYXRlU3BhY2VSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSNAoFc3RhdGUYAiABKA4yIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZVN0YXRlSACIAQESSQoQZWRnZV9yZXBsaWNhdGlvbhgDIAEoDjIqLmR4b3MuZWNoby5tZXRhZGF0YS5FZGdlUmVwbGljYXRpb25TZXR0aW5nSAGIAQFCCAoGX3N0YXRlQhMKEV9lZGdlX3JlcGxpY2F0aW9uIkIKE1F1ZXJ5U3BhY2VzUmVzcG9uc2USKwoGc3BhY2VzGAEgAygLMhsuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2UidQoSUG9zdE1lc3NhZ2VSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSDwoHY2hhbm5lbBgCIAEoCRIlCgdtZXNzYWdlGAMgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueSJUChhTdWJzY3JpYmVNZXNzYWdlc1JlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIPCgdjaGFubmVsGAIgASgJInoKF1dyaXRlQ3JlZGVudGlhbHNSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSNgoLY3JlZGVudGlhbHMYAiADKAsyIS5keG9zLmhhbG8uY3JlZGVudGlhbHMuQ3JlZGVudGlhbCJkChdRdWVyeUNyZWRlbnRpYWxzUmVxdWVzdBInCglzcGFjZV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EhQKB25vX3RhaWwYAiABKAhIAIgBAUIKCghfbm9fdGFpbCL1AgoSQ3JlYXRlRXBvY2hSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSSgoJbWlncmF0aW9uGAIgASgOMjIuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlRXBvY2hSZXF1ZXN0Lk1pZ3JhdGlvbkgAiAEBEh8KEmF1dG9tZXJnZV9yb290X3VybBgDIAEoCUgBiAEBIqMBCglNaWdyYXRpb24SCAoETk9ORRAAEhIKDklOSVRfQVVUT01FUkdFEAESIAocUFJVTkVfQVVUT01FUkdFX1JPT1RfSElTVE9SWRACEhsKF0ZSQUdNRU5UX0FVVE9NRVJHRV9ST09UEAMSGgoWUkVQTEFDRV9BVVRPTUVSR0VfUk9PVBAEEh0KGU1JR1JBVEVfUkVGRVJFTkNFU19UT19EWE4QBUIMCgpfbWlncmF0aW9uQhUKE19hdXRvbWVyZ2Vfcm9vdF91cmwiyAEKE0NyZWF0ZUVwb2NoUmVzcG9uc2USQAoQZXBvY2hfY3JlZGVudGlhbBgBIAEoCzIhLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsSACIAQESRAoRY29udHJvbF90aW1lZnJhbWUYAiABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgBiAEBQhMKEV9lcG9jaF9jcmVkZW50aWFsQhQKEl9jb250cm9sX3RpbWVmcmFtZSKnAQoXVXBkYXRlTWVtYmVyUm9sZVJlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgptZW1iZXJfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRI5CghuZXdfcm9sZRgDIAEoDjInLmR4b3MuaGFsby5jcmVkZW50aWFscy5TcGFjZU1lbWJlci5Sb2xlIqUBChNBZG1pdENvbnRhY3RSZXF1ZXN0Ei4KB2NvbnRhY3QYASABKAsyHS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Db250YWN0EjUKBHJvbGUYAiABKA4yJy5keG9zLmhhbG8uY3JlZGVudGlhbHMuU3BhY2VNZW1iZXIuUm9sZRInCglzcGFjZV9rZXkYAyABKAsyFC5keG9zLmtleXMuUHVibGljS2V5IkkKEENvbnRhY3RBZG1pc3Npb24SNQoKY3JlZGVudGlhbBgBIAEoCzIhLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsIj8KEUpvaW5TcGFjZVJlc3BvbnNlEioKBXNwYWNlGAEgASgLMhsuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2UiQAoVSm9pbkJ5U3BhY2VLZXlSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkirQEKF0FjY2VwdEludml0YXRpb25SZXF1ZXN0EjQKCmludml0YXRpb24YASABKAsyIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uEkkKDmRldmljZV9wcm9maWxlGAIgASgLMiwuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkRldmljZVByb2ZpbGVEb2N1bWVudEgAiAEBQhEKD19kZXZpY2VfcHJvZmlsZSJBChVBdXRoZW50aWNhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCRIRCglhdXRoX2NvZGUYAiABKAkiMAoXQ2FuY2VsSW52aXRhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCSKFAQoQSW52aXRhdGlvbk1ldGhvZBIzCgdjcmVhdGVkGAEgASgLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbkgAEjQKCGFjY2VwdGVkGAIgASgLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbkgAQgYKBGtpbmQi4gIKGFF1ZXJ5SW52aXRhdGlvbnNSZXNwb25zZRJFCgZhY3Rpb24YASABKA4yNS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUludml0YXRpb25zUmVzcG9uc2UuQWN0aW9uEkEKBHR5cGUYAiABKA4yMy5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUludml0YXRpb25zUmVzcG9uc2UuVHlwZRI1CgtpbnZpdGF0aW9ucxgDIAMoCzIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLkludml0YXRpb24SFQoIZXhpc3RpbmcYBCABKAhIAIgBASI+CgZBY3Rpb24SCQoFQURERUQQABILCgdSRU1PVkVEEAESCQoFU0FWRUQQAhIRCg1MT0FEX0NPTVBMRVRFEAMiIQoEVHlwZRILCgdDUkVBVEVEEAASDAoIQUNDRVBURUQQAUILCglfZXhpc3RpbmciWgohTG9hZFBlcnNpc3RlbnRJbnZpdGF0aW9uc1Jlc3BvbnNlEjUKC2ludml0YXRpb25zGAEgAygLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbiKFAgoNTmV0d29ya1N0YXR1cxI0CgVzd2FybRgBIAEoDjIlLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbm5lY3Rpb25TdGF0ZRI9CglzaWduYWxpbmcYAiADKAsyKi5keG9zLmNsaWVudC5zZXJ2aWNlcy5OZXR3b3JrU3RhdHVzLlNpZ25hbBI3Cg9jb25uZWN0aW9uX2luZm8YAyADKAsyHi5keG9zLmRldnRvb2xzLnN3YXJtLlN3YXJtSW5mbxpGCgZTaWduYWwSDgoGc2VydmVyGAEgASgJEiwKBXN0YXRlGAIgASgOMh0uZHhvcy5tZXNoLnNpZ25hbC5TaWduYWxTdGF0ZSJLChNVcGRhdGVDb25maWdSZXF1ZXN0EjQKBXN3YXJtGAEgASgOMiUuZHhvcy5jbGllbnQuc2VydmljZXMuQ29ubmVjdGlvblN0YXRlIkEKGlN1YnNjcmliZVN3YXJtU3RhdGVSZXF1ZXN0EiMKBXRvcGljGAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleSKTAQoXUXVlcnlFZGdlU3RhdHVzUmVzcG9uc2USSAoGc3RhdHVzGAEgASgOMjguZHhvcy5jbGllbnQuc2VydmljZXMuUXVlcnlFZGdlU3RhdHVzUmVzcG9uc2UuRWRnZVN0YXR1cyIuCgpFZGdlU3RhdHVzEhEKDU5PVF9DT05ORUNURUQQABINCglDT05ORUNURUQQASKrAQoYUXVlcnlBZ2VudFN0YXR1c1Jlc3BvbnNlEkoKBnN0YXR1cxgBIAEoDjI6LmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5QWdlbnRTdGF0dXNSZXNwb25zZS5BZ2VudFN0YXR1cyJDCgtBZ2VudFN0YXR1cxILCgdVTktOT1dOEAASCgoGQUNUSVZFEAESDAoISU5BQ1RJVkUQAhINCglOT1RfRk9VTkQQAyooCgxTeXN0ZW1TdGF0dXMSDAoISU5BQ1RJVkUQABIKCgZBQ1RJVkUQASomCgpEZXZpY2VLaW5kEgsKB0NVUlJFTlQQABILCgdUUlVTVEVEEAEqKgoPQ29ubmVjdGlvblN0YXRlEgsKB09GRkxJTkUQABIKCgZPTkxJTkUQATLvAwoNU3lzdGVtU2VydmljZRI4CglHZXRDb25maWcSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy5keG9zLmNvbmZpZy5Db25maWcSawoOR2V0RGlhZ25vc3RpY3MSKy5keG9zLmNsaWVudC5zZXJ2aWNlcy5HZXREaWFnbm9zdGljc1JlcXVlc3QaLC5keG9zLmNsaWVudC5zZXJ2aWNlcy5HZXREaWFnbm9zdGljc1Jlc3BvbnNlElEKDFVwZGF0ZVN0YXR1cxIpLmR4b3MuY2xpZW50LnNlcnZpY2VzLlVwZGF0ZVN0YXR1c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSZAoLUXVlcnlTdGF0dXMSKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeVN0YXR1c1JlcXVlc3QaKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeVN0YXR1c1Jlc3BvbnNlMAESNwoFUmVzZXQSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRQoLR2V0UGxhdGZvcm0SFi5nb29nbGUucHJvdG9idWYuRW1wdHkaHi5keG9zLmNsaWVudC5zZXJ2aWNlcy5QbGF0Zm9ybTK1BgoPSWRlbnRpdHlTZXJ2aWNlEl0KDkNyZWF0ZUlkZW50aXR5EisuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlSWRlbnRpdHlSZXF1ZXN0Gh4uZHhvcy5jbGllbnQuc2VydmljZXMuSWRlbnRpdHkSagoYUmVxdWVzdFJlY292ZXJ5Q2hhbGxlbmdlEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GjYuZHhvcy5jbGllbnQuc2VydmljZXMuUmVxdWVzdFJlY292ZXJ5Q2hhbGxlbmdlUmVzcG9uc2USXwoPUmVjb3ZlcklkZW50aXR5EiwuZHhvcy5jbGllbnQuc2VydmljZXMuUmVjb3ZlcklkZW50aXR5UmVxdWVzdBoeLmR4b3MuY2xpZW50LnNlcnZpY2VzLklkZW50aXR5EokBChhDcmVhdGVSZWNvdmVyeUNyZWRlbnRpYWwSNS5keG9zLmNsaWVudC5zZXJ2aWNlcy5DcmVhdGVSZWNvdmVyeUNyZWRlbnRpYWxSZXF1ZXN0GjYuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlUmVjb3ZlcnlDcmVkZW50aWFsUmVzcG9uc2USVgoNUXVlcnlJZGVudGl0eRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRorLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5SWRlbnRpdHlSZXNwb25zZTABElcKDVVwZGF0ZVByb2ZpbGUSJi5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJvZmlsZURvY3VtZW50Gh4uZHhvcy5jbGllbnQuc2VydmljZXMuSWRlbnRpdHkSZgoQU2lnblByZXNlbnRhdGlvbhItLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNpZ25QcmVzZW50YXRpb25SZXF1ZXN0GiMuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLlByZXNlbnRhdGlvbhJRChRDcmVhdGVBdXRoQ3JlZGVudGlhbBIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRohLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsMsIBCg5EZXZpY2VzU2VydmljZRJaCgxVcGRhdGVEZXZpY2USLC5keG9zLmhhbG8uY3JlZGVudGlhbHMuRGV2aWNlUHJvZmlsZURvY3VtZW50GhwuZHhvcy5jbGllbnQuc2VydmljZXMuRGV2aWNlElQKDFF1ZXJ5RGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoqLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5RGV2aWNlc1Jlc3BvbnNlMAEyqQEKD0NvbnRhY3RzU2VydmljZRJICgtHZXRDb250YWN0cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRohLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbnRhY3RCb29rEkwKDVF1ZXJ5Q29udGFjdHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaIS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Db250YWN0Qm9vazABMvcHCg1TcGFjZXNTZXJ2aWNlEkIKC0NyZWF0ZVNwYWNlEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhsuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2USTwoLVXBkYXRlU3BhY2USKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5VcGRhdGVTcGFjZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUgoLUXVlcnlTcGFjZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeVNwYWNlc1Jlc3BvbnNlMAESWQoQVXBkYXRlTWVtYmVyUm9sZRItLmR4b3MuY2xpZW50LnNlcnZpY2VzLlVwZGF0ZU1lbWJlclJvbGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElEKDEFkbWl0Q29udGFjdBIpLmR4b3MuY2xpZW50LnNlcnZpY2VzLkFkbWl0Q29udGFjdFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSZgoOSm9pbkJ5U3BhY2VLZXkSKy5keG9zLmNsaWVudC5zZXJ2aWNlcy5Kb2luQnlTcGFjZUtleVJlcXVlc3QaJy5keG9zLmNsaWVudC5zZXJ2aWNlcy5Kb2luU3BhY2VSZXNwb25zZRJPCgtQb3N0TWVzc2FnZRIoLmR4b3MuY2xpZW50LnNlcnZpY2VzLlBvc3RNZXNzYWdlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJvChFTdWJzY3JpYmVNZXNzYWdlcxIuLmR4b3MuY2xpZW50LnNlcnZpY2VzLlN1YnNjcmliZU1lc3NhZ2VzUmVxdWVzdBooLmR4b3MubWVzaC50ZWxlcG9ydC5nb3NzaXAuR29zc2lwTWVzc2FnZTABElkKEFdyaXRlQ3JlZGVudGlhbHMSLS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Xcml0ZUNyZWRlbnRpYWxzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJmChBRdWVyeUNyZWRlbnRpYWxzEi0uZHhvcy5jbGllbnQuc2VydmljZXMuUXVlcnlDcmVkZW50aWFsc1JlcXVlc3QaIS5keG9zLmhhbG8uY3JlZGVudGlhbHMuQ3JlZGVudGlhbDABEmIKC0NyZWF0ZUVwb2NoEiguZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlRXBvY2hSZXF1ZXN0GikuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlRXBvY2hSZXNwb25zZTLjAwoSSW52aXRhdGlvbnNTZXJ2aWNlElgKEENyZWF0ZUludml0YXRpb24SIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uGiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbjABEmUKEEFjY2VwdEludml0YXRpb24SLS5keG9zLmNsaWVudC5zZXJ2aWNlcy5BY2NlcHRJbnZpdGF0aW9uUmVxdWVzdBogLmR4b3MuY2xpZW50LnNlcnZpY2VzLkludml0YXRpb24wARJTCgxBdXRoZW50aWNhdGUSKy5keG9zLmNsaWVudC5zZXJ2aWNlcy5BdXRoZW50aWNhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSWQoQQ2FuY2VsSW52aXRhdGlvbhItLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNhbmNlbEludml0YXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElwKEFF1ZXJ5SW52aXRhdGlvbnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaLi5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUludml0YXRpb25zUmVzcG9uc2UwATK5BAoOTmV0d29ya1NlcnZpY2USUQoMVXBkYXRlQ29uZmlnEikuZHhvcy5jbGllbnQuc2VydmljZXMuVXBkYXRlQ29uZmlnUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCgtRdWVyeVN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRojLmR4b3MuY2xpZW50LnNlcnZpY2VzLk5ldHdvcmtTdGF0dXMwARJCCglKb2luU3dhcm0SHS5keG9zLmVkZ2Uuc2lnbmFsLkpvaW5SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKCkxlYXZlU3dhcm0SHi5keG9zLmVkZ2Uuc2lnbmFsLkxlYXZlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJtChNTdWJzY3JpYmVTd2FybVN0YXRlEjAuZHhvcy5jbGllbnQuc2VydmljZXMuU3Vic2NyaWJlU3dhcm1TdGF0ZVJlcXVlc3QaIi5keG9zLmVkZ2UubWVzc2VuZ2VyLlN3YXJtUmVzcG9uc2UwARJACgtTZW5kTWVzc2FnZRIZLmR4b3MuZWRnZS5zaWduYWwuTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJLChFTdWJzY3JpYmVNZXNzYWdlcxIZLmR4b3MuZWRnZS5tZXNzZW5nZXIuUGVlchoZLmR4b3MuZWRnZS5zaWduYWwuTWVzc2FnZTABMosCChBFZGdlQWdlbnRTZXJ2aWNlEloKD1F1ZXJ5RWRnZVN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRotLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5RWRnZVN0YXR1c1Jlc3BvbnNlMAESPQoLQ3JlYXRlQWdlbnQSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSXAoQUXVlcnlBZ2VudFN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRouLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5QWdlbnRTdGF0dXNSZXNwb25zZTABYgZwcm90bzM", [file_google_protobuf_any, file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp, file_dxos_client_invitation, file_dxos_config, file_dxos_devtools_swarm, file_dxos_echo_metadata, file_dxos_echo_timeframe, file_dxos_edge_messenger, file_dxos_edge_signal, file_dxos_error, file_dxos_halo_credentials, file_dxos_keys, file_dxos_mesh_signal, file_dxos_mesh_presence, file_dxos_mesh_teleport_gossip, file_dxos_value]);
|
|
48
|
+
fileDesc("ChpkeG9zL2NsaWVudC9zZXJ2aWNlcy5wcm90bxIUZHhvcy5jbGllbnQuc2VydmljZXMiSQoTVXBkYXRlU3RhdHVzUmVxdWVzdBIyCgZzdGF0dXMYASABKA4yIi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TeXN0ZW1TdGF0dXMiOAoSUXVlcnlTdGF0dXNSZXF1ZXN0EhUKCGludGVydmFsGAEgASgFSACIAQFCCwoJX2ludGVydmFsIkkKE1F1ZXJ5U3RhdHVzUmVzcG9uc2USMgoGc3RhdHVzGAEgASgOMiIuZHhvcy5jbGllbnQuc2VydmljZXMuU3lzdGVtU3RhdHVzIp8BChVHZXREaWFnbm9zdGljc1JlcXVlc3QSSQoEa2V5cxgBIAEoDjI2LmR4b3MuY2xpZW50LnNlcnZpY2VzLkdldERpYWdub3N0aWNzUmVxdWVzdC5LRVlfT1BUSU9OSACIAQEiMgoKS0VZX09QVElPThIICgROT05FEAASDAoIVFJVTkNBVEUQARIMCghIVU1BTklaRRACQgcKBV9rZXlzInUKFkdldERpYWdub3N0aWNzUmVzcG9uc2USLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgtkaWFnbm9zdGljcxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi5AIKCFBsYXRmb3JtEjoKBHR5cGUYASABKA4yLC5keG9zLmNsaWVudC5zZXJ2aWNlcy5QbGF0Zm9ybS5QTEFURk9STV9UWVBFEhcKCnVzZXJfYWdlbnQYAiABKAlIAIgBARIVCghwbGF0Zm9ybRgDIAEoCUgBiAEBEhEKBGFyY2gYBCABKAlIAogBARIUCgdydW50aW1lGAUgASgJSAOIAQESEwoGdXB0aW1lGAYgASgNSASIAQESLAoGbWVtb3J5GAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBIjkKDVBMQVRGT1JNX1RZUEUSCwoHQlJPV1NFUhAAEhEKDVNIQVJFRF9XT1JLRVIQARIICgROT0RFEAJCDQoLX3VzZXJfYWdlbnRCCwoJX3BsYXRmb3JtQgcKBV9hcmNoQgoKCF9ydW50aW1lQgkKB191cHRpbWVCCQoHX21lbW9yeSLJAQoISWRlbnRpdHkSCwoDZGlkGAQgASgJEioKDGlkZW50aXR5X2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSLAoJc3BhY2Vfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleUgAiAEBEjwKB3Byb2ZpbGUYAyABKAsyJi5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJvZmlsZURvY3VtZW50SAGIAQFCDAoKX3NwYWNlX2tleUIKCghfcHJvZmlsZSKPAQogUmVxdWVzdFJlY292ZXJ5Q2hhbGxlbmdlUmVzcG9uc2USKAoKZGV2aWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSLgoQY29udHJvbF9mZWVkX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSEQoJY2hhbGxlbmdlGAMgASgJIqkDChZSZWNvdmVySWRlbnRpdHlSZXF1ZXN0EhcKDXJlY292ZXJ5X2NvZGUYASABKAlIABJSCghleHRlcm5hbBgCIAEoCzI+LmR4b3MuY2xpZW50LnNlcnZpY2VzLlJlY292ZXJJZGVudGl0eVJlcXVlc3QuRXh0ZXJuYWxTaWduYXR1cmVIABqWAgoRRXh0ZXJuYWxTaWduYXR1cmUSKAoKbG9va3VwX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSKAoKZGV2aWNlX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSLgoQY29udHJvbF9mZWVkX2tleRgDIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSEQoJc2lnbmF0dXJlGAQgASgMEh0KEGNsaWVudF9kYXRhX2pzb24YBSABKAxIAIgBARIfChJhdXRoZW50aWNhdG9yX2RhdGEYBiABKAxIAYgBAUITChFfY2xpZW50X2RhdGFfanNvbkIVChNfYXV0aGVudGljYXRvcl9kYXRhQgkKB3JlcXVlc3QigQEKFlJlY292ZXJ5Q3JlZGVudGlhbERhdGESKgoMcmVjb3Zlcnlfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgpsb29rdXBfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIRCglhbGdvcml0aG0YAyABKAkiawofQ3JlYXRlUmVjb3ZlcnlDcmVkZW50aWFsUmVxdWVzdBI/CgRkYXRhGAEgASgLMiwuZHhvcy5jbGllbnQuc2VydmljZXMuUmVjb3ZlcnlDcmVkZW50aWFsRGF0YUgAiAEBQgcKBV9kYXRhIlAKIENyZWF0ZVJlY292ZXJ5Q3JlZGVudGlhbFJlc3BvbnNlEhoKDXJlY292ZXJ5X2NvZGUYASABKAlIAIgBAUIQCg5fcmVjb3ZlcnlfY29kZSJbChVRdWVyeUlkZW50aXR5UmVzcG9uc2USNQoIaWRlbnRpdHkYASABKAsyHi5keG9zLmNsaWVudC5zZXJ2aWNlcy5JZGVudGl0eUgAiAEBQgsKCV9pZGVudGl0eSJyChdTaWduUHJlc2VudGF0aW9uUmVxdWVzdBI5CgxwcmVzZW50YXRpb24YASABKAsyIy5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJlc2VudGF0aW9uEhIKBW5vbmNlGAIgASgMSACIAQFCCAoGX25vbmNlIsUBChVDcmVhdGVJZGVudGl0eVJlcXVlc3QSPAoHcHJvZmlsZRgBIAEoCzImLmR4b3MuaGFsby5jcmVkZW50aWFscy5Qcm9maWxlRG9jdW1lbnRIAIgBARJJCg5kZXZpY2VfcHJvZmlsZRgDIAEoCzIsLmR4b3MuaGFsby5jcmVkZW50aWFscy5EZXZpY2VQcm9maWxlRG9jdW1lbnRIAYgBAUIKCghfcHJvZmlsZUIRCg9fZGV2aWNlX3Byb2ZpbGVKBAgCEAMipwIKBkRldmljZRIoCgpkZXZpY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIuCgRraW5kGAIgASgOMiAuZHhvcy5jbGllbnQuc2VydmljZXMuRGV2aWNlS2luZBJCCgdwcm9maWxlGAMgASgLMiwuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkRldmljZVByb2ZpbGVEb2N1bWVudEgAiAEBEjwKCHByZXNlbmNlGAQgASgOMiouZHhvcy5jbGllbnQuc2VydmljZXMuRGV2aWNlLlByZXNlbmNlU3RhdGUiNQoNUHJlc2VuY2VTdGF0ZRILCgdPRkZMSU5FEAASCgoGT05MSU5FEAESCwoHUkVNT1ZFRBACQgoKCF9wcm9maWxlIkUKFFF1ZXJ5RGV2aWNlc1Jlc3BvbnNlEi0KB2RldmljZXMYASADKAsyHC5keG9zLmNsaWVudC5zZXJ2aWNlcy5EZXZpY2UiqgEKB0NvbnRhY3QSKQoLaWRlbnRpdHlLZXkYAiABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EjwKB3Byb2ZpbGUYASABKAsyJi5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJvZmlsZURvY3VtZW50SACIAQESKgoMY29tbW9uU3BhY2VzGAMgAygLMhQuZHhvcy5rZXlzLlB1YmxpY0tleUIKCghfcHJvZmlsZSI+CgtDb250YWN0Qm9vaxIvCghjb250YWN0cxgBIAMoCzIdLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbnRhY3QilgIKC1NwYWNlTWVtYmVyEjAKCGlkZW50aXR5GAEgASgLMh4uZHhvcy5jbGllbnQuc2VydmljZXMuSWRlbnRpdHkSQQoIcHJlc2VuY2UYAiABKA4yLy5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZU1lbWJlci5QcmVzZW5jZVN0YXRlEjEKCnBlZXJTdGF0ZXMYAyADKAsyHS5keG9zLm1lc2gucHJlc2VuY2UuUGVlclN0YXRlEjUKBHJvbGUYBCABKA4yJy5keG9zLmhhbG8uY3JlZGVudGlhbHMuU3BhY2VNZW1iZXIuUm9sZSIoCg1QcmVzZW5jZVN0YXRlEgsKB09GRkxJTkUQABIKCgZPTkxJTkUQASLmEgoFU3BhY2USCgoCaWQYBSABKAkSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIvCgVzdGF0ZRgCIAEoDjIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlU3RhdGUSQAoIcGlwZWxpbmUYAyABKAsyKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZS5QaXBlbGluZVN0YXRlSACIAQESJQoFZXJyb3IYBCABKAsyES5keG9zLmVycm9yLkVycm9ySAGIAQESSQoQZWRnZV9yZXBsaWNhdGlvbhgGIAEoDjIqLmR4b3MuZWNoby5tZXRhZGF0YS5FZGdlUmVwbGljYXRpb25TZXR0aW5nSAKIAQESMgoHbWVtYmVycxgKIAMoCzIhLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNwYWNlTWVtYmVyEioKB2NyZWF0b3IYCyABKAsyFC5keG9zLmtleXMuUHVibGljS2V5SAOIAQESMgoFY2FjaGUYFCABKAsyHi5keG9zLmVjaG8ubWV0YWRhdGEuU3BhY2VDYWNoZUgEiAEBEjQKB21ldHJpY3MYFSABKAsyIy5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZS5NZXRyaWNzGtcDCgdNZXRyaWNzEi0KBG9wZW4YASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESPAoTcGlwZWxpbmVfaW5pdF9iZWdpbhgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI/ChZjb250cm9sX3BpcGVsaW5lX3JlYWR5GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjsKEmRhdGFfcGlwZWxpbmVfb3BlbhgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI8ChNkYXRhX3BpcGVsaW5lX3JlYWR5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEi4KBXJlYWR5GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQgcKBV9vcGVuQhYKFF9waXBlbGluZV9pbml0X2JlZ2luQhkKF19jb250cm9sX3BpcGVsaW5lX3JlYWR5QhUKE19kYXRhX3BpcGVsaW5lX29wZW5CFgoUX2RhdGFfcGlwZWxpbmVfcmVhZHlCCAoGX3JlYWR5GtwKCg1QaXBlbGluZVN0YXRlEjMKEGNvbnRyb2xfZmVlZF9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5SACIAQESMAoNZGF0YV9mZWVkX2tleRgCIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXlIAYgBARIrCg1jb250cm9sX2ZlZWRzGBIgAygLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgpkYXRhX2ZlZWRzGBMgAygLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRI9Cg1jdXJyZW50X2Vwb2NoGBQgASgLMiEuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkNyZWRlbnRpYWxIAogBARI9Cg1hcHBsaWVkX2Vwb2NoGBUgASgLMiEuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkNyZWRlbnRpYWxIA4gBARJMChljdXJyZW50X2NvbnRyb2xfdGltZWZyYW1lGAogASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIBIgBARJLChh0YXJnZXRfY29udHJvbF90aW1lZnJhbWUYCyABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgFiAEBEkoKF3RvdGFsX2NvbnRyb2xfdGltZWZyYW1lGA4gASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIBogBARJKChdrbm93bl9jb250cm9sX3RpbWVmcmFtZRgPIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAeIAQESRwoUc3RhcnRfZGF0YV90aW1lZnJhbWUYZCABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgIiAEBEkkKFmN1cnJlbnRfZGF0YV90aW1lZnJhbWUYDCABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgJiAEBEkgKFXRhcmdldF9kYXRhX3RpbWVmcmFtZRgNIAEoCzIkLmR4b3MuZWNoby50aW1lZnJhbWUuVGltZWZyYW1lVmVjdG9ySAqIAQESRwoUdG90YWxfZGF0YV90aW1lZnJhbWUYECABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgLiAEBEkcKFGtub3duX2RhdGFfdGltZWZyYW1lGBEgASgLMiQuZHhvcy5lY2hvLnRpbWVmcmFtZS5UaW1lZnJhbWVWZWN0b3JIDIgBARIbCg5zcGFjZV9yb290X3VybBgWIAEoCUgNiAEBQhMKEV9jb250cm9sX2ZlZWRfa2V5QhAKDl9kYXRhX2ZlZWRfa2V5QhAKDl9jdXJyZW50X2Vwb2NoQhAKDl9hcHBsaWVkX2Vwb2NoQhwKGl9jdXJyZW50X2NvbnRyb2xfdGltZWZyYW1lQhsKGV90YXJnZXRfY29udHJvbF90aW1lZnJhbWVCGgoYX3RvdGFsX2NvbnRyb2xfdGltZWZyYW1lQhoKGF9rbm93bl9jb250cm9sX3RpbWVmcmFtZUIXChVfc3RhcnRfZGF0YV90aW1lZnJhbWVCGQoXX2N1cnJlbnRfZGF0YV90aW1lZnJhbWVCGAoWX3RhcmdldF9kYXRhX3RpbWVmcmFtZUIXChVfdG90YWxfZGF0YV90aW1lZnJhbWVCFwoVX2tub3duX2RhdGFfdGltZWZyYW1lQhEKD19zcGFjZV9yb290X3VybEILCglfcGlwZWxpbmVCCAoGX2Vycm9yQhMKEV9lZGdlX3JlcGxpY2F0aW9uQgoKCF9jcmVhdG9yQggKBl9jYWNoZSLdAQoSVXBkYXRlU3BhY2VSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSNAoFc3RhdGUYAiABKA4yIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZVN0YXRlSACIAQESSQoQZWRnZV9yZXBsaWNhdGlvbhgDIAEoDjIqLmR4b3MuZWNoby5tZXRhZGF0YS5FZGdlUmVwbGljYXRpb25TZXR0aW5nSAGIAQFCCAoGX3N0YXRlQhMKEV9lZGdlX3JlcGxpY2F0aW9uIkIKE1F1ZXJ5U3BhY2VzUmVzcG9uc2USKwoGc3BhY2VzGAEgAygLMhsuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2UidQoSUG9zdE1lc3NhZ2VSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSDwoHY2hhbm5lbBgCIAEoCRIlCgdtZXNzYWdlGAMgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueSJUChhTdWJzY3JpYmVNZXNzYWdlc1JlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIPCgdjaGFubmVsGAIgASgJInoKF1dyaXRlQ3JlZGVudGlhbHNSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSNgoLY3JlZGVudGlhbHMYAiADKAsyIS5keG9zLmhhbG8uY3JlZGVudGlhbHMuQ3JlZGVudGlhbCJkChdRdWVyeUNyZWRlbnRpYWxzUmVxdWVzdBInCglzcGFjZV9rZXkYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EhQKB25vX3RhaWwYAiABKAhIAIgBAUIKCghfbm9fdGFpbCL1AgoSQ3JlYXRlRXBvY2hSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSSgoJbWlncmF0aW9uGAIgASgOMjIuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlRXBvY2hSZXF1ZXN0Lk1pZ3JhdGlvbkgAiAEBEh8KEmF1dG9tZXJnZV9yb290X3VybBgDIAEoCUgBiAEBIqMBCglNaWdyYXRpb24SCAoETk9ORRAAEhIKDklOSVRfQVVUT01FUkdFEAESIAocUFJVTkVfQVVUT01FUkdFX1JPT1RfSElTVE9SWRACEhsKF0ZSQUdNRU5UX0FVVE9NRVJHRV9ST09UEAMSGgoWUkVQTEFDRV9BVVRPTUVSR0VfUk9PVBAEEh0KGU1JR1JBVEVfUkVGRVJFTkNFU19UT19EWE4QBUIMCgpfbWlncmF0aW9uQhUKE19hdXRvbWVyZ2Vfcm9vdF91cmwiyAEKE0NyZWF0ZUVwb2NoUmVzcG9uc2USQAoQZXBvY2hfY3JlZGVudGlhbBgBIAEoCzIhLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsSACIAQESRAoRY29udHJvbF90aW1lZnJhbWUYAiABKAsyJC5keG9zLmVjaG8udGltZWZyYW1lLlRpbWVmcmFtZVZlY3RvckgBiAEBQhMKEV9lcG9jaF9jcmVkZW50aWFsQhQKEl9jb250cm9sX3RpbWVmcmFtZSKnAQoXVXBkYXRlTWVtYmVyUm9sZVJlcXVlc3QSJwoJc3BhY2Vfa2V5GAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRIoCgptZW1iZXJfa2V5GAIgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRI5CghuZXdfcm9sZRgDIAEoDjInLmR4b3MuaGFsby5jcmVkZW50aWFscy5TcGFjZU1lbWJlci5Sb2xlIqUBChNBZG1pdENvbnRhY3RSZXF1ZXN0Ei4KB2NvbnRhY3QYASABKAsyHS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Db250YWN0EjUKBHJvbGUYAiABKA4yJy5keG9zLmhhbG8uY3JlZGVudGlhbHMuU3BhY2VNZW1iZXIuUm9sZRInCglzcGFjZV9rZXkYAyABKAsyFC5keG9zLmtleXMuUHVibGljS2V5IkkKEENvbnRhY3RBZG1pc3Npb24SNQoKY3JlZGVudGlhbBgBIAEoCzIhLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsIj8KEUpvaW5TcGFjZVJlc3BvbnNlEioKBXNwYWNlGAEgASgLMhsuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2UiQAoVSm9pbkJ5U3BhY2VLZXlSZXF1ZXN0EicKCXNwYWNlX2tleRgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkiMgoMU3BhY2VBcmNoaXZlEhAKCGZpbGVuYW1lGAEgASgJEhAKCGNvbnRlbnRzGAIgASgMIiYKEkV4cG9ydFNwYWNlUmVxdWVzdBIQCghzcGFjZV9pZBgBIAEoCSJKChNFeHBvcnRTcGFjZVJlc3BvbnNlEjMKB2FyY2hpdmUYASABKAsyIi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZUFyY2hpdmUiSQoSSW1wb3J0U3BhY2VSZXF1ZXN0EjMKB2FyY2hpdmUYASABKAsyIi5keG9zLmNsaWVudC5zZXJ2aWNlcy5TcGFjZUFyY2hpdmUiKwoTSW1wb3J0U3BhY2VSZXNwb25zZRIUCgxuZXdfc3BhY2VfaWQYASABKAkirQEKF0FjY2VwdEludml0YXRpb25SZXF1ZXN0EjQKCmludml0YXRpb24YASABKAsyIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uEkkKDmRldmljZV9wcm9maWxlGAIgASgLMiwuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLkRldmljZVByb2ZpbGVEb2N1bWVudEgAiAEBQhEKD19kZXZpY2VfcHJvZmlsZSJBChVBdXRoZW50aWNhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCRIRCglhdXRoX2NvZGUYAiABKAkiMAoXQ2FuY2VsSW52aXRhdGlvblJlcXVlc3QSFQoNaW52aXRhdGlvbl9pZBgBIAEoCSKFAQoQSW52aXRhdGlvbk1ldGhvZBIzCgdjcmVhdGVkGAEgASgLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbkgAEjQKCGFjY2VwdGVkGAIgASgLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbkgAQgYKBGtpbmQi4gIKGFF1ZXJ5SW52aXRhdGlvbnNSZXNwb25zZRJFCgZhY3Rpb24YASABKA4yNS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUludml0YXRpb25zUmVzcG9uc2UuQWN0aW9uEkEKBHR5cGUYAiABKA4yMy5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeUludml0YXRpb25zUmVzcG9uc2UuVHlwZRI1CgtpbnZpdGF0aW9ucxgDIAMoCzIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLkludml0YXRpb24SFQoIZXhpc3RpbmcYBCABKAhIAIgBASI+CgZBY3Rpb24SCQoFQURERUQQABILCgdSRU1PVkVEEAESCQoFU0FWRUQQAhIRCg1MT0FEX0NPTVBMRVRFEAMiIQoEVHlwZRILCgdDUkVBVEVEEAASDAoIQUNDRVBURUQQAUILCglfZXhpc3RpbmciWgohTG9hZFBlcnNpc3RlbnRJbnZpdGF0aW9uc1Jlc3BvbnNlEjUKC2ludml0YXRpb25zGAEgAygLMiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbiKFAgoNTmV0d29ya1N0YXR1cxI0CgVzd2FybRgBIAEoDjIlLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbm5lY3Rpb25TdGF0ZRI9CglzaWduYWxpbmcYAiADKAsyKi5keG9zLmNsaWVudC5zZXJ2aWNlcy5OZXR3b3JrU3RhdHVzLlNpZ25hbBI3Cg9jb25uZWN0aW9uX2luZm8YAyADKAsyHi5keG9zLmRldnRvb2xzLnN3YXJtLlN3YXJtSW5mbxpGCgZTaWduYWwSDgoGc2VydmVyGAEgASgJEiwKBXN0YXRlGAIgASgOMh0uZHhvcy5tZXNoLnNpZ25hbC5TaWduYWxTdGF0ZSJLChNVcGRhdGVDb25maWdSZXF1ZXN0EjQKBXN3YXJtGAEgASgOMiUuZHhvcy5jbGllbnQuc2VydmljZXMuQ29ubmVjdGlvblN0YXRlIkEKGlN1YnNjcmliZVN3YXJtU3RhdGVSZXF1ZXN0EiMKBXRvcGljGAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleSKTAQoXUXVlcnlFZGdlU3RhdHVzUmVzcG9uc2USSAoGc3RhdHVzGAEgASgOMjguZHhvcy5jbGllbnQuc2VydmljZXMuUXVlcnlFZGdlU3RhdHVzUmVzcG9uc2UuRWRnZVN0YXR1cyIuCgpFZGdlU3RhdHVzEhEKDU5PVF9DT05ORUNURUQQABINCglDT05ORUNURUQQASKrAQoYUXVlcnlBZ2VudFN0YXR1c1Jlc3BvbnNlEkoKBnN0YXR1cxgBIAEoDjI6LmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5QWdlbnRTdGF0dXNSZXNwb25zZS5BZ2VudFN0YXR1cyJDCgtBZ2VudFN0YXR1cxILCgdVTktOT1dOEAASCgoGQUNUSVZFEAESDAoISU5BQ1RJVkUQAhINCglOT1RfRk9VTkQQAyooCgxTeXN0ZW1TdGF0dXMSDAoISU5BQ1RJVkUQABIKCgZBQ1RJVkUQASomCgpEZXZpY2VLaW5kEgsKB0NVUlJFTlQQABILCgdUUlVTVEVEEAEqKgoPQ29ubmVjdGlvblN0YXRlEgsKB09GRkxJTkUQABIKCgZPTkxJTkUQATLvAwoNU3lzdGVtU2VydmljZRI4CglHZXRDb25maWcSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy5keG9zLmNvbmZpZy5Db25maWcSawoOR2V0RGlhZ25vc3RpY3MSKy5keG9zLmNsaWVudC5zZXJ2aWNlcy5HZXREaWFnbm9zdGljc1JlcXVlc3QaLC5keG9zLmNsaWVudC5zZXJ2aWNlcy5HZXREaWFnbm9zdGljc1Jlc3BvbnNlElEKDFVwZGF0ZVN0YXR1cxIpLmR4b3MuY2xpZW50LnNlcnZpY2VzLlVwZGF0ZVN0YXR1c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSZAoLUXVlcnlTdGF0dXMSKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeVN0YXR1c1JlcXVlc3QaKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeVN0YXR1c1Jlc3BvbnNlMAESNwoFUmVzZXQSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRQoLR2V0UGxhdGZvcm0SFi5nb29nbGUucHJvdG9idWYuRW1wdHkaHi5keG9zLmNsaWVudC5zZXJ2aWNlcy5QbGF0Zm9ybTK1BgoPSWRlbnRpdHlTZXJ2aWNlEl0KDkNyZWF0ZUlkZW50aXR5EisuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlSWRlbnRpdHlSZXF1ZXN0Gh4uZHhvcy5jbGllbnQuc2VydmljZXMuSWRlbnRpdHkSagoYUmVxdWVzdFJlY292ZXJ5Q2hhbGxlbmdlEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GjYuZHhvcy5jbGllbnQuc2VydmljZXMuUmVxdWVzdFJlY292ZXJ5Q2hhbGxlbmdlUmVzcG9uc2USXwoPUmVjb3ZlcklkZW50aXR5EiwuZHhvcy5jbGllbnQuc2VydmljZXMuUmVjb3ZlcklkZW50aXR5UmVxdWVzdBoeLmR4b3MuY2xpZW50LnNlcnZpY2VzLklkZW50aXR5EokBChhDcmVhdGVSZWNvdmVyeUNyZWRlbnRpYWwSNS5keG9zLmNsaWVudC5zZXJ2aWNlcy5DcmVhdGVSZWNvdmVyeUNyZWRlbnRpYWxSZXF1ZXN0GjYuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlUmVjb3ZlcnlDcmVkZW50aWFsUmVzcG9uc2USVgoNUXVlcnlJZGVudGl0eRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRorLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5SWRlbnRpdHlSZXNwb25zZTABElcKDVVwZGF0ZVByb2ZpbGUSJi5keG9zLmhhbG8uY3JlZGVudGlhbHMuUHJvZmlsZURvY3VtZW50Gh4uZHhvcy5jbGllbnQuc2VydmljZXMuSWRlbnRpdHkSZgoQU2lnblByZXNlbnRhdGlvbhItLmR4b3MuY2xpZW50LnNlcnZpY2VzLlNpZ25QcmVzZW50YXRpb25SZXF1ZXN0GiMuZHhvcy5oYWxvLmNyZWRlbnRpYWxzLlByZXNlbnRhdGlvbhJRChRDcmVhdGVBdXRoQ3JlZGVudGlhbBIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRohLmR4b3MuaGFsby5jcmVkZW50aWFscy5DcmVkZW50aWFsMsIBCg5EZXZpY2VzU2VydmljZRJaCgxVcGRhdGVEZXZpY2USLC5keG9zLmhhbG8uY3JlZGVudGlhbHMuRGV2aWNlUHJvZmlsZURvY3VtZW50GhwuZHhvcy5jbGllbnQuc2VydmljZXMuRGV2aWNlElQKDFF1ZXJ5RGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoqLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5RGV2aWNlc1Jlc3BvbnNlMAEyqQEKD0NvbnRhY3RzU2VydmljZRJICgtHZXRDb250YWN0cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRohLmR4b3MuY2xpZW50LnNlcnZpY2VzLkNvbnRhY3RCb29rEkwKDVF1ZXJ5Q29udGFjdHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaIS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Db250YWN0Qm9vazABMr8JCg1TcGFjZXNTZXJ2aWNlEkIKC0NyZWF0ZVNwYWNlEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhsuZHhvcy5jbGllbnQuc2VydmljZXMuU3BhY2USTwoLVXBkYXRlU3BhY2USKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5VcGRhdGVTcGFjZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUgoLUXVlcnlTcGFjZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5RdWVyeVNwYWNlc1Jlc3BvbnNlMAESWQoQVXBkYXRlTWVtYmVyUm9sZRItLmR4b3MuY2xpZW50LnNlcnZpY2VzLlVwZGF0ZU1lbWJlclJvbGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElEKDEFkbWl0Q29udGFjdBIpLmR4b3MuY2xpZW50LnNlcnZpY2VzLkFkbWl0Q29udGFjdFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSZgoOSm9pbkJ5U3BhY2VLZXkSKy5keG9zLmNsaWVudC5zZXJ2aWNlcy5Kb2luQnlTcGFjZUtleVJlcXVlc3QaJy5keG9zLmNsaWVudC5zZXJ2aWNlcy5Kb2luU3BhY2VSZXNwb25zZRJPCgtQb3N0TWVzc2FnZRIoLmR4b3MuY2xpZW50LnNlcnZpY2VzLlBvc3RNZXNzYWdlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJvChFTdWJzY3JpYmVNZXNzYWdlcxIuLmR4b3MuY2xpZW50LnNlcnZpY2VzLlN1YnNjcmliZU1lc3NhZ2VzUmVxdWVzdBooLmR4b3MubWVzaC50ZWxlcG9ydC5nb3NzaXAuR29zc2lwTWVzc2FnZTABElkKEFdyaXRlQ3JlZGVudGlhbHMSLS5keG9zLmNsaWVudC5zZXJ2aWNlcy5Xcml0ZUNyZWRlbnRpYWxzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJmChBRdWVyeUNyZWRlbnRpYWxzEi0uZHhvcy5jbGllbnQuc2VydmljZXMuUXVlcnlDcmVkZW50aWFsc1JlcXVlc3QaIS5keG9zLmhhbG8uY3JlZGVudGlhbHMuQ3JlZGVudGlhbDABEmIKC0NyZWF0ZUVwb2NoEiguZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlRXBvY2hSZXF1ZXN0GikuZHhvcy5jbGllbnQuc2VydmljZXMuQ3JlYXRlRXBvY2hSZXNwb25zZRJiCgtFeHBvcnRTcGFjZRIoLmR4b3MuY2xpZW50LnNlcnZpY2VzLkV4cG9ydFNwYWNlUmVxdWVzdBopLmR4b3MuY2xpZW50LnNlcnZpY2VzLkV4cG9ydFNwYWNlUmVzcG9uc2USYgoLSW1wb3J0U3BhY2USKC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbXBvcnRTcGFjZVJlcXVlc3QaKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbXBvcnRTcGFjZVJlc3BvbnNlMuMDChJJbnZpdGF0aW9uc1NlcnZpY2USWAoQQ3JlYXRlSW52aXRhdGlvbhIgLmR4b3MuY2xpZW50LnNlcnZpY2VzLkludml0YXRpb24aIC5keG9zLmNsaWVudC5zZXJ2aWNlcy5JbnZpdGF0aW9uMAESZQoQQWNjZXB0SW52aXRhdGlvbhItLmR4b3MuY2xpZW50LnNlcnZpY2VzLkFjY2VwdEludml0YXRpb25SZXF1ZXN0GiAuZHhvcy5jbGllbnQuc2VydmljZXMuSW52aXRhdGlvbjABElMKDEF1dGhlbnRpY2F0ZRIrLmR4b3MuY2xpZW50LnNlcnZpY2VzLkF1dGhlbnRpY2F0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJZChBDYW5jZWxJbnZpdGF0aW9uEi0uZHhvcy5jbGllbnQuc2VydmljZXMuQ2FuY2VsSW52aXRhdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSXAoQUXVlcnlJbnZpdGF0aW9ucxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRouLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5SW52aXRhdGlvbnNSZXNwb25zZTABMosFCg5OZXR3b3JrU2VydmljZRJRCgxVcGRhdGVDb25maWcSKS5keG9zLmNsaWVudC5zZXJ2aWNlcy5VcGRhdGVDb25maWdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkwKC1F1ZXJ5U3RhdHVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GiMuZHhvcy5jbGllbnQuc2VydmljZXMuTmV0d29ya1N0YXR1czABEkIKCUpvaW5Td2FybRIdLmR4b3MuZWRnZS5zaWduYWwuSm9pblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoKTGVhdmVTd2FybRIeLmR4b3MuZWRnZS5zaWduYWwuTGVhdmVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElAKClF1ZXJ5U3dhcm0SHi5keG9zLmVkZ2Uuc2lnbmFsLlF1ZXJ5UmVxdWVzdBoiLmR4b3MuZWRnZS5tZXNzZW5nZXIuU3dhcm1SZXNwb25zZRJtChNTdWJzY3JpYmVTd2FybVN0YXRlEjAuZHhvcy5jbGllbnQuc2VydmljZXMuU3Vic2NyaWJlU3dhcm1TdGF0ZVJlcXVlc3QaIi5keG9zLmVkZ2UubWVzc2VuZ2VyLlN3YXJtUmVzcG9uc2UwARJACgtTZW5kTWVzc2FnZRIZLmR4b3MuZWRnZS5zaWduYWwuTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJLChFTdWJzY3JpYmVNZXNzYWdlcxIZLmR4b3MuZWRnZS5tZXNzZW5nZXIuUGVlchoZLmR4b3MuZWRnZS5zaWduYWwuTWVzc2FnZTABMosCChBFZGdlQWdlbnRTZXJ2aWNlEloKD1F1ZXJ5RWRnZVN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRotLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5RWRnZVN0YXR1c1Jlc3BvbnNlMAESPQoLQ3JlYXRlQWdlbnQSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSXAoQUXVlcnlBZ2VudFN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRouLmR4b3MuY2xpZW50LnNlcnZpY2VzLlF1ZXJ5QWdlbnRTdGF0dXNSZXNwb25zZTABYgZwcm90bzM", [file_google_protobuf_any, file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp, file_dxos_client_invitation, file_dxos_config, file_dxos_devtools_swarm, file_dxos_echo_metadata, file_dxos_echo_timeframe, file_dxos_edge_messenger, file_dxos_edge_signal, file_dxos_error, file_dxos_halo_credentials, file_dxos_keys, file_dxos_mesh_signal, file_dxos_mesh_presence, file_dxos_mesh_teleport_gossip, file_dxos_value]);
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
51
|
* @generated from message dxos.client.services.UpdateStatusRequest
|
|
@@ -1265,6 +1265,98 @@ export type JoinBySpaceKeyRequest = Message<"dxos.client.services.JoinBySpaceKey
|
|
|
1265
1265
|
export const JoinBySpaceKeyRequestSchema: GenMessage<JoinBySpaceKeyRequest> = /*@__PURE__*/
|
|
1266
1266
|
messageDesc(file_dxos_client_services, 33);
|
|
1267
1267
|
|
|
1268
|
+
/**
|
|
1269
|
+
* @generated from message dxos.client.services.SpaceArchive
|
|
1270
|
+
*/
|
|
1271
|
+
export type SpaceArchive = Message<"dxos.client.services.SpaceArchive"> & {
|
|
1272
|
+
/**
|
|
1273
|
+
* @generated from field: string filename = 1;
|
|
1274
|
+
*/
|
|
1275
|
+
filename: string;
|
|
1276
|
+
|
|
1277
|
+
/**
|
|
1278
|
+
* @generated from field: bytes contents = 2;
|
|
1279
|
+
*/
|
|
1280
|
+
contents: Uint8Array;
|
|
1281
|
+
};
|
|
1282
|
+
|
|
1283
|
+
/**
|
|
1284
|
+
* Describes the message dxos.client.services.SpaceArchive.
|
|
1285
|
+
* Use `create(SpaceArchiveSchema)` to create a new message.
|
|
1286
|
+
*/
|
|
1287
|
+
export const SpaceArchiveSchema: GenMessage<SpaceArchive> = /*@__PURE__*/
|
|
1288
|
+
messageDesc(file_dxos_client_services, 34);
|
|
1289
|
+
|
|
1290
|
+
/**
|
|
1291
|
+
* @generated from message dxos.client.services.ExportSpaceRequest
|
|
1292
|
+
*/
|
|
1293
|
+
export type ExportSpaceRequest = Message<"dxos.client.services.ExportSpaceRequest"> & {
|
|
1294
|
+
/**
|
|
1295
|
+
* @generated from field: string space_id = 1;
|
|
1296
|
+
*/
|
|
1297
|
+
spaceId: string;
|
|
1298
|
+
};
|
|
1299
|
+
|
|
1300
|
+
/**
|
|
1301
|
+
* Describes the message dxos.client.services.ExportSpaceRequest.
|
|
1302
|
+
* Use `create(ExportSpaceRequestSchema)` to create a new message.
|
|
1303
|
+
*/
|
|
1304
|
+
export const ExportSpaceRequestSchema: GenMessage<ExportSpaceRequest> = /*@__PURE__*/
|
|
1305
|
+
messageDesc(file_dxos_client_services, 35);
|
|
1306
|
+
|
|
1307
|
+
/**
|
|
1308
|
+
* @generated from message dxos.client.services.ExportSpaceResponse
|
|
1309
|
+
*/
|
|
1310
|
+
export type ExportSpaceResponse = Message<"dxos.client.services.ExportSpaceResponse"> & {
|
|
1311
|
+
/**
|
|
1312
|
+
* @generated from field: dxos.client.services.SpaceArchive archive = 1;
|
|
1313
|
+
*/
|
|
1314
|
+
archive?: SpaceArchive;
|
|
1315
|
+
};
|
|
1316
|
+
|
|
1317
|
+
/**
|
|
1318
|
+
* Describes the message dxos.client.services.ExportSpaceResponse.
|
|
1319
|
+
* Use `create(ExportSpaceResponseSchema)` to create a new message.
|
|
1320
|
+
*/
|
|
1321
|
+
export const ExportSpaceResponseSchema: GenMessage<ExportSpaceResponse> = /*@__PURE__*/
|
|
1322
|
+
messageDesc(file_dxos_client_services, 36);
|
|
1323
|
+
|
|
1324
|
+
/**
|
|
1325
|
+
* @generated from message dxos.client.services.ImportSpaceRequest
|
|
1326
|
+
*/
|
|
1327
|
+
export type ImportSpaceRequest = Message<"dxos.client.services.ImportSpaceRequest"> & {
|
|
1328
|
+
/**
|
|
1329
|
+
* @generated from field: dxos.client.services.SpaceArchive archive = 1;
|
|
1330
|
+
*/
|
|
1331
|
+
archive?: SpaceArchive;
|
|
1332
|
+
};
|
|
1333
|
+
|
|
1334
|
+
/**
|
|
1335
|
+
* Describes the message dxos.client.services.ImportSpaceRequest.
|
|
1336
|
+
* Use `create(ImportSpaceRequestSchema)` to create a new message.
|
|
1337
|
+
*/
|
|
1338
|
+
export const ImportSpaceRequestSchema: GenMessage<ImportSpaceRequest> = /*@__PURE__*/
|
|
1339
|
+
messageDesc(file_dxos_client_services, 37);
|
|
1340
|
+
|
|
1341
|
+
/**
|
|
1342
|
+
* @generated from message dxos.client.services.ImportSpaceResponse
|
|
1343
|
+
*/
|
|
1344
|
+
export type ImportSpaceResponse = Message<"dxos.client.services.ImportSpaceResponse"> & {
|
|
1345
|
+
/**
|
|
1346
|
+
* / the ID of the new space.
|
|
1347
|
+
*
|
|
1348
|
+
* @generated from field: string new_space_id = 1;
|
|
1349
|
+
*/
|
|
1350
|
+
newSpaceId: string;
|
|
1351
|
+
};
|
|
1352
|
+
|
|
1353
|
+
/**
|
|
1354
|
+
* Describes the message dxos.client.services.ImportSpaceResponse.
|
|
1355
|
+
* Use `create(ImportSpaceResponseSchema)` to create a new message.
|
|
1356
|
+
*/
|
|
1357
|
+
export const ImportSpaceResponseSchema: GenMessage<ImportSpaceResponse> = /*@__PURE__*/
|
|
1358
|
+
messageDesc(file_dxos_client_services, 38);
|
|
1359
|
+
|
|
1268
1360
|
/**
|
|
1269
1361
|
* @generated from message dxos.client.services.AcceptInvitationRequest
|
|
1270
1362
|
*/
|
|
@@ -1285,7 +1377,7 @@ export type AcceptInvitationRequest = Message<"dxos.client.services.AcceptInvita
|
|
|
1285
1377
|
* Use `create(AcceptInvitationRequestSchema)` to create a new message.
|
|
1286
1378
|
*/
|
|
1287
1379
|
export const AcceptInvitationRequestSchema: GenMessage<AcceptInvitationRequest> = /*@__PURE__*/
|
|
1288
|
-
messageDesc(file_dxos_client_services,
|
|
1380
|
+
messageDesc(file_dxos_client_services, 39);
|
|
1289
1381
|
|
|
1290
1382
|
/**
|
|
1291
1383
|
* @generated from message dxos.client.services.AuthenticationRequest
|
|
@@ -1307,7 +1399,7 @@ export type AuthenticationRequest = Message<"dxos.client.services.Authentication
|
|
|
1307
1399
|
* Use `create(AuthenticationRequestSchema)` to create a new message.
|
|
1308
1400
|
*/
|
|
1309
1401
|
export const AuthenticationRequestSchema: GenMessage<AuthenticationRequest> = /*@__PURE__*/
|
|
1310
|
-
messageDesc(file_dxos_client_services,
|
|
1402
|
+
messageDesc(file_dxos_client_services, 40);
|
|
1311
1403
|
|
|
1312
1404
|
/**
|
|
1313
1405
|
* @generated from message dxos.client.services.CancelInvitationRequest
|
|
@@ -1324,7 +1416,7 @@ export type CancelInvitationRequest = Message<"dxos.client.services.CancelInvita
|
|
|
1324
1416
|
* Use `create(CancelInvitationRequestSchema)` to create a new message.
|
|
1325
1417
|
*/
|
|
1326
1418
|
export const CancelInvitationRequestSchema: GenMessage<CancelInvitationRequest> = /*@__PURE__*/
|
|
1327
|
-
messageDesc(file_dxos_client_services,
|
|
1419
|
+
messageDesc(file_dxos_client_services, 41);
|
|
1328
1420
|
|
|
1329
1421
|
/**
|
|
1330
1422
|
* @generated from message dxos.client.services.InvitationMethod
|
|
@@ -1353,7 +1445,7 @@ export type InvitationMethod = Message<"dxos.client.services.InvitationMethod">
|
|
|
1353
1445
|
* Use `create(InvitationMethodSchema)` to create a new message.
|
|
1354
1446
|
*/
|
|
1355
1447
|
export const InvitationMethodSchema: GenMessage<InvitationMethod> = /*@__PURE__*/
|
|
1356
|
-
messageDesc(file_dxos_client_services,
|
|
1448
|
+
messageDesc(file_dxos_client_services, 42);
|
|
1357
1449
|
|
|
1358
1450
|
/**
|
|
1359
1451
|
* @generated from message dxos.client.services.QueryInvitationsResponse
|
|
@@ -1387,7 +1479,7 @@ export type QueryInvitationsResponse = Message<"dxos.client.services.QueryInvita
|
|
|
1387
1479
|
* Use `create(QueryInvitationsResponseSchema)` to create a new message.
|
|
1388
1480
|
*/
|
|
1389
1481
|
export const QueryInvitationsResponseSchema: GenMessage<QueryInvitationsResponse> = /*@__PURE__*/
|
|
1390
|
-
messageDesc(file_dxos_client_services,
|
|
1482
|
+
messageDesc(file_dxos_client_services, 43);
|
|
1391
1483
|
|
|
1392
1484
|
/**
|
|
1393
1485
|
* @generated from enum dxos.client.services.QueryInvitationsResponse.Action
|
|
@@ -1418,7 +1510,7 @@ export enum QueryInvitationsResponse_Action {
|
|
|
1418
1510
|
* Describes the enum dxos.client.services.QueryInvitationsResponse.Action.
|
|
1419
1511
|
*/
|
|
1420
1512
|
export const QueryInvitationsResponse_ActionSchema: GenEnum<QueryInvitationsResponse_Action> = /*@__PURE__*/
|
|
1421
|
-
enumDesc(file_dxos_client_services,
|
|
1513
|
+
enumDesc(file_dxos_client_services, 43, 0);
|
|
1422
1514
|
|
|
1423
1515
|
/**
|
|
1424
1516
|
* @generated from enum dxos.client.services.QueryInvitationsResponse.Type
|
|
@@ -1439,7 +1531,7 @@ export enum QueryInvitationsResponse_Type {
|
|
|
1439
1531
|
* Describes the enum dxos.client.services.QueryInvitationsResponse.Type.
|
|
1440
1532
|
*/
|
|
1441
1533
|
export const QueryInvitationsResponse_TypeSchema: GenEnum<QueryInvitationsResponse_Type> = /*@__PURE__*/
|
|
1442
|
-
enumDesc(file_dxos_client_services,
|
|
1534
|
+
enumDesc(file_dxos_client_services, 43, 1);
|
|
1443
1535
|
|
|
1444
1536
|
/**
|
|
1445
1537
|
* Informational, consumers must share invitations to receive CancellableInvitation
|
|
@@ -1458,7 +1550,7 @@ export type LoadPersistentInvitationsResponse = Message<"dxos.client.services.Lo
|
|
|
1458
1550
|
* Use `create(LoadPersistentInvitationsResponseSchema)` to create a new message.
|
|
1459
1551
|
*/
|
|
1460
1552
|
export const LoadPersistentInvitationsResponseSchema: GenMessage<LoadPersistentInvitationsResponse> = /*@__PURE__*/
|
|
1461
|
-
messageDesc(file_dxos_client_services,
|
|
1553
|
+
messageDesc(file_dxos_client_services, 44);
|
|
1462
1554
|
|
|
1463
1555
|
/**
|
|
1464
1556
|
* @generated from message dxos.client.services.NetworkStatus
|
|
@@ -1485,7 +1577,7 @@ export type NetworkStatus = Message<"dxos.client.services.NetworkStatus"> & {
|
|
|
1485
1577
|
* Use `create(NetworkStatusSchema)` to create a new message.
|
|
1486
1578
|
*/
|
|
1487
1579
|
export const NetworkStatusSchema: GenMessage<NetworkStatus> = /*@__PURE__*/
|
|
1488
|
-
messageDesc(file_dxos_client_services,
|
|
1580
|
+
messageDesc(file_dxos_client_services, 45);
|
|
1489
1581
|
|
|
1490
1582
|
/**
|
|
1491
1583
|
* @generated from message dxos.client.services.NetworkStatus.Signal
|
|
@@ -1509,7 +1601,7 @@ export type NetworkStatus_Signal = Message<"dxos.client.services.NetworkStatus.S
|
|
|
1509
1601
|
* Use `create(NetworkStatus_SignalSchema)` to create a new message.
|
|
1510
1602
|
*/
|
|
1511
1603
|
export const NetworkStatus_SignalSchema: GenMessage<NetworkStatus_Signal> = /*@__PURE__*/
|
|
1512
|
-
messageDesc(file_dxos_client_services,
|
|
1604
|
+
messageDesc(file_dxos_client_services, 45, 0);
|
|
1513
1605
|
|
|
1514
1606
|
/**
|
|
1515
1607
|
* @generated from message dxos.client.services.UpdateConfigRequest
|
|
@@ -1526,7 +1618,7 @@ export type UpdateConfigRequest = Message<"dxos.client.services.UpdateConfigRequ
|
|
|
1526
1618
|
* Use `create(UpdateConfigRequestSchema)` to create a new message.
|
|
1527
1619
|
*/
|
|
1528
1620
|
export const UpdateConfigRequestSchema: GenMessage<UpdateConfigRequest> = /*@__PURE__*/
|
|
1529
|
-
messageDesc(file_dxos_client_services,
|
|
1621
|
+
messageDesc(file_dxos_client_services, 46);
|
|
1530
1622
|
|
|
1531
1623
|
/**
|
|
1532
1624
|
* @generated from message dxos.client.services.SubscribeSwarmStateRequest
|
|
@@ -1543,7 +1635,7 @@ export type SubscribeSwarmStateRequest = Message<"dxos.client.services.Subscribe
|
|
|
1543
1635
|
* Use `create(SubscribeSwarmStateRequestSchema)` to create a new message.
|
|
1544
1636
|
*/
|
|
1545
1637
|
export const SubscribeSwarmStateRequestSchema: GenMessage<SubscribeSwarmStateRequest> = /*@__PURE__*/
|
|
1546
|
-
messageDesc(file_dxos_client_services,
|
|
1638
|
+
messageDesc(file_dxos_client_services, 47);
|
|
1547
1639
|
|
|
1548
1640
|
/**
|
|
1549
1641
|
* @generated from message dxos.client.services.QueryEdgeStatusResponse
|
|
@@ -1560,7 +1652,7 @@ export type QueryEdgeStatusResponse = Message<"dxos.client.services.QueryEdgeSta
|
|
|
1560
1652
|
* Use `create(QueryEdgeStatusResponseSchema)` to create a new message.
|
|
1561
1653
|
*/
|
|
1562
1654
|
export const QueryEdgeStatusResponseSchema: GenMessage<QueryEdgeStatusResponse> = /*@__PURE__*/
|
|
1563
|
-
messageDesc(file_dxos_client_services,
|
|
1655
|
+
messageDesc(file_dxos_client_services, 48);
|
|
1564
1656
|
|
|
1565
1657
|
/**
|
|
1566
1658
|
* @generated from enum dxos.client.services.QueryEdgeStatusResponse.EdgeStatus
|
|
@@ -1581,7 +1673,7 @@ export enum QueryEdgeStatusResponse_EdgeStatus {
|
|
|
1581
1673
|
* Describes the enum dxos.client.services.QueryEdgeStatusResponse.EdgeStatus.
|
|
1582
1674
|
*/
|
|
1583
1675
|
export const QueryEdgeStatusResponse_EdgeStatusSchema: GenEnum<QueryEdgeStatusResponse_EdgeStatus> = /*@__PURE__*/
|
|
1584
|
-
enumDesc(file_dxos_client_services,
|
|
1676
|
+
enumDesc(file_dxos_client_services, 48, 0);
|
|
1585
1677
|
|
|
1586
1678
|
/**
|
|
1587
1679
|
* @generated from message dxos.client.services.QueryAgentStatusResponse
|
|
@@ -1598,7 +1690,7 @@ export type QueryAgentStatusResponse = Message<"dxos.client.services.QueryAgentS
|
|
|
1598
1690
|
* Use `create(QueryAgentStatusResponseSchema)` to create a new message.
|
|
1599
1691
|
*/
|
|
1600
1692
|
export const QueryAgentStatusResponseSchema: GenMessage<QueryAgentStatusResponse> = /*@__PURE__*/
|
|
1601
|
-
messageDesc(file_dxos_client_services,
|
|
1693
|
+
messageDesc(file_dxos_client_services, 49);
|
|
1602
1694
|
|
|
1603
1695
|
/**
|
|
1604
1696
|
* @generated from enum dxos.client.services.QueryAgentStatusResponse.AgentStatus
|
|
@@ -1629,7 +1721,7 @@ export enum QueryAgentStatusResponse_AgentStatus {
|
|
|
1629
1721
|
* Describes the enum dxos.client.services.QueryAgentStatusResponse.AgentStatus.
|
|
1630
1722
|
*/
|
|
1631
1723
|
export const QueryAgentStatusResponse_AgentStatusSchema: GenEnum<QueryAgentStatusResponse_AgentStatus> = /*@__PURE__*/
|
|
1632
|
-
enumDesc(file_dxos_client_services,
|
|
1724
|
+
enumDesc(file_dxos_client_services, 49, 0);
|
|
1633
1725
|
|
|
1634
1726
|
/**
|
|
1635
1727
|
* @generated from enum dxos.client.services.SystemStatus
|
|
@@ -1982,6 +2074,22 @@ export const SpacesService: GenService<{
|
|
|
1982
2074
|
input: typeof CreateEpochRequestSchema;
|
|
1983
2075
|
output: typeof CreateEpochResponseSchema;
|
|
1984
2076
|
},
|
|
2077
|
+
/**
|
|
2078
|
+
* @generated from rpc dxos.client.services.SpacesService.ExportSpace
|
|
2079
|
+
*/
|
|
2080
|
+
exportSpace: {
|
|
2081
|
+
methodKind: "unary";
|
|
2082
|
+
input: typeof ExportSpaceRequestSchema;
|
|
2083
|
+
output: typeof ExportSpaceResponseSchema;
|
|
2084
|
+
},
|
|
2085
|
+
/**
|
|
2086
|
+
* @generated from rpc dxos.client.services.SpacesService.ImportSpace
|
|
2087
|
+
*/
|
|
2088
|
+
importSpace: {
|
|
2089
|
+
methodKind: "unary";
|
|
2090
|
+
input: typeof ImportSpaceRequestSchema;
|
|
2091
|
+
output: typeof ImportSpaceResponseSchema;
|
|
2092
|
+
},
|
|
1985
2093
|
}> = /*@__PURE__*/
|
|
1986
2094
|
serviceDesc(file_dxos_client_services, 4);
|
|
1987
2095
|
|
|
@@ -2070,6 +2178,17 @@ export const NetworkService: GenService<{
|
|
|
2070
2178
|
input: typeof LeaveRequestSchema;
|
|
2071
2179
|
output: typeof EmptySchema;
|
|
2072
2180
|
},
|
|
2181
|
+
/**
|
|
2182
|
+
* *
|
|
2183
|
+
* Query the swarm state without joining it.
|
|
2184
|
+
*
|
|
2185
|
+
* @generated from rpc dxos.client.services.NetworkService.QuerySwarm
|
|
2186
|
+
*/
|
|
2187
|
+
querySwarm: {
|
|
2188
|
+
methodKind: "unary";
|
|
2189
|
+
input: typeof QueryRequestSchema;
|
|
2190
|
+
output: typeof SwarmResponseSchema;
|
|
2191
|
+
},
|
|
2073
2192
|
/**
|
|
2074
2193
|
* @generated from rpc dxos.client.services.NetworkService.SubscribeSwarmState
|
|
2075
2194
|
*/
|
|
@@ -20,7 +20,7 @@ import type { Message as Message$1 } from "@bufbuild/protobuf";
|
|
|
20
20
|
* Describes the file dxos/edge/signal.proto.
|
|
21
21
|
*/
|
|
22
22
|
export const file_dxos_edge_signal: GenFile = /*@__PURE__*/
|
|
23
|
-
fileDesc("
|
|
23
|
+
fileDesc("ChZkeG9zL2VkZ2Uvc2lnbmFsLnByb3RvEhBkeG9zLmVkZ2Uuc2lnbmFsIlsKC0pvaW5SZXF1ZXN0EiMKBXRvcGljGAEgASgLMhQuZHhvcy5rZXlzLlB1YmxpY0tleRInCgRwZWVyGAIgASgLMhkuZHhvcy5lZGdlLm1lc3Nlbmdlci5QZWVyIlwKDExlYXZlUmVxdWVzdBIjCgV0b3BpYxgBIAEoCzIULmR4b3Mua2V5cy5QdWJsaWNLZXkSJwoEcGVlchgCIAEoCzIZLmR4b3MuZWRnZS5tZXNzZW5nZXIuUGVlciIzCgxRdWVyeVJlcXVlc3QSIwoFdG9waWMYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5IokBCgdNZXNzYWdlEikKBmF1dGhvchgBIAEoCzIZLmR4b3MuZWRnZS5tZXNzZW5nZXIuUGVlchIsCglyZWNpcGllbnQYAiABKAsyGS5keG9zLmVkZ2UubWVzc2VuZ2VyLlBlZXISJQoHcGF5bG9hZBgDIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnkizwMKClN3YXJtRXZlbnQSIwoFdG9waWMYASABKAsyFC5keG9zLmtleXMuUHVibGljS2V5EkQKDnBlZXJfYXZhaWxhYmxlGAIgASgLMiouZHhvcy5lZGdlLnNpZ25hbC5Td2FybUV2ZW50LlBlZXJBdmFpbGFibGVIABI6CglwZWVyX2xlZnQYAyABKAsyJS5keG9zLmVkZ2Uuc2lnbmFsLlN3YXJtRXZlbnQuUGVlckxlZnRIABrbAQoNUGVlckF2YWlsYWJsZRInCgRwZWVyGAEgASgLMhkuZHhvcy5lZGdlLm1lc3Nlbmdlci5QZWVyEikKBXNpbmNlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgV1bnRpbBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIiChVhbm5vdW5jZV9iYWNrX3RvX2hvc3QYBCABKAxIAYgBAUIICgZfdW50aWxCGAoWX2Fubm91bmNlX2JhY2tfdG9faG9zdBozCghQZWVyTGVmdBInCgRwZWVyGAEgASgLMhkuZHhvcy5lZGdlLm1lc3Nlbmdlci5QZWVyQgcKBWV2ZW50YgZwcm90bzM", [file_google_protobuf_any, file_google_protobuf_timestamp, file_dxos_keys, file_dxos_edge_messenger]);
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* @generated from message dxos.edge.signal.JoinRequest
|
|
@@ -66,6 +66,23 @@ export type LeaveRequest = Message$1<"dxos.edge.signal.LeaveRequest"> & {
|
|
|
66
66
|
export const LeaveRequestSchema: GenMessage<LeaveRequest> = /*@__PURE__*/
|
|
67
67
|
messageDesc(file_dxos_edge_signal, 1);
|
|
68
68
|
|
|
69
|
+
/**
|
|
70
|
+
* @generated from message dxos.edge.signal.QueryRequest
|
|
71
|
+
*/
|
|
72
|
+
export type QueryRequest = Message$1<"dxos.edge.signal.QueryRequest"> & {
|
|
73
|
+
/**
|
|
74
|
+
* @generated from field: dxos.keys.PublicKey topic = 1;
|
|
75
|
+
*/
|
|
76
|
+
topic?: PublicKey;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Describes the message dxos.edge.signal.QueryRequest.
|
|
81
|
+
* Use `create(QueryRequestSchema)` to create a new message.
|
|
82
|
+
*/
|
|
83
|
+
export const QueryRequestSchema: GenMessage<QueryRequest> = /*@__PURE__*/
|
|
84
|
+
messageDesc(file_dxos_edge_signal, 2);
|
|
85
|
+
|
|
69
86
|
/**
|
|
70
87
|
* @generated from message dxos.edge.signal.Message
|
|
71
88
|
*/
|
|
@@ -91,7 +108,7 @@ export type Message = Message$1<"dxos.edge.signal.Message"> & {
|
|
|
91
108
|
* Use `create(MessageSchema)` to create a new message.
|
|
92
109
|
*/
|
|
93
110
|
export const MessageSchema: GenMessage<Message> = /*@__PURE__*/
|
|
94
|
-
messageDesc(file_dxos_edge_signal,
|
|
111
|
+
messageDesc(file_dxos_edge_signal, 3);
|
|
95
112
|
|
|
96
113
|
/**
|
|
97
114
|
* / Goes on Pub/Sub swarm topic and as a Join stream in RPC.
|
|
@@ -131,7 +148,7 @@ export type SwarmEvent = Message$1<"dxos.edge.signal.SwarmEvent"> & {
|
|
|
131
148
|
* Use `create(SwarmEventSchema)` to create a new message.
|
|
132
149
|
*/
|
|
133
150
|
export const SwarmEventSchema: GenMessage<SwarmEvent> = /*@__PURE__*/
|
|
134
|
-
messageDesc(file_dxos_edge_signal,
|
|
151
|
+
messageDesc(file_dxos_edge_signal, 4);
|
|
135
152
|
|
|
136
153
|
/**
|
|
137
154
|
* Announce peer available on swarm.
|
|
@@ -170,7 +187,7 @@ export type SwarmEvent_PeerAvailable = Message$1<"dxos.edge.signal.SwarmEvent.Pe
|
|
|
170
187
|
* Use `create(SwarmEvent_PeerAvailableSchema)` to create a new message.
|
|
171
188
|
*/
|
|
172
189
|
export const SwarmEvent_PeerAvailableSchema: GenMessage<SwarmEvent_PeerAvailable> = /*@__PURE__*/
|
|
173
|
-
messageDesc(file_dxos_edge_signal,
|
|
190
|
+
messageDesc(file_dxos_edge_signal, 4, 0);
|
|
174
191
|
|
|
175
192
|
/**
|
|
176
193
|
* @generated from message dxos.edge.signal.SwarmEvent.PeerLeft
|
|
@@ -187,5 +204,5 @@ export type SwarmEvent_PeerLeft = Message$1<"dxos.edge.signal.SwarmEvent.PeerLef
|
|
|
187
204
|
* Use `create(SwarmEvent_PeerLeftSchema)` to create a new message.
|
|
188
205
|
*/
|
|
189
206
|
export const SwarmEvent_PeerLeftSchema: GenMessage<SwarmEvent_PeerLeft> = /*@__PURE__*/
|
|
190
|
-
messageDesc(file_dxos_edge_signal,
|
|
207
|
+
messageDesc(file_dxos_edge_signal, 4, 1);
|
|
191
208
|
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type EdgeErrorData, type EdgeHttpFailure } from './edge';
|
|
6
|
+
|
|
7
|
+
export class EdgeCallFailedError extends Error {
|
|
8
|
+
public static fromProcessingFailureCause(cause: Error) {
|
|
9
|
+
return new EdgeCallFailedError({
|
|
10
|
+
reason: 'Error processing request.',
|
|
11
|
+
isRetryable: true,
|
|
12
|
+
cause,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
public static fromHttpFailure(response: Response) {
|
|
17
|
+
return new EdgeCallFailedError({
|
|
18
|
+
reason: `HTTP code ${response.status}: ${response.statusText}.`,
|
|
19
|
+
isRetryable: isRetryableCode(response.status),
|
|
20
|
+
retryAfterMs: getRetryAfterMillis(response),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public static fromUnsuccessfulResponse(response: Response, body: EdgeHttpFailure) {
|
|
25
|
+
return new EdgeCallFailedError({
|
|
26
|
+
reason: body.reason,
|
|
27
|
+
errorData: body.errorData,
|
|
28
|
+
isRetryable: body.errorData == null && response.headers.has('Retry-After'),
|
|
29
|
+
retryAfterMs: getRetryAfterMillis(response),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
readonly reason: string;
|
|
34
|
+
readonly errorData?: EdgeErrorData;
|
|
35
|
+
readonly isRetryable?: boolean;
|
|
36
|
+
readonly retryAfterMs?: number;
|
|
37
|
+
|
|
38
|
+
constructor(args: {
|
|
39
|
+
reason: string;
|
|
40
|
+
isRetryable?: boolean;
|
|
41
|
+
errorData?: EdgeErrorData;
|
|
42
|
+
retryAfterMs?: number;
|
|
43
|
+
cause?: Error;
|
|
44
|
+
}) {
|
|
45
|
+
super(args.reason, { cause: args.cause });
|
|
46
|
+
this.reason = args.reason;
|
|
47
|
+
this.errorData = args.errorData;
|
|
48
|
+
this.retryAfterMs = args.retryAfterMs;
|
|
49
|
+
this.isRetryable = Boolean(args.isRetryable);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export class EdgeAuthChallengeError extends EdgeCallFailedError {
|
|
54
|
+
constructor(
|
|
55
|
+
public readonly challenge: string,
|
|
56
|
+
errorData: EdgeErrorData,
|
|
57
|
+
) {
|
|
58
|
+
super({ reason: 'Auth challenge.', errorData, isRetryable: false });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const getRetryAfterMillis = (response: Response) => {
|
|
63
|
+
const retryAfter = Number(response.headers.get('Retry-After'));
|
|
64
|
+
return Number.isNaN(retryAfter) || retryAfter === 0 ? undefined : retryAfter * 1000;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const createRetryableHttpFailure = (args: { reason: any; retryAfterSeconds: number }) => {
|
|
68
|
+
return new Response(JSON.stringify({ success: false, reason: args.reason }), {
|
|
69
|
+
headers: { 'Retry-After': String(args.retryAfterSeconds) },
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const isRetryableCode = (status: number) => {
|
|
74
|
+
if (status === 501) {
|
|
75
|
+
// Not Implemented
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return !(status >= 400 && status < 500);
|
|
79
|
+
};
|