@lifeready/core 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -62
- package/bundles/lifeready-core.umd.js +15445 -15445
- package/bundles/lifeready-core.umd.js.map +1 -1
- package/bundles/lifeready-core.umd.min.js +1 -1
- package/bundles/lifeready-core.umd.min.js.map +1 -1
- package/esm2015/lib/_common/ast.js +40 -40
- package/esm2015/lib/_common/deferred-promise.js +24 -24
- package/esm2015/lib/_common/exceptions.js +157 -157
- package/esm2015/lib/_common/queries.gql.js +190 -190
- package/esm2015/lib/_common/run-outside-angular.js +79 -79
- package/esm2015/lib/_common/types.js +1 -1
- package/esm2015/lib/_common/utils.js +44 -44
- package/esm2015/lib/api/contact-card.gql.js +79 -79
- package/esm2015/lib/api/contact-card.service.js +154 -154
- package/esm2015/lib/api/contact-card2.gql.js +60 -60
- package/esm2015/lib/api/contact-card2.service.js +103 -103
- package/esm2015/lib/api/file.service.js +74 -74
- package/esm2015/lib/api/item2.gql.js +110 -110
- package/esm2015/lib/api/item2.service.js +311 -311
- package/esm2015/lib/api/key-exchange.gql.js +188 -188
- package/esm2015/lib/api/key-exchange.service.js +442 -442
- package/esm2015/lib/api/key-exchange.types.js +18 -18
- package/esm2015/lib/api/key-exchange2.gql.js +171 -171
- package/esm2015/lib/api/key-exchange2.service.js +479 -479
- package/esm2015/lib/api/lock.gql.js +40 -40
- package/esm2015/lib/api/lock.service.js +64 -64
- package/esm2015/lib/api/lr-apollo.service.js +46 -46
- package/esm2015/lib/api/lr-graphql/index.js +6 -6
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -155
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -213
- package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -51
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -48
- package/esm2015/lib/api/lr-graphql/lr.service.js +18 -18
- package/esm2015/lib/api/message.service.js +138 -138
- package/esm2015/lib/api/persist.service.js +181 -181
- package/esm2015/lib/api/query-processor/common-processors.service.js +93 -93
- package/esm2015/lib/api/query-processor/index.js +3 -3
- package/esm2015/lib/api/query-processor/query-processor.service.js +192 -192
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -109
- package/esm2015/lib/api/shared-contact-card.service.js +119 -119
- package/esm2015/lib/api/shared-contact-card2.gql.js +41 -41
- package/esm2015/lib/api/shared-contact-card2.service.js +117 -117
- package/esm2015/lib/api/time.service.js +146 -146
- package/esm2015/lib/api/types/graphql.types.js +7 -7
- package/esm2015/lib/api/types/index.js +3 -3
- package/esm2015/lib/api/types/lr-graphql.types.js +71 -71
- package/esm2015/lib/auth/auth.config.js +57 -57
- package/esm2015/lib/auth/auth.gql.js +48 -48
- package/esm2015/lib/auth/auth.types.js +27 -27
- package/esm2015/lib/auth/idle.service.js +168 -168
- package/esm2015/lib/auth/idle.types.js +7 -7
- package/esm2015/lib/auth/lbop.service.js +355 -355
- package/esm2015/lib/auth/life-ready-auth.service.js +500 -500
- package/esm2015/lib/auth/password.service.js +320 -320
- package/esm2015/lib/auth/register.service.js +172 -172
- package/esm2015/lib/auth/two-factor.service.js +74 -74
- package/esm2015/lib/category/category-meta.service.js +99 -99
- package/esm2015/lib/category/category.gql.js +406 -406
- package/esm2015/lib/category/category.service.js +390 -390
- package/esm2015/lib/category/category.types.js +29 -29
- package/esm2015/lib/cryptography/cryptography.types.js +11 -11
- package/esm2015/lib/cryptography/encryption.service.js +189 -189
- package/esm2015/lib/cryptography/key-factory.service.js +237 -237
- package/esm2015/lib/cryptography/key-graph.service.js +280 -280
- package/esm2015/lib/cryptography/key-meta.service.js +200 -200
- package/esm2015/lib/cryptography/key.service.js +124 -124
- package/esm2015/lib/cryptography/slip39.service.js +169 -169
- package/esm2015/lib/cryptography/web-crypto.service.js +29 -29
- package/esm2015/lib/life-ready.config.js +84 -84
- package/esm2015/lib/life-ready.module.js +74 -74
- package/esm2015/lib/plan/plan.gql.js +123 -123
- package/esm2015/lib/plan/plan.service.js +149 -149
- package/esm2015/lib/plan/plan.types.js +11 -11
- package/esm2015/lib/record/record-attachment.service.js +101 -101
- package/esm2015/lib/record/record.gql.js +179 -179
- package/esm2015/lib/record/record.service.js +206 -206
- package/esm2015/lib/record/record.types.js +15 -15
- package/esm2015/lib/record-type/record-type.service.js +75 -75
- package/esm2015/lib/record-type/record-type.types.js +28 -28
- package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -105
- package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -1
- package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -300
- package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -52
- package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -97
- package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -1
- package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -150
- package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -229
- package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -1
- package/esm2015/lib/scenario/scenario-setup.service.js +269 -269
- package/esm2015/lib/scenario/scenario.gql.js +368 -368
- package/esm2015/lib/scenario/scenario.service.js +611 -611
- package/esm2015/lib/scenario/scenario.types.js +64 -64
- package/esm2015/lib/search/search.gql.js +62 -62
- package/esm2015/lib/search/search.service.js +156 -156
- package/esm2015/lib/search/search.types.js +6 -6
- package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -112
- package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +129 -129
- package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +4 -4
- package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -232
- package/esm2015/lib/trusted-parties/tp-password-reset.service.js +299 -299
- package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -148
- package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -326
- package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -41
- package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -87
- package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -215
- package/esm2015/lib/users/profile-details.service.js +214 -214
- package/esm2015/lib/users/profile.gql.js +97 -97
- package/esm2015/lib/users/profile.service.js +169 -169
- package/esm2015/lib/users/profile.types.js +34 -34
- package/esm2015/lib/users/user.gql.js +60 -60
- package/esm2015/lib/users/user.service.js +79 -79
- package/esm2015/lib/users/user.types.js +5 -5
- package/esm2015/lifeready-core.js +10 -10
- package/esm2015/public-api.js +81 -81
- package/fesm2015/lifeready-core.js +13088 -13088
- package/fesm2015/lifeready-core.js.map +1 -1
- package/lib/_common/ast.d.ts +11 -11
- package/lib/_common/deferred-promise.d.ts +12 -12
- package/lib/_common/exceptions.d.ts +109 -109
- package/lib/_common/queries.gql.d.ts +10 -10
- package/lib/_common/run-outside-angular.d.ts +14 -14
- package/lib/_common/types.d.ts +10 -10
- package/lib/_common/utils.d.ts +3 -3
- package/lib/api/contact-card.gql.d.ts +7 -7
- package/lib/api/contact-card.service.d.ts +52 -52
- package/lib/api/contact-card2.gql.d.ts +34 -34
- package/lib/api/contact-card2.service.d.ts +49 -49
- package/lib/api/file.service.d.ts +18 -18
- package/lib/api/item2.gql.d.ts +96 -96
- package/lib/api/item2.service.d.ts +177 -177
- package/lib/api/key-exchange.gql.d.ts +9 -9
- package/lib/api/key-exchange.service.d.ts +39 -39
- package/lib/api/key-exchange.types.d.ts +196 -196
- package/lib/api/key-exchange2.gql.d.ts +125 -125
- package/lib/api/key-exchange2.service.d.ts +187 -187
- package/lib/api/lock.gql.d.ts +27 -27
- package/lib/api/lock.service.d.ts +25 -25
- package/lib/api/lr-apollo.service.d.ts +15 -15
- package/lib/api/lr-graphql/index.d.ts +5 -5
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -60
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -27
- package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -28
- package/lib/api/lr-graphql/lr-mutation.d.ts +8 -8
- package/lib/api/lr-graphql/lr.service.d.ts +9 -9
- package/lib/api/message.service.d.ts +58 -58
- package/lib/api/persist.service.d.ts +31 -31
- package/lib/api/query-processor/common-processors.service.d.ts +36 -36
- package/lib/api/query-processor/index.d.ts +2 -2
- package/lib/api/query-processor/query-processor.service.d.ts +18 -18
- package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -15
- package/lib/api/shared-contact-card.service.d.ts +33 -33
- package/lib/api/shared-contact-card2.gql.d.ts +36 -36
- package/lib/api/shared-contact-card2.service.d.ts +45 -45
- package/lib/api/time.service.d.ts +16 -16
- package/lib/api/types/graphql.types.d.ts +29 -29
- package/lib/api/types/index.d.ts +2 -2
- package/lib/api/types/lr-graphql.types.d.ts +393 -385
- package/lib/auth/auth.config.d.ts +5 -5
- package/lib/auth/auth.gql.d.ts +15 -15
- package/lib/auth/auth.types.d.ts +66 -66
- package/lib/auth/idle.service.d.ts +40 -40
- package/lib/auth/idle.types.d.ts +10 -10
- package/lib/auth/lbop.service.d.ts +91 -91
- package/lib/auth/life-ready-auth.service.d.ts +59 -59
- package/lib/auth/password.service.d.ts +78 -78
- package/lib/auth/register.service.d.ts +25 -25
- package/lib/auth/two-factor.service.d.ts +15 -15
- package/lib/category/category-meta.service.d.ts +23 -23
- package/lib/category/category.gql.d.ts +45 -45
- package/lib/category/category.service.d.ts +67 -67
- package/lib/category/category.types.d.ts +79 -79
- package/lib/cryptography/cryptography.types.d.ts +83 -83
- package/lib/cryptography/encryption.service.d.ts +41 -41
- package/lib/cryptography/key-factory.service.d.ts +38 -38
- package/lib/cryptography/key-graph.service.d.ts +33 -33
- package/lib/cryptography/key-meta.service.d.ts +44 -44
- package/lib/cryptography/key.service.d.ts +36 -36
- package/lib/cryptography/slip39.service.d.ts +43 -43
- package/lib/cryptography/web-crypto.service.d.ts +5 -5
- package/lib/life-ready.config.d.ts +14 -14
- package/lib/life-ready.module.d.ts +5 -5
- package/lib/plan/plan.gql.d.ts +11 -11
- package/lib/plan/plan.service.d.ts +33 -33
- package/lib/plan/plan.types.d.ts +31 -31
- package/lib/record/record-attachment.service.d.ts +16 -16
- package/lib/record/record.gql.d.ts +14 -14
- package/lib/record/record.service.d.ts +25 -25
- package/lib/record/record.types.d.ts +57 -57
- package/lib/record-type/record-type.service.d.ts +11 -11
- package/lib/record-type/record-type.types.d.ts +50 -50
- package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -7
- package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -63
- package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -32
- package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -5
- package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -17
- package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -18
- package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -8
- package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -30
- package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -54
- package/lib/scenario/scenario-setup.service.d.ts +22 -22
- package/lib/scenario/scenario.gql.d.ts +34 -34
- package/lib/scenario/scenario.service.d.ts +58 -58
- package/lib/scenario/scenario.types.d.ts +217 -217
- package/lib/search/search.gql.d.ts +1 -1
- package/lib/search/search.service.d.ts +25 -25
- package/lib/search/search.types.d.ts +20 -20
- package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -20
- package/lib/trusted-parties/tp-password-reset-user.service.d.ts +35 -35
- package/lib/trusted-parties/tp-password-reset.constants.d.ts +3 -3
- package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -218
- package/lib/trusted-parties/tp-password-reset.service.d.ts +130 -130
- package/lib/trusted-parties/trusted-party.gql.d.ts +9 -9
- package/lib/trusted-parties/trusted-party.service.d.ts +44 -44
- package/lib/trusted-parties/trusted-party.types.d.ts +102 -102
- package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -79
- package/lib/trusted-parties/trusted-party2.service.d.ts +114 -114
- package/lib/users/profile-details.service.d.ts +21 -21
- package/lib/users/profile.gql.d.ts +11 -11
- package/lib/users/profile.service.d.ts +35 -35
- package/lib/users/profile.types.d.ts +96 -96
- package/lib/users/user.gql.d.ts +9 -9
- package/lib/users/user.service.d.ts +12 -12
- package/lib/users/user.types.d.ts +23 -23
- package/lifeready-core.d.ts +9 -9
- package/package.json +1 -1
- package/public-api.d.ts +77 -77
|
@@ -1,155 +1,155 @@
|
|
|
1
|
-
import { __awaiter, __decorate } from "tslib";
|
|
2
|
-
import * as lodash from 'lodash';
|
|
3
|
-
import { Injectable, NgZone } from '@angular/core';
|
|
4
|
-
import { Apollo } from 'apollo-angular';
|
|
5
|
-
import { KeyGraphService } from '../../cryptography/key-graph.service';
|
|
6
|
-
import { handleApolloError, LrBadStateException, LrUnsupportedException, } from '../../_common/exceptions';
|
|
7
|
-
import { FetchKeyGraphField, KeyGraphField } from '../../_common/queries.gql';
|
|
8
|
-
import { getQuery, getMutation } from '../../_common/ast';
|
|
9
|
-
import gql from 'graphql-tag';
|
|
10
|
-
import { QueryProcessorService } from '../query-processor';
|
|
11
|
-
import { RunOutsideAngular } from '../../_common/run-outside-angular';
|
|
12
|
-
import * as gqlPrinter from 'graphql/language/printer';
|
|
13
|
-
import { LrMergedMutation } from './lr-merged-mutation';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "apollo-angular";
|
|
16
|
-
import * as i2 from "../../cryptography/key-graph.service";
|
|
17
|
-
import * as i3 from "../query-processor/query-processor.service";
|
|
18
|
-
// Data structures
|
|
19
|
-
// --------------------------------------------------------------------------
|
|
20
|
-
const keyGraphFieldAstSelection = getQuery(gql `
|
|
21
|
-
query {
|
|
22
|
-
${KeyGraphField}
|
|
23
|
-
}
|
|
24
|
-
`).selectionSet.selections[0];
|
|
25
|
-
const fetchKeyGraphFieldAstSelection = getQuery(gql `
|
|
26
|
-
query {
|
|
27
|
-
${FetchKeyGraphField}
|
|
28
|
-
}
|
|
29
|
-
`).selectionSet.selections[0];
|
|
30
|
-
let LrGraphQLService = class LrGraphQLService {
|
|
31
|
-
constructor(ngZone, apollo, keyGraph, queryProcessor) {
|
|
32
|
-
this.ngZone = ngZone;
|
|
33
|
-
this.apollo = apollo;
|
|
34
|
-
this.keyGraph = keyGraph;
|
|
35
|
-
this.queryProcessor = queryProcessor;
|
|
36
|
-
this.stats = {
|
|
37
|
-
queryCount: 0,
|
|
38
|
-
mutationCount: 0,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
query(options) {
|
|
42
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
// Make copies to avoid side effect.
|
|
44
|
-
options = lodash.cloneDeep(options);
|
|
45
|
-
// Append the key graph query
|
|
46
|
-
const includeKeyGraph = this.isIncludeKeyGraph(options.includeKeyGraph);
|
|
47
|
-
if (includeKeyGraph) {
|
|
48
|
-
const operation = getQuery(options.query);
|
|
49
|
-
operation.selectionSet.selections = [
|
|
50
|
-
...operation.selectionSet.selections,
|
|
51
|
-
keyGraphFieldAstSelection,
|
|
52
|
-
];
|
|
53
|
-
}
|
|
54
|
-
const response = yield this.apollo.query(options).toPromise();
|
|
55
|
-
this.stats.queryCount++;
|
|
56
|
-
handleApolloError(response.errors);
|
|
57
|
-
this.addKeys(response);
|
|
58
|
-
const data = yield this.queryProcessor.processQuery(response.data, options.processorOptions);
|
|
59
|
-
return data;
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
lrMutateImpl(lrMutation, options) {
|
|
63
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
if (options === null || options === void 0 ? void 0 : options.variables) {
|
|
65
|
-
throw new LrUnsupportedException('Unsupported field: "options.variables"');
|
|
66
|
-
}
|
|
67
|
-
if (lrMutation.executed) {
|
|
68
|
-
throw new LrBadStateException('LrMutation has already executed. LrMutation can only be used once in a lrMutate() call. Create new instances of LrMutation.');
|
|
69
|
-
}
|
|
70
|
-
lrMutation.setExecuted();
|
|
71
|
-
return this.apolloMutate(Object.assign(Object.assign({}, options), lrMutation.lrMutationData))
|
|
72
|
-
.then((res) => {
|
|
73
|
-
// Resolve promises set on the lrMutation rather than the lrMutate() call.
|
|
74
|
-
lrMutation.resolve(res);
|
|
75
|
-
// Still need to return value to the promise waiting for the results of lrMutate().
|
|
76
|
-
return res;
|
|
77
|
-
})
|
|
78
|
-
.catch((error) => {
|
|
79
|
-
lrMutation.reject(error);
|
|
80
|
-
throw error;
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
apolloMutate(options) {
|
|
85
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
// Make copies to avoid side effect.
|
|
87
|
-
options = Object.assign(Object.assign({}, options), { mutation: lodash.cloneDeep(options.mutation) });
|
|
88
|
-
// Append the key graph query
|
|
89
|
-
const includeKeyGraph = this.isIncludeKeyGraph(options.includeKeyGraph);
|
|
90
|
-
if (includeKeyGraph) {
|
|
91
|
-
const operation = getMutation(options.mutation);
|
|
92
|
-
operation.selectionSet.selections = [
|
|
93
|
-
...operation.selectionSet.selections,
|
|
94
|
-
fetchKeyGraphFieldAstSelection,
|
|
95
|
-
];
|
|
96
|
-
}
|
|
97
|
-
// Format to string and parse again. This allows the "loc": { "start": ... }
|
|
98
|
-
// part of the DocumentNode to be correctly setup. It's extra processing
|
|
99
|
-
// in serialising and parsing, but probably minimal overhead.
|
|
100
|
-
options.mutation = gql(gqlPrinter.print(options.mutation));
|
|
101
|
-
const response = yield this.apollo.mutate(options).toPromise();
|
|
102
|
-
this.stats.mutationCount++;
|
|
103
|
-
handleApolloError(response.errors);
|
|
104
|
-
this.addKeys(response);
|
|
105
|
-
const data = yield this.queryProcessor.processQuery(response.data, options.processorOptions);
|
|
106
|
-
return data;
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
statsSnapshot() {
|
|
110
|
-
return lodash.cloneDeep(this.stats);
|
|
111
|
-
}
|
|
112
|
-
addKeys(response) {
|
|
113
|
-
if (response.data.keyGraph) {
|
|
114
|
-
this.keyGraph.addKeys(response.data.keyGraph);
|
|
115
|
-
delete response.data.keyGraph;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
isIncludeKeyGraph(includeKeyGraph) {
|
|
119
|
-
// Default to true when null or undefined.
|
|
120
|
-
return includeKeyGraph == null ? true : false;
|
|
121
|
-
}
|
|
122
|
-
lrMutate(lrMutations, options) {
|
|
123
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
-
if (lrMutations instanceof Array) {
|
|
125
|
-
const merged = LrMergedMutation.create(yield Promise.all(lrMutations));
|
|
126
|
-
yield this.lrMutateImpl(merged, options);
|
|
127
|
-
return merged.promise;
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
const resolved = yield lrMutations;
|
|
131
|
-
yield this.lrMutateImpl(resolved, options);
|
|
132
|
-
return resolved.promise;
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
LrGraphQLService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LrGraphQLService_Factory() { return new LrGraphQLService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Apollo), i0.ɵɵinject(i2.KeyGraphService), i0.ɵɵinject(i3.QueryProcessorService)); }, token: LrGraphQLService, providedIn: "root" });
|
|
138
|
-
LrGraphQLService.decorators = [
|
|
139
|
-
{ type: Injectable, args: [{
|
|
140
|
-
providedIn: 'root',
|
|
141
|
-
},] }
|
|
142
|
-
];
|
|
143
|
-
LrGraphQLService.ctorParameters = () => [
|
|
144
|
-
{ type: NgZone },
|
|
145
|
-
{ type: Apollo },
|
|
146
|
-
{ type: KeyGraphService },
|
|
147
|
-
{ type: QueryProcessorService }
|
|
148
|
-
];
|
|
149
|
-
LrGraphQLService = __decorate([
|
|
150
|
-
RunOutsideAngular({
|
|
151
|
-
ngZoneName: 'ngZone',
|
|
152
|
-
})
|
|
153
|
-
], LrGraphQLService);
|
|
154
|
-
export { LrGraphQLService };
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL25ld3JlcG8va2MtY2xpZW50L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2FwaS9sci1ncmFwaHFsL2xyLWdyYXBocWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixzQkFBc0IsR0FDdkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUUsT0FBTyxFQUFxQixRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDO0FBQzlCLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd0RSxPQUFPLEtBQUssVUFBVSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQUV4RCxrQkFBa0I7QUFDbEIsNkVBQTZFO0FBQzdFLE1BQU0seUJBQXlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQTs7SUFFMUMsYUFBYTs7Q0FFaEIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFjLENBQUM7QUFFM0MsTUFBTSw4QkFBOEIs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USxDQUFDLENBQUM7WUFDL0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxlQUFlO1FBQ3ZDLDBDQUEwQztRQUMxQyxPQUFPLGVBQWUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7SUF3RUssUUFBUSxDQUNaLFdBRXFDLEVBQ3JDLE9BQTJCOztZQUUzQixJQUFJLFdBQVcsWUFBWSxLQUFLLEVBQUU7Z0JBQ2hDLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDdkUsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLE1BQU0sUUFBUSxHQUFHLE1BQU0sV0FBVyxDQUFDO2dCQUNuQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDekI7UUFDSCxDQUFDO0tBQUE7Q0FDRixDQUFBOzs7WUE5TkEsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFyRm9CLE1BQU07WUFDbEIsTUFBTTtZQVFOLGVBQWU7WUFVRyxxQkFBcUI7O0FBbUVuQyxnQkFBZ0I7SUFONUIsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLGdCQUFnQixDQTJONUI7U0EzTlksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbG9kYXNoIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XHJcbmltcG9ydCB7XHJcbiAgUXVlcnlPcHRpb25zLFxyXG4gIE11dGF0aW9uT3B0aW9ucyxcclxuICBPcGVyYXRpb25WYXJpYWJsZXMsXHJcbiAgRmV0Y2hQb2xpY3ksXHJcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XHJcbmltcG9ydCB7IE11dGF0aW9uQmFzZU9wdGlvbnMgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlL3dhdGNoUXVlcnlPcHRpb25zJztcclxuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY3J5cHRvZ3JhcGh5L2tleS1ncmFwaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi8uLi9jcnlwdG9ncmFwaHkvY3J5cHRvZ3JhcGh5LnR5cGVzJztcclxuaW1wb3J0IHtcclxuICBoYW5kbGVBcG9sbG9FcnJvcixcclxuICBMckJhZFN0YXRlRXhjZXB0aW9uLFxyXG4gIExyVW5zdXBwb3J0ZWRFeGNlcHRpb24sXHJcbn0gZnJvbSAnLi4vLi4vX2NvbW1vbi9leGNlcHRpb25zJztcclxuaW1wb3J0IHsgRmV0Y2hLZXlHcmFwaEZpZWxkLCBLZXlHcmFwaEZpZWxkIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9xdWVyaWVzLmdxbCc7XHJcbmltcG9ydCB7IFR5cGVkRG9jdW1lbnROb2RlLCBnZXRRdWVyeSwgZ2V0TXV0YXRpb24gfSBmcm9tICcuLi8uLi9fY29tbW9uL2FzdCc7XHJcbmltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xyXG5pbXBvcnQgeyBQcm9jZXNzb3JPcHRpb25zLCBRdWVyeVByb2Nlc3NvclNlcnZpY2UgfSBmcm9tICcuLi9xdWVyeS1wcm9jZXNzb3InO1xyXG5pbXBvcnQgeyBSdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJy4uLy4uL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhcic7XHJcbmltcG9ydCB7IEZpZWxkTm9kZSB9IGZyb20gJ2dyYXBocWwnO1xyXG5pbXBvcnQgeyBMck11dGF0aW9uQmFzZSB9IGZyb20gJy4vbHItbXV0YXRpb24tYmFzZSc7XHJcbmltcG9ydCAqIGFzIGdxbFByaW50ZXIgZnJvbSAnZ3JhcGhxbC9sYW5ndWFnZS9wcmludGVyJztcclxuaW1wb3J0IHsgTHJNZXJnZWRNdXRhdGlvbiB9IGZyb20gJy4vbHItbWVyZ2VkLW11dGF0aW9uJztcclxuXHJcbi8vIERhdGEgc3RydWN0dXJlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5jb25zdCBrZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uID0gZ2V0UXVlcnkoZ3FsYFxyXG5xdWVyeSB7XHJcbiAgJHtLZXlHcmFwaEZpZWxkfVxyXG59XHJcbmApLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zWzBdIGFzIEZpZWxkTm9kZTtcclxuXHJcbmNvbnN0IGZldGNoS2V5R3JhcGhGaWVsZEFzdFNlbGVjdGlvbiA9IGdldFF1ZXJ5KGdxbGBcclxucXVlcnkge1xyXG4gICR7RmV0Y2hLZXlHcmFwaEZpZWxkfVxyXG59XHJcbmApLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zWzBdIGFzIEZpZWxkTm9kZTtcclxuXHJcbi8vIGNvbnN0IGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxyXG4vLyAgIGxvZGFzaC5kZWVwQ2xvbmUoX2tleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24pIGFzIEZpZWxkTm9kZTtcclxuLy8gY29uc3QgZmV0Y2hLZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uID0gKCkgPT5cclxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9mZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24pIGFzIEZpZWxkTm9kZTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTHJRdWVyeU9wdGlvbnM8VCwgVFZhcmlhYmxlcz5cclxuICBleHRlbmRzIFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzPiB7XHJcbiAgcXVlcnk6IFR5cGVkRG9jdW1lbnROb2RlPFQ+O1xyXG4gIGluY2x1ZGVLZXlHcmFwaD86IGJvb2xlYW47XHJcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XHJcbn1cclxuXHJcbi8vIENvcGllZCBmcm9tIE11dGF0aW9uT3B0aW9uc1xyXG4vLyBSZW1vdmVkIHJlcXVpcmVkIGZpZWxkIFwibXV0YXRpb25cIi4gVGhlIFwidmFyaWFibGVzXCIgZmllbGQgaXMgc3RpbGwgdGhlcmVcclxuLy8gYnV0IGl0J3MgZHluYW1pY2FsbHkgY2hlY2tlZC5cclxuZXhwb3J0IGludGVyZmFjZSBMck11dGF0aW9uT3B0aW9uczxcclxuICBUID0ge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gIH0sXHJcbiAgVFZhcmlhYmxlcyA9IE9wZXJhdGlvblZhcmlhYmxlc1xyXG4+IGV4dGVuZHMgTXV0YXRpb25CYXNlT3B0aW9uczxULCBUVmFyaWFibGVzPiB7XHJcbiAgY29udGV4dD86IGFueTtcclxuICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xyXG4gIGluY2x1ZGVLZXlHcmFwaD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8vIFRoZSBcIm11dGF0aW9uXCIgYW5kIFwidmFyaWFibGVcIiBmaWVsZHMgYXJlIGluaGVyaXRlZCBidXQgZHluYW1pY2FsbHkgcHJvaGliaXRlZCBiZWNhdXNlXHJcbi8vIHRoZXkgYXJlIHByb3ZpZGVkIGJ5IExyTXV0YXRpb24uIEl0J3MgYSBiaXQgdW5jbGVhbiBidXQgYXZvaWRzIGEgbG90IG9mIHR5cGluZyB3b3JrLlxyXG5leHBvcnQgaW50ZXJmYWNlIExyQXBvbGxvTXV0YXRpb25PcHRpb25zPFQsIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXM+XHJcbiAgZXh0ZW5kcyBNdXRhdGlvbk9wdGlvbnM8VCwgVFZhcmlhYmxlcz4ge1xyXG4gIG11dGF0aW9uOiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcclxuICBpbmNsdWRlS2V5R3JhcGg/OiBib29sZWFuO1xyXG4gIHByb2Nlc3Nvck9wdGlvbnM/OiBQcm9jZXNzb3JPcHRpb25zO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTHJHcmFwaFFMU2VydmljZVN0YXRzIHtcclxuICBxdWVyeUNvdW50OiBudW1iZXI7XHJcbiAgbXV0YXRpb25Db3VudDogbnVtYmVyO1xyXG59XHJcblxyXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xyXG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxyXG59KVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTHJHcmFwaFFMU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzdGF0czogTHJHcmFwaFFMU2VydmljZVN0YXRzID0ge1xyXG4gICAgcXVlcnlDb3VudDogMCxcclxuICAgIG11dGF0aW9uQ291bnQ6IDAsXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBhcG9sbG86IEFwb2xsbyxcclxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZSxcclxuICAgIHByaXZhdGUgcXVlcnlQcm9jZXNzb3I6IFF1ZXJ5UHJvY2Vzc29yU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgcXVlcnk8VCwgViA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxyXG4gICAgb3B0aW9uczogTHJRdWVyeU9wdGlvbnM8VCwgVj5cclxuICApOiBQcm9taXNlPFQ+IHtcclxuICAgIC8vIE1ha2UgY29waWVzIHRvIGF2b2lkIHNpZGUgZWZmZWN0LlxyXG4gICAgb3B0aW9ucyA9IGxvZGFzaC5jbG9uZURlZXAob3B0aW9ucyk7XHJcblxyXG4gICAgLy8gQXBwZW5kIHRoZSBrZXkgZ3JhcGggcXVlcnlcclxuICAgIGNvbnN0IGluY2x1ZGVLZXlHcmFwaCA9IHRoaXMuaXNJbmNsdWRlS2V5R3JhcGgob3B0aW9ucy5pbmNsdWRlS2V5R3JhcGgpO1xyXG4gICAgaWYgKGluY2x1ZGVLZXlHcmFwaCkge1xyXG4gICAgICBjb25zdCBvcGVyYXRpb24gPSBnZXRRdWVyeShvcHRpb25zLnF1ZXJ5KTtcclxuICAgICAgb3BlcmF0aW9uLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gW1xyXG4gICAgICAgIC4uLm9wZXJhdGlvbi5zZWxlY3Rpb25TZXQuc2VsZWN0aW9ucyxcclxuICAgICAgICBrZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uLFxyXG4gICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5hcG9sbG8ucXVlcnk8VCwgVj4ob3B0aW9ucykudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgdGhpcy5zdGF0cy5xdWVyeUNvdW50Kys7XHJcblxyXG4gICAgaGFuZGxlQXBvbGxvRXJyb3IocmVzcG9uc2UuZXJyb3JzKTtcclxuXHJcbiAgICB0aGlzLmFkZEtleXMocmVzcG9uc2UpO1xyXG5cclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLnF1ZXJ5UHJvY2Vzc29yLnByb2Nlc3NRdWVyeShcclxuICAgICAgcmVzcG9uc2UuZGF0YSxcclxuICAgICAgb3B0aW9ucy5wcm9jZXNzb3JPcHRpb25zXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBsck11dGF0ZUltcGwobHJNdXRhdGlvbiwgb3B0aW9ucz8pIHtcclxuICAgIGlmIChvcHRpb25zPy52YXJpYWJsZXMpIHtcclxuICAgICAgdGhyb3cgbmV3IExyVW5zdXBwb3J0ZWRFeGNlcHRpb24oXHJcbiAgICAgICAgJ1Vuc3VwcG9ydGVkIGZpZWxkOiBcIm9wdGlvbnMudmFyaWFibGVzXCInXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxyTXV0YXRpb24uZXhlY3V0ZWQpIHtcclxuICAgICAgdGhyb3cgbmV3IExyQmFkU3RhdGVFeGNlcHRpb24oXHJcbiAgICAgICAgJ0xyTXV0YXRpb24gaGFzIGFscmVhZHkgZXhlY3V0ZWQuIExyTXV0YXRpb24gY2FuIG9ubHkgYmUgdXNlZCBvbmNlIGluIGEgbHJNdXRhdGUoKSBjYWxsLiBDcmVhdGUgbmV3IGluc3RhbmNlcyBvZiBMck11dGF0aW9uLidcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBsck11dGF0aW9uLnNldEV4ZWN1dGVkKCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXBvbGxvTXV0YXRlKHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgLi4ubHJNdXRhdGlvbi5sck11dGF0aW9uRGF0YSxcclxuICAgIH0pXHJcbiAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAvLyBSZXNvbHZlIHByb21pc2VzIHNldCBvbiB0aGUgbHJNdXRhdGlvbiByYXRoZXIgdGhhbiB0aGUgbHJNdXRhdGUoKSBjYWxsLlxyXG4gICAgICAgIGxyTXV0YXRpb24ucmVzb2x2ZShyZXMpO1xyXG4gICAgICAgIC8vIFN0aWxsIG5lZWQgdG8gcmV0dXJuIHZhbHVlIHRvIHRoZSBwcm9taXNlIHdhaXRpbmcgZm9yIHRoZSByZXN1bHRzIG9mIGxyTXV0YXRlKCkuXHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGxyTXV0YXRpb24ucmVqZWN0KGVycm9yKTtcclxuICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBhcG9sbG9NdXRhdGU8VCBleHRlbmRzIGFueSwgVFZhcmlhYmxlcyA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxyXG4gICAgb3B0aW9uczogTHJBcG9sbG9NdXRhdGlvbk9wdGlvbnM8VCwgVFZhcmlhYmxlcz5cclxuICApOiBQcm9taXNlPFQ+IHtcclxuICAgIC8vIE1ha2UgY29waWVzIHRvIGF2b2lkIHNpZGUgZWZmZWN0LlxyXG4gICAgb3B0aW9ucyA9IHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgbXV0YXRpb246IGxvZGFzaC5jbG9uZURlZXAob3B0aW9ucy5tdXRhdGlvbiksXHJcbiAgICB9O1xyXG5cclxuICAgIC8vIEFwcGVuZCB0aGUga2V5IGdyYXBoIHF1ZXJ5XHJcbiAgICBjb25zdCBpbmNsdWRlS2V5R3JhcGggPSB0aGlzLmlzSW5jbHVkZUtleUdyYXBoKG9wdGlvbnMuaW5jbHVkZUtleUdyYXBoKTtcclxuXHJcbiAgICBpZiAoaW5jbHVkZUtleUdyYXBoKSB7XHJcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldE11dGF0aW9uKG9wdGlvbnMubXV0YXRpb24pO1xyXG4gICAgICBvcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMgPSBbXHJcbiAgICAgICAgLi4ub3BlcmF0aW9uLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zLFxyXG4gICAgICAgIGZldGNoS2V5R3JhcGhGaWVsZEFzdFNlbGVjdGlvbixcclxuICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBGb3JtYXQgdG8gc3RyaW5nIGFuZCBwYXJzZSBhZ2Fpbi4gVGhpcyBhbGxvd3MgdGhlIFwibG9jXCI6IHsgXCJzdGFydFwiOiAuLi4gfVxyXG4gICAgLy8gcGFydCBvZiB0aGUgRG9jdW1lbnROb2RlIHRvIGJlIGNvcnJlY3RseSBzZXR1cC4gSXQncyBleHRyYSBwcm9jZXNzaW5nXHJcbiAgICAvLyBpbiBzZXJpYWxpc2luZyBhbmQgcGFyc2luZywgYnV0IHByb2JhYmx5IG1pbmltYWwgb3ZlcmhlYWQuXHJcbiAgICBvcHRpb25zLm11dGF0aW9uID0gZ3FsKGdxbFByaW50ZXIucHJpbnQob3B0aW9ucy5tdXRhdGlvbikpO1xyXG5cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5hcG9sbG8ubXV0YXRlPFQ+KG9wdGlvbnMpLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgIHRoaXMuc3RhdHMubXV0YXRpb25Db3VudCsrO1xyXG5cclxuICAgIGhhbmRsZUFwb2xsb0Vycm9yKHJlc3BvbnNlLmVycm9ycyk7XHJcblxyXG4gICAgdGhpcy5hZGRLZXlzKHJlc3BvbnNlKTtcclxuXHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5xdWVyeVByb2Nlc3Nvci5wcm9jZXNzUXVlcnkoXHJcbiAgICAgIHJlc3BvbnNlLmRhdGEsXHJcbiAgICAgIG9wdGlvbnMucHJvY2Vzc29yT3B0aW9uc1xyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHN0YXRzU25hcHNob3QoKTogTHJHcmFwaFFMU2VydmljZVN0YXRzIHtcclxuICAgIHJldHVybiBsb2Rhc2guY2xvbmVEZWVwKHRoaXMuc3RhdHMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRLZXlzKHJlc3BvbnNlKSB7XHJcbiAgICBpZiAoKHJlc3BvbnNlLmRhdGEgYXMgSGFzS2V5R3JhcGgpLmtleUdyYXBoKSB7XHJcbiAgICAgIHRoaXMua2V5R3JhcGguYWRkS2V5cygocmVzcG9uc2UuZGF0YSBhcyBIYXNLZXlHcmFwaCkua2V5R3JhcGgpO1xyXG4gICAgICBkZWxldGUgcmVzcG9uc2UuZGF0YS5rZXlHcmFwaDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbmNsdWRlS2V5R3JhcGgoaW5jbHVkZUtleUdyYXBoKSB7XHJcbiAgICAvLyBEZWZhdWx0IHRvIHRydWUgd2hlbiBudWxsIG9yIHVuZGVmaW5lZC5cclxuICAgIHJldHVybiBpbmNsdWRlS2V5R3JhcGggPT0gbnVsbCA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGxyTXV0YXRlPFQxLCBUVmFyaWFibGVzMSwgVDIsIFRWYXJpYWJsZXMyPihcclxuICAgIGxyTXV0YXRpb25zOiBbXHJcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMSwgVFZhcmlhYmxlczE+LFxyXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPlxyXG4gICAgXSxcclxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xyXG4gICk6IFByb21pc2U8W1QxLCBUMl0+O1xyXG5cclxuICBhc3luYyBsck11dGF0ZTxUMSwgVFZhcmlhYmxlczEsIFQyLCBUVmFyaWFibGVzMiwgVDMsIFRWYXJpYWJsZXMzPihcclxuICAgIGxyTXV0YXRpb25zOiBbXHJcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMSwgVFZhcmlhYmxlczE+LFxyXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPixcclxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQzLCBUVmFyaWFibGVzMz5cclxuICAgIF0sXHJcbiAgICBvcHRpb25zPzogTHJNdXRhdGlvbk9wdGlvbnNcclxuICApOiBQcm9taXNlPFtUMSwgVDIsIFQzXT47XHJcblxyXG4gIGFzeW5jIGxyTXV0YXRlPFxyXG4gICAgVDEsXHJcbiAgICBUVmFyaWFibGVzMSxcclxuICAgIFQyLFxyXG4gICAgVFZhcmlhYmxlczIsXHJcbiAgICBUMyxcclxuICAgIFRWYXJpYWJsZXMzLFxyXG4gICAgVDQsXHJcbiAgICBUVmFyaWFibGVzNFxyXG4gID4oXHJcbiAgICBsck11dGF0aW9uczogW1xyXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDEsIFRWYXJpYWJsZXMxPixcclxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQyLCBUVmFyaWFibGVzMj4sXHJcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMywgVFZhcmlhYmxlczM+LFxyXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDQsIFRWYXJpYWJsZXM0PlxyXG4gICAgXSxcclxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uc1xyXG4gICk6IFByb21pc2U8W1QxLCBUMiwgVDMsIFQ0XT47XHJcblxyXG4gIGFzeW5jIGxyTXV0YXRlPFxyXG4gICAgVDEsXHJcbiAgICBUVmFyaWFibGVzMSxcclxuICAgIFQyLFxyXG4gICAgVFZhcmlhYmxlczIsXHJcbiAgICBUMyxcclxuICAgIFRWYXJpYWJsZXMzLFxyXG4gICAgVDQsXHJcbiAgICBUVmFyaWFibGVzNCxcclxuICAgIFQ1LFxyXG4gICAgVFZhcmlhYmxlczVcclxuICA+KFxyXG4gICAgbHJNdXRhdGlvbnM6IFtcclxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQxLCBUVmFyaWFibGVzMT4sXHJcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMiwgVFZhcmlhYmxlczI+LFxyXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDMsIFRWYXJpYWJsZXMzPixcclxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQ0LCBUVmFyaWFibGVzND4sXHJcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUNSwgVFZhcmlhYmxlczU+XHJcbiAgICBdLFxyXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXHJcbiAgKTogUHJvbWlzZTxbVDEsIFQyLCBUMywgVDQsIFQ1XT47XHJcblxyXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcclxuICAgIGxyTXV0YXRpb246IExyTXV0YXRpb25NYXlBc3luYzxULCBUVmFyaWFibGVzPixcclxuICAgIG9wdGlvbnM/OiBMck11dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPlxyXG4gICk6IFByb21pc2U8VD47XHJcblxyXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcclxuICAgIGxyTXV0YXRpb25zOlxyXG4gICAgICB8IExyTXV0YXRpb25NYXlBc3luYzxULCBUVmFyaWFibGVzPltdXHJcbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+LFxyXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXHJcbiAgKTtcclxuXHJcbiAgYXN5bmMgbHJNdXRhdGU8VCwgVFZhcmlhYmxlcyA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxyXG4gICAgbHJNdXRhdGlvbnM6XHJcbiAgICAgIHwgTHJNdXRhdGlvbk1heUFzeW5jPFQsIFRWYXJpYWJsZXM+W11cclxuICAgICAgfCBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz4sXHJcbiAgICBvcHRpb25zPzogTHJNdXRhdGlvbk9wdGlvbnNcclxuICApIHtcclxuICAgIGlmIChsck11dGF0aW9ucyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgIGNvbnN0IG1lcmdlZCA9IExyTWVyZ2VkTXV0YXRpb24uY3JlYXRlKGF3YWl0IFByb21pc2UuYWxsKGxyTXV0YXRpb25zKSk7XHJcbiAgICAgIGF3YWl0IHRoaXMubHJNdXRhdGVJbXBsKG1lcmdlZCwgb3B0aW9ucyk7XHJcbiAgICAgIHJldHVybiBtZXJnZWQucHJvbWlzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgbHJNdXRhdGlvbnM7XHJcbiAgICAgIGF3YWl0IHRoaXMubHJNdXRhdGVJbXBsKHJlc29sdmVkLCBvcHRpb25zKTtcclxuICAgICAgcmV0dXJuIHJlc29sdmVkLnByb21pc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIExyTXV0YXRpb25NYXlBc3luYzxULCBUVmFyaWFibGVzPiA9XHJcbiAgfCBMck11dGF0aW9uQmFzZTxULCBUVmFyaWFibGVzPlxyXG4gIHwgUHJvbWlzZTxMck11dGF0aW9uQmFzZTxULCBUVmFyaWFibGVzPj5cclxuICB8IExyTWVyZ2VkTXV0YXRpb248VD5cclxuICB8IFByb21pc2U8THJNZXJnZWRNdXRhdGlvbjxUPj47XHJcbiJdfQ==
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import * as lodash from 'lodash';
|
|
3
|
+
import { Injectable, NgZone } from '@angular/core';
|
|
4
|
+
import { Apollo } from 'apollo-angular';
|
|
5
|
+
import { KeyGraphService } from '../../cryptography/key-graph.service';
|
|
6
|
+
import { handleApolloError, LrBadStateException, LrUnsupportedException, } from '../../_common/exceptions';
|
|
7
|
+
import { FetchKeyGraphField, KeyGraphField } from '../../_common/queries.gql';
|
|
8
|
+
import { getQuery, getMutation } from '../../_common/ast';
|
|
9
|
+
import gql from 'graphql-tag';
|
|
10
|
+
import { QueryProcessorService } from '../query-processor';
|
|
11
|
+
import { RunOutsideAngular } from '../../_common/run-outside-angular';
|
|
12
|
+
import * as gqlPrinter from 'graphql/language/printer';
|
|
13
|
+
import { LrMergedMutation } from './lr-merged-mutation';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "apollo-angular";
|
|
16
|
+
import * as i2 from "../../cryptography/key-graph.service";
|
|
17
|
+
import * as i3 from "../query-processor/query-processor.service";
|
|
18
|
+
// Data structures
|
|
19
|
+
// --------------------------------------------------------------------------
|
|
20
|
+
const keyGraphFieldAstSelection = getQuery(gql `
|
|
21
|
+
query {
|
|
22
|
+
${KeyGraphField}
|
|
23
|
+
}
|
|
24
|
+
`).selectionSet.selections[0];
|
|
25
|
+
const fetchKeyGraphFieldAstSelection = getQuery(gql `
|
|
26
|
+
query {
|
|
27
|
+
${FetchKeyGraphField}
|
|
28
|
+
}
|
|
29
|
+
`).selectionSet.selections[0];
|
|
30
|
+
let LrGraphQLService = class LrGraphQLService {
|
|
31
|
+
constructor(ngZone, apollo, keyGraph, queryProcessor) {
|
|
32
|
+
this.ngZone = ngZone;
|
|
33
|
+
this.apollo = apollo;
|
|
34
|
+
this.keyGraph = keyGraph;
|
|
35
|
+
this.queryProcessor = queryProcessor;
|
|
36
|
+
this.stats = {
|
|
37
|
+
queryCount: 0,
|
|
38
|
+
mutationCount: 0,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
query(options) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
// Make copies to avoid side effect.
|
|
44
|
+
options = lodash.cloneDeep(options);
|
|
45
|
+
// Append the key graph query
|
|
46
|
+
const includeKeyGraph = this.isIncludeKeyGraph(options.includeKeyGraph);
|
|
47
|
+
if (includeKeyGraph) {
|
|
48
|
+
const operation = getQuery(options.query);
|
|
49
|
+
operation.selectionSet.selections = [
|
|
50
|
+
...operation.selectionSet.selections,
|
|
51
|
+
keyGraphFieldAstSelection,
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
const response = yield this.apollo.query(options).toPromise();
|
|
55
|
+
this.stats.queryCount++;
|
|
56
|
+
handleApolloError(response.errors);
|
|
57
|
+
this.addKeys(response);
|
|
58
|
+
const data = yield this.queryProcessor.processQuery(response.data, options.processorOptions);
|
|
59
|
+
return data;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
lrMutateImpl(lrMutation, options) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
if (options === null || options === void 0 ? void 0 : options.variables) {
|
|
65
|
+
throw new LrUnsupportedException('Unsupported field: "options.variables"');
|
|
66
|
+
}
|
|
67
|
+
if (lrMutation.executed) {
|
|
68
|
+
throw new LrBadStateException('LrMutation has already executed. LrMutation can only be used once in a lrMutate() call. Create new instances of LrMutation.');
|
|
69
|
+
}
|
|
70
|
+
lrMutation.setExecuted();
|
|
71
|
+
return this.apolloMutate(Object.assign(Object.assign({}, options), lrMutation.lrMutationData))
|
|
72
|
+
.then((res) => {
|
|
73
|
+
// Resolve promises set on the lrMutation rather than the lrMutate() call.
|
|
74
|
+
lrMutation.resolve(res);
|
|
75
|
+
// Still need to return value to the promise waiting for the results of lrMutate().
|
|
76
|
+
return res;
|
|
77
|
+
})
|
|
78
|
+
.catch((error) => {
|
|
79
|
+
lrMutation.reject(error);
|
|
80
|
+
throw error;
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
apolloMutate(options) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
// Make copies to avoid side effect.
|
|
87
|
+
options = Object.assign(Object.assign({}, options), { mutation: lodash.cloneDeep(options.mutation) });
|
|
88
|
+
// Append the key graph query
|
|
89
|
+
const includeKeyGraph = this.isIncludeKeyGraph(options.includeKeyGraph);
|
|
90
|
+
if (includeKeyGraph) {
|
|
91
|
+
const operation = getMutation(options.mutation);
|
|
92
|
+
operation.selectionSet.selections = [
|
|
93
|
+
...operation.selectionSet.selections,
|
|
94
|
+
fetchKeyGraphFieldAstSelection,
|
|
95
|
+
];
|
|
96
|
+
}
|
|
97
|
+
// Format to string and parse again. This allows the "loc": { "start": ... }
|
|
98
|
+
// part of the DocumentNode to be correctly setup. It's extra processing
|
|
99
|
+
// in serialising and parsing, but probably minimal overhead.
|
|
100
|
+
options.mutation = gql(gqlPrinter.print(options.mutation));
|
|
101
|
+
const response = yield this.apollo.mutate(options).toPromise();
|
|
102
|
+
this.stats.mutationCount++;
|
|
103
|
+
handleApolloError(response.errors);
|
|
104
|
+
this.addKeys(response);
|
|
105
|
+
const data = yield this.queryProcessor.processQuery(response.data, options.processorOptions);
|
|
106
|
+
return data;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
statsSnapshot() {
|
|
110
|
+
return lodash.cloneDeep(this.stats);
|
|
111
|
+
}
|
|
112
|
+
addKeys(response) {
|
|
113
|
+
if (response.data.keyGraph) {
|
|
114
|
+
this.keyGraph.addKeys(response.data.keyGraph);
|
|
115
|
+
delete response.data.keyGraph;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
isIncludeKeyGraph(includeKeyGraph) {
|
|
119
|
+
// Default to true when null or undefined.
|
|
120
|
+
return includeKeyGraph == null ? true : false;
|
|
121
|
+
}
|
|
122
|
+
lrMutate(lrMutations, options) {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
if (lrMutations instanceof Array) {
|
|
125
|
+
const merged = LrMergedMutation.create(yield Promise.all(lrMutations));
|
|
126
|
+
yield this.lrMutateImpl(merged, options);
|
|
127
|
+
return merged.promise;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const resolved = yield lrMutations;
|
|
131
|
+
yield this.lrMutateImpl(resolved, options);
|
|
132
|
+
return resolved.promise;
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
LrGraphQLService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LrGraphQLService_Factory() { return new LrGraphQLService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.Apollo), i0.ɵɵinject(i2.KeyGraphService), i0.ɵɵinject(i3.QueryProcessorService)); }, token: LrGraphQLService, providedIn: "root" });
|
|
138
|
+
LrGraphQLService.decorators = [
|
|
139
|
+
{ type: Injectable, args: [{
|
|
140
|
+
providedIn: 'root',
|
|
141
|
+
},] }
|
|
142
|
+
];
|
|
143
|
+
LrGraphQLService.ctorParameters = () => [
|
|
144
|
+
{ type: NgZone },
|
|
145
|
+
{ type: Apollo },
|
|
146
|
+
{ type: KeyGraphService },
|
|
147
|
+
{ type: QueryProcessorService }
|
|
148
|
+
];
|
|
149
|
+
LrGraphQLService = __decorate([
|
|
150
|
+
RunOutsideAngular({
|
|
151
|
+
ngZoneName: 'ngZone',
|
|
152
|
+
})
|
|
153
|
+
], LrGraphQLService);
|
|
154
|
+
export { LrGraphQLService };
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHItZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9hcGkvbHItZ3JhcGhxbC9sci1ncmFwaHFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVF4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdkUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlFLE9BQU8sRUFBcUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdFLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUM5QixPQUFPLEVBQW9CLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHdEUsT0FBTyxLQUFLLFVBQVUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFFeEQsa0JBQWtCO0FBQ2xCLDZFQUE2RTtBQUM3RSxNQUFNLHlCQUF5QixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUE7O0lBRTFDLGFBQWE7O0NBRWhCLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBYyxDQUFDO0FBRTNDLE1BQU0s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QUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsZUFBZTtRQUN2QywwQ0FBMEM7UUFDMUMsT0FBTyxlQUFlLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO0lBd0VLLFFBQVEsQ0FDWixXQUVxQyxFQUNyQyxPQUEyQjs7WUFFM0IsSUFBSSxXQUFXLFlBQVksS0FBSyxFQUFFO2dCQUNoQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZFLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3pDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxNQUFNLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQztnQkFDbkMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBOU5BLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBckZvQixNQUFNO1lBQ2xCLE1BQU07WUFRTixlQUFlO1lBVUcscUJBQXFCOztBQW1FbkMsZ0JBQWdCO0lBTjVCLGlCQUFpQixDQUFDO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUM7R0FJVyxnQkFBZ0IsQ0EyTjVCO1NBM05ZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGxvZGFzaCBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQge1xuICBRdWVyeU9wdGlvbnMsXG4gIE11dGF0aW9uT3B0aW9ucyxcbiAgT3BlcmF0aW9uVmFyaWFibGVzLFxuICBGZXRjaFBvbGljeSxcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBNdXRhdGlvbkJhc2VPcHRpb25zIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZS93YXRjaFF1ZXJ5T3B0aW9ucyc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jcnlwdG9ncmFwaHkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFzS2V5R3JhcGggfSBmcm9tICcuLi8uLi9jcnlwdG9ncmFwaHkvY3J5cHRvZ3JhcGh5LnR5cGVzJztcbmltcG9ydCB7XG4gIGhhbmRsZUFwb2xsb0Vycm9yLFxuICBMckJhZFN0YXRlRXhjZXB0aW9uLFxuICBMclVuc3VwcG9ydGVkRXhjZXB0aW9uLFxufSBmcm9tICcuLi8uLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgRmV0Y2hLZXlHcmFwaEZpZWxkLCBLZXlHcmFwaEZpZWxkIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9xdWVyaWVzLmdxbCc7XG5pbXBvcnQgeyBUeXBlZERvY3VtZW50Tm9kZSwgZ2V0UXVlcnksIGdldE11dGF0aW9uIH0gZnJvbSAnLi4vLi4vX2NvbW1vbi9hc3QnO1xuaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XG5pbXBvcnQgeyBQcm9jZXNzb3JPcHRpb25zLCBRdWVyeVByb2Nlc3NvclNlcnZpY2UgfSBmcm9tICcuLi9xdWVyeS1wcm9jZXNzb3InO1xuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi8uLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRmllbGROb2RlIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBMck11dGF0aW9uQmFzZSB9IGZyb20gJy4vbHItbXV0YXRpb24tYmFzZSc7XG5pbXBvcnQgKiBhcyBncWxQcmludGVyIGZyb20gJ2dyYXBocWwvbGFuZ3VhZ2UvcHJpbnRlcic7XG5pbXBvcnQgeyBMck1lcmdlZE11dGF0aW9uIH0gZnJvbSAnLi9sci1tZXJnZWQtbXV0YXRpb24nO1xuXG4vLyBEYXRhIHN0cnVjdHVyZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5jb25zdCBrZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uID0gZ2V0UXVlcnkoZ3FsYFxucXVlcnkge1xuICAke0tleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbmNvbnN0IGZldGNoS2V5R3JhcGhGaWVsZEFzdFNlbGVjdGlvbiA9IGdldFF1ZXJ5KGdxbGBcbnF1ZXJ5IHtcbiAgJHtGZXRjaEtleUdyYXBoRmllbGR9XG59XG5gKS5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1swXSBhcyBGaWVsZE5vZGU7XG5cbi8vIGNvbnN0IGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9rZXlHcmFwaEZpZWxkQXN0U2VsZWN0aW9uKSBhcyBGaWVsZE5vZGU7XG4vLyBjb25zdCBmZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24gPSAoKSA9PlxuLy8gICBsb2Rhc2guZGVlcENsb25lKF9mZXRjaEtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24pIGFzIEZpZWxkTm9kZTtcblxuZXhwb3J0IGludGVyZmFjZSBMclF1ZXJ5T3B0aW9uczxULCBUVmFyaWFibGVzPlxuICBleHRlbmRzIFF1ZXJ5T3B0aW9uczxUVmFyaWFibGVzPiB7XG4gIHF1ZXJ5OiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbi8vIENvcGllZCBmcm9tIE11dGF0aW9uT3B0aW9uc1xuLy8gUmVtb3ZlZCByZXF1aXJlZCBmaWVsZCBcIm11dGF0aW9uXCIuIFRoZSBcInZhcmlhYmxlc1wiIGZpZWxkIGlzIHN0aWxsIHRoZXJlXG4vLyBidXQgaXQncyBkeW5hbWljYWxseSBjaGVja2VkLlxuZXhwb3J0IGludGVyZmFjZSBMck11dGF0aW9uT3B0aW9uczxcbiAgVCA9IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH0sXG4gIFRWYXJpYWJsZXMgPSBPcGVyYXRpb25WYXJpYWJsZXNcbj4gZXh0ZW5kcyBNdXRhdGlvbkJhc2VPcHRpb25zPFQsIFRWYXJpYWJsZXM+IHtcbiAgY29udGV4dD86IGFueTtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbn1cblxuLy8gVGhlIFwibXV0YXRpb25cIiBhbmQgXCJ2YXJpYWJsZVwiIGZpZWxkcyBhcmUgaW5oZXJpdGVkIGJ1dCBkeW5hbWljYWxseSBwcm9oaWJpdGVkIGJlY2F1c2Vcbi8vIHRoZXkgYXJlIHByb3ZpZGVkIGJ5IExyTXV0YXRpb24uIEl0J3MgYSBiaXQgdW5jbGVhbiBidXQgYXZvaWRzIGEgbG90IG9mIHR5cGluZyB3b3JrLlxuZXhwb3J0IGludGVyZmFjZSBMckFwb2xsb011dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzID0gT3BlcmF0aW9uVmFyaWFibGVzPlxuICBleHRlbmRzIE11dGF0aW9uT3B0aW9uczxULCBUVmFyaWFibGVzPiB7XG4gIG11dGF0aW9uOiBUeXBlZERvY3VtZW50Tm9kZTxUPjtcbiAgaW5jbHVkZUtleUdyYXBoPzogYm9vbGVhbjtcbiAgcHJvY2Vzc29yT3B0aW9ucz86IFByb2Nlc3Nvck9wdGlvbnM7XG59XG5cbmludGVyZmFjZSBMckdyYXBoUUxTZXJ2aWNlU3RhdHMge1xuICBxdWVyeUNvdW50OiBudW1iZXI7XG4gIG11dGF0aW9uQ291bnQ6IG51bWJlcjtcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExyR3JhcGhRTFNlcnZpY2Uge1xuICBwcml2YXRlIHN0YXRzOiBMckdyYXBoUUxTZXJ2aWNlU3RhdHMgPSB7XG4gICAgcXVlcnlDb3VudDogMCxcbiAgICBtdXRhdGlvbkNvdW50OiAwLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBhcG9sbG86IEFwb2xsbyxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdWVyeVByb2Nlc3NvcjogUXVlcnlQcm9jZXNzb3JTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBxdWVyeTxULCBWID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgb3B0aW9uczogTHJRdWVyeU9wdGlvbnM8VCwgVj5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgLy8gTWFrZSBjb3BpZXMgdG8gYXZvaWQgc2lkZSBlZmZlY3QuXG4gICAgb3B0aW9ucyA9IGxvZGFzaC5jbG9uZURlZXAob3B0aW9ucyk7XG5cbiAgICAvLyBBcHBlbmQgdGhlIGtleSBncmFwaCBxdWVyeVxuICAgIGNvbnN0IGluY2x1ZGVLZXlHcmFwaCA9IHRoaXMuaXNJbmNsdWRlS2V5R3JhcGgob3B0aW9ucy5pbmNsdWRlS2V5R3JhcGgpO1xuICAgIGlmIChpbmNsdWRlS2V5R3JhcGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldFF1ZXJ5KG9wdGlvbnMucXVlcnkpO1xuICAgICAgb3BlcmF0aW9uLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gW1xuICAgICAgICAuLi5vcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMsXG4gICAgICAgIGtleUdyYXBoRmllbGRBc3RTZWxlY3Rpb24sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5hcG9sbG8ucXVlcnk8VCwgVj4ob3B0aW9ucykudG9Qcm9taXNlKCk7XG5cbiAgICB0aGlzLnN0YXRzLnF1ZXJ5Q291bnQrKztcblxuICAgIGhhbmRsZUFwb2xsb0Vycm9yKHJlc3BvbnNlLmVycm9ycyk7XG5cbiAgICB0aGlzLmFkZEtleXMocmVzcG9uc2UpO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMucXVlcnlQcm9jZXNzb3IucHJvY2Vzc1F1ZXJ5KFxuICAgICAgcmVzcG9uc2UuZGF0YSxcbiAgICAgIG9wdGlvbnMucHJvY2Vzc29yT3B0aW9uc1xuICAgICk7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbHJNdXRhdGVJbXBsKGxyTXV0YXRpb24sIG9wdGlvbnM/KSB7XG4gICAgaWYgKG9wdGlvbnM/LnZhcmlhYmxlcykge1xuICAgICAgdGhyb3cgbmV3IExyVW5zdXBwb3J0ZWRFeGNlcHRpb24oXG4gICAgICAgICdVbnN1cHBvcnRlZCBmaWVsZDogXCJvcHRpb25zLnZhcmlhYmxlc1wiJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobHJNdXRhdGlvbi5leGVjdXRlZCkge1xuICAgICAgdGhyb3cgbmV3IExyQmFkU3RhdGVFeGNlcHRpb24oXG4gICAgICAgICdMck11dGF0aW9uIGhhcyBhbHJlYWR5IGV4ZWN1dGVkLiBMck11dGF0aW9uIGNhbiBvbmx5IGJlIHVzZWQgb25jZSBpbiBhIGxyTXV0YXRlKCkgY2FsbC4gQ3JlYXRlIG5ldyBpbnN0YW5jZXMgb2YgTHJNdXRhdGlvbi4nXG4gICAgICApO1xuICAgIH1cblxuICAgIGxyTXV0YXRpb24uc2V0RXhlY3V0ZWQoKTtcblxuICAgIHJldHVybiB0aGlzLmFwb2xsb011dGF0ZSh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgLi4ubHJNdXRhdGlvbi5sck11dGF0aW9uRGF0YSxcbiAgICB9KVxuICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAvLyBSZXNvbHZlIHByb21pc2VzIHNldCBvbiB0aGUgbHJNdXRhdGlvbiByYXRoZXIgdGhhbiB0aGUgbHJNdXRhdGUoKSBjYWxsLlxuICAgICAgICBsck11dGF0aW9uLnJlc29sdmUocmVzKTtcbiAgICAgICAgLy8gU3RpbGwgbmVlZCB0byByZXR1cm4gdmFsdWUgdG8gdGhlIHByb21pc2Ugd2FpdGluZyBmb3IgdGhlIHJlc3VsdHMgb2YgbHJNdXRhdGUoKS5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIGxyTXV0YXRpb24ucmVqZWN0KGVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGFwb2xsb011dGF0ZTxUIGV4dGVuZHMgYW55LCBUVmFyaWFibGVzID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgb3B0aW9uczogTHJBcG9sbG9NdXRhdGlvbk9wdGlvbnM8VCwgVFZhcmlhYmxlcz5cbiAgKTogUHJvbWlzZTxUPiB7XG4gICAgLy8gTWFrZSBjb3BpZXMgdG8gYXZvaWQgc2lkZSBlZmZlY3QuXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBtdXRhdGlvbjogbG9kYXNoLmNsb25lRGVlcChvcHRpb25zLm11dGF0aW9uKSxcbiAgICB9O1xuXG4gICAgLy8gQXBwZW5kIHRoZSBrZXkgZ3JhcGggcXVlcnlcbiAgICBjb25zdCBpbmNsdWRlS2V5R3JhcGggPSB0aGlzLmlzSW5jbHVkZUtleUdyYXBoKG9wdGlvbnMuaW5jbHVkZUtleUdyYXBoKTtcblxuICAgIGlmIChpbmNsdWRlS2V5R3JhcGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IGdldE11dGF0aW9uKG9wdGlvbnMubXV0YXRpb24pO1xuICAgICAgb3BlcmF0aW9uLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zID0gW1xuICAgICAgICAuLi5vcGVyYXRpb24uc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMsXG4gICAgICAgIGZldGNoS2V5R3JhcGhGaWVsZEFzdFNlbGVjdGlvbixcbiAgICAgIF07XG4gICAgfVxuXG4gICAgLy8gRm9ybWF0IHRvIHN0cmluZyBhbmQgcGFyc2UgYWdhaW4uIFRoaXMgYWxsb3dzIHRoZSBcImxvY1wiOiB7IFwic3RhcnRcIjogLi4uIH1cbiAgICAvLyBwYXJ0IG9mIHRoZSBEb2N1bWVudE5vZGUgdG8gYmUgY29ycmVjdGx5IHNldHVwLiBJdCdzIGV4dHJhIHByb2Nlc3NpbmdcbiAgICAvLyBpbiBzZXJpYWxpc2luZyBhbmQgcGFyc2luZywgYnV0IHByb2JhYmx5IG1pbmltYWwgb3ZlcmhlYWQuXG4gICAgb3B0aW9ucy5tdXRhdGlvbiA9IGdxbChncWxQcmludGVyLnByaW50KG9wdGlvbnMubXV0YXRpb24pKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5hcG9sbG8ubXV0YXRlPFQ+KG9wdGlvbnMpLnRvUHJvbWlzZSgpO1xuXG4gICAgdGhpcy5zdGF0cy5tdXRhdGlvbkNvdW50Kys7XG5cbiAgICBoYW5kbGVBcG9sbG9FcnJvcihyZXNwb25zZS5lcnJvcnMpO1xuXG4gICAgdGhpcy5hZGRLZXlzKHJlc3BvbnNlKTtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLnF1ZXJ5UHJvY2Vzc29yLnByb2Nlc3NRdWVyeShcbiAgICAgIHJlc3BvbnNlLmRhdGEsXG4gICAgICBvcHRpb25zLnByb2Nlc3Nvck9wdGlvbnNcbiAgICApO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBzdGF0c1NuYXBzaG90KCk6IExyR3JhcGhRTFNlcnZpY2VTdGF0cyB7XG4gICAgcmV0dXJuIGxvZGFzaC5jbG9uZURlZXAodGhpcy5zdGF0cyk7XG4gIH1cblxuICBwcml2YXRlIGFkZEtleXMocmVzcG9uc2UpIHtcbiAgICBpZiAoKHJlc3BvbnNlLmRhdGEgYXMgSGFzS2V5R3JhcGgpLmtleUdyYXBoKSB7XG4gICAgICB0aGlzLmtleUdyYXBoLmFkZEtleXMoKHJlc3BvbnNlLmRhdGEgYXMgSGFzS2V5R3JhcGgpLmtleUdyYXBoKTtcbiAgICAgIGRlbGV0ZSByZXNwb25zZS5kYXRhLmtleUdyYXBoO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNJbmNsdWRlS2V5R3JhcGgoaW5jbHVkZUtleUdyYXBoKSB7XG4gICAgLy8gRGVmYXVsdCB0byB0cnVlIHdoZW4gbnVsbCBvciB1bmRlZmluZWQuXG4gICAgcmV0dXJuIGluY2x1ZGVLZXlHcmFwaCA9PSBudWxsID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgbHJNdXRhdGU8VDEsIFRWYXJpYWJsZXMxLCBUMiwgVFZhcmlhYmxlczI+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDEsIFRWYXJpYWJsZXMxPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMiwgVFZhcmlhYmxlczI+XG4gICAgXSxcbiAgICBvcHRpb25zPzogTHJNdXRhdGlvbk9wdGlvbnNcbiAgKTogUHJvbWlzZTxbVDEsIFQyXT47XG5cbiAgYXN5bmMgbHJNdXRhdGU8VDEsIFRWYXJpYWJsZXMxLCBUMiwgVFZhcmlhYmxlczIsIFQzLCBUVmFyaWFibGVzMz4oXG4gICAgbHJNdXRhdGlvbnM6IFtcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMSwgVFZhcmlhYmxlczE+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQyLCBUVmFyaWFibGVzMj4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDMsIFRWYXJpYWJsZXMzPlxuICAgIF0sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8W1QxLCBUMiwgVDNdPjtcblxuICBhc3luYyBsck11dGF0ZTxcbiAgICBUMSxcbiAgICBUVmFyaWFibGVzMSxcbiAgICBUMixcbiAgICBUVmFyaWFibGVzMixcbiAgICBUMyxcbiAgICBUVmFyaWFibGVzMyxcbiAgICBUNCxcbiAgICBUVmFyaWFibGVzNFxuICA+KFxuICAgIGxyTXV0YXRpb25zOiBbXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDEsIFRWYXJpYWJsZXMxPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMiwgVFZhcmlhYmxlczI+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQzLCBUVmFyaWFibGVzMz4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDQsIFRWYXJpYWJsZXM0PlxuICAgIF0sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8W1QxLCBUMiwgVDMsIFQ0XT47XG5cbiAgYXN5bmMgbHJNdXRhdGU8XG4gICAgVDEsXG4gICAgVFZhcmlhYmxlczEsXG4gICAgVDIsXG4gICAgVFZhcmlhYmxlczIsXG4gICAgVDMsXG4gICAgVFZhcmlhYmxlczMsXG4gICAgVDQsXG4gICAgVFZhcmlhYmxlczQsXG4gICAgVDUsXG4gICAgVFZhcmlhYmxlczVcbiAgPihcbiAgICBsck11dGF0aW9uczogW1xuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQxLCBUVmFyaWFibGVzMT4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDIsIFRWYXJpYWJsZXMyPixcbiAgICAgIExyTXV0YXRpb25NYXlBc3luYzxUMywgVFZhcmlhYmxlczM+LFxuICAgICAgTHJNdXRhdGlvbk1heUFzeW5jPFQ0LCBUVmFyaWFibGVzND4sXG4gICAgICBMck11dGF0aW9uTWF5QXN5bmM8VDUsIFRWYXJpYWJsZXM1PlxuICAgIF0sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk6IFByb21pc2U8W1QxLCBUMiwgVDMsIFQ0LCBUNV0+O1xuXG4gIGFzeW5jIGxyTXV0YXRlPFQsIFRWYXJpYWJsZXMgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PihcbiAgICBsck11dGF0aW9uOiBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz4sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zPFQsIFRWYXJpYWJsZXM+XG4gICk6IFByb21pc2U8VD47XG5cbiAgYXN5bmMgbHJNdXRhdGU8VCwgVFZhcmlhYmxlcyA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxuICAgIGxyTXV0YXRpb25zOlxuICAgICAgfCBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz5bXVxuICAgICAgfCBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz4sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICk7XG5cbiAgYXN5bmMgbHJNdXRhdGU8VCwgVFZhcmlhYmxlcyA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxuICAgIGxyTXV0YXRpb25zOlxuICAgICAgfCBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz5bXVxuICAgICAgfCBMck11dGF0aW9uTWF5QXN5bmM8VCwgVFZhcmlhYmxlcz4sXG4gICAgb3B0aW9ucz86IExyTXV0YXRpb25PcHRpb25zXG4gICkge1xuICAgIGlmIChsck11dGF0aW9ucyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICBjb25zdCBtZXJnZWQgPSBMck1lcmdlZE11dGF0aW9uLmNyZWF0ZShhd2FpdCBQcm9taXNlLmFsbChsck11dGF0aW9ucykpO1xuICAgICAgYXdhaXQgdGhpcy5sck11dGF0ZUltcGwobWVyZ2VkLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiBtZXJnZWQucHJvbWlzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmVzb2x2ZWQgPSBhd2FpdCBsck11dGF0aW9ucztcbiAgICAgIGF3YWl0IHRoaXMubHJNdXRhdGVJbXBsKHJlc29sdmVkLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiByZXNvbHZlZC5wcm9taXNlO1xuICAgIH1cbiAgfVxufVxuXG50eXBlIExyTXV0YXRpb25NYXlBc3luYzxULCBUVmFyaWFibGVzPiA9XG4gIHwgTHJNdXRhdGlvbkJhc2U8VCwgVFZhcmlhYmxlcz5cbiAgfCBQcm9taXNlPExyTXV0YXRpb25CYXNlPFQsIFRWYXJpYWJsZXM+PlxuICB8IExyTWVyZ2VkTXV0YXRpb248VD5cbiAgfCBQcm9taXNlPExyTWVyZ2VkTXV0YXRpb248VD4+O1xuIl19
|