@secrecy/lib 1.0.0-dev.21 → 1.0.0-dev.25
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/CHANGELOG.md +178 -0
- package/README.md +0 -1
- package/__tests__/client/client.test.ts +81 -0
- package/__tests__/client/folder.test.ts +302 -0
- package/__tests__/client/mail.test.ts +476 -0
- package/__tests__/client/timing.test.ts +35 -0
- package/__tests__/client/utils.ts +41 -0
- package/__tests__/client/vFile.test.ts +207 -0
- package/__tests__/index.test.ts +171 -0
- package/commitlint.config.cjs +3 -0
- package/dist/index.d.ts +3857 -0
- package/dist/index.js +255 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +255 -0
- package/dist/index.mjs.map +1 -0
- package/docs/assets/css/main.css +2660 -0
- package/docs/assets/images/icons.png +0 -0
- package/docs/assets/images/icons@2x.png +0 -0
- package/docs/assets/images/widgets.png +0 -0
- package/docs/assets/images/widgets@2x.png +0 -0
- package/docs/assets/js/main.js +248 -0
- package/docs/assets/js/search.js +1 -0
- package/docs/classes/baseclient.baseclient-1.html +1165 -0
- package/docs/classes/client.secrecyclient.html +2527 -0
- package/docs/enums/index.sodium.base64_variants.html +205 -0
- package/docs/index.html +198 -0
- package/docs/interfaces/client_types.draftmail.html +335 -0
- package/docs/interfaces/client_types.filecontentbase.html +231 -0
- package/docs/interfaces/client_types.filecontentcloud.html +244 -0
- package/docs/interfaces/client_types.filecontentreceivedmail.html +244 -0
- package/docs/interfaces/client_types.filecontentsentmail.html +230 -0
- package/docs/interfaces/client_types.receivedmail.html +363 -0
- package/docs/interfaces/client_types.sentmail.html +335 -0
- package/docs/interfaces/crypto.keypair.html +202 -0
- package/docs/interfaces/index.sodium.cryptobox.html +185 -0
- package/docs/interfaces/index.sodium.cryptokx.html +185 -0
- package/docs/interfaces/index.sodium.keypair.html +199 -0
- package/docs/interfaces/index.sodium.messagetag.html +185 -0
- package/docs/interfaces/index.sodium.secretbox.html +185 -0
- package/docs/interfaces/index.sodium.stateaddress.html +171 -0
- package/docs/interfaces/index.sodium.stringcryptobox.html +185 -0
- package/docs/interfaces/index.sodium.stringcryptokx.html +185 -0
- package/docs/interfaces/index.sodium.stringkeypair.html +199 -0
- package/docs/interfaces/index.sodium.stringmessagetag.html +185 -0
- package/docs/interfaces/index.sodium.stringsecretbox.html +185 -0
- package/docs/interfaces/utils_store_buddy.storebuddy.html +333 -0
- package/docs/modules/baseclient.html +929 -0
- package/docs/modules/cache.html +185 -0
- package/docs/modules/client.html +207 -0
- package/docs/modules/client_convert_file.html +216 -0
- package/docs/modules/client_convert_folder.html +303 -0
- package/docs/modules/client_convert_vfile.html +216 -0
- package/docs/modules/client_helpers.html +311 -0
- package/docs/modules/client_storage.html +167 -0
- package/docs/modules/client_types.html +1227 -0
- package/docs/modules/client_types_file.html +233 -0
- package/docs/modules/client_types_filesonusersonapplications.html +168 -0
- package/docs/modules/client_types_folder.html +383 -0
- package/docs/modules/client_types_inputs.html +263 -0
- package/docs/modules/client_types_mail.html +181 -0
- package/docs/modules/client_types_queries.html +199 -0
- package/docs/modules/client_types_userappsettings.html +163 -0
- package/docs/modules/client_types_vfile.html +364 -0
- package/docs/modules/crypto.html +366 -0
- package/docs/modules/crypto_file.html +344 -0
- package/docs/modules/index.html +779 -0
- package/docs/modules/index.sodium.html +6039 -0
- package/docs/modules/minify.html +183 -0
- package/docs/modules/minify_lz4.html +279 -0
- package/docs/modules/popuptools.html +259 -0
- package/docs/modules/sodium.html +167 -0
- package/docs/modules/utils.html +219 -0
- package/docs/modules/utils_store_buddy.html +208 -0
- package/docs/modules/utils_time.html +330 -0
- package/docs/modules/worker_md5.html +156 -0
- package/docs/modules/worker_sodium.html +231 -0
- package/docs/modules/worker_workercodes.html +157 -0
- package/docs/modules.html +235 -0
- package/index.html +21 -0
- package/jest.config.ts +27 -0
- package/jest.setup.ts +6 -0
- package/package.json +39 -47
- package/release.config.cjs +15 -0
- package/tsup.config.ts +23 -0
- package/lib/BaseClient.d.ts +0 -274
- package/lib/BaseClient.js +0 -1837
- package/lib/PopupTools.d.ts +0 -17
- package/lib/PopupTools.js +0 -213
- package/lib/ZeusThunder.d.ts +0 -2
- package/lib/ZeusThunder.js +0 -112
- package/lib/cache.d.ts +0 -7
- package/lib/cache.js +0 -5
- package/lib/client/admin/index.d.ts +0 -11
- package/lib/client/admin/index.js +0 -163
- package/lib/client/convert/file.d.ts +0 -5
- package/lib/client/convert/file.js +0 -39
- package/lib/client/convert/folder.d.ts +0 -8
- package/lib/client/convert/folder.js +0 -264
- package/lib/client/convert/mail.d.ts +0 -3
- package/lib/client/convert/mail.js +0 -46
- package/lib/client/convert/vFile.d.ts +0 -5
- package/lib/client/convert/vFile.js +0 -164
- package/lib/client/helpers.d.ts +0 -23
- package/lib/client/helpers.js +0 -116
- package/lib/client/index.d.ts +0 -172
- package/lib/client/index.js +0 -4501
- package/lib/client/storage.d.ts +0 -7
- package/lib/client/storage.js +0 -12
- package/lib/client/types/File.d.ts +0 -21
- package/lib/client/types/File.js +0 -3
- package/lib/client/types/FilesOnUsersOnApplications.d.ts +0 -9
- package/lib/client/types/FilesOnUsersOnApplications.js +0 -3
- package/lib/client/types/Folder.d.ts +0 -68
- package/lib/client/types/Folder.js +0 -7
- package/lib/client/types/Inputs.d.ts +0 -21
- package/lib/client/types/Inputs.js +0 -3
- package/lib/client/types/UserAppNotifications.d.ts +0 -6
- package/lib/client/types/UserAppNotifications.js +0 -3
- package/lib/client/types/UserAppSettings.d.ts +0 -7
- package/lib/client/types/UserAppSettings.js +0 -3
- package/lib/client/types/VFile.d.ts +0 -62
- package/lib/client/types/VFile.js +0 -4
- package/lib/client/types/index.d.ts +0 -154
- package/lib/client/types/index.js +0 -10
- package/lib/client/types/queries.d.ts +0 -535
- package/lib/client/types/queries.js +0 -192
- package/lib/crypto/file.d.ts +0 -14
- package/lib/crypto/file.js +0 -291
- package/lib/crypto/index.d.ts +0 -12
- package/lib/crypto/index.js +0 -37
- package/lib/error.d.ts +0 -30
- package/lib/error.js +0 -3
- package/lib/index.d.ts +0 -13
- package/lib/index.js +0 -42
- package/lib/minify/index.d.ts +0 -2
- package/lib/minify/index.js +0 -28
- package/lib/minify/lz4.d.ts +0 -5
- package/lib/minify/lz4.js +0 -633
- package/lib/sodium.d.ts +0 -3
- package/lib/sodium.js +0 -28
- package/lib/utils/store-buddy.d.ts +0 -14
- package/lib/utils/store-buddy.js +0 -69
- package/lib/utils/time.d.ts +0 -10
- package/lib/utils/time.js +0 -22
- package/lib/utils.d.ts +0 -4
- package/lib/utils.js +0 -188
- package/lib/worker/__mock__/sodium.worker.d.ts +0 -19
- package/lib/worker/__mock__/sodium.worker.js +0 -46
- package/lib/worker/md5.d.ts +0 -1
- package/lib/worker/md5.js +0 -43
- package/lib/worker/sodium.d.ts +0 -3
- package/lib/worker/sodium.js +0 -155
- package/lib/worker/workerCodes.d.ts +0 -2
- package/lib/worker/workerCodes.js +0 -3
- package/lib/zeus/const.d.ts +0 -2
- package/lib/zeus/const.js +0 -1895
- package/lib/zeus/index.d.ts +0 -2798
- package/lib/zeus/index.js +0 -549
package/lib/zeus/index.js
DELETED
|
@@ -1,549 +0,0 @@
|
|
|
1
|
-
import _construct from "@babel/runtime/helpers/construct";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
|
|
4
|
-
import _wrapNativeSuper from "@babel/runtime/helpers/wrapNativeSuper";
|
|
5
|
-
|
|
6
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7
|
-
|
|
8
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
9
|
-
|
|
10
|
-
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11
|
-
|
|
12
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
13
|
-
|
|
14
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
15
|
-
|
|
16
|
-
/* eslint-disable */
|
|
17
|
-
import { AllTypesProps, ReturnTypes } from './const.js';
|
|
18
|
-
export var Lang;
|
|
19
|
-
|
|
20
|
-
(function (Lang) {
|
|
21
|
-
Lang["fr"] = "fr";
|
|
22
|
-
Lang["en"] = "en";
|
|
23
|
-
Lang["it"] = "it";
|
|
24
|
-
Lang["de"] = "de";
|
|
25
|
-
Lang["pt"] = "pt";
|
|
26
|
-
Lang["ja"] = "ja";
|
|
27
|
-
Lang["es"] = "es";
|
|
28
|
-
Lang["nl"] = "nl";
|
|
29
|
-
Lang["pl"] = "pl";
|
|
30
|
-
Lang["ru"] = "ru";
|
|
31
|
-
Lang["zh"] = "zh";
|
|
32
|
-
Lang["ar"] = "ar";
|
|
33
|
-
Lang["he"] = "he";
|
|
34
|
-
Lang["hi"] = "hi";
|
|
35
|
-
Lang["ko"] = "ko";
|
|
36
|
-
})(Lang || (Lang = {}));
|
|
37
|
-
|
|
38
|
-
export var PlanKind;
|
|
39
|
-
|
|
40
|
-
(function (PlanKind) {
|
|
41
|
-
PlanKind["free"] = "free";
|
|
42
|
-
PlanKind["basic"] = "basic";
|
|
43
|
-
PlanKind["advanced"] = "advanced";
|
|
44
|
-
PlanKind["pro"] = "pro";
|
|
45
|
-
})(PlanKind || (PlanKind = {}));
|
|
46
|
-
|
|
47
|
-
export var UserRole;
|
|
48
|
-
|
|
49
|
-
(function (UserRole) {
|
|
50
|
-
UserRole["user"] = "user";
|
|
51
|
-
UserRole["admin"] = "admin";
|
|
52
|
-
})(UserRole || (UserRole = {}));
|
|
53
|
-
|
|
54
|
-
export var MailType;
|
|
55
|
-
|
|
56
|
-
(function (MailType) {
|
|
57
|
-
MailType["sent"] = "sent";
|
|
58
|
-
MailType["received"] = "received";
|
|
59
|
-
})(MailType || (MailType = {}));
|
|
60
|
-
|
|
61
|
-
export var Rights;
|
|
62
|
-
|
|
63
|
-
(function (Rights) {
|
|
64
|
-
Rights["admin"] = "admin";
|
|
65
|
-
Rights["write"] = "write";
|
|
66
|
-
Rights["read"] = "read";
|
|
67
|
-
})(Rights || (Rights = {}));
|
|
68
|
-
|
|
69
|
-
export var FileContentType;
|
|
70
|
-
|
|
71
|
-
(function (FileContentType) {
|
|
72
|
-
FileContentType["cloud"] = "cloud";
|
|
73
|
-
FileContentType["sent_mail"] = "sent_mail";
|
|
74
|
-
FileContentType["received_mail"] = "received_mail";
|
|
75
|
-
})(FileContentType || (FileContentType = {}));
|
|
76
|
-
|
|
77
|
-
export var PayInputType;
|
|
78
|
-
|
|
79
|
-
(function (PayInputType) {
|
|
80
|
-
PayInputType["secure"] = "secure";
|
|
81
|
-
PayInputType["classic"] = "classic";
|
|
82
|
-
})(PayInputType || (PayInputType = {}));
|
|
83
|
-
|
|
84
|
-
export var GraphQLError = /*#__PURE__*/function (_Error) {
|
|
85
|
-
_inheritsLoose(GraphQLError, _Error);
|
|
86
|
-
|
|
87
|
-
function GraphQLError(response) {
|
|
88
|
-
var _this;
|
|
89
|
-
|
|
90
|
-
_this = _Error.call(this, "") || this;
|
|
91
|
-
_this.response = response;
|
|
92
|
-
console.error(response);
|
|
93
|
-
return _this;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
var _proto = GraphQLError.prototype;
|
|
97
|
-
|
|
98
|
-
_proto.toString = function toString() {
|
|
99
|
-
return "GraphQL Response Error";
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
return GraphQLError;
|
|
103
|
-
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
104
|
-
export var ZeusSelect = function ZeusSelect() {
|
|
105
|
-
return function (t) {
|
|
106
|
-
return t;
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
export var ScalarResolver = function ScalarResolver(scalar, value) {
|
|
110
|
-
switch (scalar) {
|
|
111
|
-
case 'String':
|
|
112
|
-
return "" + JSON.stringify(value);
|
|
113
|
-
|
|
114
|
-
case 'Int':
|
|
115
|
-
return "" + value;
|
|
116
|
-
|
|
117
|
-
case 'Float':
|
|
118
|
-
return "" + value;
|
|
119
|
-
|
|
120
|
-
case 'Boolean':
|
|
121
|
-
return "" + value;
|
|
122
|
-
|
|
123
|
-
case 'ID':
|
|
124
|
-
return "\"" + value + "\"";
|
|
125
|
-
|
|
126
|
-
case 'enum':
|
|
127
|
-
return "" + value;
|
|
128
|
-
|
|
129
|
-
case 'scalar':
|
|
130
|
-
return "" + value;
|
|
131
|
-
|
|
132
|
-
default:
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
export var TypesPropsResolver = function TypesPropsResolver(_ref) {
|
|
137
|
-
var value = _ref.value,
|
|
138
|
-
type = _ref.type,
|
|
139
|
-
name = _ref.name,
|
|
140
|
-
key = _ref.key,
|
|
141
|
-
blockArrays = _ref.blockArrays;
|
|
142
|
-
|
|
143
|
-
if (value === null) {
|
|
144
|
-
return "null";
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
var resolvedValue = AllTypesProps[type][name];
|
|
148
|
-
|
|
149
|
-
if (key) {
|
|
150
|
-
resolvedValue = resolvedValue[key];
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (!resolvedValue) {
|
|
154
|
-
throw new Error("Cannot resolve " + type + " " + name + (key ? " " + key : ''));
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
var typeResolved = resolvedValue.type;
|
|
158
|
-
var isArray = resolvedValue.array;
|
|
159
|
-
var isArrayRequired = resolvedValue.arrayRequired;
|
|
160
|
-
|
|
161
|
-
if (typeof value === 'string' && value.startsWith("ZEUS_VAR$")) {
|
|
162
|
-
var isRequired = resolvedValue.required ? '!' : '';
|
|
163
|
-
|
|
164
|
-
var _t = "" + typeResolved;
|
|
165
|
-
|
|
166
|
-
if (isArray) {
|
|
167
|
-
if (isRequired) {
|
|
168
|
-
_t = _t + "!";
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
_t = "[" + _t + "]";
|
|
172
|
-
|
|
173
|
-
if (isArrayRequired) {
|
|
174
|
-
_t = _t + "!";
|
|
175
|
-
}
|
|
176
|
-
} else {
|
|
177
|
-
if (isRequired) {
|
|
178
|
-
_t = _t + "!";
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return "$" + value.split("ZEUS_VAR$")[1] + "__ZEUS_VAR__" + _t;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
if (isArray && !blockArrays) {
|
|
186
|
-
return "[" + value.map(function (v) {
|
|
187
|
-
return TypesPropsResolver({
|
|
188
|
-
value: v,
|
|
189
|
-
type: type,
|
|
190
|
-
name: name,
|
|
191
|
-
key: key,
|
|
192
|
-
blockArrays: true
|
|
193
|
-
});
|
|
194
|
-
}).join(',') + "]";
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
var reslovedScalar = ScalarResolver(typeResolved, value);
|
|
198
|
-
|
|
199
|
-
if (!reslovedScalar) {
|
|
200
|
-
var resolvedType = AllTypesProps[typeResolved];
|
|
201
|
-
|
|
202
|
-
if (typeof resolvedType === 'object') {
|
|
203
|
-
var argsKeys = Object.keys(resolvedType);
|
|
204
|
-
return "{" + argsKeys.filter(function (ak) {
|
|
205
|
-
return value[ak] !== undefined;
|
|
206
|
-
}).map(function (ak) {
|
|
207
|
-
return ak + ":" + TypesPropsResolver({
|
|
208
|
-
value: value[ak],
|
|
209
|
-
type: typeResolved,
|
|
210
|
-
name: ak
|
|
211
|
-
});
|
|
212
|
-
}) + "}";
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
return ScalarResolver(AllTypesProps[typeResolved], value);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
return reslovedScalar;
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
var isArrayFunction = function isArrayFunction(parent, a) {
|
|
222
|
-
var values = a[0],
|
|
223
|
-
r = a[1];
|
|
224
|
-
var mainKey = parent[0],
|
|
225
|
-
key = parent[1],
|
|
226
|
-
keys = parent.slice(2);
|
|
227
|
-
var keyValues = Object.keys(values).filter(function (k) {
|
|
228
|
-
return typeof values[k] !== 'undefined';
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
if (!keys.length) {
|
|
232
|
-
return keyValues.length > 0 ? "(" + keyValues.map(function (v) {
|
|
233
|
-
return v + ":" + TypesPropsResolver({
|
|
234
|
-
value: values[v],
|
|
235
|
-
type: mainKey,
|
|
236
|
-
name: key,
|
|
237
|
-
key: v
|
|
238
|
-
});
|
|
239
|
-
}).join(',') + ")" + (r ? traverseToSeekArrays(parent, r) : '') : traverseToSeekArrays(parent, r);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
var _keys$splice = keys.splice(keys.length - 1, 1),
|
|
243
|
-
typeResolverKey = _keys$splice[0];
|
|
244
|
-
|
|
245
|
-
var valueToResolve = ReturnTypes[mainKey][key];
|
|
246
|
-
|
|
247
|
-
for (var _iterator = _createForOfIteratorHelperLoose(keys), _step; !(_step = _iterator()).done;) {
|
|
248
|
-
var k = _step.value;
|
|
249
|
-
valueToResolve = ReturnTypes[valueToResolve][k];
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
var argumentString = keyValues.length > 0 ? "(" + keyValues.map(function (v) {
|
|
253
|
-
return v + ":" + TypesPropsResolver({
|
|
254
|
-
value: values[v],
|
|
255
|
-
type: valueToResolve,
|
|
256
|
-
name: typeResolverKey,
|
|
257
|
-
key: v
|
|
258
|
-
});
|
|
259
|
-
}).join(',') + ")" + (r ? traverseToSeekArrays(parent, r) : '') : traverseToSeekArrays(parent, r);
|
|
260
|
-
return argumentString;
|
|
261
|
-
};
|
|
262
|
-
|
|
263
|
-
var resolveKV = function resolveKV(k, v) {
|
|
264
|
-
return typeof v === 'boolean' ? k : typeof v === 'object' ? k + "{" + objectToTree(v) + "}" : "" + k + v;
|
|
265
|
-
};
|
|
266
|
-
|
|
267
|
-
var objectToTree = function objectToTree(o) {
|
|
268
|
-
return "{" + Object.keys(o).map(function (k) {
|
|
269
|
-
return "" + resolveKV(k, o[k]);
|
|
270
|
-
}).join(' ') + "}";
|
|
271
|
-
};
|
|
272
|
-
|
|
273
|
-
var traverseToSeekArrays = function traverseToSeekArrays(parent, a) {
|
|
274
|
-
if (!a) return '';
|
|
275
|
-
|
|
276
|
-
if (Object.keys(a).length === 0) {
|
|
277
|
-
return '';
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
var b = {};
|
|
281
|
-
|
|
282
|
-
if (Array.isArray(a)) {
|
|
283
|
-
return isArrayFunction([].concat(parent), a);
|
|
284
|
-
} else {
|
|
285
|
-
if (typeof a === 'object') {
|
|
286
|
-
Object.keys(a).filter(function (k) {
|
|
287
|
-
return typeof a[k] !== 'undefined';
|
|
288
|
-
}).forEach(function (k) {
|
|
289
|
-
if (k === '__alias') {
|
|
290
|
-
Object.keys(a[k]).forEach(function (aliasKey) {
|
|
291
|
-
var aliasOperations = a[k][aliasKey];
|
|
292
|
-
var aliasOperationName = Object.keys(aliasOperations)[0];
|
|
293
|
-
var aliasOperation = aliasOperations[aliasOperationName];
|
|
294
|
-
b[aliasOperationName + "__alias__" + aliasKey + ": " + aliasOperationName] = traverseToSeekArrays([].concat(parent, [aliasOperationName]), aliasOperation);
|
|
295
|
-
});
|
|
296
|
-
} else {
|
|
297
|
-
b[k] = traverseToSeekArrays([].concat(parent, [k]), a[k]);
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
} else {
|
|
301
|
-
return '';
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
return objectToTree(b);
|
|
306
|
-
};
|
|
307
|
-
|
|
308
|
-
var buildQuery = function buildQuery(type, a) {
|
|
309
|
-
return traverseToSeekArrays([type], a);
|
|
310
|
-
};
|
|
311
|
-
|
|
312
|
-
var inspectVariables = function inspectVariables(query) {
|
|
313
|
-
var regex = /\$\b\w*__ZEUS_VAR__\[?[^!^\]^\s^,^\)^\}]*[!]?[\]]?[!]?/g;
|
|
314
|
-
var result;
|
|
315
|
-
var AllVariables = [];
|
|
316
|
-
|
|
317
|
-
while (result = regex.exec(query)) {
|
|
318
|
-
if (AllVariables.includes(result[0])) {
|
|
319
|
-
continue;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
AllVariables.push(result[0]);
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
if (!AllVariables.length) {
|
|
326
|
-
return query;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
var filteredQuery = query;
|
|
330
|
-
AllVariables.forEach(function (variable) {
|
|
331
|
-
while (filteredQuery.includes(variable)) {
|
|
332
|
-
filteredQuery = filteredQuery.replace(variable, variable.split('__ZEUS_VAR__')[0]);
|
|
333
|
-
}
|
|
334
|
-
});
|
|
335
|
-
return "(" + AllVariables.map(function (a) {
|
|
336
|
-
return a.split('__ZEUS_VAR__');
|
|
337
|
-
}).map(function (_ref2) {
|
|
338
|
-
var variableName = _ref2[0],
|
|
339
|
-
variableType = _ref2[1];
|
|
340
|
-
return variableName + ":" + variableType;
|
|
341
|
-
}).join(', ') + ")" + filteredQuery;
|
|
342
|
-
};
|
|
343
|
-
|
|
344
|
-
export var queryConstruct = function queryConstruct(t, tName, operationName) {
|
|
345
|
-
return function (o) {
|
|
346
|
-
return "" + t.toLowerCase() + (operationName ? ' ' + operationName : '') + inspectVariables(buildQuery(tName, o));
|
|
347
|
-
};
|
|
348
|
-
};
|
|
349
|
-
export var fullChainConstruct = function fullChainConstruct(fn) {
|
|
350
|
-
return function (t, tName) {
|
|
351
|
-
return function (o, options) {
|
|
352
|
-
return fn(queryConstruct(t, tName, options == null ? void 0 : options.operationName)(o), options == null ? void 0 : options.variables).then(function (r) {
|
|
353
|
-
seekForAliases(r);
|
|
354
|
-
return r;
|
|
355
|
-
});
|
|
356
|
-
};
|
|
357
|
-
};
|
|
358
|
-
};
|
|
359
|
-
export var fullSubscriptionConstruct = function fullSubscriptionConstruct(fn) {
|
|
360
|
-
return function (t, tName) {
|
|
361
|
-
return function (o, options) {
|
|
362
|
-
return fn(queryConstruct(t, tName, options == null ? void 0 : options.operationName)(o));
|
|
363
|
-
};
|
|
364
|
-
};
|
|
365
|
-
};
|
|
366
|
-
|
|
367
|
-
var seekForAliases = function seekForAliases(response) {
|
|
368
|
-
var traverseAlias = function traverseAlias(value) {
|
|
369
|
-
if (Array.isArray(value)) {
|
|
370
|
-
value.forEach(seekForAliases);
|
|
371
|
-
} else {
|
|
372
|
-
if (typeof value === 'object') {
|
|
373
|
-
seekForAliases(value);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
};
|
|
377
|
-
|
|
378
|
-
if (typeof response === 'object' && response) {
|
|
379
|
-
var keys = Object.keys(response);
|
|
380
|
-
|
|
381
|
-
if (keys.length < 1) {
|
|
382
|
-
return;
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
keys.forEach(function (k) {
|
|
386
|
-
var value = response[k];
|
|
387
|
-
|
|
388
|
-
if (k.indexOf('__alias__') !== -1) {
|
|
389
|
-
var _response$alias;
|
|
390
|
-
|
|
391
|
-
var _k$split = k.split('__alias__'),
|
|
392
|
-
operation = _k$split[0],
|
|
393
|
-
alias = _k$split[1];
|
|
394
|
-
|
|
395
|
-
response[alias] = (_response$alias = {}, _response$alias[operation] = value, _response$alias);
|
|
396
|
-
delete response[k];
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
traverseAlias(value);
|
|
400
|
-
});
|
|
401
|
-
}
|
|
402
|
-
};
|
|
403
|
-
|
|
404
|
-
export var $ = function $(t) {
|
|
405
|
-
return "ZEUS_VAR$" + t.join('');
|
|
406
|
-
};
|
|
407
|
-
export var resolverFor = function resolverFor(_type, _field, fn) {
|
|
408
|
-
return fn;
|
|
409
|
-
};
|
|
410
|
-
|
|
411
|
-
var handleFetchResponse = function handleFetchResponse(response) {
|
|
412
|
-
if (!response.ok) {
|
|
413
|
-
return new Promise(function (_, reject) {
|
|
414
|
-
response.text().then(function (text) {
|
|
415
|
-
try {
|
|
416
|
-
reject(JSON.parse(text));
|
|
417
|
-
} catch (err) {
|
|
418
|
-
reject(text);
|
|
419
|
-
}
|
|
420
|
-
}).catch(reject);
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
return response.json();
|
|
425
|
-
};
|
|
426
|
-
|
|
427
|
-
export var apiFetch = function apiFetch(options) {
|
|
428
|
-
return function (query, variables) {
|
|
429
|
-
if (variables === void 0) {
|
|
430
|
-
variables = {};
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
var fetchFunction = fetch;
|
|
434
|
-
var queryString = query;
|
|
435
|
-
var fetchOptions = options[1] || {};
|
|
436
|
-
|
|
437
|
-
if (fetchOptions.method && fetchOptions.method === 'GET') {
|
|
438
|
-
queryString = encodeURIComponent(query);
|
|
439
|
-
return fetchFunction(options[0] + "?query=" + queryString, fetchOptions).then(handleFetchResponse).then(function (response) {
|
|
440
|
-
if (response.errors) {
|
|
441
|
-
throw new GraphQLError(response);
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
return response.data;
|
|
445
|
-
});
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
return fetchFunction("" + options[0], _objectSpread({
|
|
449
|
-
body: JSON.stringify({
|
|
450
|
-
query: queryString,
|
|
451
|
-
variables: variables
|
|
452
|
-
}),
|
|
453
|
-
method: 'POST',
|
|
454
|
-
headers: {
|
|
455
|
-
'Content-Type': 'application/json'
|
|
456
|
-
}
|
|
457
|
-
}, fetchOptions)).then(handleFetchResponse).then(function (response) {
|
|
458
|
-
if (response.errors) {
|
|
459
|
-
throw new GraphQLError(response);
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
return response.data;
|
|
463
|
-
});
|
|
464
|
-
};
|
|
465
|
-
};
|
|
466
|
-
export var apiSubscription = function apiSubscription(options) {
|
|
467
|
-
return function (query) {
|
|
468
|
-
try {
|
|
469
|
-
var _options$, _options$$websocket, _options$2;
|
|
470
|
-
|
|
471
|
-
var queryString = options[0] + '?query=' + encodeURIComponent(query);
|
|
472
|
-
var wsString = queryString.replace('http', 'ws');
|
|
473
|
-
var host = options.length > 1 && ((_options$ = options[1]) == null ? void 0 : (_options$$websocket = _options$.websocket) == null ? void 0 : _options$$websocket[0]) || wsString;
|
|
474
|
-
var webSocketOptions = ((_options$2 = options[1]) == null ? void 0 : _options$2.websocket) || [host];
|
|
475
|
-
|
|
476
|
-
var ws = _construct(WebSocket, webSocketOptions);
|
|
477
|
-
|
|
478
|
-
return {
|
|
479
|
-
ws: ws,
|
|
480
|
-
on: function on(e) {
|
|
481
|
-
ws.onmessage = function (event) {
|
|
482
|
-
if (event.data) {
|
|
483
|
-
var parsed = JSON.parse(event.data);
|
|
484
|
-
var data = parsed.data;
|
|
485
|
-
|
|
486
|
-
if (data) {
|
|
487
|
-
seekForAliases(data);
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
return e(data);
|
|
491
|
-
}
|
|
492
|
-
};
|
|
493
|
-
},
|
|
494
|
-
off: function off(e) {
|
|
495
|
-
ws.onclose = e;
|
|
496
|
-
},
|
|
497
|
-
error: function error(e) {
|
|
498
|
-
ws.onerror = e;
|
|
499
|
-
},
|
|
500
|
-
open: function open(e) {
|
|
501
|
-
ws.onopen = e;
|
|
502
|
-
}
|
|
503
|
-
};
|
|
504
|
-
} catch (_unused) {
|
|
505
|
-
throw new Error('No websockets implemented');
|
|
506
|
-
}
|
|
507
|
-
};
|
|
508
|
-
};
|
|
509
|
-
var allOperations = {
|
|
510
|
-
"query": "Query",
|
|
511
|
-
"mutation": "Mutation",
|
|
512
|
-
"subscription": "Subscription"
|
|
513
|
-
};
|
|
514
|
-
export var Thunder = function Thunder(fn) {
|
|
515
|
-
return function (operation) {
|
|
516
|
-
return function (o, ops) {
|
|
517
|
-
return fullChainConstruct(fn)(operation, allOperations[operation])(o, ops);
|
|
518
|
-
};
|
|
519
|
-
};
|
|
520
|
-
};
|
|
521
|
-
export var Chain = function Chain() {
|
|
522
|
-
for (var _len = arguments.length, options = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
|
|
523
|
-
options[_key2] = arguments[_key2];
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
return Thunder(apiFetch(options));
|
|
527
|
-
};
|
|
528
|
-
export var SubscriptionThunder = function SubscriptionThunder(fn) {
|
|
529
|
-
return function (operation) {
|
|
530
|
-
return function (o, ops) {
|
|
531
|
-
return fullSubscriptionConstruct(fn)(operation, allOperations[operation])(o, ops);
|
|
532
|
-
};
|
|
533
|
-
};
|
|
534
|
-
};
|
|
535
|
-
export var Subscription = function Subscription() {
|
|
536
|
-
for (var _len2 = arguments.length, options = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {
|
|
537
|
-
options[_key3] = arguments[_key3];
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
return SubscriptionThunder(apiSubscription(options));
|
|
541
|
-
};
|
|
542
|
-
export var Zeus = function Zeus(operation, o, operationName) {
|
|
543
|
-
return queryConstruct(operation, allOperations[operation], operationName)(o);
|
|
544
|
-
};
|
|
545
|
-
export var Selector = function Selector(_key) {
|
|
546
|
-
return ZeusSelect();
|
|
547
|
-
};
|
|
548
|
-
export var Gql = Chain('http://localhost:4000/graphql');
|
|
549
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy96ZXVzL2luZGV4LnRzIl0sIm5hbWVzIjpbIkFsbFR5cGVzUHJvcHMiLCJSZXR1cm5UeXBlcyIsIkxhbmciLCJQbGFuS2luZCIsIlVzZXJSb2xlIiwiTWFpbFR5cGUiLCJSaWdodHMiLCJGaWxlQ29udGVudFR5cGUiLCJQYXlJbnB1dFR5cGUiLCJHcmFwaFFMRXJyb3IiLCJyZXNwb25zZSIsImNvbnNvbGUiLCJlcnJvciIsInRvU3RyaW5nIiwiRXJyb3IiLCJaZXVzU2VsZWN0IiwidCIsIlNjYWxhclJlc29sdmVyIiwic2NhbGFyIiwidmFsdWUiLCJKU09OIiwic3RyaW5naWZ5IiwiVHlwZXNQcm9wc1Jlc29sdmVyIiwidHlwZSIsIm5hbWUiLCJrZXkiLCJibG9ja0FycmF5cyIsInJlc29sdmVkVmFsdWUiLCJ0eXBlUmVzb2x2ZWQiLCJpc0FycmF5IiwiYXJyYXkiLCJpc0FycmF5UmVxdWlyZWQiLCJhcnJheVJlcXVpcmVkIiwic3RhcnRzV2l0aCIsImlzUmVxdWlyZWQiLCJyZXF1aXJlZCIsInNwbGl0IiwibWFwIiwidiIsImpvaW4iLCJyZXNsb3ZlZFNjYWxhciIsInJlc29sdmVkVHlwZSIsImFyZ3NLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlciIsImFrIiwidW5kZWZpbmVkIiwiaXNBcnJheUZ1bmN0aW9uIiwicGFyZW50IiwiYSIsInZhbHVlcyIsInIiLCJtYWluS2V5Iiwia2V5VmFsdWVzIiwiayIsImxlbmd0aCIsInRyYXZlcnNlVG9TZWVrQXJyYXlzIiwic3BsaWNlIiwidHlwZVJlc29sdmVyS2V5IiwidmFsdWVUb1Jlc29sdmUiLCJhcmd1bWVudFN0cmluZyIsInJlc29sdmVLViIsIm9iamVjdFRvVHJlZSIsIm8iLCJiIiwiQXJyYXkiLCJmb3JFYWNoIiwiYWxpYXNLZXkiLCJhbGlhc09wZXJhdGlvbnMiLCJhbGlhc09wZXJhdGlvbk5hbWUiLCJhbGlhc09wZXJhdGlvbiIsImJ1aWxkUXVlcnkiLCJpbnNwZWN0VmFyaWFibGVzIiwicXVlcnkiLCJyZWdleCIsInJlc3VsdCIsIkFsbFZhcmlhYmxlcyIsImV4ZWMiLCJpbmNsdWRlcyIsInB1c2giLCJmaWx0ZXJlZFF1ZXJ5IiwidmFyaWFibGUiLCJyZXBsYWNlIiwidmFyaWFibGVOYW1lIiwidmFyaWFibGVUeXBlIiwicXVlcnlDb25zdHJ1Y3QiLCJ0TmFtZSIsIm9wZXJhdGlvbk5hbWUiLCJ0b0xvd2VyQ2FzZSIsImZ1bGxDaGFpbkNvbnN0cnVjdCIsImZuIiwib3B0aW9ucyIsInZhcmlhYmxlcyIsInRoZW4iLCJzZWVrRm9yQWxpYXNlcyIsImZ1bGxTdWJzY3JpcHRpb25Db25zdHJ1Y3QiLCJ0cmF2ZXJzZUFsaWFzIiwiaW5kZXhPZiIsIm9wZXJhdGlvbiIsImFsaWFzIiwiJCIsInJlc29sdmVyRm9yIiwiX3R5cGUiLCJfZmllbGQiLCJoYW5kbGVGZXRjaFJlc3BvbnNlIiwib2siLCJQcm9taXNlIiwiXyIsInJlamVjdCIsInRleHQiLCJwYXJzZSIsImVyciIsImNhdGNoIiwianNvbiIsImFwaUZldGNoIiwiZmV0Y2hGdW5jdGlvbiIsImZldGNoIiwicXVlcnlTdHJpbmciLCJmZXRjaE9wdGlvbnMiLCJtZXRob2QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlcnJvcnMiLCJkYXRhIiwiYm9keSIsImhlYWRlcnMiLCJhcGlTdWJzY3JpcHRpb24iLCJ3c1N0cmluZyIsImhvc3QiLCJ3ZWJzb2NrZXQiLCJ3ZWJTb2NrZXRPcHRpb25zIiwid3MiLCJXZWJTb2NrZXQiLCJvbiIsImUiLCJvbm1lc3NhZ2UiLCJldmVudCIsInBhcnNlZCIsIm9mZiIsIm9uY2xvc2UiLCJvbmVycm9yIiwib3BlbiIsIm9ub3BlbiIsImFsbE9wZXJhdGlvbnMiLCJUaHVuZGVyIiwib3BzIiwiQ2hhaW4iLCJTdWJzY3JpcHRpb25UaHVuZGVyIiwiU3Vic2NyaXB0aW9uIiwiWmV1cyIsIlNlbGVjdG9yIiwiX2tleSIsIkdxbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFFQSxTQUFT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Q2xDLE9BQUQsQ0FBaEIsQ0FBakQ7QUFBQSxDQUFyQjtBQUNQLE9BQU8sSUFBTXlELElBQUksR0FBRyxTQUFQQSxJQUFPLENBS2xCbEQsU0FMa0IsRUFNbEJuQyxDQU5rQixFQU9sQndCLGFBUGtCO0FBQUEsU0FRZkYsY0FBYyxDQUFDYSxTQUFELEVBQVk0QyxhQUFhLENBQUM1QyxTQUFELENBQXpCLEVBQXNDWCxhQUF0QyxDQUFkLENBQW1FeEIsQ0FBbkUsQ0FSZTtBQUFBLENBQWI7QUFTUCxPQUFPLElBQU1zRixRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUE2QkMsSUFBN0I7QUFBQSxTQUF5Q3hJLFVBQVUsRUFBbkQ7QUFBQSxDQUFqQjtBQUdQLE9BQU8sSUFBTXlJLEdBQUcsR0FBR04sS0FBSyxDQUFDLCtCQUFELENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cblxuaW1wb3J0IHsgQWxsVHlwZXNQcm9wcywgUmV0dXJuVHlwZXMgfSBmcm9tICcuL2NvbnN0LmpzJztcbnR5cGUgWkVVU19JTlRFUkZBQ0VTID0gR3JhcGhRTFR5cGVzW1wiRXJyb3JCYXNlXCJdIHwgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRCYXNlXCJdXG50eXBlIFpFVVNfVU5JT05TID0gR3JhcGhRTFR5cGVzW1wiQXBwTm90aWZpY2F0aW9uc1Jlc3VsdFwiXSB8IEdyYXBoUUxUeXBlc1tcIkJsb2dSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJEYkNvbmZpZ1Jlc3VsdFwiXSB8IEdyYXBoUUxUeXBlc1tcIkRiR2V0UmVzdWx0XCJdIHwgR3JhcGhRTFR5cGVzW1wiRGJTZWFyY2hSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJEZWxldGVkRm9sZGVyc1Jlc3VsdFwiXSB8IEdyYXBoUUxUeXBlc1tcIkRlbGV0ZWRNYWlsc1Jlc3VsdFwiXSB8IEdyYXBoUUxUeXBlc1tcIkRlbGV0ZWRWRmlsZXNSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJGYXFSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJGaWxlUmVzdWx0XCJdIHwgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJGb2xkZXJSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJGb2xkZXJTaXplUmVzdWx0XCJdIHwgR3JhcGhRTFR5cGVzW1wiRm9sZGVyc1NoYXJlZFdpdGhNZVJlc3VsdFwiXSB8IEdyYXBoUUxUeXBlc1tcIkxpbWl0c1Jlc3VsdFwiXSB8IEdyYXBoUUxUeXBlc1tcIk1haWxSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJQYXltZW50SW5mb3NSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJQbGFuc1Jlc3VsdFwiXSB8IEdyYXBoUUxUeXBlc1tcIlNoYXJlZEZvbGRlcnNSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJTaGFyZWRWRmlsZXNSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJVbnJlYWRSZWNlaXZlZE1haWxzQ291bnRSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJVc2VyUmVzdWx0XCJdIHwgR3JhcGhRTFR5cGVzW1wiVkZpbGVSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJWRmlsZXNTaGFyZWRXaXRoTWVSZXN1bHRcIl0gfCBHcmFwaFFMVHlwZXNbXCJVc2VyTGlzdFJlc3VsdFwiXSB8IEdyYXBoUUxUeXBlc1tcIkVycm9yXCJdIHwgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRcIl1cblxuZXhwb3J0IHR5cGUgVmFsdWVUeXBlcyA9IHtcbiAgICAvKiogVGhlIGBCaWdJbnRgIHNjYWxhciB0eXBlIHJlcHJlc2VudHMgbm9uLWZyYWN0aW9uYWwgc2lnbmVkIHdob2xlIG51bWVyaWMgdmFsdWVzLlxuQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9CaWdJbnQgKi9cbltcIkJpZ0ludFwiXTp1bmtub3duO1xuXHQvKiogVGhlIGBCeXRlYCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIGJ5dGUgdmFsdWUgYXMgYSBCdWZmZXIgKi9cbltcIkJ5dGVzXCJdOnVua25vd247XG5cdC8qKiBBIGRhdGUtdGltZSBzdHJpbmcgYXQgVVRDLCBzdWNoIGFzIDIwMDctMTItMDNUMTA6MTU6MzBaLCBjb21wbGlhbnQgd2l0aCB0aGUgYGRhdGUtdGltZWAgZm9ybWF0IG91dGxpbmVkIGluIHNlY3Rpb24gNS42IG9mIHRoZSBSRkMgMzMzOSBwcm9maWxlIG9mIHRoZSBJU08gODYwMSBzdGFuZGFyZCBmb3IgcmVwcmVzZW50YXRpb24gb2YgZGF0ZXMgYW5kIHRpbWVzIHVzaW5nIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuICovXG5bXCJEYXRlVGltZVwiXTp1bmtub3duO1xuXHQvKiogQW4gYXJiaXRyYXJ5LXByZWNpc2lvbiBEZWNpbWFsIHR5cGUgKi9cbltcIkRlY2ltYWxcIl06dW5rbm93bjtcblx0LyoqIFRoZSBgSlNPTk9iamVjdGAgc2NhbGFyIHR5cGUgcmVwcmVzZW50cyBKU09OIG9iamVjdHMgYXMgc3BlY2lmaWVkIGJ5IFtFQ01BLTQwNF0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL3B1YmxpY2F0aW9ucy9maWxlcy9FQ01BLVNUL0VDTUEtNDA0LnBkZikuICovXG5bXCJKc29uXCJdOnVua25vd247XG5cdFtcIkxhbmdcIl06TGFuZztcblx0W1wiUGxhbktpbmRcIl06UGxhbktpbmQ7XG5cdFtcIlVzZXJSb2xlXCJdOlVzZXJSb2xlO1xuXHRbXCJNYWlsVHlwZVwiXTpNYWlsVHlwZTtcblx0W1wiUmlnaHRzXCJdOlJpZ2h0cztcblx0W1wiQXBwTm90aWZpY2F0aW9uc1Jlc3VsdFwiXTogQWxpYXNUeXBlPHtcdFx0W1wiLi4ub24gVXNlckFwcE5vdGlmaWNhdGlvbnNcIl0gOiBWYWx1ZVR5cGVzW1wiVXNlckFwcE5vdGlmaWNhdGlvbnNcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JOb3RGb3VuZFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJCbG9nUmVzdWx0XCJdOiBBbGlhc1R5cGU8e1x0XHRbXCIuLi5vbiBCbG9nUmVzcG9uc2VcIl0gOiBWYWx1ZVR5cGVzW1wiQmxvZ1Jlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yTGFuZ05vdEV4aXN0XCJdIDogVmFsdWVUeXBlc1tcIkVycm9yTGFuZ05vdEV4aXN0XCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJEYkNvbmZpZ1Jlc3VsdFwiXTogQWxpYXNUeXBlPHtcdFx0W1wiLi4ub24gRGJDb25maWdSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJEYkNvbmZpZ1Jlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yTm90RXhpc3RcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JOb3RFeGlzdFwiXSxcblx0XHRbXCIuLi5vbiBFcnJvck5vdEZvdW5kXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yTm90Rm91bmRcIl1cblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkRiR2V0UmVzdWx0XCJdOiBBbGlhc1R5cGU8e1x0XHRbXCIuLi5vbiBEYkdldFJlc3BvbnNlXCJdIDogVmFsdWVUeXBlc1tcIkRiR2V0UmVzcG9uc2VcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JOb3RGb3VuZFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yTm90RXhpc3RcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JOb3RFeGlzdFwiXVxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiRGJTZWFyY2hSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIERiU2VhcmNoUmVzcG9uc2VcIl0gOiBWYWx1ZVR5cGVzW1wiRGJTZWFyY2hSZXNwb25zZVwiXSxcblx0XHRbXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXSxcblx0XHRbXCIuLi5vbiBFcnJvck5vdEV4aXN0XCJdIDogVmFsdWVUeXBlc1tcIkVycm9yTm90RXhpc3RcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JCYXNpY1wiXSA6IFZhbHVlVHlwZXNbXCJFcnJvckJhc2ljXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJEZWxldGVkRm9sZGVyc1Jlc3VsdFwiXTogQWxpYXNUeXBlPHtcdFx0W1wiLi4ub24gRGVsZXRlZEZvbGRlcnNSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJEZWxldGVkRm9sZGVyc1Jlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJEZWxldGVkTWFpbHNSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIERlbGV0ZWRNYWlsc1Jlc3BvbnNlXCJdIDogVmFsdWVUeXBlc1tcIkRlbGV0ZWRNYWlsc1Jlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJEZWxldGVkVkZpbGVzUmVzdWx0XCJdOiBBbGlhc1R5cGU8e1x0XHRbXCIuLi5vbiBEZWxldGVkVkZpbGVzUmVzcG9uc2VcIl0gOiBWYWx1ZVR5cGVzW1wiRGVsZXRlZFZGaWxlc1Jlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGYXFSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIEZhcVJlc3BvbnNlXCJdIDogVmFsdWVUeXBlc1tcIkZhcVJlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlUmVzdWx0XCJdOiBBbGlhc1R5cGU8e1x0XHRbXCIuLi5vbiBGaWxlUXVlcnlSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJGaWxlUXVlcnlSZXNwb25zZVwiXSxcblx0XHRbXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXVxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiRmlsZUNvbnRlbnRSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIEZpbGVDb250ZW50UmVzcG9uc2VcIl0gOiBWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRSZXNwb25zZVwiXSxcblx0XHRbXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXSxcblx0XHRbXCIuLi5vbiBFcnJvckJhc2ljXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQmFzaWNcIl1cblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZvbGRlclJlc3VsdFwiXTogQWxpYXNUeXBlPHtcdFx0W1wiLi4ub24gRm9sZGVyUmVzcG9uc2VcIl0gOiBWYWx1ZVR5cGVzW1wiRm9sZGVyUmVzcG9uc2VcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl1cblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZvbGRlclNpemVSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIEZvbGRlclNpemVSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJGb2xkZXJTaXplUmVzcG9uc2VcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl1cblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZvbGRlcnNTaGFyZWRXaXRoTWVSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIEZvbGRlclNoYXJlZFdpdGhNZVJlc3BvbnNlXCJdIDogVmFsdWVUeXBlc1tcIkZvbGRlclNoYXJlZFdpdGhNZVJlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJMaW1pdHNSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIFF1ZXJ5TGltaXRzXCJdIDogVmFsdWVUeXBlc1tcIlF1ZXJ5TGltaXRzXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yTm90Rm91bmRcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JOb3RGb3VuZFwiXSxcblx0XHRbXCIuLi5vbiBFcnJvck5vdEV4aXN0XCJdIDogVmFsdWVUeXBlc1tcIkVycm9yTm90RXhpc3RcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JMaW1pdFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvckxpbWl0XCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJNYWlsUmVzdWx0XCJdOiBBbGlhc1R5cGU8e1x0XHRbXCIuLi5vbiBRdWVyeU1haWxSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJRdWVyeU1haWxSZXNwb25zZVwiXSxcblx0XHRbXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXVxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiUGF5bWVudEluZm9zUmVzdWx0XCJdOiBBbGlhc1R5cGU8e1x0XHRbXCIuLi5vbiBQYXltZW50SW5mb3NSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJQYXltZW50SW5mb3NSZXNwb25zZVwiXSxcblx0XHRbXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXVxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiUGxhbnNSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIFBsYW5SZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJQbGFuUmVzcG9uc2VcIl1cblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlNoYXJlZEZvbGRlcnNSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIFNoYXJlZEZvbGRlcnNSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJTaGFyZWRGb2xkZXJzUmVzcG9uc2VcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl1cblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlNoYXJlZFZGaWxlc1Jlc3VsdFwiXTogQWxpYXNUeXBlPHtcdFx0W1wiLi4ub24gU2hhcmVkVkZpbGVzUmVzcG9uc2VcIl0gOiBWYWx1ZVR5cGVzW1wiU2hhcmVkVkZpbGVzUmVzcG9uc2VcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl1cblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlVucmVhZFJlY2VpdmVkTWFpbHNDb3VudFJlc3VsdFwiXTogQWxpYXNUeXBlPHtcdFx0W1wiLi4ub24gVW5yZWFkUmVjZWl2ZWRNYWlsc0NvdW50UmVzcG9uc2VcIl0gOiBWYWx1ZVR5cGVzW1wiVW5yZWFkUmVjZWl2ZWRNYWlsc0NvdW50UmVzcG9uc2VcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWRcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl1cblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlVzZXJSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIFVzZXJSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJVc2VyUmVzcG9uc2VcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JOb3RGb3VuZFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJWRmlsZVJlc3VsdFwiXTogQWxpYXNUeXBlPHtcdFx0W1wiLi4ub24gVkZpbGVSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJWRmlsZVJlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJWRmlsZXNTaGFyZWRXaXRoTWVSZXN1bHRcIl06IEFsaWFzVHlwZTx7XHRcdFtcIi4uLm9uIFZGaWxlc1NoYXJlZFdpdGhNZVJlc3BvbnNlXCJdIDogVmFsdWVUeXBlc1tcIlZGaWxlc1NoYXJlZFdpdGhNZVJlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJVc2VyTGlzdFJlc3VsdFwiXTogQWxpYXNUeXBlPHtcdFx0W1wiLi4ub24gVXNlckxpc3RSZXNwb25zZVwiXSA6IFZhbHVlVHlwZXNbXCJVc2VyTGlzdFJlc3BvbnNlXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yQWNjZXNzRGVuaWVkXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJBcHBLZXlQYWlyXCJdOiBBbGlhc1R5cGU8e1xuXHRwdWI/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJBcHBTZXNzaW9uXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86Ym9vbGVhbixcblx0bGFzdEFjdGl2aXR5Pzpib29sZWFuLFxuXHR1c2VyQWdlbnQ/OmJvb2xlYW4sXG5cdGlwPzpib29sZWFuLFxuXHRjaXR5Pzpib29sZWFuLFxuXHRjb3VudHJ5Pzpib29sZWFuLFxuXHR1c2VyU2Vzc2lvbj86VmFsdWVUeXBlc1tcIlVzZXJTZXNzaW9uXCJdLFxuXHR1c2VyQXBwPzpWYWx1ZVR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0Y3JlYXRlZEF0Pzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiQXBwbGljYXRpb25cIl06IEFsaWFzVHlwZTx7XG5cdGlkPzpib29sZWFuLFxuXHRuYW1lPzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXTogQWxpYXNUeXBlPHtcblx0ZmFrZVVzZXJJZD86Ym9vbGVhbixcblx0a2V5UGFpcj86VmFsdWVUeXBlc1tcIkFwcEtleVBhaXJcIl0sXG5cdHNlc3Npb25zPzpWYWx1ZVR5cGVzW1wiQXBwU2Vzc2lvblwiXSxcblx0YXBwPzpWYWx1ZVR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdHVzZXI/OlZhbHVlVHlwZXNbXCJVc2VyXCJdLFxuXHRmb2xkZXJzPzpWYWx1ZVR5cGVzW1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0c2V0dGluZ3M/OlZhbHVlVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJCbG9nXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86Ym9vbGVhbixcblx0b3JkZXI/OmJvb2xlYW4sXG5cdGVudHJpZXM/OlZhbHVlVHlwZXNbXCJCbG9nRW50cnlcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJCbG9nRW50cnlcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzpib29sZWFuLFxuXHRsYW5nPzpib29sZWFuLFxuXHRhdXRob3I/OmJvb2xlYW4sXG5cdGJvZHk/OmJvb2xlYW4sXG5cdGRhdGU/OmJvb2xlYW4sXG5cdGltYWdlPzpib29sZWFuLFxuXHRzdW1tYXJ5Pzpib29sZWFuLFxuXHR0aXRsZT86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkJsb2dJdGVtXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86Ym9vbGVhbixcblx0YmxvZ0lkPzpib29sZWFuLFxuXHRvcmRlcj86Ym9vbGVhbixcblx0dGl0bGU/OmJvb2xlYW4sXG5cdGJvZHk/OmJvb2xlYW4sXG5cdGF1dGhvcj86Ym9vbGVhbixcblx0aW1hZ2U/OmJvb2xlYW4sXG5cdGltYWdlQWx0Pzpib29sZWFuLFxuXHRzdW1tYXJ5Pzpib29sZWFuLFxuXHRkYXRlPzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiQ2xvdWRMaW1pdHNcIl06IEFsaWFzVHlwZTx7XG5cdHNpemU/OmJvb2xlYW4sXG5cdG1heFNpemU/OmJvb2xlYW4sXG5cdGNvdW50Pzpib29sZWFuLFxuXHRtYXhDb3VudD86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkVycm9yXCJdOiBBbGlhc1R5cGU8e1x0XHRbXCIuLi5vbiBFcnJvckFjY2Vzc0RlbmllZFwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXSxcblx0XHRbXCIuLi5vbiBFcnJvck5vdEZvdW5kXCJdIDogVmFsdWVUeXBlc1tcIkVycm9yTm90Rm91bmRcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JVcGdyYWRlUGxhblwiXSA6IFZhbHVlVHlwZXNbXCJFcnJvclVwZ3JhZGVQbGFuXCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yTGFuZ05vdEV4aXN0XCJdIDogVmFsdWVUeXBlc1tcIkVycm9yTGFuZ05vdEV4aXN0XCJdLFxuXHRcdFtcIi4uLm9uIEVycm9yTm90RXhpc3RcIl0gOiBWYWx1ZVR5cGVzW1wiRXJyb3JOb3RFeGlzdFwiXSxcblx0XHRbXCIuLi5vbiBFcnJvckxpbWl0XCJdIDogVmFsdWVUeXBlc1tcIkVycm9yTGltaXRcIl0sXG5cdFx0W1wiLi4ub24gRXJyb3JCYXNpY1wiXSA6IFZhbHVlVHlwZXNbXCJFcnJvckJhc2ljXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTogQWxpYXNUeXBlPHtcblx0bWVzc2FnZT86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkVycm9yQmFzZVwiXTpBbGlhc1R5cGU8e1xuXHRcdG1lc3NhZ2U/OmJvb2xlYW47XG5cdFx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddPzogT21pdDxWYWx1ZVR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl0sa2V5b2YgVmFsdWVUeXBlc1tcIkVycm9yQmFzZVwiXT47XG5cdFx0WycuLi5vbiBFcnJvckJhc2ljJ10/OiBPbWl0PFZhbHVlVHlwZXNbXCJFcnJvckJhc2ljXCJdLGtleW9mIFZhbHVlVHlwZXNbXCJFcnJvckJhc2VcIl0+O1xuXHRcdFsnLi4ub24gRXJyb3JMYW5nTm90RXhpc3QnXT86IE9taXQ8VmFsdWVUeXBlc1tcIkVycm9yTGFuZ05vdEV4aXN0XCJdLGtleW9mIFZhbHVlVHlwZXNbXCJFcnJvckJhc2VcIl0+O1xuXHRcdFsnLi4ub24gRXJyb3JMaW1pdCddPzogT21pdDxWYWx1ZVR5cGVzW1wiRXJyb3JMaW1pdFwiXSxrZXlvZiBWYWx1ZVR5cGVzW1wiRXJyb3JCYXNlXCJdPjtcblx0XHRbJy4uLm9uIEVycm9yTm90RXhpc3QnXT86IE9taXQ8VmFsdWVUeXBlc1tcIkVycm9yTm90RXhpc3RcIl0sa2V5b2YgVmFsdWVUeXBlc1tcIkVycm9yQmFzZVwiXT47XG5cdFx0WycuLi5vbiBFcnJvck5vdEZvdW5kJ10/OiBPbWl0PFZhbHVlVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdLGtleW9mIFZhbHVlVHlwZXNbXCJFcnJvckJhc2VcIl0+O1xuXHRcdFsnLi4ub24gRXJyb3JVcGdyYWRlUGxhbiddPzogT21pdDxWYWx1ZVR5cGVzW1wiRXJyb3JVcGdyYWRlUGxhblwiXSxrZXlvZiBWYWx1ZVR5cGVzW1wiRXJyb3JCYXNlXCJdPjtcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkVycm9yQmFzaWNcIl06IEFsaWFzVHlwZTx7XG5cdG1lc3NhZ2U/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJFcnJvckxhbmdOb3RFeGlzdFwiXTogQWxpYXNUeXBlPHtcblx0bWVzc2FnZT86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkVycm9yTGltaXRcIl06IEFsaWFzVHlwZTx7XG5cdG1lc3NhZ2U/OmJvb2xlYW4sXG5cdGZpZWxkPzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiRXJyb3JOb3RFeGlzdFwiXTogQWxpYXNUeXBlPHtcblx0bWVzc2FnZT86Ym9vbGVhbixcblx0ZmllbGQ/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJFcnJvck5vdEZvdW5kXCJdOiBBbGlhc1R5cGU8e1xuXHRtZXNzYWdlPzpib29sZWFuLFxuXHRmaWVsZD86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkVycm9yVXBncmFkZVBsYW5cIl06IEFsaWFzVHlwZTx7XG5cdG1lc3NhZ2U/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGYXFcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzpib29sZWFuLFxuXHRvcmRlcj86Ym9vbGVhbixcblx0ZW50cmllcz86VmFsdWVUeXBlc1tcIkZhcUVudHJ5XCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiRmFxRW50cnlcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzpib29sZWFuLFxuXHRsYW5nPzpib29sZWFuLFxuXHRxdWVzdGlvbj86Ym9vbGVhbixcblx0YW5zd2VyPzpib29sZWFuLFxuXHRmYXE/OlZhbHVlVHlwZXNbXCJGYXFcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGYXFJdGVtXCJdOiBBbGlhc1R5cGU8e1xuXHRvcmRlcj86Ym9vbGVhbixcblx0cXVlc3Rpb24/OmJvb2xlYW4sXG5cdGFuc3dlcj86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZpbGVcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzpib29sZWFuLFxuXHRzaXplPzpib29sZWFuLFxuXHRzaXplQmVmb3JlPzpib29sZWFuLFxuXHRjcmVhdGVkQXQ/OmJvb2xlYW4sXG5cdHZGaWxlcz86VmFsdWVUeXBlc1tcIlZGaWxlXCJdLFxuXHR2RmlsZXNDdXJyZW50PzpWYWx1ZVR5cGVzW1wiVkZpbGVcIl0sXG5cdHVzZXJzPzpWYWx1ZVR5cGVzW1wiRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0sXG5cdG1kNT86Ym9vbGVhbixcblx0bWQ1RW5jcnlwdGVkPzpib29sZWFuLFxuXHRkZWxldGVkQXQ/OmJvb2xlYW4sXG5cdHVzZXJBcHA/OlZhbHVlVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRtYWlscz86VmFsdWVUeXBlc1tcIkZpbGVzT25NYWlsc1wiXSxcblx0dmFsaWRhdGVkQXQ/OmJvb2xlYW4sXG5cdHVzZXI/OlZhbHVlVHlwZXNbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZpbGVDb250ZW50XCJdOiBBbGlhc1R5cGU8e1x0XHRbXCIuLi5vbiBGaWxlQ29udGVudENsb3VkXCJdIDogVmFsdWVUeXBlc1tcIkZpbGVDb250ZW50Q2xvdWRcIl0sXG5cdFx0W1wiLi4ub24gRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl0gOiBWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl0sXG5cdFx0W1wiLi4ub24gRmlsZUNvbnRlbnRTZW50TWFpbFwiXSA6IFZhbHVlVHlwZXNbXCJGaWxlQ29udGVudFNlbnRNYWlsXCJdXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlQ29udGVudEJhc2VcIl06QWxpYXNUeXBlPHtcblx0XHRwYXJ0cz86VmFsdWVUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXSxcblx0a2V5Pzpib29sZWFuLFxuXHRtZDU/OmJvb2xlYW4sXG5cdG1kNUVuY3J5cHRlZD86Ym9vbGVhbixcblx0dG90YWxTaXplPzpib29sZWFuLFxuXHR0eXBlPzpib29sZWFuO1xuXHRcdFsnLi4ub24gRmlsZUNvbnRlbnRDbG91ZCddPzogT21pdDxWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRDbG91ZFwiXSxrZXlvZiBWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRCYXNlXCJdPjtcblx0XHRbJy4uLm9uIEZpbGVDb250ZW50UmVjZWl2ZWRNYWlsJ10/OiBPbWl0PFZhbHVlVHlwZXNbXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiXSxrZXlvZiBWYWx1ZVR5cGVzW1wiRmlsZUNvbnRlbnRCYXNlXCJdPjtcblx0XHRbJy4uLm9uIEZpbGVDb250ZW50U2VudE1haWwnXT86IE9taXQ8VmFsdWVUeXBlc1tcIkZpbGVDb250ZW50U2VudE1haWxcIl0sa2V5b2YgVmFsdWVUeXBlc1tcIkZpbGVDb250ZW50QmFzZVwiXT47XG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlQ29udGVudENsb3VkXCJdOiBBbGlhc1R5cGU8e1xuXHRwYXJ0cz86VmFsdWVUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXSxcblx0a2V5Pzpib29sZWFuLFxuXHRtZDU/OmJvb2xlYW4sXG5cdG1kNUVuY3J5cHRlZD86Ym9vbGVhbixcblx0dG90YWxTaXplPzpib29sZWFuLFxuXHR0eXBlPzpib29sZWFuLFxuXHRwdWJsaWNLZXk/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlQ29udGVudFBhcnRcIl06IEFsaWFzVHlwZTx7XG5cdGNvbnRlbnRVcmw/OmJvb2xlYW4sXG5cdG9yZGVyPzpib29sZWFuLFxuXHRtZDU/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiXTogQWxpYXNUeXBlPHtcblx0cGFydHM/OlZhbHVlVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl0sXG5cdGtleT86Ym9vbGVhbixcblx0bWQ1Pzpib29sZWFuLFxuXHRtZDVFbmNyeXB0ZWQ/OmJvb2xlYW4sXG5cdHRvdGFsU2l6ZT86Ym9vbGVhbixcblx0dHlwZT86Ym9vbGVhbixcblx0c2VuZGVyUHVibGljS2V5Pzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiRmlsZUNvbnRlbnRTZW50TWFpbFwiXTogQWxpYXNUeXBlPHtcblx0cGFydHM/OlZhbHVlVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl0sXG5cdGtleT86Ym9vbGVhbixcblx0bWQ1Pzpib29sZWFuLFxuXHRtZDVFbmNyeXB0ZWQ/OmJvb2xlYW4sXG5cdHRvdGFsU2l6ZT86Ym9vbGVhbixcblx0dHlwZT86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZpbGVDb250ZW50VHlwZVwiXTpGaWxlQ29udGVudFR5cGU7XG5cdFtcIkZpbGVQYXJ0XCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86Ym9vbGVhbixcblx0ZmlsZT86VmFsdWVUeXBlc1tcIkZpbGVcIl0sXG5cdGZpbGVJZD86Ym9vbGVhbixcblx0c2l6ZT86Ym9vbGVhbixcblx0b3JkZXI/OmJvb2xlYW4sXG5cdG1kNT86Ym9vbGVhbixcblx0dmFsaWRhdGVkQXQ/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlUGFydFJlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRmaWVsZHM/OmJvb2xlYW4sXG5cdHVybD86Ym9vbGVhbixcblx0b3JkZXI/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlUmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdGZpbGVJZD86Ym9vbGVhbixcblx0cGFydHM/OlZhbHVlVHlwZXNbXCJGaWxlUGFydFJlc3BvbnNlXCJdLFxuXHRmaWxlUGFydFNpemU/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlU2hhcmVkXCJdOiBBbGlhc1R5cGU8e1xuXHR1c2VySWQ/OmJvb2xlYW4sXG5cdG1lc3NhZ2U/OmJvb2xlYW4sXG5cdGFwcElkPzpib29sZWFuLFxuXHRpZD86Ym9vbGVhbixcblx0ZmlsZW5hbWU/OmJvb2xlYW4sXG5cdHNpemU/OmJvb2xlYW4sXG5cdHNpemVCZWZvcmU/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlU2hhcmVkQ29udGVudFwiXTogQWxpYXNUeXBlPHtcblx0b3duZXJJZD86Ym9vbGVhbixcblx0cHViS2V5Pzpib29sZWFuLFxuXHRtZXNzYWdlPzpib29sZWFuLFxuXHRhcHBJZD86Ym9vbGVhbixcblx0aWQ/OmJvb2xlYW4sXG5cdHR5cGU/OmJvb2xlYW4sXG5cdGZpbGVuYW1lPzpib29sZWFuLFxuXHRjb250ZW50VXJsPzpib29sZWFuLFxuXHRrZXk/OmJvb2xlYW4sXG5cdHNpemU/OmJvb2xlYW4sXG5cdHNpemVCZWZvcmU/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlc09uTWFpbHNcIl06IEFsaWFzVHlwZTx7XG5cdGZpbGU/OlZhbHVlVHlwZXNbXCJGaWxlXCJdLFxuXHRmaWxlS2V5Pzpib29sZWFuLFxuXHRmaWxlbmFtZT86Ym9vbGVhbixcblx0bWFpbD86VmFsdWVUeXBlc1tcIk1haWxcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXTogQWxpYXNUeXBlPHtcblx0ZmlsZT86VmFsdWVUeXBlc1tcIkZpbGVcIl0sXG5cdHVzZXJBcHA/OlZhbHVlVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHQvKiogRW5jcnlwdGVkIHdpdGggVXNlckFwcCBrZXlzICovXG5cdGtleT86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZvbGRlclwiXTogQWxpYXNUeXBlPHtcblx0aWQ/OmJvb2xlYW4sXG5cdGlzRmF2b3JpdGU/OmJvb2xlYW4sXG5cdGNyZWF0ZWRBdD86Ym9vbGVhbixcblx0ZGVsZXRlZEF0Pzpib29sZWFuLFxuXHR1cGRhdGVkQXQ/OmJvb2xlYW4sXG5cdGNyZWF0ZWRCeT86VmFsdWVUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHVzZXJBcHBzPzpWYWx1ZVR5cGVzW1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0dXNlckFwcD86VmFsdWVUeXBlc1tcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0sXG5cdG5hbWU/OmJvb2xlYW4sXG5cdHBhcmVudEZvbGRlcj86VmFsdWVUeXBlc1tcIkZvbGRlclwiXSxcblx0c3ViZm9sZGVycz86VmFsdWVUeXBlc1tcIkZvbGRlclwiXSxcblx0dkZpbGVzPzpWYWx1ZVR5cGVzW1wiVkZpbGVcIl0sXG5cdGJyZWFkY3J1bWI/OlZhbHVlVHlwZXNbXCJGb2xkZXJCcmVhZGNydW1iSXRlbVwiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZvbGRlckJyZWFkY3J1bWJJdGVtXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86Ym9vbGVhbixcblx0bmFtZT86Ym9vbGVhbixcblx0cHViS2V5Pzpib29sZWFuLFxuXHRuYW1lS2V5Pzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiRm9sZGVyU2l6ZVwiXTogQWxpYXNUeXBlPHtcblx0c2l6ZT86Ym9vbGVhbixcblx0c2l6ZUJlZm9yZT86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl06IEFsaWFzVHlwZTx7XG5cdGZvbGRlcj86VmFsdWVUeXBlc1tcIkZvbGRlclwiXSxcblx0dXNlckFwcD86VmFsdWVUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHJpZ2h0cz86Ym9vbGVhbixcblx0bmFtZUtleT86Ym9vbGVhbixcblx0aXNSb290Pzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiTWFpbEZpbGVJbnB1dFwiXToge1xuXHRpZDpzdHJpbmcsXG5cdG5hbWU6c3RyaW5nLFxuXHRmaWxlS2V5OnN0cmluZ1xufTtcblx0W1wiTWFpbFJlY2lwaWVudElucHV0XCJdOiB7XG5cdGJvZHk6c3RyaW5nLFxuXHRzdWJqZWN0OnN0cmluZyxcblx0cmVjaXBpZW50SWQ6c3RyaW5nLFxuXHRmaWxlczpWYWx1ZVR5cGVzW1wiTWFpbEZpbGVJbnB1dFwiXVtdXG59O1xuXHRbXCJOYW1lS2V5SW5wdXRcIl06IHtcblx0aWQ6c3RyaW5nLFxuXHRuYW1lS2V5OnN0cmluZyxcblx0ZmlsZXM6VmFsdWVUeXBlc1tcIlNoYXJlRmlsZUtleUlucHV0XCJdW11cbn07XG5cdFtcIk5hbWVLZXlJbnB1dEZvbGRlcnNcIl06IHtcblx0aWQ6c3RyaW5nLFxuXHRuYW1lS2V5OnN0cmluZ1xufTtcblx0W1wiUGF5SW5wdXRcIl06IHtcblx0dHlwZTpWYWx1ZVR5cGVzW1wiUGF5SW5wdXRUeXBlXCJdLFxuXHR0b2tlbjpzdHJpbmcsXG5cdGZpcnN0TmFtZTpzdHJpbmcsXG5cdGxhc3ROYW1lOnN0cmluZyxcblx0c3RyZWV0OnN0cmluZyxcblx0cG9zdGFsQ29kZTpzdHJpbmcsXG5cdGNpdHk6c3RyaW5nLFxuXHRjb3VudHJ5OnN0cmluZyxcblx0bnVtYmVyOnN0cmluZyxcblx0bW9udGg6c3RyaW5nLFxuXHR5ZWFyOnN0cmluZyxcblx0Y3Z2OnN0cmluZ1xufTtcblx0W1wiUGF5SW5wdXRUeXBlXCJdOlBheUlucHV0VHlwZTtcblx0W1wiU2hhcmVGaWxlSW5IaXN0b3J5SW5wdXRcIl06IHtcblx0ZmlsZUlkOnN0cmluZyxcblx0dXNlcnM6VmFsdWVUeXBlc1tcIlNoYXJlRmlsZUtleUlucHV0XCJdW11cbn07XG5cdFtcIlNoYXJlRmlsZUtleUlucHV0XCJdOiB7XG5cdGlkOnN0cmluZyxcblx0a2V5OnN0cmluZ1xufTtcblx0W1wiU2hhcmVGb2xkZXJzSW5wdXRcIl06IHtcblx0Zm9sZGVyczpWYWx1ZVR5cGVzW1wiTmFtZUtleUlucHV0Rm9sZGVyc1wiXVtdLFxuXHR2RmlsZXM6VmFsdWVUeXBlc1tcIk5hbWVLZXlJbnB1dFwiXVtdXG59O1xuXHRbXCJMaW1pdHNcIl06IEFsaWFzVHlwZTx7XG5cdGRvd25sb2FkQmFuZHdpZHRoPzpib29sZWFuLFxuXHRkb3dubG9hZENvdW50Pzpib29sZWFuLFxuXHRoYXJkRmlsZUNvdW50Pzpib29sZWFuLFxuXHRoYXJkRmlsZVNpemU/OmJvb2xlYW4sXG5cdHBlckZpbGVTaXplPzpib29sZWFuLFxuXHRyZWNlaXZlZE1haWxzPzpWYWx1ZVR5cGVzW1wiTWFpbExpbWl0c1wiXSxcblx0c2VudE1haWxzPzpWYWx1ZVR5cGVzW1wiTWFpbExpbWl0c1wiXSxcblx0dXBsb2FkQmFuZHdpZHRoPzpib29sZWFuLFxuXHR1cGxvYWRDb3VudD86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIk1haWxMaW1pdHNcIl06IEFsaWFzVHlwZTx7XG5cdGNvdW50Pzpib29sZWFuLFxuXHRmaWxlQ291bnQ/OmJvb2xlYW4sXG5cdGZpbGVTaXplPzpib29sZWFuLFxuXHRoYXJkQ291bnQ/OmJvb2xlYW4sXG5cdGhhcmRGaWxlQ291bnQ/OmJvb2xlYW4sXG5cdGhhcmRGaWxlU2l6ZT86Ym9vbGVhbixcblx0cGVyRmlsZVNpemU/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJNYWlsTGltaXRzVmFsdWVzXCJdOiBBbGlhc1R5cGU8e1xuXHRjb3VudD86Ym9vbGVhbixcblx0bWF4Q291bnQ/OmJvb2xlYW4sXG5cdGZpbGVDb3VudD86Ym9vbGVhbixcblx0bWF4RmlsZUNvdW50Pzpib29sZWFuLFxuXHRmaWxlU2l6ZT86Ym9vbGVhbixcblx0bWF4RmlsZVNpemU/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJRdWVyeUxpbWl0c1wiXTogQWxpYXNUeXBlPHtcblx0Y2xvdWQ/OlZhbHVlVHlwZXNbXCJDbG91ZExpbWl0c1wiXSxcblx0bWFpbD86VmFsdWVUeXBlc1tcIlVzZXJNYWlsTGltaXRzXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiVXNlck1haWxMaW1pdHNcIl06IEFsaWFzVHlwZTx7XG5cdHNlbnQ/OlZhbHVlVHlwZXNbXCJNYWlsTGltaXRzVmFsdWVzXCJdLFxuXHRyZWNlaXZlZD86VmFsdWVUeXBlc1tcIk1haWxMaW1pdHNWYWx1ZXNcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJNYWlsXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86Ym9vbGVhbixcblx0YXBwPzpWYWx1ZVR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdGJvZHk/OmJvb2xlYW4sXG5cdGNyZWF0ZWRBdD86Ym9vbGVhbixcblx0ZGVsZXRlZEF0Pzpib29sZWFuLFxuXHRmaWxlcz86VmFsdWVUeXBlc1tcIkZpbGVzT25NYWlsc1wiXSxcblx0bWFpbEludGVncml0eT86VmFsdWVUeXBlc1tcIk1haWxJbnRlZ3JpdHlcIl0sXG5cdG1haWxJbnRlZ3JpdHlEcmFmdD86VmFsdWVUeXBlc1tcIk1haWxJbnRlZ3JpdHlEcmFmdFwiXSxcblx0b3BlbmVkQXQ/OmJvb2xlYW4sXG5cdHJlY2lwaWVudD86VmFsdWVUeXBlc1tcIlVzZXJcIl0sXG5cdHNlbmRlcj86VmFsdWVUeXBlc1tcIlVzZXJcIl0sXG5cdHN1YmplY3Q/OmJvb2xlYW4sXG5cdHR5cGU/OmJvb2xlYW4sXG5cdHJlY2lwaWVudHM/OlZhbHVlVHlwZXNbXCJVc2VyXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiTWFpbEludGVncml0eVwiXTogQWxpYXNUeXBlPHtcblx0aWQ/OmJvb2xlYW4sXG5cdGhhc2g/OmJvb2xlYW4sXG5cdGhhc2hLZXk/OmJvb2xlYW4sXG5cdGFuc3dlcnM/OlZhbHVlVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdLFxuXHRhcHA/OlZhbHVlVHlwZXNbXCJBcHBsaWNhdGlvblwiXSxcblx0bWFpbHM/OlZhbHVlVHlwZXNbXCJNYWlsXCJdLFxuXHRyZWNpcGllbnRzPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0dGVtcG9yYXJ5UmVjaXBpZW50cz86VmFsdWVUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl0sXG5cdHJlcGx5VG8/OlZhbHVlVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiTWFpbEludGVncml0eURyYWZ0XCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86Ym9vbGVhbixcblx0aGFzaD86Ym9vbGVhbixcblx0aGFzaEtleT86Ym9vbGVhbixcblx0YXBwPzpWYWx1ZVR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdG1haWw/OlZhbHVlVHlwZXNbXCJNYWlsXCJdLFxuXHRyZWNpcGllbnRzPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0dGVtcG9yYXJ5UmVjaXBpZW50cz86VmFsdWVUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl0sXG5cdHJlcGx5VG8/OlZhbHVlVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiUGxhblwiXTogQWxpYXNUeXBlPHtcblx0aWQ/OmJvb2xlYW4sXG5cdGtpbmQ/OmJvb2xlYW4sXG5cdGNvZGVzPzpib29sZWFuLFxuXHRsaW1pdHM/OlZhbHVlVHlwZXNbXCJMaW1pdHNcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJSZXBvcnRcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzpib29sZWFuLFxuXHR1c2VyPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0cmVwb3J0ZWRVc2VyPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0Y3VzdG9tTWVzc2FnZT86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkJsb2dSZXNwb25zZVwiXTogQWxpYXNUeXBlPHtcblx0YmxvZ0l0ZW1zPzpWYWx1ZVR5cGVzW1wiQmxvZ0l0ZW1cIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJEYkNvbmZpZ1Jlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRqc29uPzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiRGJHZXRSZXNwb25zZVwiXTogQWxpYXNUeXBlPHtcblx0anNvbj86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkRiU2VhcmNoUmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdGpzb24/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJEZWxldGVkRm9sZGVyc1Jlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRkZWxldGVkRm9sZGVycz86VmFsdWVUeXBlc1tcIkZvbGRlclwiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkRlbGV0ZWRNYWlsc1Jlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRkZWxldGVkTWFpbHM/OlZhbHVlVHlwZXNbXCJNYWlsXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiRGVsZXRlZFZGaWxlc1Jlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRkZWxldGVkVkZpbGVzPzpWYWx1ZVR5cGVzW1wiVkZpbGVcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGYXFSZXNwb25zZVwiXTogQWxpYXNUeXBlPHtcblx0ZmFxPzpWYWx1ZVR5cGVzW1wiRmFxSXRlbVwiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZpbGVRdWVyeVJlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRmaWxlPzpWYWx1ZVR5cGVzW1wiRmlsZVwiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZpbGVDb250ZW50UmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdGZpbGU/OlZhbHVlVHlwZXNbXCJGaWxlQ29udGVudFwiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZvbGRlclJlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRmb2xkZXI/OlZhbHVlVHlwZXNbXCJGb2xkZXJcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJGb2xkZXJTaGFyZWRXaXRoTWVSZXNwb25zZVwiXTogQWxpYXNUeXBlPHtcblx0Zm9sZGVyc1NoYXJlZFdpdGhNZT86VmFsdWVUeXBlc1tcIkZvbGRlclwiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIkZvbGRlclNpemVSZXNwb25zZVwiXTogQWxpYXNUeXBlPHtcblx0c2l6ZT86Ym9vbGVhbixcblx0c2l6ZUJlZm9yZT86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlF1ZXJ5TWFpbFJlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRtYWlsPzpWYWx1ZVR5cGVzW1wiTWFpbFwiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlBheW1lbnRJbmZvc1Jlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRwYXltZW50SW5mb3M/OlZhbHVlVHlwZXNbXCJQYXltZW50SW5mb3NcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJQbGFuUmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdHBsYW4/OlZhbHVlVHlwZXNbXCJQbGFuXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiU2hhcmVkRm9sZGVyc1Jlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHRzaGFyZWRGb2xkZXJzPzpWYWx1ZVR5cGVzW1wiRm9sZGVyXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiU2hhcmVkVkZpbGVzUmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdHNoYXJlZFZGaWxlcz86VmFsdWVUeXBlc1tcIlZGaWxlXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiVW5yZWFkUmVjZWl2ZWRNYWlsc0NvdW50UmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdGNvdW50Pzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiVXNlclJlc3BvbnNlXCJdOiBBbGlhc1R5cGU8e1xuXHR1c2VyPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlVzZXJMaXN0UmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdHVzZXJMaXN0PzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlZGaWxlUmVzcG9uc2VcIl06IEFsaWFzVHlwZTx7XG5cdHZGaWxlPzpWYWx1ZVR5cGVzW1wiVkZpbGVcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJWRmlsZXNTaGFyZWRXaXRoTWVSZXNwb25zZVwiXTogQWxpYXNUeXBlPHtcblx0dkZpbGVzU2hhcmVkV2l0aE1lPzpWYWx1ZVR5cGVzW1wiVkZpbGVcIl0sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJUZW1wb3JhcnlVc2VyXCJdOiBBbGlhc1R5cGU8e1xuXHRpZD86Ym9vbGVhbixcblx0bWFpbHM/OlZhbHVlVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdLFxuXHRkcmFmdE1haWxzPzpWYWx1ZVR5cGVzW1wiTWFpbEludGVncml0eURyYWZ0XCJdLFxuXHRlbWFpbD86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlVzZXJcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzpib29sZWFuLFxuXHRkZWxldGVkQXQ/OmJvb2xlYW4sXG5cdGxhbmc/OmJvb2xlYW4sXG5cdHJlcG9ydFNlbnQ/OlZhbHVlVHlwZXNbXCJSZXBvcnRcIl0sXG5cdGdvZEZhdGhlcj86VmFsdWVUeXBlc1tcIlVzZXJcIl0sXG5cdGdvZENoaWxkcmVuPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0Zmlyc3RuYW1lPzpib29sZWFuLFxuXHRsYXN0bmFtZT86Ym9vbGVhbixcblx0ZW1haWw/OmJvb2xlYW4sXG5cdHBob25lPzpib29sZWFuLFxuXHRsYXN0TG9naW4/OmJvb2xlYW4sXG5cdHJvbGU/OmJvb2xlYW4sXG5cdHNlc3Npb25zPzpWYWx1ZVR5cGVzW1wiVXNlclNlc3Npb25cIl0sXG5cdGNyZWF0ZWRBdD86Ym9vbGVhbixcblx0cmVjZWl2ZWRNYWlscz86VmFsdWVUeXBlc1tcIk1haWxcIl0sXG5cdHdhaXRpbmdSZWNlaXZlZE1haWxzPzpWYWx1ZVR5cGVzW1wiV2FpdGluZ1JlY2VpdmVkTWFpbFwiXSxcblx0c2VudE1haWxzPzpWYWx1ZVR5cGVzW1wiTWFpbFwiXSxcblx0ZHJhZnRNYWlscz86VmFsdWVUeXBlc1tcIk1haWxcIl0sXG5cdGFwcFNldHRpbmdzPzpWYWx1ZVR5cGVzW1wiVXNlckFwcFNldHRpbmdzXCJdLFxuXHRhcHBsaWNhdGlvbnM/OlZhbHVlVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRwdWJsaWNLZXk/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJVc2VyQXBwTm90aWZpY2F0aW9uc1wiXTogQWxpYXNUeXBlPHtcblx0aWQ/OmJvb2xlYW4sXG5cdGVuYWJsZUFsbD86Ym9vbGVhbixcblx0bWFpbD86Ym9vbGVhbixcblx0Y2xvdWQ/OmJvb2xlYW4sXG5cdGRpc2FibGVBbGxVbnRpbD86Ym9vbGVhbixcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIlVzZXJBcHBTZXR0aW5nc1wiXTogQWxpYXNUeXBlPHtcblx0aWQ/OmJvb2xlYW4sXG5cdGNsb3VkRmlsZURheXNGb3JEZWxldGU/OmJvb2xlYW4sXG5cdGNsb3VkRm9sZGVyRGF5c0ZvckRlbGV0ZT86Ym9vbGVhbixcblx0aGlzdG9yeUZpbGVEYXlzRm9yRGVsZXRlPzpib29sZWFuLFxuXHRoaXN0b3J5TWF4RmlsZUNvdW50Pzpib29sZWFuLFxuXHRhdXRvRGlzY29ubmVjdERlbGF5Pzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiVXNlclNlc3Npb25cIl06IEFsaWFzVHlwZTx7XG5cdGlkPzpib29sZWFuLFxuXHRhcHBTZXNzaW9ucz86VmFsdWVUeXBlc1tcIkFwcFNlc3Npb25cIl0sXG5cdGxhc3RBY3Rpdml0eT86Ym9vbGVhbixcblx0dXNlckFnZW50Pzpib29sZWFuLFxuXHRpcD86Ym9vbGVhbixcblx0Y2l0eT86Ym9vbGVhbixcblx0Y291bnRyeT86Ym9vbGVhbixcblx0Y3JlYXRlZEF0Pzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiVkZpbGVcIl06IEFsaWFzVHlwZTx7XG5cdGlkPzpib29sZWFuLFxuXHRpc0Zhdm9yaXRlPzpib29sZWFuLFxuXHRjcmVhdGVkQXQ/OmJvb2xlYW4sXG5cdGRlbGV0ZWRBdD86Ym9vbGVhbixcblx0ZmlsZW5hbWU/OmJvb2xlYW4sXG5cdHVzZXJBcHBzPzpWYWx1ZVR5cGVzW1wiVkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdLFxuXHRjcmVhdGVkQnk/OlZhbHVlVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHR1c2VyQXBwPzpWYWx1ZVR5cGVzW1wiVkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdLFxuXHRmb2xkZXI/OlZhbHVlVHlwZXNbXCJGb2xkZXJcIl0sXG5cdGhpc3Rvcnk/OlZhbHVlVHlwZXNbXCJGaWxlXCJdLFxuXHRjdXJyZW50PzpWYWx1ZVR5cGVzW1wiRmlsZVwiXSxcblx0dXBkYXRlZEF0Pzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiVkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdOiBBbGlhc1R5cGU8e1xuXHR2RmlsZT86VmFsdWVUeXBlc1tcIlZGaWxlXCJdLFxuXHR1c2VyQXBwPzpWYWx1ZVR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0cmlnaHRzPzpib29sZWFuLFxuXHRuYW1lS2V5Pzpib29sZWFuLFxuXHRpc1Jvb3Q/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJXYWl0aW5nUmVjZWl2ZWRNYWlsXCJdOiBBbGlhc1R5cGU8e1xuXHRzZW5kZXI/OlZhbHVlVHlwZXNbXCJVc2VyXCJdLFxuXHRkYXRlPzpib29sZWFuLFxuXHRyZWNpcGllbnRzPzpWYWx1ZVR5cGVzW1wiVXNlclwiXSxcblx0dGVtcG9yYXJ5UmVjaXBpZW50cz86VmFsdWVUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl0sXG5cdGF0dGFjaG1lbnRzQ291bnQ/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJQYXltZW50SW5mb3NcIl06IEFsaWFzVHlwZTx7XG5cdGhvc3RlZFVybD86Ym9vbGVhbixcblx0Y3VycmVudFN1YnNjcmlwdGlvbj86VmFsdWVUeXBlc1tcIlJlY3VybHlTdWJzY3JpcHRpb25cIl0sXG5cdGludm9pY2VzPzpWYWx1ZVR5cGVzW1wiUmVjdXJseUludm9pY2VzXCJdLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiUmVjdXJseUludm9pY2VzXCJdOiBBbGlhc1R5cGU8e1xuXHRwZGY/OmJvb2xlYW4sXG5cdGRhdGU/OmJvb2xlYW4sXG5cdGR1ZT86Ym9vbGVhbixcblx0c3RhdHVzPzpib29sZWFuLFxuXHR0b3RhbD86Ym9vbGVhbixcblx0bmFtZT86Ym9vbGVhbixcblx0Y3VycmVuY3k/OmJvb2xlYW4sXG5cdFx0X190eXBlbmFtZT86IGJvb2xlYW5cbn0+O1xuXHRbXCJSZWN1cmx5U3Vic2NyaXB0aW9uXCJdOiBBbGlhc1R5cGU8e1xuXHRhdXRvcmVuZXc/OmJvb2xlYW4sXG5cdGFjdGl2YXRlZEF0Pzpib29sZWFuLFxuXHRjdXJyZW50UGVyaW9kRW5kc0F0Pzpib29sZWFuLFxuXHRjdXJyZW50UGVyaW9kU3RhcnRlZEF0Pzpib29sZWFuLFxuXHRjYW5jZWxlZEF0Pzpib29sZWFuLFxuXHRjcmVhdGVkQXQ/OmJvb2xlYW4sXG5cdGV4cGlyZXNBdD86Ym9vbGVhbixcblx0cGF1c2VkQXQ/OmJvb2xlYW4sXG5cdHRyaWFsRW5kc0F0Pzpib29sZWFuLFxuXHR0cmlhbFN0YXJ0ZWRBdD86Ym9vbGVhbixcblx0dXBkYXRlZEF0Pzpib29sZWFuLFxuXHRzdGF0ZT86Ym9vbGVhbixcblx0Y29sbGVjdGlvbk1ldGhvZD86Ym9vbGVhbixcblx0cGxhbj86Ym9vbGVhbixcblx0cGxhbkNvZGU/OmJvb2xlYW4sXG5cdHRvdGFsPzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiU2hhcmVGb2xkZXJSZXNwb25zZVwiXTogQWxpYXNUeXBlPHtcblx0Zm9sZGVycz86Ym9vbGVhbixcblx0dkZpbGVzPzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiUXVlcnlcIl06IEFsaWFzVHlwZTx7XG5cdGFwcE5vdGlmaWNhdGlvbnM/OlZhbHVlVHlwZXNbXCJBcHBOb3RpZmljYXRpb25zUmVzdWx0XCJdLFxuYmxvZz86IFt7XHRsYW5nPzpWYWx1ZVR5cGVzW1wiTGFuZ1wiXSB8IG51bGx9LFZhbHVlVHlwZXNbXCJCbG9nUmVzdWx0XCJdXSxcbmRiQ29uZmlnPzogW3tcdGFwcENvZGU6c3RyaW5nfSxWYWx1ZVR5cGVzW1wiRGJDb25maWdSZXN1bHRcIl1dLFxuZGJHZXQ/OiBbe1x0ZmllbGQ6c3RyaW5nLFx0dXNlcklkPzpzdHJpbmcgfCBudWxsfSxWYWx1ZVR5cGVzW1wiRGJHZXRSZXN1bHRcIl1dLFxuZGJTZWFyY2g/OiBbe1x0c2VhcmNoOnN0cmluZyxcdGZpZWxkOnN0cmluZ30sVmFsdWVUeXBlc1tcIkRiU2VhcmNoUmVzdWx0XCJdXSxcblx0ZGVsZXRlZEZvbGRlcnM/OlZhbHVlVHlwZXNbXCJEZWxldGVkRm9sZGVyc1Jlc3VsdFwiXSxcbmRlbGV0ZWRNYWlscz86IFt7XHRtYWlsVHlwZTpWYWx1ZVR5cGVzW1wiTWFpbFR5cGVcIl19LFZhbHVlVHlwZXNbXCJEZWxldGVkTWFpbHNSZXN1bHRcIl1dLFxuXHRkZWxldGVkVkZpbGVzPzpWYWx1ZVR5cGVzW1wiRGVsZXRlZFZGaWxlc1Jlc3VsdFwiXSxcbmZhcT86IFt7XHRsYW5nPzpWYWx1ZVR5cGVzW1wiTGFuZ1wiXSB8IG51bGx9LFZhbHVlVHlwZXNbXCJGYXFSZXN1bHRcIl1dLFxuZmlsZT86IFt7XHRpZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJGaWxlUmVzdWx0XCJdXSxcbmZpbGVDb250ZW50PzogW3tcdGZpbGVJZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJGaWxlQ29udGVudFJlc3VsdFwiXV0sXG5maWxlc1NoYXJlZFdpdGhNZT86IFt7XHRhY2NlcHRlZD86Ym9vbGVhbiB8IG51bGx9LFZhbHVlVHlwZXNbXCJGaWxlU2hhcmVkQ29udGVudFwiXV0sXG5mb2xkZXI/OiBbe1x0aWQ/OnN0cmluZyB8IG51bGwsXHRkZWxldGVkPzpib29sZWFuIHwgbnVsbH0sVmFsdWVUeXBlc1tcIkZvbGRlclJlc3VsdFwiXV0sXG5mb2xkZXJTaXplPzogW3tcdGZvbGRlcklkPzpzdHJpbmcgfCBudWxsfSxWYWx1ZVR5cGVzW1wiRm9sZGVyU2l6ZVJlc3VsdFwiXV0sXG5cdGZvbGRlcnNTaGFyZWRXaXRoTWU/OlZhbHVlVHlwZXNbXCJGb2xkZXJzU2hhcmVkV2l0aE1lUmVzdWx0XCJdLFxuXHRsaW1pdHM/OlZhbHVlVHlwZXNbXCJMaW1pdHNSZXN1bHRcIl0sXG5tYWlsPzogW3tcdGlkOnN0cmluZ30sVmFsdWVUeXBlc1tcIk1haWxSZXN1bHRcIl1dLFxuXHRwYXltZW50SW5mb3M/OlZhbHVlVHlwZXNbXCJQYXltZW50SW5mb3NSZXN1bHRcIl0sXG5cdHBsYW5zPzpWYWx1ZVR5cGVzW1wiUGxhbnNSZXN1bHRcIl0sXG5cdHNoYXJlZEZvbGRlcnM/OlZhbHVlVHlwZXNbXCJTaGFyZWRGb2xkZXJzUmVzdWx0XCJdLFxuXHRzaGFyZWRWRmlsZXM/OlZhbHVlVHlwZXNbXCJTaGFyZWRWRmlsZXNSZXN1bHRcIl0sXG5cdHRlc3Q/OmJvb2xlYW4sXG5cdHVucmVhZFJlY2VpdmVkTWFpbHNDb3VudD86VmFsdWVUeXBlc1tcIlVucmVhZFJlY2VpdmVkTWFpbHNDb3VudFJlc3VsdFwiXSxcbnVzZXI/OiBbe1x0dXNlcklkPzpzdHJpbmcgfCBudWxsfSxWYWx1ZVR5cGVzW1wiVXNlclJlc3VsdFwiXV0sXG52RmlsZT86IFt7XHRpZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJWRmlsZVJlc3VsdFwiXV0sXG5cdHZGaWxlc1NoYXJlZFdpdGhNZT86VmFsdWVUeXBlc1tcIlZGaWxlc1NoYXJlZFdpdGhNZVJlc3VsdFwiXSxcbnVzZXJMaXN0PzogW3tcdHNlYXJjaD86c3RyaW5nIHwgbnVsbH0sVmFsdWVUeXBlc1tcIlVzZXJMaXN0UmVzdWx0XCJdXSxcblx0XHRfX3R5cGVuYW1lPzogYm9vbGVhblxufT47XG5cdFtcIk11dGF0aW9uXCJdOiBBbGlhc1R5cGU8e1xuYWRkRmlsZVRvSGlzdG9yeT86IFt7XHR2RmlsZUlkOnN0cmluZyxcdGZpbGVJZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJWRmlsZVwiXV0sXG5cdGNhbmNlbFBheW1lbnQ/OmJvb2xlYW4sXG5jcmVhdGVBcHBsaWNhdGlvbj86IFt7XHRuYW1lOnN0cmluZyxcdG9yaWdpbjpzdHJpbmcsXHRkZXZlbG9wZXJJZDpzdHJpbmd9LGJvb2xlYW5dLFxuY3JlYXRlRHJhZnRNYWlsPzogW3tcdGhhc2g6c3RyaW5nLFx0aGFzaEtleTpzdHJpbmcsXHRib2R5OnN0cmluZyxcdHN1YmplY3Q6c3RyaW5nLFx0cmVwbHlUbz86c3RyaW5nIHwgbnVsbCxcdHNlbmRlckZpbGVzOlZhbHVlVHlwZXNbXCJNYWlsRmlsZUlucHV0XCJdW10sXHRyZWNpcGllbnRzOnN0cmluZ1tdfSxWYWx1ZVR5cGVzW1wiTWFpbFwiXV0sXG5jcmVhdGVGb2xkZXI/OiBbe1x0bmFtZTpzdHJpbmcsXHRrZXk6c3RyaW5nLFx0cGFyZW50Rm9sZGVySWQ/OnN0cmluZyB8IG51bGx9LFZhbHVlVHlwZXNbXCJGb2xkZXJcIl1dLFxuZGJDb25maWc/OiBbe1x0YXBwQ29kZTpzdHJpbmcsXHRjb25maWc6c3RyaW5nfSxib29sZWFuXSxcbmRiU2V0PzogW3tcdHZhbHVlOnN0cmluZyxcdHVzZXJJZD86c3RyaW5nIHwgbnVsbH0sYm9vbGVhbl0sXG5kZWxldGVEcmFmdE1haWw/OiBbe1x0ZHJhZnRJZDpzdHJpbmd9LGJvb2xlYW5dLFxuZGVsZXRlRmlsZT86IFt7XHRmaWxlSWQ6c3RyaW5nLFx0dkZpbGVJZDpzdHJpbmd9LGJvb2xlYW5dLFxuZGVsZXRlRm9sZGVyPzogW3tcdGlkOnN0cmluZ30sYm9vbGVhbl0sXG5kZWxldGVGb2xkZXJDbG91ZFRyYXNoPzogW3tcdGlkczpzdHJpbmdbXX0sYm9vbGVhbl0sXG5kZWxldGVGb2xkZXJTaGFyaW5nPzogW3tcdGZvbGRlcklkOnN0cmluZyxcdHVzZXJJZDpzdHJpbmd9LGJvb2xlYW5dLFxuZGVsZXRlTWFpbD86IFt7XHRtYWlsSWQ6c3RyaW5nfSxib29sZWFuXSxcbmRlbGV0ZU1haWxUcmFzaD86IFt7XHRpZHM6c3RyaW5nW119LGJvb2xlYW5dLFxuZGVsZXRlVXNlcj86IFt7XHR1c2VySWQ/OnN0cmluZyB8IG51bGx9LGJvb2xlYW5dLFxuZGVsZXRlVkZpbGU/OiBbe1x0ZmlsZUlkOnN0cmluZ30sYm9vbGVhbl0sXG5kZWxldGVWRmlsZUNsb3VkVHJhc2g/OiBbe1x0aWRzOnN0cmluZ1tdfSxib29sZWFuXSxcbmRlbGV0ZVZGaWxlU2hhcmluZz86IFt7XHR2RmlsZUlkOnN0cmluZyxcdHVzZXJJZDpzdHJpbmd9LGJvb2xlYW5dLFxuZHVwbGljYXRlVkZpbGU/OiBbe1x0dkZpbGVJZDpzdHJpbmcsXHRmb2xkZXJJZD86c3RyaW5nIHwgbnVsbCxcdGN1c3RvbU5hbWU/OnN0cmluZyB8IG51bGx9LGJvb2xlYW5dLFxuXHRlbXB0eUNsb3VkVHJhc2g/OmJvb2xlYW4sXG5cdGVtcHR5TWFpbFRyYXNoPzpib29sZWFuLFxubG9nb3V0PzogW3tcdHNlc3Npb25JZD86c3RyaW5nIHwgbnVsbH0sYm9vbGVhbl0sXG5tb3ZlRmlsZXM/OiBbe1x0ZmlsZXNJZDpzdHJpbmdbXSxcdHBhcmVudEZvbGRlcklkPzpzdHJpbmcgfCBudWxsfSxib29sZWFuXSxcbm1vdmVGb2xkZXJzPzogW3tcdGZvbGRlcnNJZDpzdHJpbmdbXSxcdHBhcmVudEZvbGRlcklkPzpzdHJpbmcgfCBudWxsfSxib29sZWFuXSxcbnBheT86IFt7XHRwbGFuQ29kZTpzdHJpbmcsXHRpbnB1dDpWYWx1ZVR5cGVzW1wiUGF5SW5wdXRcIl0sXHRhdXRvUmVuZXc/OmJvb2xlYW4gfCBudWxsfSxib29sZWFuXSxcbnJlYWRNYWlsPzogW3tcdG1haWxJZDpzdHJpbmd9LGJvb2xlYW5dLFxucmVjb3ZlckZvbGRlcj86IFt7XHRpZDpzdHJpbmd9LGJvb2xlYW5dLFxucmVjb3Zlck1haWw/OiBbe1x0bWFpbElkOnN0cmluZ30sYm9vbGVhbl0sXG5yZWNvdmVyVkZpbGU/OiBbe1x0dkZpbGVJZDpzdHJpbmd9LGJvb2xlYW5dLFxuc2F2ZUluQ2xvdWQ/OiBbe1x0ZmlsZUlkOnN0cmluZyxcdGtleTpzdHJpbmcsXHRmb2xkZXJJZD86c3RyaW5nIHwgbnVsbCxcdGZpbGVuYW1lOnN0cmluZyxcdG5hbWVLZXk6c3RyaW5nfSxWYWx1ZVR5cGVzW1wiVkZpbGVcIl1dLFxuc2VuZERyYWZ0TWFpbD86IFt7XHRkcmFmdE1haWxJZDpzdHJpbmcsXHR0ZW1wb3JhcnlSZWNpcGllbnRzOnN0cmluZ1tdLFx0cmVjaXBpZW50czpWYWx1ZVR5cGVzW1wiTWFpbFJlY2lwaWVudElucHV0XCJdW10sXHRjdXN0b21NZXNzYWdlPzpzdHJpbmcgfCBudWxsfSxib29sZWFuXSxcbnNlbmRPbmVNYWlsPzogW3tcdG1haWxJbnRlZ3JpdHlJZDpzdHJpbmcsXHRyZWNpcGllbnQ6VmFsdWVUeXBlc1tcIk1haWxSZWNpcGllbnRJbnB1dFwiXX0sYm9vbGVhbl0sXG5zZW5kUmVwb3J0PzogW3tcdHJlcG9ydGVkVXNlcklkOnN0cmluZyxcdGN1c3RvbU1lc3NhZ2U/OnN0cmluZyB8IG51bGx9LFZhbHVlVHlwZXNbXCJSZXBvcnRcIl1dLFxuc2hhcmVGaWxlSW5IaXN0b3J5PzogW3tcdGlucHV0OlZhbHVlVHlwZXNbXCJTaGFyZUZpbGVJbkhpc3RvcnlJbnB1dFwiXSxcdHZGaWxlSWQ6c3RyaW5nfSxib29sZWFuXSxcbnNoYXJlRm9sZGVyPzogW3tcdGZvbGRlcklkOnN0cmluZyxcdHVzZXJJZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJTaGFyZUZvbGRlclJlc3BvbnNlXCJdXSxcbnNoYXJlRm9sZGVyRmluaXNoPzogW3tcdHNoYXJlRm9sZGVyczpWYWx1ZVR5cGVzW1wiU2hhcmVGb2xkZXJzSW5wdXRcIl0sXHR1c2VySWQ6c3RyaW5nLFx0cmlnaHRzOlZhbHVlVHlwZXNbXCJSaWdodHNcIl19LGJvb2xlYW5dLFxuc2hhcmVWRmlsZT86IFt7XHR2RmlsZUlkOnN0cmluZyxcdHVzZXJJZDpzdHJpbmcsXHRuYW1lS2V5OnN0cmluZyxcdHJpZ2h0czpWYWx1ZVR5cGVzW1wiUmlnaHRzXCJdLFx0aGlzdG9yeTpWYWx1ZVR5cGVzW1wiU2hhcmVGaWxlS2V5SW5wdXRcIl1bXX0sYm9vbGVhbl0sXG51bnJlYWRNYWlsPzogW3tcdG1haWxJZDpzdHJpbmd9LGJvb2xlYW5dLFxudXBkYXRlQXBwTm90aWZpY2F0aW9ucz86IFt7XHRlbmFibGVBbGw/OmJvb2xlYW4gfCBudWxsLFx0bWFpbD86Ym9vbGVhbiB8IG51bGwsXHRjbG91ZD86Ym9vbGVhbiB8IG51bGwsXHRkaXNhYmxlQWxsVW50aWw/OlZhbHVlVHlwZXNbXCJEYXRlVGltZVwiXSB8IG51bGx9LFZhbHVlVHlwZXNbXCJVc2VyQXBwTm90aWZpY2F0aW9uc1wiXV0sXG51cGRhdGVBcHBTZXR0aW5ncz86IFt7XHRjbG91ZEZpbGVEYXlzRm9yRGVsZXRlPzpudW1iZXIgfCBudWxsLFx0Y2xvdWRGb2xkZXJEYXlzRm9yRGVsZXRlPzpudW1iZXIgfCBudWxsLFx0aGlzdG9yeUZpbGVEYXlzRm9yRGVsZXRlPzpudW1iZXIgfCBudWxsLFx0aGlzdG9yeU1heEZpbGVDb3VudD86bnVtYmVyIHwgbnVsbCxcdGF1dG9EaXNjb25uZWN0RGVsYXk/Om51bWJlciB8IG51bGx9LFZhbHVlVHlwZXNbXCJVc2VyQXBwU2V0dGluZ3NcIl1dLFxudXBkYXRlRHJhZnRNYWlsPzogW3tcdGRyYWZ0SWQ6c3RyaW5nLFx0aGFzaD86c3RyaW5nIHwgbnVsbCxcdGhhc2hLZXk/OnN0cmluZyB8IG51bGwsXHRib2R5PzpzdHJpbmcgfCBudWxsLFx0c3ViamVjdD86c3RyaW5nIHwgbnVsbCxcdHJlcGx5VG8/OnN0cmluZyB8IG51bGwsXHRzZW5kZXJGaWxlcz86VmFsdWVUeXBlc1tcIk1haWxGaWxlSW5wdXRcIl1bXSxcdHJlY2lwaWVudHM/OnN0cmluZ1tdfSxWYWx1ZVR5cGVzW1wiTWFpbFwiXV0sXG51cGRhdGVGaWxlPzogW3tcdGZpbGVJZDpzdHJpbmcsXHRpc0Zhdm9yaXRlPzpib29sZWFuIHwgbnVsbCxcdGZpbGVuYW1lPzpzdHJpbmcgfCBudWxsLFx0ZGVsZXRlZEF0PzpWYWx1ZVR5cGVzW1wiRGF0ZVRpbWVcIl0gfCBudWxsfSxWYWx1ZVR5cGVzW1wiVkZpbGVcIl1dLFxudXBkYXRlRm9sZGVyPzogW3tcdGZvbGRlcklkOnN0cmluZyxcdG5hbWU/OnN0cmluZyB8IG51bGwsXHRpc0Zhdm9yaXRlPzpib29sZWFuIHwgbnVsbCxcdGRlbGV0ZWRBdD86VmFsdWVUeXBlc1tcIkRhdGVUaW1lXCJdIHwgbnVsbH0sVmFsdWVUeXBlc1tcIkZvbGRlclwiXV0sXG51cGRhdGVQcm9maWxlPzogW3tcdGZpcnN0bmFtZT86c3RyaW5nIHwgbnVsbCxcdGxhc3RuYW1lPzpzdHJpbmcgfCBudWxsLFx0bGFuZz86VmFsdWVUeXBlc1tcIkxhbmdcIl0gfCBudWxsfSxWYWx1ZVR5cGVzW1wiVXNlclwiXV0sXG51cGxvYWRBbm9ueW1vdXM/OiBbe1x0ZmlsZU5hbWU6c3RyaW5nLFx0ZmlsZVNpemU6bnVtYmVyLFx0ZmlsZVNpemVCZWZvcmU6bnVtYmVyLFx0bWVzc2FnZT86c3RyaW5nIHwgbnVsbCxcdHB1YktleTpzdHJpbmcsXHR0b2tlbjpzdHJpbmd9LFZhbHVlVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl1dLFxudXBsb2FkRmlsZT86IFt7XHRmaWxlU2l6ZTpWYWx1ZVR5cGVzW1wiQmlnSW50XCJdLFx0ZmlsZVNpemVCZWZvcmU6VmFsdWVUeXBlc1tcIkJpZ0ludFwiXSxcdGZpbGVLZXk6c3RyaW5nLFx0bWQ1OnN0cmluZyxcdG1kNUVuY3J5cHRlZDpzdHJpbmd9LFZhbHVlVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl1dLFxudXBsb2FkRmlsZUVuZD86IFt7XHRmaWxlSWQ6c3RyaW5nfSxib29sZWFuXSxcbnVwbG9hZEZpbGVQYXJ0RW5kPzogW3tcdGZpbGVJZDpzdHJpbmcsXHRtZDU6c3RyaW5nLFx0b3JkZXI6bnVtYmVyfSxib29sZWFuXSxcbmNoYW5nZVVzZXJQbGFuPzogW3tcdHVzZXJJZDpzdHJpbmcsXHRwbGFuOlZhbHVlVHlwZXNbXCJQbGFuS2luZFwiXX0sVmFsdWVUeXBlc1tcIlVzZXJcIl1dLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59Pjtcblx0W1wiU3Vic2NyaXB0aW9uXCJdOiBBbGlhc1R5cGU8e1xuXHR0ZXN0Pzpib29sZWFuLFxuXHRcdF9fdHlwZW5hbWU/OiBib29sZWFuXG59PlxuICB9XG5cbmV4cG9ydCB0eXBlIE1vZGVsVHlwZXMgPSB7XG4gICAgLyoqIFRoZSBgQmlnSW50YCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIG5vbi1mcmFjdGlvbmFsIHNpZ25lZCB3aG9sZSBudW1lcmljIHZhbHVlcy5cbkBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQmlnSW50ICovXG5bXCJCaWdJbnRcIl06YW55O1xuXHQvKiogVGhlIGBCeXRlYCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIGJ5dGUgdmFsdWUgYXMgYSBCdWZmZXIgKi9cbltcIkJ5dGVzXCJdOmFueTtcblx0LyoqIEEgZGF0ZS10aW1lIHN0cmluZyBhdCBVVEMsIHN1Y2ggYXMgMjAwNy0xMi0wM1QxMDoxNTozMFosIGNvbXBsaWFudCB3aXRoIHRoZSBgZGF0ZS10aW1lYCBmb3JtYXQgb3V0bGluZWQgaW4gc2VjdGlvbiA1LjYgb2YgdGhlIFJGQyAzMzM5IHByb2ZpbGUgb2YgdGhlIElTTyA4NjAxIHN0YW5kYXJkIGZvciByZXByZXNlbnRhdGlvbiBvZiBkYXRlcyBhbmQgdGltZXMgdXNpbmcgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4gKi9cbltcIkRhdGVUaW1lXCJdOmFueTtcblx0LyoqIEFuIGFyYml0cmFyeS1wcmVjaXNpb24gRGVjaW1hbCB0eXBlICovXG5bXCJEZWNpbWFsXCJdOmFueTtcblx0LyoqIFRoZSBgSlNPTk9iamVjdGAgc2NhbGFyIHR5cGUgcmVwcmVzZW50cyBKU09OIG9iamVjdHMgYXMgc3BlY2lmaWVkIGJ5IFtFQ01BLTQwNF0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL3B1YmxpY2F0aW9ucy9maWxlcy9FQ01BLVNUL0VDTUEtNDA0LnBkZikuICovXG5bXCJKc29uXCJdOmFueTtcblx0W1wiTGFuZ1wiXTogR3JhcGhRTFR5cGVzW1wiTGFuZ1wiXTtcblx0W1wiUGxhbktpbmRcIl06IEdyYXBoUUxUeXBlc1tcIlBsYW5LaW5kXCJdO1xuXHRbXCJVc2VyUm9sZVwiXTogR3JhcGhRTFR5cGVzW1wiVXNlclJvbGVcIl07XG5cdFtcIk1haWxUeXBlXCJdOiBHcmFwaFFMVHlwZXNbXCJNYWlsVHlwZVwiXTtcblx0W1wiUmlnaHRzXCJdOiBHcmFwaFFMVHlwZXNbXCJSaWdodHNcIl07XG5cdFtcIkFwcE5vdGlmaWNhdGlvbnNSZXN1bHRcIl06TW9kZWxUeXBlc1tcIlVzZXJBcHBOb3RpZmljYXRpb25zXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yTm90Rm91bmRcIl07XG5cdFtcIkJsb2dSZXN1bHRcIl06TW9kZWxUeXBlc1tcIkJsb2dSZXNwb25zZVwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvckxhbmdOb3RFeGlzdFwiXTtcblx0W1wiRGJDb25maWdSZXN1bHRcIl06TW9kZWxUeXBlc1tcIkRiQ29uZmlnUmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JOb3RFeGlzdFwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdO1xuXHRbXCJEYkdldFJlc3VsdFwiXTpNb2RlbFR5cGVzW1wiRGJHZXRSZXNwb25zZVwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yTm90RXhpc3RcIl07XG5cdFtcIkRiU2VhcmNoUmVzdWx0XCJdOk1vZGVsVHlwZXNbXCJEYlNlYXJjaFJlc3BvbnNlXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yTm90RXhpc3RcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JCYXNpY1wiXTtcblx0W1wiRGVsZXRlZEZvbGRlcnNSZXN1bHRcIl06TW9kZWxUeXBlc1tcIkRlbGV0ZWRGb2xkZXJzUmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFtcIkRlbGV0ZWRNYWlsc1Jlc3VsdFwiXTpNb2RlbFR5cGVzW1wiRGVsZXRlZE1haWxzUmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFtcIkRlbGV0ZWRWRmlsZXNSZXN1bHRcIl06TW9kZWxUeXBlc1tcIkRlbGV0ZWRWRmlsZXNSZXNwb25zZVwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcblx0W1wiRmFxUmVzdWx0XCJdOk1vZGVsVHlwZXNbXCJGYXFSZXNwb25zZVwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcblx0W1wiRmlsZVJlc3VsdFwiXTpNb2RlbFR5cGVzW1wiRmlsZVF1ZXJ5UmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFtcIkZpbGVDb250ZW50UmVzdWx0XCJdOk1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFJlc3BvbnNlXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yQmFzaWNcIl07XG5cdFtcIkZvbGRlclJlc3VsdFwiXTpNb2RlbFR5cGVzW1wiRm9sZGVyUmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFtcIkZvbGRlclNpemVSZXN1bHRcIl06TW9kZWxUeXBlc1tcIkZvbGRlclNpemVSZXNwb25zZVwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcblx0W1wiRm9sZGVyc1NoYXJlZFdpdGhNZVJlc3VsdFwiXTpNb2RlbFR5cGVzW1wiRm9sZGVyU2hhcmVkV2l0aE1lUmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFtcIkxpbWl0c1Jlc3VsdFwiXTpNb2RlbFR5cGVzW1wiUXVlcnlMaW1pdHNcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JOb3RGb3VuZFwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvck5vdEV4aXN0XCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yTGltaXRcIl07XG5cdFtcIk1haWxSZXN1bHRcIl06TW9kZWxUeXBlc1tcIlF1ZXJ5TWFpbFJlc3BvbnNlXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdO1xuXHRbXCJQYXltZW50SW5mb3NSZXN1bHRcIl06TW9kZWxUeXBlc1tcIlBheW1lbnRJbmZvc1Jlc3BvbnNlXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdO1xuXHRbXCJQbGFuc1Jlc3VsdFwiXTpNb2RlbFR5cGVzW1wiUGxhblJlc3BvbnNlXCJdO1xuXHRbXCJTaGFyZWRGb2xkZXJzUmVzdWx0XCJdOk1vZGVsVHlwZXNbXCJTaGFyZWRGb2xkZXJzUmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFtcIlNoYXJlZFZGaWxlc1Jlc3VsdFwiXTpNb2RlbFR5cGVzW1wiU2hhcmVkVkZpbGVzUmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFtcIlVucmVhZFJlY2VpdmVkTWFpbHNDb3VudFJlc3VsdFwiXTpNb2RlbFR5cGVzW1wiVW5yZWFkUmVjZWl2ZWRNYWlsc0NvdW50UmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFtcIlVzZXJSZXN1bHRcIl06TW9kZWxUeXBlc1tcIlVzZXJSZXNwb25zZVwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdO1xuXHRbXCJWRmlsZVJlc3VsdFwiXTpNb2RlbFR5cGVzW1wiVkZpbGVSZXNwb25zZVwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcblx0W1wiVkZpbGVzU2hhcmVkV2l0aE1lUmVzdWx0XCJdOk1vZGVsVHlwZXNbXCJWRmlsZXNTaGFyZWRXaXRoTWVSZXNwb25zZVwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcblx0W1wiVXNlckxpc3RSZXN1bHRcIl06TW9kZWxUeXBlc1tcIlVzZXJMaXN0UmVzcG9uc2VcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFtcIkFwcEtleVBhaXJcIl06IHtcblx0XHRwdWI6c3RyaW5nXG59O1xuXHRbXCJBcHBTZXNzaW9uXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRsYXN0QWN0aXZpdHk/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXNlckFnZW50PzpzdHJpbmcsXG5cdGlwPzpzdHJpbmcsXG5cdGNpdHk/OnN0cmluZyxcblx0Y291bnRyeT86c3RyaW5nLFxuXHR1c2VyU2Vzc2lvbjpNb2RlbFR5cGVzW1wiVXNlclNlc3Npb25cIl0sXG5cdHVzZXJBcHA/Ok1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRjcmVhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJBcHBsaWNhdGlvblwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0bmFtZTpzdHJpbmdcbn07XG5cdFtcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl06IHtcblx0XHRmYWtlVXNlcklkOnN0cmluZyxcblx0a2V5UGFpcj86TW9kZWxUeXBlc1tcIkFwcEtleVBhaXJcIl0sXG5cdHNlc3Npb25zOk1vZGVsVHlwZXNbXCJBcHBTZXNzaW9uXCJdW10sXG5cdGFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdHVzZXI6TW9kZWxUeXBlc1tcIlVzZXJcIl0sXG5cdGZvbGRlcnM6TW9kZWxUeXBlc1tcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl1bXSxcblx0c2V0dGluZ3M6TW9kZWxUeXBlc1tcIlVzZXJBcHBTZXR0aW5nc1wiXVxufTtcblx0W1wiQmxvZ1wiXToge1xuXHRcdGlkOnN0cmluZyxcblx0b3JkZXI6bnVtYmVyLFxuXHRlbnRyaWVzOk1vZGVsVHlwZXNbXCJCbG9nRW50cnlcIl1bXVxufTtcblx0W1wiQmxvZ0VudHJ5XCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRsYW5nOk1vZGVsVHlwZXNbXCJMYW5nXCJdLFxuXHRhdXRob3I6c3RyaW5nLFxuXHRib2R5OnN0cmluZyxcblx0ZGF0ZTpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGltYWdlOnN0cmluZyxcblx0c3VtbWFyeTpzdHJpbmcsXG5cdHRpdGxlOnN0cmluZ1xufTtcblx0W1wiQmxvZ0l0ZW1cIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGJsb2dJZDpzdHJpbmcsXG5cdG9yZGVyOm51bWJlcixcblx0dGl0bGU6c3RyaW5nLFxuXHRib2R5OnN0cmluZyxcblx0YXV0aG9yOnN0cmluZyxcblx0aW1hZ2U6c3RyaW5nLFxuXHRpbWFnZUFsdDpzdHJpbmcsXG5cdHN1bW1hcnk6c3RyaW5nLFxuXHRkYXRlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiQ2xvdWRMaW1pdHNcIl06IHtcblx0XHRzaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heFNpemU/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGNvdW50Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heENvdW50PzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJFcnJvclwiXTpNb2RlbFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JOb3RGb3VuZFwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvclVwZ3JhZGVQbGFuXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yTGFuZ05vdEV4aXN0XCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yTm90RXhpc3RcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JMaW1pdFwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvckJhc2ljXCJdO1xuXHRbXCJFcnJvckFjY2Vzc0RlbmllZFwiXToge1xuXHRcdG1lc3NhZ2U6c3RyaW5nXG59O1xuXHRbXCJFcnJvckJhc2VcIl06IE1vZGVsVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvckJhc2ljXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yTGFuZ05vdEV4aXN0XCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yTGltaXRcIl0gfCBNb2RlbFR5cGVzW1wiRXJyb3JOb3RFeGlzdFwiXSB8IE1vZGVsVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdIHwgTW9kZWxUeXBlc1tcIkVycm9yVXBncmFkZVBsYW5cIl07XG5cdFtcIkVycm9yQmFzaWNcIl06IHtcblx0XHRtZXNzYWdlOnN0cmluZ1xufTtcblx0W1wiRXJyb3JMYW5nTm90RXhpc3RcIl06IHtcblx0XHRtZXNzYWdlOnN0cmluZ1xufTtcblx0W1wiRXJyb3JMaW1pdFwiXToge1xuXHRcdG1lc3NhZ2U6c3RyaW5nLFxuXHRmaWVsZD86c3RyaW5nXG59O1xuXHRbXCJFcnJvck5vdEV4aXN0XCJdOiB7XG5cdFx0bWVzc2FnZTpzdHJpbmcsXG5cdGZpZWxkPzpzdHJpbmdcbn07XG5cdFtcIkVycm9yTm90Rm91bmRcIl06IHtcblx0XHRtZXNzYWdlOnN0cmluZyxcblx0ZmllbGQ/OnN0cmluZ1xufTtcblx0W1wiRXJyb3JVcGdyYWRlUGxhblwiXToge1xuXHRcdG1lc3NhZ2U6c3RyaW5nXG59O1xuXHRbXCJGYXFcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdG9yZGVyOm51bWJlcixcblx0ZW50cmllczpNb2RlbFR5cGVzW1wiRmFxRW50cnlcIl1bXVxufTtcblx0W1wiRmFxRW50cnlcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGxhbmc6TW9kZWxUeXBlc1tcIkxhbmdcIl0sXG5cdHF1ZXN0aW9uOnN0cmluZyxcblx0YW5zd2VyOnN0cmluZyxcblx0ZmFxOk1vZGVsVHlwZXNbXCJGYXFcIl1cbn07XG5cdFtcIkZhcUl0ZW1cIl06IHtcblx0XHRvcmRlcjpudW1iZXIsXG5cdHF1ZXN0aW9uOnN0cmluZyxcblx0YW5zd2VyOnN0cmluZ1xufTtcblx0W1wiRmlsZVwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0c2l6ZTpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRzaXplQmVmb3JlOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGNyZWF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHZGaWxlczpNb2RlbFR5cGVzW1wiVkZpbGVcIl1bXSxcblx0dkZpbGVzQ3VycmVudDpNb2RlbFR5cGVzW1wiVkZpbGVcIl1bXSxcblx0dXNlcnM6TW9kZWxUeXBlc1tcIkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdW10sXG5cdG1kNTpzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDpzdHJpbmcsXG5cdGRlbGV0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1c2VyQXBwOk1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHRtYWlsczpNb2RlbFR5cGVzW1wiRmlsZXNPbk1haWxzXCJdW10sXG5cdHZhbGlkYXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHVzZXI/Ok1vZGVsVHlwZXNbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXVxufTtcblx0W1wiRmlsZUNvbnRlbnRcIl06TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50Q2xvdWRcIl0gfCBNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl0gfCBNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRTZW50TWFpbFwiXTtcblx0W1wiRmlsZUNvbnRlbnRCYXNlXCJdOiBNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRDbG91ZFwiXSB8IE1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiXSB8IE1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFNlbnRNYWlsXCJdO1xuXHRbXCJGaWxlQ29udGVudENsb3VkXCJdOiB7XG5cdFx0cGFydHM6TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXVtdLFxuXHRrZXk6c3RyaW5nLFxuXHRtZDU6c3RyaW5nLFxuXHRtZDVFbmNyeXB0ZWQ6c3RyaW5nLFxuXHR0b3RhbFNpemU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0dHlwZTpNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRUeXBlXCJdLFxuXHRwdWJsaWNLZXk6c3RyaW5nXG59O1xuXHRbXCJGaWxlQ29udGVudFBhcnRcIl06IHtcblx0XHRjb250ZW50VXJsOnN0cmluZyxcblx0b3JkZXI6bnVtYmVyLFxuXHRtZDU6c3RyaW5nXG59O1xuXHRbXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiXToge1xuXHRcdHBhcnRzOk1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl1bXSxcblx0a2V5OnN0cmluZyxcblx0bWQ1OnN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOnN0cmluZyxcblx0dG90YWxTaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHR5cGU6TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50VHlwZVwiXSxcblx0c2VuZGVyUHVibGljS2V5OnN0cmluZ1xufTtcblx0W1wiRmlsZUNvbnRlbnRTZW50TWFpbFwiXToge1xuXHRcdHBhcnRzOk1vZGVsVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl1bXSxcblx0a2V5OnN0cmluZyxcblx0bWQ1OnN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOnN0cmluZyxcblx0dG90YWxTaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHR5cGU6TW9kZWxUeXBlc1tcIkZpbGVDb250ZW50VHlwZVwiXVxufTtcblx0W1wiRmlsZUNvbnRlbnRUeXBlXCJdOiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFR5cGVcIl07XG5cdFtcIkZpbGVQYXJ0XCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRmaWxlOk1vZGVsVHlwZXNbXCJGaWxlXCJdLFxuXHRmaWxlSWQ6c3RyaW5nLFxuXHRzaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG9yZGVyOm51bWJlcixcblx0bWQ1OnN0cmluZyxcblx0dmFsaWRhdGVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiRmlsZVBhcnRSZXNwb25zZVwiXToge1xuXHRcdGZpZWxkczpNb2RlbFR5cGVzW1wiSnNvblwiXSxcblx0dXJsOnN0cmluZyxcblx0b3JkZXI6bnVtYmVyXG59O1xuXHRbXCJGaWxlUmVzcG9uc2VcIl06IHtcblx0XHRmaWxlSWQ6c3RyaW5nLFxuXHRwYXJ0czpNb2RlbFR5cGVzW1wiRmlsZVBhcnRSZXNwb25zZVwiXVtdLFxuXHRmaWxlUGFydFNpemU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiRmlsZVNoYXJlZFwiXToge1xuXHRcdHVzZXJJZDpzdHJpbmcsXG5cdG1lc3NhZ2U/OnN0cmluZyxcblx0YXBwSWQ6c3RyaW5nLFxuXHRpZDpzdHJpbmcsXG5cdGZpbGVuYW1lOnN0cmluZyxcblx0c2l6ZTpudW1iZXIsXG5cdHNpemVCZWZvcmU6bnVtYmVyXG59O1xuXHRbXCJGaWxlU2hhcmVkQ29udGVudFwiXToge1xuXHRcdG93bmVySWQ/OnN0cmluZyxcblx0cHViS2V5PzpzdHJpbmcsXG5cdG1lc3NhZ2U/OnN0cmluZyxcblx0YXBwSWQ6c3RyaW5nLFxuXHRpZDpzdHJpbmcsXG5cdHR5cGU6c3RyaW5nLFxuXHRmaWxlbmFtZTpzdHJpbmcsXG5cdGNvbnRlbnRVcmw6c3RyaW5nLFxuXHRrZXk6c3RyaW5nLFxuXHRzaXplOm51bWJlcixcblx0c2l6ZUJlZm9yZTpudW1iZXJcbn07XG5cdFtcIkZpbGVzT25NYWlsc1wiXToge1xuXHRcdGZpbGU6TW9kZWxUeXBlc1tcIkZpbGVcIl0sXG5cdGZpbGVLZXk6c3RyaW5nLFxuXHRmaWxlbmFtZTpzdHJpbmcsXG5cdG1haWw6TW9kZWxUeXBlc1tcIk1haWxcIl1cbn07XG5cdFtcIkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdOiB7XG5cdFx0ZmlsZTpNb2RlbFR5cGVzW1wiRmlsZVwiXSxcblx0dXNlckFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0LyoqIEVuY3J5cHRlZCB3aXRoIFVzZXJBcHAga2V5cyAqL1xuXHRrZXk6c3RyaW5nXG59O1xuXHRbXCJGb2xkZXJcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdGlzRmF2b3JpdGU6Ym9vbGVhbixcblx0Y3JlYXRlZEF0Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZGVsZXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHVwZGF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGNyZWF0ZWRCeTpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0dXNlckFwcHM6TW9kZWxUeXBlc1tcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl1bXSxcblx0dXNlckFwcD86TW9kZWxUeXBlc1tcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0sXG5cdG5hbWU6c3RyaW5nLFxuXHRwYXJlbnRGb2xkZXI/Ok1vZGVsVHlwZXNbXCJGb2xkZXJcIl0sXG5cdHN1YmZvbGRlcnM6TW9kZWxUeXBlc1tcIkZvbGRlclwiXVtdLFxuXHR2RmlsZXM6TW9kZWxUeXBlc1tcIlZGaWxlXCJdW10sXG5cdGJyZWFkY3J1bWI6TW9kZWxUeXBlc1tcIkZvbGRlckJyZWFkY3J1bWJJdGVtXCJdW11cbn07XG5cdFtcIkZvbGRlckJyZWFkY3J1bWJJdGVtXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRuYW1lOnN0cmluZyxcblx0cHViS2V5OnN0cmluZyxcblx0bmFtZUtleT86c3RyaW5nXG59O1xuXHRbXCJGb2xkZXJTaXplXCJdOiB7XG5cdFx0c2l6ZTpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRzaXplQmVmb3JlOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl06IHtcblx0XHRmb2xkZXI6TW9kZWxUeXBlc1tcIkZvbGRlclwiXSxcblx0dXNlckFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0cmlnaHRzOk1vZGVsVHlwZXNbXCJSaWdodHNcIl0sXG5cdG5hbWVLZXk/OnN0cmluZyxcblx0aXNSb290OmJvb2xlYW5cbn07XG5cdFtcIk1haWxGaWxlSW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIk1haWxGaWxlSW5wdXRcIl07XG5cdFtcIk1haWxSZWNpcGllbnRJbnB1dFwiXTogR3JhcGhRTFR5cGVzW1wiTWFpbFJlY2lwaWVudElucHV0XCJdO1xuXHRbXCJOYW1lS2V5SW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIk5hbWVLZXlJbnB1dFwiXTtcblx0W1wiTmFtZUtleUlucHV0Rm9sZGVyc1wiXTogR3JhcGhRTFR5cGVzW1wiTmFtZUtleUlucHV0Rm9sZGVyc1wiXTtcblx0W1wiUGF5SW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIlBheUlucHV0XCJdO1xuXHRbXCJQYXlJbnB1dFR5cGVcIl06IEdyYXBoUUxUeXBlc1tcIlBheUlucHV0VHlwZVwiXTtcblx0W1wiU2hhcmVGaWxlSW5IaXN0b3J5SW5wdXRcIl06IEdyYXBoUUxUeXBlc1tcIlNoYXJlRmlsZUluSGlzdG9yeUlucHV0XCJdO1xuXHRbXCJTaGFyZUZpbGVLZXlJbnB1dFwiXTogR3JhcGhRTFR5cGVzW1wiU2hhcmVGaWxlS2V5SW5wdXRcIl07XG5cdFtcIlNoYXJlRm9sZGVyc0lucHV0XCJdOiBHcmFwaFFMVHlwZXNbXCJTaGFyZUZvbGRlcnNJbnB1dFwiXTtcblx0W1wiTGltaXRzXCJdOiB7XG5cdFx0ZG93bmxvYWRCYW5kd2lkdGg/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGRvd25sb2FkQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlU2l6ZT86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0cGVyRmlsZVNpemU/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHJlY2VpdmVkTWFpbHM6TW9kZWxUeXBlc1tcIk1haWxMaW1pdHNcIl0sXG5cdHNlbnRNYWlsczpNb2RlbFR5cGVzW1wiTWFpbExpbWl0c1wiXSxcblx0dXBsb2FkQmFuZHdpZHRoPzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHR1cGxvYWRDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiTWFpbExpbWl0c1wiXToge1xuXHRcdGNvdW50PzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGZpbGVTaXplPzpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRoYXJkQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlQ291bnQ/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlU2l6ZT86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0cGVyRmlsZVNpemU/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIk1haWxMaW1pdHNWYWx1ZXNcIl06IHtcblx0XHRjb3VudDpNb2RlbFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0ZmlsZUNvdW50Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heEZpbGVDb3VudD86TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0ZmlsZVNpemU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4RmlsZVNpemU/Ok1vZGVsVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIlF1ZXJ5TGltaXRzXCJdOiB7XG5cdFx0Y2xvdWQ6TW9kZWxUeXBlc1tcIkNsb3VkTGltaXRzXCJdLFxuXHRtYWlsOk1vZGVsVHlwZXNbXCJVc2VyTWFpbExpbWl0c1wiXVxufTtcblx0W1wiVXNlck1haWxMaW1pdHNcIl06IHtcblx0XHRzZW50Ok1vZGVsVHlwZXNbXCJNYWlsTGltaXRzVmFsdWVzXCJdLFxuXHRyZWNlaXZlZDpNb2RlbFR5cGVzW1wiTWFpbExpbWl0c1ZhbHVlc1wiXVxufTtcblx0W1wiTWFpbFwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0YXBwOk1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvblwiXSxcblx0Ym9keTpzdHJpbmcsXG5cdGNyZWF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGRlbGV0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRmaWxlczpNb2RlbFR5cGVzW1wiRmlsZXNPbk1haWxzXCJdW10sXG5cdG1haWxJbnRlZ3JpdHk/Ok1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdLFxuXHRtYWlsSW50ZWdyaXR5RHJhZnQ/Ok1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5RHJhZnRcIl0sXG5cdG9wZW5lZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHJlY2lwaWVudDpNb2RlbFR5cGVzW1wiVXNlclwiXSxcblx0c2VuZGVyOk1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHRzdWJqZWN0OnN0cmluZyxcblx0dHlwZTpNb2RlbFR5cGVzW1wiTWFpbFR5cGVcIl0sXG5cdHJlY2lwaWVudHM6TW9kZWxUeXBlc1tcIlVzZXJcIl1bXVxufTtcblx0W1wiTWFpbEludGVncml0eVwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0aGFzaDpzdHJpbmcsXG5cdGhhc2hLZXk6c3RyaW5nLFxuXHRhbnN3ZXJzOk1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdW10sXG5cdGFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdG1haWxzOk1vZGVsVHlwZXNbXCJNYWlsXCJdW10sXG5cdHJlY2lwaWVudHM6TW9kZWxUeXBlc1tcIlVzZXJcIl1bXSxcblx0dGVtcG9yYXJ5UmVjaXBpZW50czpNb2RlbFR5cGVzW1wiVGVtcG9yYXJ5VXNlclwiXVtdLFxuXHRyZXBseVRvPzpNb2RlbFR5cGVzW1wiTWFpbEludGVncml0eVwiXVxufTtcblx0W1wiTWFpbEludGVncml0eURyYWZ0XCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRoYXNoOnN0cmluZyxcblx0aGFzaEtleTpzdHJpbmcsXG5cdGFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdG1haWw6TW9kZWxUeXBlc1tcIk1haWxcIl0sXG5cdHJlY2lwaWVudHM6TW9kZWxUeXBlc1tcIlVzZXJcIl1bXSxcblx0dGVtcG9yYXJ5UmVjaXBpZW50czpNb2RlbFR5cGVzW1wiVGVtcG9yYXJ5VXNlclwiXVtdLFxuXHRyZXBseVRvPzpNb2RlbFR5cGVzW1wiTWFpbEludGVncml0eVwiXVxufTtcblx0W1wiUGxhblwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0a2luZDpNb2RlbFR5cGVzW1wiUGxhbktpbmRcIl0sXG5cdGNvZGVzOnN0cmluZ1tdLFxuXHRsaW1pdHM6TW9kZWxUeXBlc1tcIkxpbWl0c1wiXVxufTtcblx0W1wiUmVwb3J0XCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHR1c2VyOk1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHRyZXBvcnRlZFVzZXI6TW9kZWxUeXBlc1tcIlVzZXJcIl0sXG5cdGN1c3RvbU1lc3NhZ2U/OnN0cmluZ1xufTtcblx0W1wiQmxvZ1Jlc3BvbnNlXCJdOiB7XG5cdFx0YmxvZ0l0ZW1zOk1vZGVsVHlwZXNbXCJCbG9nSXRlbVwiXVtdXG59O1xuXHRbXCJEYkNvbmZpZ1Jlc3BvbnNlXCJdOiB7XG5cdFx0anNvbjpNb2RlbFR5cGVzW1wiSnNvblwiXVxufTtcblx0W1wiRGJHZXRSZXNwb25zZVwiXToge1xuXHRcdGpzb24/Ok1vZGVsVHlwZXNbXCJKc29uXCJdXG59O1xuXHRbXCJEYlNlYXJjaFJlc3BvbnNlXCJdOiB7XG5cdFx0anNvbj86TW9kZWxUeXBlc1tcIkpzb25cIl1cbn07XG5cdFtcIkRlbGV0ZWRGb2xkZXJzUmVzcG9uc2VcIl06IHtcblx0XHRkZWxldGVkRm9sZGVyczpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdW11cbn07XG5cdFtcIkRlbGV0ZWRNYWlsc1Jlc3BvbnNlXCJdOiB7XG5cdFx0ZGVsZXRlZE1haWxzOk1vZGVsVHlwZXNbXCJNYWlsXCJdW11cbn07XG5cdFtcIkRlbGV0ZWRWRmlsZXNSZXNwb25zZVwiXToge1xuXHRcdGRlbGV0ZWRWRmlsZXM6TW9kZWxUeXBlc1tcIlZGaWxlXCJdW11cbn07XG5cdFtcIkZhcVJlc3BvbnNlXCJdOiB7XG5cdFx0ZmFxOk1vZGVsVHlwZXNbXCJGYXFJdGVtXCJdW11cbn07XG5cdFtcIkZpbGVRdWVyeVJlc3BvbnNlXCJdOiB7XG5cdFx0ZmlsZT86TW9kZWxUeXBlc1tcIkZpbGVcIl1cbn07XG5cdFtcIkZpbGVDb250ZW50UmVzcG9uc2VcIl06IHtcblx0XHRmaWxlPzpNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRcIl1cbn07XG5cdFtcIkZvbGRlclJlc3BvbnNlXCJdOiB7XG5cdFx0Zm9sZGVyPzpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdXG59O1xuXHRbXCJGb2xkZXJTaGFyZWRXaXRoTWVSZXNwb25zZVwiXToge1xuXHRcdGZvbGRlcnNTaGFyZWRXaXRoTWU6TW9kZWxUeXBlc1tcIkZvbGRlclwiXVtdXG59O1xuXHRbXCJGb2xkZXJTaXplUmVzcG9uc2VcIl06IHtcblx0XHRzaXplOk1vZGVsVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHNpemVCZWZvcmU6TW9kZWxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiUXVlcnlNYWlsUmVzcG9uc2VcIl06IHtcblx0XHRtYWlsPzpNb2RlbFR5cGVzW1wiTWFpbFwiXVxufTtcblx0W1wiUGF5bWVudEluZm9zUmVzcG9uc2VcIl06IHtcblx0XHRwYXltZW50SW5mb3M/Ok1vZGVsVHlwZXNbXCJQYXltZW50SW5mb3NcIl1cbn07XG5cdFtcIlBsYW5SZXNwb25zZVwiXToge1xuXHRcdHBsYW46TW9kZWxUeXBlc1tcIlBsYW5cIl1bXVxufTtcblx0W1wiU2hhcmVkRm9sZGVyc1Jlc3BvbnNlXCJdOiB7XG5cdFx0c2hhcmVkRm9sZGVyczpNb2RlbFR5cGVzW1wiRm9sZGVyXCJdW11cbn07XG5cdFtcIlNoYXJlZFZGaWxlc1Jlc3BvbnNlXCJdOiB7XG5cdFx0c2hhcmVkVkZpbGVzOk1vZGVsVHlwZXNbXCJWRmlsZVwiXVtdXG59O1xuXHRbXCJVbnJlYWRSZWNlaXZlZE1haWxzQ291bnRSZXNwb25zZVwiXToge1xuXHRcdGNvdW50Om51bWJlclxufTtcblx0W1wiVXNlclJlc3BvbnNlXCJdOiB7XG5cdFx0dXNlcj86TW9kZWxUeXBlc1tcIlVzZXJcIl1cbn07XG5cdFtcIlVzZXJMaXN0UmVzcG9uc2VcIl06IHtcblx0XHR1c2VyTGlzdDpNb2RlbFR5cGVzW1wiVXNlclwiXVtdXG59O1xuXHRbXCJWRmlsZVJlc3BvbnNlXCJdOiB7XG5cdFx0dkZpbGU/Ok1vZGVsVHlwZXNbXCJWRmlsZVwiXVxufTtcblx0W1wiVkZpbGVzU2hhcmVkV2l0aE1lUmVzcG9uc2VcIl06IHtcblx0XHR2RmlsZXNTaGFyZWRXaXRoTWU6TW9kZWxUeXBlc1tcIlZGaWxlXCJdW11cbn07XG5cdFtcIlRlbXBvcmFyeVVzZXJcIl06IHtcblx0XHRpZDpzdHJpbmcsXG5cdG1haWxzOk1vZGVsVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdW10sXG5cdGRyYWZ0TWFpbHM6TW9kZWxUeXBlc1tcIk1haWxJbnRlZ3JpdHlEcmFmdFwiXVtdLFxuXHRlbWFpbD86c3RyaW5nXG59O1xuXHRbXCJVc2VyXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRkZWxldGVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0bGFuZzpNb2RlbFR5cGVzW1wiTGFuZ1wiXSxcblx0cmVwb3J0U2VudDpNb2RlbFR5cGVzW1wiUmVwb3J0XCJdW10sXG5cdGdvZEZhdGhlcj86TW9kZWxUeXBlc1tcIlVzZXJcIl0sXG5cdGdvZENoaWxkcmVuOk1vZGVsVHlwZXNbXCJVc2VyXCJdW10sXG5cdGZpcnN0bmFtZTpzdHJpbmcsXG5cdGxhc3RuYW1lOnN0cmluZyxcblx0ZW1haWw6c3RyaW5nLFxuXHRwaG9uZTpzdHJpbmcsXG5cdGxhc3RMb2dpbjpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHJvbGU6TW9kZWxUeXBlc1tcIlVzZXJSb2xlXCJdLFxuXHRzZXNzaW9uczpNb2RlbFR5cGVzW1wiVXNlclNlc3Npb25cIl1bXSxcblx0Y3JlYXRlZEF0Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cmVjZWl2ZWRNYWlsczpNb2RlbFR5cGVzW1wiTWFpbFwiXVtdLFxuXHR3YWl0aW5nUmVjZWl2ZWRNYWlsczpNb2RlbFR5cGVzW1wiV2FpdGluZ1JlY2VpdmVkTWFpbFwiXVtdLFxuXHRzZW50TWFpbHM6TW9kZWxUeXBlc1tcIk1haWxcIl1bXSxcblx0ZHJhZnRNYWlsczpNb2RlbFR5cGVzW1wiTWFpbFwiXVtdLFxuXHRhcHBTZXR0aW5ncz86TW9kZWxUeXBlc1tcIlVzZXJBcHBTZXR0aW5nc1wiXSxcblx0YXBwbGljYXRpb25zOk1vZGVsVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdW10sXG5cdHB1YmxpY0tleTpzdHJpbmdcbn07XG5cdFtcIlVzZXJBcHBOb3RpZmljYXRpb25zXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRlbmFibGVBbGw6Ym9vbGVhbixcblx0bWFpbDpib29sZWFuLFxuXHRjbG91ZDpib29sZWFuLFxuXHRkaXNhYmxlQWxsVW50aWw/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiVXNlckFwcFNldHRpbmdzXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRjbG91ZEZpbGVEYXlzRm9yRGVsZXRlOm51bWJlcixcblx0Y2xvdWRGb2xkZXJEYXlzRm9yRGVsZXRlOm51bWJlcixcblx0aGlzdG9yeUZpbGVEYXlzRm9yRGVsZXRlPzpudW1iZXIsXG5cdGhpc3RvcnlNYXhGaWxlQ291bnQ6bnVtYmVyLFxuXHRhdXRvRGlzY29ubmVjdERlbGF5PzpudW1iZXJcbn07XG5cdFtcIlVzZXJTZXNzaW9uXCJdOiB7XG5cdFx0aWQ6c3RyaW5nLFxuXHRhcHBTZXNzaW9uczpNb2RlbFR5cGVzW1wiQXBwU2Vzc2lvblwiXVtdLFxuXHRsYXN0QWN0aXZpdHk/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXNlckFnZW50PzpzdHJpbmcsXG5cdGlwPzpzdHJpbmcsXG5cdGNpdHk/OnN0cmluZyxcblx0Y291bnRyeT86c3RyaW5nLFxuXHRjcmVhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdXG59O1xuXHRbXCJWRmlsZVwiXToge1xuXHRcdGlkOnN0cmluZyxcblx0aXNGYXZvcml0ZTpib29sZWFuLFxuXHRjcmVhdGVkQXQ6TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRkZWxldGVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZmlsZW5hbWU6c3RyaW5nLFxuXHR1c2VyQXBwczpNb2RlbFR5cGVzW1wiVkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdW10sXG5cdGNyZWF0ZWRCeTpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0dXNlckFwcD86TW9kZWxUeXBlc1tcIlZGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXSxcblx0Zm9sZGVyOk1vZGVsVHlwZXNbXCJGb2xkZXJcIl0sXG5cdGhpc3Rvcnk6TW9kZWxUeXBlc1tcIkZpbGVcIl1bXSxcblx0Y3VycmVudD86TW9kZWxUeXBlc1tcIkZpbGVcIl0sXG5cdHVwZGF0ZWRBdDpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl1cbn07XG5cdFtcIlZGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXToge1xuXHRcdHZGaWxlOk1vZGVsVHlwZXNbXCJWRmlsZVwiXSxcblx0dXNlckFwcDpNb2RlbFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0cmlnaHRzOk1vZGVsVHlwZXNbXCJSaWdodHNcIl0sXG5cdG5hbWVLZXk6c3RyaW5nLFxuXHRpc1Jvb3Q6Ym9vbGVhblxufTtcblx0W1wiV2FpdGluZ1JlY2VpdmVkTWFpbFwiXToge1xuXHRcdHNlbmRlcjpNb2RlbFR5cGVzW1wiVXNlclwiXSxcblx0ZGF0ZTpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHJlY2lwaWVudHM6TW9kZWxUeXBlc1tcIlVzZXJcIl1bXSxcblx0dGVtcG9yYXJ5UmVjaXBpZW50czpNb2RlbFR5cGVzW1wiVGVtcG9yYXJ5VXNlclwiXVtdLFxuXHRhdHRhY2htZW50c0NvdW50Om51bWJlclxufTtcblx0W1wiUGF5bWVudEluZm9zXCJdOiB7XG5cdFx0aG9zdGVkVXJsOnN0cmluZyxcblx0Y3VycmVudFN1YnNjcmlwdGlvbjpNb2RlbFR5cGVzW1wiUmVjdXJseVN1YnNjcmlwdGlvblwiXSxcblx0aW52b2ljZXM6TW9kZWxUeXBlc1tcIlJlY3VybHlJbnZvaWNlc1wiXVtdXG59O1xuXHRbXCJSZWN1cmx5SW52b2ljZXNcIl06IHtcblx0XHRwZGY6c3RyaW5nLFxuXHRkYXRlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZHVlOk1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0c3RhdHVzOnN0cmluZyxcblx0dG90YWw6bnVtYmVyLFxuXHRuYW1lOnN0cmluZyxcblx0Y3VycmVuY3k6c3RyaW5nXG59O1xuXHRbXCJSZWN1cmx5U3Vic2NyaXB0aW9uXCJdOiB7XG5cdFx0YXV0b3JlbmV3OmJvb2xlYW4sXG5cdGFjdGl2YXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGN1cnJlbnRQZXJpb2RFbmRzQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3VycmVudFBlcmlvZFN0YXJ0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRjYW5jZWxlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGNyZWF0ZWRBdD86TW9kZWxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRleHBpcmVzQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cGF1c2VkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dHJpYWxFbmRzQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dHJpYWxTdGFydGVkQXQ/Ok1vZGVsVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXBkYXRlZEF0PzpNb2RlbFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHN0YXRlOnN0cmluZyxcblx0Y29sbGVjdGlvbk1ldGhvZDpzdHJpbmcsXG5cdHBsYW4/OnN0cmluZyxcblx0cGxhbkNvZGU/OnN0cmluZyxcblx0dG90YWw/Om51bWJlclxufTtcblx0W1wiU2hhcmVGb2xkZXJSZXNwb25zZVwiXToge1xuXHRcdGZvbGRlcnM6c3RyaW5nW10sXG5cdHZGaWxlczpzdHJpbmdbXVxufTtcblx0W1wiUXVlcnlcIl06IHtcblx0XHRhcHBOb3RpZmljYXRpb25zPzpNb2RlbFR5cGVzW1wiQXBwTm90aWZpY2F0aW9uc1Jlc3VsdFwiXSxcblx0YmxvZz86TW9kZWxUeXBlc1tcIkJsb2dSZXN1bHRcIl0sXG5cdGRiQ29uZmlnPzpNb2RlbFR5cGVzW1wiRGJDb25maWdSZXN1bHRcIl0sXG5cdGRiR2V0PzpNb2RlbFR5cGVzW1wiRGJHZXRSZXN1bHRcIl0sXG5cdGRiU2VhcmNoPzpNb2RlbFR5cGVzW1wiRGJTZWFyY2hSZXN1bHRcIl0sXG5cdGRlbGV0ZWRGb2xkZXJzPzpNb2RlbFR5cGVzW1wiRGVsZXRlZEZvbGRlcnNSZXN1bHRcIl0sXG5cdGRlbGV0ZWRNYWlscz86TW9kZWxUeXBlc1tcIkRlbGV0ZWRNYWlsc1Jlc3VsdFwiXSxcblx0ZGVsZXRlZFZGaWxlcz86TW9kZWxUeXBlc1tcIkRlbGV0ZWRWRmlsZXNSZXN1bHRcIl0sXG5cdGZhcT86TW9kZWxUeXBlc1tcIkZhcVJlc3VsdFwiXSxcblx0ZmlsZT86TW9kZWxUeXBlc1tcIkZpbGVSZXN1bHRcIl0sXG5cdGZpbGVDb250ZW50PzpNb2RlbFR5cGVzW1wiRmlsZUNvbnRlbnRSZXN1bHRcIl0sXG5cdGZpbGVzU2hhcmVkV2l0aE1lOk1vZGVsVHlwZXNbXCJGaWxlU2hhcmVkQ29udGVudFwiXVtdLFxuXHRmb2xkZXI/Ok1vZGVsVHlwZXNbXCJGb2xkZXJSZXN1bHRcIl0sXG5cdGZvbGRlclNpemU/Ok1vZGVsVHlwZXNbXCJGb2xkZXJTaXplUmVzdWx0XCJdLFxuXHRmb2xkZXJzU2hhcmVkV2l0aE1lPzpNb2RlbFR5cGVzW1wiRm9sZGVyc1NoYXJlZFdpdGhNZVJlc3VsdFwiXSxcblx0bGltaXRzPzpNb2RlbFR5cGVzW1wiTGltaXRzUmVzdWx0XCJdLFxuXHRtYWlsPzpNb2RlbFR5cGVzW1wiTWFpbFJlc3VsdFwiXSxcblx0cGF5bWVudEluZm9zPzpNb2RlbFR5cGVzW1wiUGF5bWVudEluZm9zUmVzdWx0XCJdLFxuXHRwbGFucz86TW9kZWxUeXBlc1tcIlBsYW5zUmVzdWx0XCJdLFxuXHRzaGFyZWRGb2xkZXJzPzpNb2RlbFR5cGVzW1wiU2hhcmVkRm9sZGVyc1Jlc3VsdFwiXSxcblx0c2hhcmVkVkZpbGVzPzpNb2RlbFR5cGVzW1wiU2hhcmVkVkZpbGVzUmVzdWx0XCJdLFxuXHR0ZXN0Pzpib29sZWFuLFxuXHR1bnJlYWRSZWNlaXZlZE1haWxzQ291bnQ/Ok1vZGVsVHlwZXNbXCJVbnJlYWRSZWNlaXZlZE1haWxzQ291bnRSZXN1bHRcIl0sXG5cdHVzZXI/Ok1vZGVsVHlwZXNbXCJVc2VyUmVzdWx0XCJdLFxuXHR2RmlsZT86TW9kZWxUeXBlc1tcIlZGaWxlUmVzdWx0XCJdLFxuXHR2RmlsZXNTaGFyZWRXaXRoTWU/Ok1vZGVsVHlwZXNbXCJWRmlsZXNTaGFyZWRXaXRoTWVSZXN1bHRcIl0sXG5cdHVzZXJMaXN0PzpNb2RlbFR5cGVzW1wiVXNlckxpc3RSZXN1bHRcIl1cbn07XG5cdFtcIk11dGF0aW9uXCJdOiB7XG5cdFx0YWRkRmlsZVRvSGlzdG9yeTpNb2RlbFR5cGVzW1wiVkZpbGVcIl0sXG5cdGNhbmNlbFBheW1lbnQ/OmJvb2xlYW4sXG5cdGNyZWF0ZUFwcGxpY2F0aW9uPzpzdHJpbmcsXG5cdGNyZWF0ZURyYWZ0TWFpbD86TW9kZWxUeXBlc1tcIk1haWxcIl0sXG5cdGNyZWF0ZUZvbGRlcj86TW9kZWxUeXBlc1tcIkZvbGRlclwiXSxcblx0ZGJDb25maWc6TW9kZWxUeXBlc1tcIkpzb25cIl0sXG5cdGRiU2V0PzpNb2RlbFR5cGVzW1wiSnNvblwiXSxcblx0ZGVsZXRlRHJhZnRNYWlsPzpib29sZWFuLFxuXHRkZWxldGVGaWxlOmJvb2xlYW4sXG5cdGRlbGV0ZUZvbGRlcj86Ym9vbGVhbixcblx0ZGVsZXRlRm9sZGVyQ2xvdWRUcmFzaD86Ym9vbGVhbixcblx0ZGVsZXRlRm9sZGVyU2hhcmluZzpib29sZWFuLFxuXHRkZWxldGVNYWlsOmJvb2xlYW4sXG5cdGRlbGV0ZU1haWxUcmFzaDpib29sZWFuLFxuXHRkZWxldGVVc2VyPzpib29sZWFuLFxuXHRkZWxldGVWRmlsZTpib29sZWFuLFxuXHRkZWxldGVWRmlsZUNsb3VkVHJhc2g/OmJvb2xlYW4sXG5cdGRlbGV0ZVZGaWxlU2hhcmluZzpib29sZWFuLFxuXHRkdXBsaWNhdGVWRmlsZTpib29sZWFuLFxuXHRlbXB0eUNsb3VkVHJhc2g/OmJvb2xlYW4sXG5cdGVtcHR5TWFpbFRyYXNoPzpib29sZWFuLFxuXHRsb2dvdXQ/OmJvb2xlYW4sXG5cdG1vdmVGaWxlcz86Ym9vbGVhbixcblx0bW92ZUZvbGRlcnM/OmJvb2xlYW4sXG5cdHBheTpib29sZWFuLFxuXHRyZWFkTWFpbD86Ym9vbGVhbixcblx0cmVjb3ZlckZvbGRlcj86Ym9vbGVhbixcblx0cmVjb3Zlck1haWw6Ym9vbGVhbixcblx0cmVjb3ZlclZGaWxlOmJvb2xlYW4sXG5cdHNhdmVJbkNsb3VkOk1vZGVsVHlwZXNbXCJWRmlsZVwiXSxcblx0c2VuZERyYWZ0TWFpbD86Ym9vbGVhbixcblx0c2VuZE9uZU1haWw/OmJvb2xlYW4sXG5cdHNlbmRSZXBvcnQ/Ok1vZGVsVHlwZXNbXCJSZXBvcnRcIl0sXG5cdHNoYXJlRmlsZUluSGlzdG9yeTpib29sZWFuLFxuXHRzaGFyZUZvbGRlcjpNb2RlbFR5cGVzW1wiU2hhcmVGb2xkZXJSZXNwb25zZVwiXSxcblx0c2hhcmVGb2xkZXJGaW5pc2g/OmJvb2xlYW4sXG5cdHNoYXJlVkZpbGU/OmJvb2xlYW4sXG5cdHVucmVhZE1haWw/OmJvb2xlYW4sXG5cdHVwZGF0ZUFwcE5vdGlmaWNhdGlvbnM/Ok1vZGVsVHlwZXNbXCJVc2VyQXBwTm90aWZpY2F0aW9uc1wiXSxcblx0dXBkYXRlQXBwU2V0dGluZ3M6TW9kZWxUeXBlc1tcIlVzZXJBcHBTZXR0aW5nc1wiXSxcblx0dXBkYXRlRHJhZnRNYWlsPzpNb2RlbFR5cGVzW1wiTWFpbFwiXSxcblx0dXBkYXRlRmlsZT86TW9kZWxUeXBlc1tcIlZGaWxlXCJdLFxuXHR1cGRhdGVGb2xkZXI/Ok1vZGVsVHlwZXNbXCJGb2xkZXJcIl0sXG5cdHVwZGF0ZVByb2ZpbGU/Ok1vZGVsVHlwZXNbXCJVc2VyXCJdLFxuXHR1cGxvYWRBbm9ueW1vdXM/Ok1vZGVsVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl0sXG5cdHVwbG9hZEZpbGU/Ok1vZGVsVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl0sXG5cdHVwbG9hZEZpbGVFbmQ/OnN0cmluZyxcblx0dXBsb2FkRmlsZVBhcnRFbmQ6Ym9vbGVhbixcblx0Y2hhbmdlVXNlclBsYW4/Ok1vZGVsVHlwZXNbXCJVc2VyXCJdXG59O1xuXHRbXCJTdWJzY3JpcHRpb25cIl06IHtcblx0XHR0ZXN0OmJvb2xlYW5cbn1cbiAgICB9XG5cbmV4cG9ydCB0eXBlIEdyYXBoUUxUeXBlcyA9IHtcbiAgICAvKiogVGhlIGBCaWdJbnRgIHNjYWxhciB0eXBlIHJlcHJlc2VudHMgbm9uLWZyYWN0aW9uYWwgc2lnbmVkIHdob2xlIG51bWVyaWMgdmFsdWVzLlxuQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9CaWdJbnQgKi9cbltcIkJpZ0ludFwiXTphbnk7XG5cdC8qKiBUaGUgYEJ5dGVgIHNjYWxhciB0eXBlIHJlcHJlc2VudHMgYnl0ZSB2YWx1ZSBhcyBhIEJ1ZmZlciAqL1xuW1wiQnl0ZXNcIl06YW55O1xuXHQvKiogQSBkYXRlLXRpbWUgc3RyaW5nIGF0IFVUQywgc3VjaCBhcyAyMDA3LTEyLTAzVDEwOjE1OjMwWiwgY29tcGxpYW50IHdpdGggdGhlIGBkYXRlLXRpbWVgIGZvcm1hdCBvdXRsaW5lZCBpbiBzZWN0aW9uIDUuNiBvZiB0aGUgUkZDIDMzMzkgcHJvZmlsZSBvZiB0aGUgSVNPIDg2MDEgc3RhbmRhcmQgZm9yIHJlcHJlc2VudGF0aW9uIG9mIGRhdGVzIGFuZCB0aW1lcyB1c2luZyB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLiAqL1xuW1wiRGF0ZVRpbWVcIl06YW55O1xuXHQvKiogQW4gYXJiaXRyYXJ5LXByZWNpc2lvbiBEZWNpbWFsIHR5cGUgKi9cbltcIkRlY2ltYWxcIl06YW55O1xuXHQvKiogVGhlIGBKU09OT2JqZWN0YCBzY2FsYXIgdHlwZSByZXByZXNlbnRzIEpTT04gb2JqZWN0cyBhcyBzcGVjaWZpZWQgYnkgW0VDTUEtNDA0XShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvcHVibGljYXRpb25zL2ZpbGVzL0VDTUEtU1QvRUNNQS00MDQucGRmKS4gKi9cbltcIkpzb25cIl06YW55O1xuXHRbXCJMYW5nXCJdOiBMYW5nO1xuXHRbXCJQbGFuS2luZFwiXTogUGxhbktpbmQ7XG5cdFtcIlVzZXJSb2xlXCJdOiBVc2VyUm9sZTtcblx0W1wiTWFpbFR5cGVcIl06IE1haWxUeXBlO1xuXHRbXCJSaWdodHNcIl06IFJpZ2h0cztcblx0W1wiQXBwTm90aWZpY2F0aW9uc1Jlc3VsdFwiXTp7XG5cdF9fdHlwZW5hbWU6XCJVc2VyQXBwTm90aWZpY2F0aW9uc1wiIHwgXCJFcnJvckFjY2Vzc0RlbmllZFwiIHwgXCJFcnJvck5vdEZvdW5kXCJcblx0WycuLi5vbiBVc2VyQXBwTm90aWZpY2F0aW9ucyddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJVc2VyQXBwTm90aWZpY2F0aW9uc1wiXTtcblx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcblx0WycuLi5vbiBFcnJvck5vdEZvdW5kJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yTm90Rm91bmRcIl07XG59O1xuXHRbXCJCbG9nUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIkJsb2dSZXNwb25zZVwiIHwgXCJFcnJvckxhbmdOb3RFeGlzdFwiXG5cdFsnLi4ub24gQmxvZ1Jlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkJsb2dSZXNwb25zZVwiXTtcblx0WycuLi5vbiBFcnJvckxhbmdOb3RFeGlzdCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckxhbmdOb3RFeGlzdFwiXTtcbn07XG5cdFtcIkRiQ29uZmlnUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIkRiQ29uZmlnUmVzcG9uc2VcIiB8IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIiB8IFwiRXJyb3JOb3RFeGlzdFwiIHwgXCJFcnJvck5vdEZvdW5kXCJcblx0WycuLi5vbiBEYkNvbmZpZ1Jlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkRiQ29uZmlnUmVzcG9uc2VcIl07XG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFsnLi4ub24gRXJyb3JOb3RFeGlzdCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvck5vdEV4aXN0XCJdO1xuXHRbJy4uLm9uIEVycm9yTm90Rm91bmQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JOb3RGb3VuZFwiXTtcbn07XG5cdFtcIkRiR2V0UmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIkRiR2V0UmVzcG9uc2VcIiB8IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIiB8IFwiRXJyb3JOb3RGb3VuZFwiIHwgXCJFcnJvck5vdEV4aXN0XCJcblx0WycuLi5vbiBEYkdldFJlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkRiR2V0UmVzcG9uc2VcIl07XG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFsnLi4ub24gRXJyb3JOb3RGb3VuZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdO1xuXHRbJy4uLm9uIEVycm9yTm90RXhpc3QnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JOb3RFeGlzdFwiXTtcbn07XG5cdFtcIkRiU2VhcmNoUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIkRiU2VhcmNoUmVzcG9uc2VcIiB8IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIiB8IFwiRXJyb3JOb3RFeGlzdFwiIHwgXCJFcnJvckJhc2ljXCJcblx0WycuLi5vbiBEYlNlYXJjaFJlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkRiU2VhcmNoUmVzcG9uc2VcIl07XG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFsnLi4ub24gRXJyb3JOb3RFeGlzdCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvck5vdEV4aXN0XCJdO1xuXHRbJy4uLm9uIEVycm9yQmFzaWMnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JCYXNpY1wiXTtcbn07XG5cdFtcIkRlbGV0ZWRGb2xkZXJzUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIkRlbGV0ZWRGb2xkZXJzUmVzcG9uc2VcIiB8IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIlxuXHRbJy4uLm9uIERlbGV0ZWRGb2xkZXJzUmVzcG9uc2UnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRGVsZXRlZEZvbGRlcnNSZXNwb25zZVwiXTtcblx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcbn07XG5cdFtcIkRlbGV0ZWRNYWlsc1Jlc3VsdFwiXTp7XG5cdF9fdHlwZW5hbWU6XCJEZWxldGVkTWFpbHNSZXNwb25zZVwiIHwgXCJFcnJvckFjY2Vzc0RlbmllZFwiXG5cdFsnLi4ub24gRGVsZXRlZE1haWxzUmVzcG9uc2UnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRGVsZXRlZE1haWxzUmVzcG9uc2VcIl07XG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG59O1xuXHRbXCJEZWxldGVkVkZpbGVzUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIkRlbGV0ZWRWRmlsZXNSZXNwb25zZVwiIHwgXCJFcnJvckFjY2Vzc0RlbmllZFwiXG5cdFsnLi4ub24gRGVsZXRlZFZGaWxlc1Jlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkRlbGV0ZWRWRmlsZXNSZXNwb25zZVwiXTtcblx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcbn07XG5cdFtcIkZhcVJlc3VsdFwiXTp7XG5cdF9fdHlwZW5hbWU6XCJGYXFSZXNwb25zZVwiIHwgXCJFcnJvckFjY2Vzc0RlbmllZFwiXG5cdFsnLi4ub24gRmFxUmVzcG9uc2UnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRmFxUmVzcG9uc2VcIl07XG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG59O1xuXHRbXCJGaWxlUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIkZpbGVRdWVyeVJlc3BvbnNlXCIgfCBcIkVycm9yQWNjZXNzRGVuaWVkXCJcblx0WycuLi5vbiBGaWxlUXVlcnlSZXNwb25zZSddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJGaWxlUXVlcnlSZXNwb25zZVwiXTtcblx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcbn07XG5cdFtcIkZpbGVDb250ZW50UmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIkZpbGVDb250ZW50UmVzcG9uc2VcIiB8IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIiB8IFwiRXJyb3JCYXNpY1wiXG5cdFsnLi4ub24gRmlsZUNvbnRlbnRSZXNwb25zZSddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFJlc3BvbnNlXCJdO1xuXHRbJy4uLm9uIEVycm9yQWNjZXNzRGVuaWVkJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdO1xuXHRbJy4uLm9uIEVycm9yQmFzaWMnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JCYXNpY1wiXTtcbn07XG5cdFtcIkZvbGRlclJlc3VsdFwiXTp7XG5cdF9fdHlwZW5hbWU6XCJGb2xkZXJSZXNwb25zZVwiIHwgXCJFcnJvckFjY2Vzc0RlbmllZFwiXG5cdFsnLi4ub24gRm9sZGVyUmVzcG9uc2UnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRm9sZGVyUmVzcG9uc2VcIl07XG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG59O1xuXHRbXCJGb2xkZXJTaXplUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIkZvbGRlclNpemVSZXNwb25zZVwiIHwgXCJFcnJvckFjY2Vzc0RlbmllZFwiXG5cdFsnLi4ub24gRm9sZGVyU2l6ZVJlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkZvbGRlclNpemVSZXNwb25zZVwiXTtcblx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcbn07XG5cdFtcIkZvbGRlcnNTaGFyZWRXaXRoTWVSZXN1bHRcIl06e1xuXHRfX3R5cGVuYW1lOlwiRm9sZGVyU2hhcmVkV2l0aE1lUmVzcG9uc2VcIiB8IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIlxuXHRbJy4uLm9uIEZvbGRlclNoYXJlZFdpdGhNZVJlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkZvbGRlclNoYXJlZFdpdGhNZVJlc3BvbnNlXCJdO1xuXHRbJy4uLm9uIEVycm9yQWNjZXNzRGVuaWVkJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdO1xufTtcblx0W1wiTGltaXRzUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIlF1ZXJ5TGltaXRzXCIgfCBcIkVycm9yQWNjZXNzRGVuaWVkXCIgfCBcIkVycm9yTm90Rm91bmRcIiB8IFwiRXJyb3JOb3RFeGlzdFwiIHwgXCJFcnJvckxpbWl0XCJcblx0WycuLi5vbiBRdWVyeUxpbWl0cyddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJRdWVyeUxpbWl0c1wiXTtcblx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcblx0WycuLi5vbiBFcnJvck5vdEZvdW5kJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yTm90Rm91bmRcIl07XG5cdFsnLi4ub24gRXJyb3JOb3RFeGlzdCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvck5vdEV4aXN0XCJdO1xuXHRbJy4uLm9uIEVycm9yTGltaXQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JMaW1pdFwiXTtcbn07XG5cdFtcIk1haWxSZXN1bHRcIl06e1xuXHRfX3R5cGVuYW1lOlwiUXVlcnlNYWlsUmVzcG9uc2VcIiB8IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIlxuXHRbJy4uLm9uIFF1ZXJ5TWFpbFJlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIlF1ZXJ5TWFpbFJlc3BvbnNlXCJdO1xuXHRbJy4uLm9uIEVycm9yQWNjZXNzRGVuaWVkJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdO1xufTtcblx0W1wiUGF5bWVudEluZm9zUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIlBheW1lbnRJbmZvc1Jlc3BvbnNlXCIgfCBcIkVycm9yQWNjZXNzRGVuaWVkXCJcblx0WycuLi5vbiBQYXltZW50SW5mb3NSZXNwb25zZSddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJQYXltZW50SW5mb3NSZXNwb25zZVwiXTtcblx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcbn07XG5cdFtcIlBsYW5zUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIlBsYW5SZXNwb25zZVwiXG5cdFsnLi4ub24gUGxhblJlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIlBsYW5SZXNwb25zZVwiXTtcbn07XG5cdFtcIlNoYXJlZEZvbGRlcnNSZXN1bHRcIl06e1xuXHRfX3R5cGVuYW1lOlwiU2hhcmVkRm9sZGVyc1Jlc3BvbnNlXCIgfCBcIkVycm9yQWNjZXNzRGVuaWVkXCJcblx0WycuLi5vbiBTaGFyZWRGb2xkZXJzUmVzcG9uc2UnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiU2hhcmVkRm9sZGVyc1Jlc3BvbnNlXCJdO1xuXHRbJy4uLm9uIEVycm9yQWNjZXNzRGVuaWVkJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdO1xufTtcblx0W1wiU2hhcmVkVkZpbGVzUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIlNoYXJlZFZGaWxlc1Jlc3BvbnNlXCIgfCBcIkVycm9yQWNjZXNzRGVuaWVkXCJcblx0WycuLi5vbiBTaGFyZWRWRmlsZXNSZXNwb25zZSddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJTaGFyZWRWRmlsZXNSZXNwb25zZVwiXTtcblx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcbn07XG5cdFtcIlVucmVhZFJlY2VpdmVkTWFpbHNDb3VudFJlc3VsdFwiXTp7XG5cdF9fdHlwZW5hbWU6XCJVbnJlYWRSZWNlaXZlZE1haWxzQ291bnRSZXNwb25zZVwiIHwgXCJFcnJvckFjY2Vzc0RlbmllZFwiXG5cdFsnLi4ub24gVW5yZWFkUmVjZWl2ZWRNYWlsc0NvdW50UmVzcG9uc2UnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiVW5yZWFkUmVjZWl2ZWRNYWlsc0NvdW50UmVzcG9uc2VcIl07XG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG59O1xuXHRbXCJVc2VyUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIlVzZXJSZXNwb25zZVwiIHwgXCJFcnJvck5vdEZvdW5kXCJcblx0WycuLi5vbiBVc2VyUmVzcG9uc2UnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiVXNlclJlc3BvbnNlXCJdO1xuXHRbJy4uLm9uIEVycm9yTm90Rm91bmQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JOb3RGb3VuZFwiXTtcbn07XG5cdFtcIlZGaWxlUmVzdWx0XCJdOntcblx0X190eXBlbmFtZTpcIlZGaWxlUmVzcG9uc2VcIiB8IFwiRXJyb3JBY2Nlc3NEZW5pZWRcIlxuXHRbJy4uLm9uIFZGaWxlUmVzcG9uc2UnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiVkZpbGVSZXNwb25zZVwiXTtcblx0WycuLi5vbiBFcnJvckFjY2Vzc0RlbmllZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckFjY2Vzc0RlbmllZFwiXTtcbn07XG5cdFtcIlZGaWxlc1NoYXJlZFdpdGhNZVJlc3VsdFwiXTp7XG5cdF9fdHlwZW5hbWU6XCJWRmlsZXNTaGFyZWRXaXRoTWVSZXNwb25zZVwiIHwgXCJFcnJvckFjY2Vzc0RlbmllZFwiXG5cdFsnLi4ub24gVkZpbGVzU2hhcmVkV2l0aE1lUmVzcG9uc2UnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiVkZpbGVzU2hhcmVkV2l0aE1lUmVzcG9uc2VcIl07XG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG59O1xuXHRbXCJVc2VyTGlzdFJlc3VsdFwiXTp7XG5cdF9fdHlwZW5hbWU6XCJVc2VyTGlzdFJlc3BvbnNlXCIgfCBcIkVycm9yQWNjZXNzRGVuaWVkXCJcblx0WycuLi5vbiBVc2VyTGlzdFJlc3BvbnNlJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIlVzZXJMaXN0UmVzcG9uc2VcIl07XG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG59O1xuXHRbXCJBcHBLZXlQYWlyXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiQXBwS2V5UGFpclwiLFxuXHRwdWI6IHN0cmluZ1xufTtcblx0W1wiQXBwU2Vzc2lvblwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkFwcFNlc3Npb25cIixcblx0aWQ6IHN0cmluZyxcblx0bGFzdEFjdGl2aXR5PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHVzZXJBZ2VudD86IHN0cmluZyxcblx0aXA/OiBzdHJpbmcsXG5cdGNpdHk/OiBzdHJpbmcsXG5cdGNvdW50cnk/OiBzdHJpbmcsXG5cdHVzZXJTZXNzaW9uOiBHcmFwaFFMVHlwZXNbXCJVc2VyU2Vzc2lvblwiXSxcblx0dXNlckFwcD86IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdGNyZWF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl1cbn07XG5cdFtcIkFwcGxpY2F0aW9uXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiQXBwbGljYXRpb25cIixcblx0aWQ6IHN0cmluZyxcblx0bmFtZTogc3RyaW5nXG59O1xuXHRbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiQXBwbGljYXRpb25zT25Vc2Vyc1wiLFxuXHRmYWtlVXNlcklkOiBzdHJpbmcsXG5cdGtleVBhaXI/OiBHcmFwaFFMVHlwZXNbXCJBcHBLZXlQYWlyXCJdLFxuXHRzZXNzaW9uczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiQXBwU2Vzc2lvblwiXT4sXG5cdGFwcDogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdHVzZXI6IEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0sXG5cdGZvbGRlcnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0+LFxuXHRzZXR0aW5nczogR3JhcGhRTFR5cGVzW1wiVXNlckFwcFNldHRpbmdzXCJdXG59O1xuXHRbXCJCbG9nXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiQmxvZ1wiLFxuXHRpZDogc3RyaW5nLFxuXHRvcmRlcjogbnVtYmVyLFxuXHRlbnRyaWVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJCbG9nRW50cnlcIl0+XG59O1xuXHRbXCJCbG9nRW50cnlcIl06IHtcblx0X190eXBlbmFtZTogXCJCbG9nRW50cnlcIixcblx0aWQ6IHN0cmluZyxcblx0bGFuZzogR3JhcGhRTFR5cGVzW1wiTGFuZ1wiXSxcblx0YXV0aG9yOiBzdHJpbmcsXG5cdGJvZHk6IHN0cmluZyxcblx0ZGF0ZTogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGltYWdlOiBzdHJpbmcsXG5cdHN1bW1hcnk6IHN0cmluZyxcblx0dGl0bGU6IHN0cmluZ1xufTtcblx0W1wiQmxvZ0l0ZW1cIl06IHtcblx0X190eXBlbmFtZTogXCJCbG9nSXRlbVwiLFxuXHRpZDogc3RyaW5nLFxuXHRibG9nSWQ6IHN0cmluZyxcblx0b3JkZXI6IG51bWJlcixcblx0dGl0bGU6IHN0cmluZyxcblx0Ym9keTogc3RyaW5nLFxuXHRhdXRob3I6IHN0cmluZyxcblx0aW1hZ2U6IHN0cmluZyxcblx0aW1hZ2VBbHQ6IHN0cmluZyxcblx0c3VtbWFyeTogc3RyaW5nLFxuXHRkYXRlOiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiQ2xvdWRMaW1pdHNcIl06IHtcblx0X190eXBlbmFtZTogXCJDbG91ZExpbWl0c1wiLFxuXHRzaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heFNpemU/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGNvdW50OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heENvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJFcnJvclwiXTp7XG5cdF9fdHlwZW5hbWU6XCJFcnJvckFjY2Vzc0RlbmllZFwiIHwgXCJFcnJvck5vdEZvdW5kXCIgfCBcIkVycm9yVXBncmFkZVBsYW5cIiB8IFwiRXJyb3JMYW5nTm90RXhpc3RcIiB8IFwiRXJyb3JOb3RFeGlzdFwiIHwgXCJFcnJvckxpbWl0XCIgfCBcIkVycm9yQmFzaWNcIlxuXHRbJy4uLm9uIEVycm9yQWNjZXNzRGVuaWVkJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yQWNjZXNzRGVuaWVkXCJdO1xuXHRbJy4uLm9uIEVycm9yTm90Rm91bmQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JOb3RGb3VuZFwiXTtcblx0WycuLi5vbiBFcnJvclVwZ3JhZGVQbGFuJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yVXBncmFkZVBsYW5cIl07XG5cdFsnLi4ub24gRXJyb3JMYW5nTm90RXhpc3QnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JMYW5nTm90RXhpc3RcIl07XG5cdFsnLi4ub24gRXJyb3JOb3RFeGlzdCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvck5vdEV4aXN0XCJdO1xuXHRbJy4uLm9uIEVycm9yTGltaXQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JMaW1pdFwiXTtcblx0WycuLi5vbiBFcnJvckJhc2ljJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yQmFzaWNcIl07XG59O1xuXHRbXCJFcnJvckFjY2Vzc0RlbmllZFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkVycm9yQWNjZXNzRGVuaWVkXCIsXG5cdG1lc3NhZ2U6IHN0cmluZ1xufTtcblx0W1wiRXJyb3JCYXNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6XCJFcnJvckFjY2Vzc0RlbmllZFwiIHwgXCJFcnJvckJhc2ljXCIgfCBcIkVycm9yTGFuZ05vdEV4aXN0XCIgfCBcIkVycm9yTGltaXRcIiB8IFwiRXJyb3JOb3RFeGlzdFwiIHwgXCJFcnJvck5vdEZvdW5kXCIgfCBcIkVycm9yVXBncmFkZVBsYW5cIixcblx0bWVzc2FnZTogc3RyaW5nXG5cdFsnLi4ub24gRXJyb3JBY2Nlc3NEZW5pZWQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JBY2Nlc3NEZW5pZWRcIl07XG5cdFsnLi4ub24gRXJyb3JCYXNpYyddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvckJhc2ljXCJdO1xuXHRbJy4uLm9uIEVycm9yTGFuZ05vdEV4aXN0J106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yTGFuZ05vdEV4aXN0XCJdO1xuXHRbJy4uLm9uIEVycm9yTGltaXQnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JMaW1pdFwiXTtcblx0WycuLi5vbiBFcnJvck5vdEV4aXN0J106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkVycm9yTm90RXhpc3RcIl07XG5cdFsnLi4ub24gRXJyb3JOb3RGb3VuZCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJFcnJvck5vdEZvdW5kXCJdO1xuXHRbJy4uLm9uIEVycm9yVXBncmFkZVBsYW4nXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRXJyb3JVcGdyYWRlUGxhblwiXTtcbn07XG5cdFtcIkVycm9yQmFzaWNcIl06IHtcblx0X190eXBlbmFtZTogXCJFcnJvckJhc2ljXCIsXG5cdG1lc3NhZ2U6IHN0cmluZ1xufTtcblx0W1wiRXJyb3JMYW5nTm90RXhpc3RcIl06IHtcblx0X190eXBlbmFtZTogXCJFcnJvckxhbmdOb3RFeGlzdFwiLFxuXHRtZXNzYWdlOiBzdHJpbmdcbn07XG5cdFtcIkVycm9yTGltaXRcIl06IHtcblx0X190eXBlbmFtZTogXCJFcnJvckxpbWl0XCIsXG5cdG1lc3NhZ2U6IHN0cmluZyxcblx0ZmllbGQ/OiBzdHJpbmdcbn07XG5cdFtcIkVycm9yTm90RXhpc3RcIl06IHtcblx0X190eXBlbmFtZTogXCJFcnJvck5vdEV4aXN0XCIsXG5cdG1lc3NhZ2U6IHN0cmluZyxcblx0ZmllbGQ/OiBzdHJpbmdcbn07XG5cdFtcIkVycm9yTm90Rm91bmRcIl06IHtcblx0X190eXBlbmFtZTogXCJFcnJvck5vdEZvdW5kXCIsXG5cdG1lc3NhZ2U6IHN0cmluZyxcblx0ZmllbGQ/OiBzdHJpbmdcbn07XG5cdFtcIkVycm9yVXBncmFkZVBsYW5cIl06IHtcblx0X190eXBlbmFtZTogXCJFcnJvclVwZ3JhZGVQbGFuXCIsXG5cdG1lc3NhZ2U6IHN0cmluZ1xufTtcblx0W1wiRmFxXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmFxXCIsXG5cdGlkOiBzdHJpbmcsXG5cdG9yZGVyOiBudW1iZXIsXG5cdGVudHJpZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZhcUVudHJ5XCJdPlxufTtcblx0W1wiRmFxRW50cnlcIl06IHtcblx0X190eXBlbmFtZTogXCJGYXFFbnRyeVwiLFxuXHRpZDogc3RyaW5nLFxuXHRsYW5nOiBHcmFwaFFMVHlwZXNbXCJMYW5nXCJdLFxuXHRxdWVzdGlvbjogc3RyaW5nLFxuXHRhbnN3ZXI6IHN0cmluZyxcblx0ZmFxOiBHcmFwaFFMVHlwZXNbXCJGYXFcIl1cbn07XG5cdFtcIkZhcUl0ZW1cIl06IHtcblx0X190eXBlbmFtZTogXCJGYXFJdGVtXCIsXG5cdG9yZGVyOiBudW1iZXIsXG5cdHF1ZXN0aW9uOiBzdHJpbmcsXG5cdGFuc3dlcjogc3RyaW5nXG59O1xuXHRbXCJGaWxlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZVwiLFxuXHRpZDogc3RyaW5nLFxuXHRzaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHNpemVCZWZvcmU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0Y3JlYXRlZEF0OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dkZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXT4sXG5cdHZGaWxlc0N1cnJlbnQ6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdPixcblx0dXNlcnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdPixcblx0bWQ1OiBzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDogc3RyaW5nLFxuXHRkZWxldGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXNlckFwcDogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25zT25Vc2Vyc1wiXSxcblx0bWFpbHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZpbGVzT25NYWlsc1wiXT4sXG5cdHZhbGlkYXRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHVzZXI/OiBHcmFwaFFMVHlwZXNbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXVxufTtcblx0W1wiRmlsZUNvbnRlbnRcIl06e1xuXHRfX3R5cGVuYW1lOlwiRmlsZUNvbnRlbnRDbG91ZFwiIHwgXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiIHwgXCJGaWxlQ29udGVudFNlbnRNYWlsXCJcblx0WycuLi5vbiBGaWxlQ29udGVudENsb3VkJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50Q2xvdWRcIl07XG5cdFsnLi4ub24gRmlsZUNvbnRlbnRSZWNlaXZlZE1haWwnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl07XG5cdFsnLi4ub24gRmlsZUNvbnRlbnRTZW50TWFpbCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFNlbnRNYWlsXCJdO1xufTtcblx0W1wiRmlsZUNvbnRlbnRCYXNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6XCJGaWxlQ29udGVudENsb3VkXCIgfCBcIkZpbGVDb250ZW50UmVjZWl2ZWRNYWlsXCIgfCBcIkZpbGVDb250ZW50U2VudE1haWxcIixcblx0cGFydHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXT4sXG5cdGtleTogc3RyaW5nLFxuXHRtZDU6IHN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOiBzdHJpbmcsXG5cdHRvdGFsU2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHR0eXBlOiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFR5cGVcIl1cblx0WycuLi5vbiBGaWxlQ29udGVudENsb3VkJ106ICdfX3VuaW9uJyAmIEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50Q2xvdWRcIl07XG5cdFsnLi4ub24gRmlsZUNvbnRlbnRSZWNlaXZlZE1haWwnXTogJ19fdW5pb24nICYgR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl07XG5cdFsnLi4ub24gRmlsZUNvbnRlbnRTZW50TWFpbCddOiAnX191bmlvbicgJiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFNlbnRNYWlsXCJdO1xufTtcblx0W1wiRmlsZUNvbnRlbnRDbG91ZFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZpbGVDb250ZW50Q2xvdWRcIixcblx0cGFydHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50UGFydFwiXT4sXG5cdGtleTogc3RyaW5nLFxuXHRtZDU6IHN0cmluZyxcblx0bWQ1RW5jcnlwdGVkOiBzdHJpbmcsXG5cdHRvdGFsU2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHR0eXBlOiBHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFR5cGVcIl0sXG5cdHB1YmxpY0tleTogc3RyaW5nXG59O1xuXHRbXCJGaWxlQ29udGVudFBhcnRcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlQ29udGVudFBhcnRcIixcblx0Y29udGVudFVybDogc3RyaW5nLFxuXHRvcmRlcjogbnVtYmVyLFxuXHRtZDU6IHN0cmluZ1xufTtcblx0W1wiRmlsZUNvbnRlbnRSZWNlaXZlZE1haWxcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlQ29udGVudFJlY2VpdmVkTWFpbFwiLFxuXHRwYXJ0czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRQYXJ0XCJdPixcblx0a2V5OiBzdHJpbmcsXG5cdG1kNTogc3RyaW5nLFxuXHRtZDVFbmNyeXB0ZWQ6IHN0cmluZyxcblx0dG90YWxTaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHR5cGU6IEdyYXBoUUxUeXBlc1tcIkZpbGVDb250ZW50VHlwZVwiXSxcblx0c2VuZGVyUHVibGljS2V5OiBzdHJpbmdcbn07XG5cdFtcIkZpbGVDb250ZW50U2VudE1haWxcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlQ29udGVudFNlbnRNYWlsXCIsXG5cdHBhcnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlQ29udGVudFBhcnRcIl0+LFxuXHRrZXk6IHN0cmluZyxcblx0bWQ1OiBzdHJpbmcsXG5cdG1kNUVuY3J5cHRlZDogc3RyaW5nLFxuXHR0b3RhbFNpemU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0dHlwZTogR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRUeXBlXCJdXG59O1xuXHRbXCJGaWxlQ29udGVudFR5cGVcIl06IEZpbGVDb250ZW50VHlwZTtcblx0W1wiRmlsZVBhcnRcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlUGFydFwiLFxuXHRpZDogc3RyaW5nLFxuXHRmaWxlOiBHcmFwaFFMVHlwZXNbXCJGaWxlXCJdLFxuXHRmaWxlSWQ6IHN0cmluZyxcblx0c2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRvcmRlcjogbnVtYmVyLFxuXHRtZDU6IHN0cmluZyxcblx0dmFsaWRhdGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiRmlsZVBhcnRSZXNwb25zZVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZpbGVQYXJ0UmVzcG9uc2VcIixcblx0ZmllbGRzOiBHcmFwaFFMVHlwZXNbXCJKc29uXCJdLFxuXHR1cmw6IHN0cmluZyxcblx0b3JkZXI6IG51bWJlclxufTtcblx0W1wiRmlsZVJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZVJlc3BvbnNlXCIsXG5cdGZpbGVJZDogc3RyaW5nLFxuXHRwYXJ0czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZVBhcnRSZXNwb25zZVwiXT4sXG5cdGZpbGVQYXJ0U2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdXG59O1xuXHRbXCJGaWxlU2hhcmVkXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZVNoYXJlZFwiLFxuXHR1c2VySWQ6IHN0cmluZyxcblx0bWVzc2FnZT86IHN0cmluZyxcblx0YXBwSWQ6IHN0cmluZyxcblx0aWQ6IHN0cmluZyxcblx0ZmlsZW5hbWU6IHN0cmluZyxcblx0c2l6ZTogbnVtYmVyLFxuXHRzaXplQmVmb3JlOiBudW1iZXJcbn07XG5cdFtcIkZpbGVTaGFyZWRDb250ZW50XCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZVNoYXJlZENvbnRlbnRcIixcblx0b3duZXJJZD86IHN0cmluZyxcblx0cHViS2V5Pzogc3RyaW5nLFxuXHRtZXNzYWdlPzogc3RyaW5nLFxuXHRhcHBJZDogc3RyaW5nLFxuXHRpZDogc3RyaW5nLFxuXHR0eXBlOiBzdHJpbmcsXG5cdGZpbGVuYW1lOiBzdHJpbmcsXG5cdGNvbnRlbnRVcmw6IHN0cmluZyxcblx0a2V5OiBzdHJpbmcsXG5cdHNpemU6IG51bWJlcixcblx0c2l6ZUJlZm9yZTogbnVtYmVyXG59O1xuXHRbXCJGaWxlc09uTWFpbHNcIl06IHtcblx0X190eXBlbmFtZTogXCJGaWxlc09uTWFpbHNcIixcblx0ZmlsZTogR3JhcGhRTFR5cGVzW1wiRmlsZVwiXSxcblx0ZmlsZUtleTogc3RyaW5nLFxuXHRmaWxlbmFtZTogc3RyaW5nLFxuXHRtYWlsOiBHcmFwaFFMVHlwZXNbXCJNYWlsXCJdXG59O1xuXHRbXCJGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZpbGVzT25Vc2Vyc09uQXBwbGljYXRpb25zXCIsXG5cdGZpbGU6IEdyYXBoUUxUeXBlc1tcIkZpbGVcIl0sXG5cdHVzZXJBcHA6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdC8qKiBFbmNyeXB0ZWQgd2l0aCBVc2VyQXBwIGtleXMgKi9cblx0a2V5OiBzdHJpbmdcbn07XG5cdFtcIkZvbGRlclwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZvbGRlclwiLFxuXHRpZDogc3RyaW5nLFxuXHRpc0Zhdm9yaXRlOiBib29sZWFuLFxuXHRjcmVhdGVkQXQ6IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRkZWxldGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0dXBkYXRlZEF0OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3JlYXRlZEJ5OiBHcmFwaFFMVHlwZXNbXCJBcHBsaWNhdGlvbnNPblVzZXJzXCJdLFxuXHR1c2VyQXBwczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXT4sXG5cdHVzZXJBcHA/OiBHcmFwaFFMVHlwZXNbXCJGb2xkZXJzT25Vc2Vyc09uQXBwbGljYXRpb25zXCJdLFxuXHRuYW1lOiBzdHJpbmcsXG5cdHBhcmVudEZvbGRlcj86IEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXSxcblx0c3ViZm9sZGVyczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdPixcblx0dkZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXT4sXG5cdGJyZWFkY3J1bWI6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZvbGRlckJyZWFkY3J1bWJJdGVtXCJdPlxufTtcblx0W1wiRm9sZGVyQnJlYWRjcnVtYkl0ZW1cIl06IHtcblx0X190eXBlbmFtZTogXCJGb2xkZXJCcmVhZGNydW1iSXRlbVwiLFxuXHRpZDogc3RyaW5nLFxuXHRuYW1lOiBzdHJpbmcsXG5cdHB1YktleTogc3RyaW5nLFxuXHRuYW1lS2V5Pzogc3RyaW5nXG59O1xuXHRbXCJGb2xkZXJTaXplXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRm9sZGVyU2l6ZVwiLFxuXHRzaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHNpemVCZWZvcmU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiRm9sZGVyc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZvbGRlcnNPblVzZXJzT25BcHBsaWNhdGlvbnNcIixcblx0Zm9sZGVyOiBHcmFwaFFMVHlwZXNbXCJGb2xkZXJcIl0sXG5cdHVzZXJBcHA6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHJpZ2h0czogR3JhcGhRTFR5cGVzW1wiUmlnaHRzXCJdLFxuXHRuYW1lS2V5Pzogc3RyaW5nLFxuXHRpc1Jvb3Q6IGJvb2xlYW5cbn07XG5cdFtcIk1haWxGaWxlSW5wdXRcIl06IHtcblx0XHRpZDogc3RyaW5nLFxuXHRuYW1lOiBzdHJpbmcsXG5cdGZpbGVLZXk6IHN0cmluZ1xufTtcblx0W1wiTWFpbFJlY2lwaWVudElucHV0XCJdOiB7XG5cdFx0Ym9keTogc3RyaW5nLFxuXHRzdWJqZWN0OiBzdHJpbmcsXG5cdHJlY2lwaWVudElkOiBzdHJpbmcsXG5cdGZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsRmlsZUlucHV0XCJdPlxufTtcblx0W1wiTmFtZUtleUlucHV0XCJdOiB7XG5cdFx0aWQ6IHN0cmluZyxcblx0bmFtZUtleTogc3RyaW5nLFxuXHRmaWxlczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiU2hhcmVGaWxlS2V5SW5wdXRcIl0+XG59O1xuXHRbXCJOYW1lS2V5SW5wdXRGb2xkZXJzXCJdOiB7XG5cdFx0aWQ6IHN0cmluZyxcblx0bmFtZUtleTogc3RyaW5nXG59O1xuXHRbXCJQYXlJbnB1dFwiXToge1xuXHRcdHR5cGU6IEdyYXBoUUxUeXBlc1tcIlBheUlucHV0VHlwZVwiXSxcblx0dG9rZW46IHN0cmluZyxcblx0Zmlyc3ROYW1lOiBzdHJpbmcsXG5cdGxhc3ROYW1lOiBzdHJpbmcsXG5cdHN0cmVldDogc3RyaW5nLFxuXHRwb3N0YWxDb2RlOiBzdHJpbmcsXG5cdGNpdHk6IHN0cmluZyxcblx0Y291bnRyeTogc3RyaW5nLFxuXHRudW1iZXI6IHN0cmluZyxcblx0bW9udGg6IHN0cmluZyxcblx0eWVhcjogc3RyaW5nLFxuXHRjdnY6IHN0cmluZ1xufTtcblx0W1wiUGF5SW5wdXRUeXBlXCJdOiBQYXlJbnB1dFR5cGU7XG5cdFtcIlNoYXJlRmlsZUluSGlzdG9yeUlucHV0XCJdOiB7XG5cdFx0ZmlsZUlkOiBzdHJpbmcsXG5cdHVzZXJzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJTaGFyZUZpbGVLZXlJbnB1dFwiXT5cbn07XG5cdFtcIlNoYXJlRmlsZUtleUlucHV0XCJdOiB7XG5cdFx0aWQ6IHN0cmluZyxcblx0a2V5OiBzdHJpbmdcbn07XG5cdFtcIlNoYXJlRm9sZGVyc0lucHV0XCJdOiB7XG5cdFx0Zm9sZGVyczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTmFtZUtleUlucHV0Rm9sZGVyc1wiXT4sXG5cdHZGaWxlczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTmFtZUtleUlucHV0XCJdPlxufTtcblx0W1wiTGltaXRzXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiTGltaXRzXCIsXG5cdGRvd25sb2FkQmFuZHdpZHRoPzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRkb3dubG9hZENvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRoYXJkRmlsZUNvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRoYXJkRmlsZVNpemU/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHBlckZpbGVTaXplPzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRyZWNlaXZlZE1haWxzOiBHcmFwaFFMVHlwZXNbXCJNYWlsTGltaXRzXCJdLFxuXHRzZW50TWFpbHM6IEdyYXBoUUxUeXBlc1tcIk1haWxMaW1pdHNcIl0sXG5cdHVwbG9hZEJhbmR3aWR0aD86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0dXBsb2FkQ291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIk1haWxMaW1pdHNcIl06IHtcblx0X190eXBlbmFtZTogXCJNYWlsTGltaXRzXCIsXG5cdGNvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlQ291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGZpbGVTaXplPzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRoYXJkQ291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlQ291bnQ/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdGhhcmRGaWxlU2l6ZT86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0cGVyRmlsZVNpemU/OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl1cbn07XG5cdFtcIk1haWxMaW1pdHNWYWx1ZXNcIl06IHtcblx0X190eXBlbmFtZTogXCJNYWlsTGltaXRzVmFsdWVzXCIsXG5cdGNvdW50OiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdG1heENvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlQ291bnQ6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXSxcblx0bWF4RmlsZUNvdW50PzogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRmaWxlU2l6ZTogR3JhcGhRTFR5cGVzW1wiQmlnSW50XCJdLFxuXHRtYXhGaWxlU2l6ZT86IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiUXVlcnlMaW1pdHNcIl06IHtcblx0X190eXBlbmFtZTogXCJRdWVyeUxpbWl0c1wiLFxuXHRjbG91ZDogR3JhcGhRTFR5cGVzW1wiQ2xvdWRMaW1pdHNcIl0sXG5cdG1haWw6IEdyYXBoUUxUeXBlc1tcIlVzZXJNYWlsTGltaXRzXCJdXG59O1xuXHRbXCJVc2VyTWFpbExpbWl0c1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIlVzZXJNYWlsTGltaXRzXCIsXG5cdHNlbnQ6IEdyYXBoUUxUeXBlc1tcIk1haWxMaW1pdHNWYWx1ZXNcIl0sXG5cdHJlY2VpdmVkOiBHcmFwaFFMVHlwZXNbXCJNYWlsTGltaXRzVmFsdWVzXCJdXG59O1xuXHRbXCJNYWlsXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiTWFpbFwiLFxuXHRpZDogc3RyaW5nLFxuXHRhcHA6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uXCJdLFxuXHRib2R5OiBzdHJpbmcsXG5cdGNyZWF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGRlbGV0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRmaWxlczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiRmlsZXNPbk1haWxzXCJdPixcblx0bWFpbEludGVncml0eT86IEdyYXBoUUxUeXBlc1tcIk1haWxJbnRlZ3JpdHlcIl0sXG5cdG1haWxJbnRlZ3JpdHlEcmFmdD86IEdyYXBoUUxUeXBlc1tcIk1haWxJbnRlZ3JpdHlEcmFmdFwiXSxcblx0b3BlbmVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cmVjaXBpZW50OiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRzZW5kZXI6IEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0sXG5cdHN1YmplY3Q6IHN0cmluZyxcblx0dHlwZTogR3JhcGhRTFR5cGVzW1wiTWFpbFR5cGVcIl0sXG5cdHJlY2lwaWVudHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlVzZXJcIl0+XG59O1xuXHRbXCJNYWlsSW50ZWdyaXR5XCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiTWFpbEludGVncml0eVwiLFxuXHRpZDogc3RyaW5nLFxuXHRoYXNoOiBzdHJpbmcsXG5cdGhhc2hLZXk6IHN0cmluZyxcblx0YW5zd2VyczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eVwiXT4sXG5cdGFwcDogR3JhcGhRTFR5cGVzW1wiQXBwbGljYXRpb25cIl0sXG5cdG1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsXCJdPixcblx0cmVjaXBpZW50czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVXNlclwiXT4sXG5cdHRlbXBvcmFyeVJlY2lwaWVudHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl0+LFxuXHRyZXBseVRvPzogR3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eVwiXVxufTtcblx0W1wiTWFpbEludGVncml0eURyYWZ0XCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiTWFpbEludGVncml0eURyYWZ0XCIsXG5cdGlkOiBzdHJpbmcsXG5cdGhhc2g6IHN0cmluZyxcblx0aGFzaEtleTogc3RyaW5nLFxuXHRhcHA6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uXCJdLFxuXHRtYWlsOiBHcmFwaFFMVHlwZXNbXCJNYWlsXCJdLFxuXHRyZWNpcGllbnRzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJVc2VyXCJdPixcblx0dGVtcG9yYXJ5UmVjaXBpZW50czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVGVtcG9yYXJ5VXNlclwiXT4sXG5cdHJlcGx5VG8/OiBHcmFwaFFMVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdXG59O1xuXHRbXCJQbGFuXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiUGxhblwiLFxuXHRpZDogc3RyaW5nLFxuXHRraW5kOiBHcmFwaFFMVHlwZXNbXCJQbGFuS2luZFwiXSxcblx0Y29kZXM6IEFycmF5PHN0cmluZz4sXG5cdGxpbWl0czogR3JhcGhRTFR5cGVzW1wiTGltaXRzXCJdXG59O1xuXHRbXCJSZXBvcnRcIl06IHtcblx0X190eXBlbmFtZTogXCJSZXBvcnRcIixcblx0aWQ6IHN0cmluZyxcblx0dXNlcjogR3JhcGhRTFR5cGVzW1wiVXNlclwiXSxcblx0cmVwb3J0ZWRVc2VyOiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRjdXN0b21NZXNzYWdlPzogc3RyaW5nXG59O1xuXHRbXCJCbG9nUmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJCbG9nUmVzcG9uc2VcIixcblx0YmxvZ0l0ZW1zOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJCbG9nSXRlbVwiXT5cbn07XG5cdFtcIkRiQ29uZmlnUmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJEYkNvbmZpZ1Jlc3BvbnNlXCIsXG5cdGpzb246IEdyYXBoUUxUeXBlc1tcIkpzb25cIl1cbn07XG5cdFtcIkRiR2V0UmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJEYkdldFJlc3BvbnNlXCIsXG5cdGpzb24/OiBHcmFwaFFMVHlwZXNbXCJKc29uXCJdXG59O1xuXHRbXCJEYlNlYXJjaFJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRGJTZWFyY2hSZXNwb25zZVwiLFxuXHRqc29uPzogR3JhcGhRTFR5cGVzW1wiSnNvblwiXVxufTtcblx0W1wiRGVsZXRlZEZvbGRlcnNSZXNwb25zZVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkRlbGV0ZWRGb2xkZXJzUmVzcG9uc2VcIixcblx0ZGVsZXRlZEZvbGRlcnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXT5cbn07XG5cdFtcIkRlbGV0ZWRNYWlsc1Jlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRGVsZXRlZE1haWxzUmVzcG9uc2VcIixcblx0ZGVsZXRlZE1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsXCJdPlxufTtcblx0W1wiRGVsZXRlZFZGaWxlc1Jlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRGVsZXRlZFZGaWxlc1Jlc3BvbnNlXCIsXG5cdGRlbGV0ZWRWRmlsZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdPlxufTtcblx0W1wiRmFxUmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJGYXFSZXNwb25zZVwiLFxuXHRmYXE6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZhcUl0ZW1cIl0+XG59O1xuXHRbXCJGaWxlUXVlcnlSZXNwb25zZVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZpbGVRdWVyeVJlc3BvbnNlXCIsXG5cdGZpbGU/OiBHcmFwaFFMVHlwZXNbXCJGaWxlXCJdXG59O1xuXHRbXCJGaWxlQ29udGVudFJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRmlsZUNvbnRlbnRSZXNwb25zZVwiLFxuXHRmaWxlPzogR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRcIl1cbn07XG5cdFtcIkZvbGRlclJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiRm9sZGVyUmVzcG9uc2VcIixcblx0Zm9sZGVyPzogR3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdXG59O1xuXHRbXCJGb2xkZXJTaGFyZWRXaXRoTWVSZXNwb25zZVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZvbGRlclNoYXJlZFdpdGhNZVJlc3BvbnNlXCIsXG5cdGZvbGRlcnNTaGFyZWRXaXRoTWU6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXT5cbn07XG5cdFtcIkZvbGRlclNpemVSZXNwb25zZVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIkZvbGRlclNpemVSZXNwb25zZVwiLFxuXHRzaXplOiBHcmFwaFFMVHlwZXNbXCJCaWdJbnRcIl0sXG5cdHNpemVCZWZvcmU6IEdyYXBoUUxUeXBlc1tcIkJpZ0ludFwiXVxufTtcblx0W1wiUXVlcnlNYWlsUmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJRdWVyeU1haWxSZXNwb25zZVwiLFxuXHRtYWlsPzogR3JhcGhRTFR5cGVzW1wiTWFpbFwiXVxufTtcblx0W1wiUGF5bWVudEluZm9zUmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJQYXltZW50SW5mb3NSZXNwb25zZVwiLFxuXHRwYXltZW50SW5mb3M/OiBHcmFwaFFMVHlwZXNbXCJQYXltZW50SW5mb3NcIl1cbn07XG5cdFtcIlBsYW5SZXNwb25zZVwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlBsYW5SZXNwb25zZVwiLFxuXHRwbGFuOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJQbGFuXCJdPlxufTtcblx0W1wiU2hhcmVkRm9sZGVyc1Jlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiU2hhcmVkRm9sZGVyc1Jlc3BvbnNlXCIsXG5cdHNoYXJlZEZvbGRlcnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkZvbGRlclwiXT5cbn07XG5cdFtcIlNoYXJlZFZGaWxlc1Jlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiU2hhcmVkVkZpbGVzUmVzcG9uc2VcIixcblx0c2hhcmVkVkZpbGVzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXT5cbn07XG5cdFtcIlVucmVhZFJlY2VpdmVkTWFpbHNDb3VudFJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVW5yZWFkUmVjZWl2ZWRNYWlsc0NvdW50UmVzcG9uc2VcIixcblx0Y291bnQ6IG51bWJlclxufTtcblx0W1wiVXNlclJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVXNlclJlc3BvbnNlXCIsXG5cdHVzZXI/OiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdXG59O1xuXHRbXCJVc2VyTGlzdFJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVXNlckxpc3RSZXNwb25zZVwiLFxuXHR1c2VyTGlzdDogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVXNlclwiXT5cbn07XG5cdFtcIlZGaWxlUmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJWRmlsZVJlc3BvbnNlXCIsXG5cdHZGaWxlPzogR3JhcGhRTFR5cGVzW1wiVkZpbGVcIl1cbn07XG5cdFtcIlZGaWxlc1NoYXJlZFdpdGhNZVJlc3BvbnNlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVkZpbGVzU2hhcmVkV2l0aE1lUmVzcG9uc2VcIixcblx0dkZpbGVzU2hhcmVkV2l0aE1lOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXT5cbn07XG5cdFtcIlRlbXBvcmFyeVVzZXJcIl06IHtcblx0X190eXBlbmFtZTogXCJUZW1wb3JhcnlVc2VyXCIsXG5cdGlkOiBzdHJpbmcsXG5cdG1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsSW50ZWdyaXR5XCJdPixcblx0ZHJhZnRNYWlsczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTWFpbEludGVncml0eURyYWZ0XCJdPixcblx0ZW1haWw/OiBzdHJpbmdcbn07XG5cdFtcIlVzZXJcIl06IHtcblx0X190eXBlbmFtZTogXCJVc2VyXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGRlbGV0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRsYW5nOiBHcmFwaFFMVHlwZXNbXCJMYW5nXCJdLFxuXHRyZXBvcnRTZW50OiBBcnJheTxHcmFwaFFMVHlwZXNbXCJSZXBvcnRcIl0+LFxuXHRnb2RGYXRoZXI/OiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRnb2RDaGlsZHJlbjogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVXNlclwiXT4sXG5cdGZpcnN0bmFtZTogc3RyaW5nLFxuXHRsYXN0bmFtZTogc3RyaW5nLFxuXHRlbWFpbDogc3RyaW5nLFxuXHRwaG9uZTogc3RyaW5nLFxuXHRsYXN0TG9naW46IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRyb2xlOiBHcmFwaFFMVHlwZXNbXCJVc2VyUm9sZVwiXSxcblx0c2Vzc2lvbnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlVzZXJTZXNzaW9uXCJdPixcblx0Y3JlYXRlZEF0OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cmVjZWl2ZWRNYWlsczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTWFpbFwiXT4sXG5cdHdhaXRpbmdSZWNlaXZlZE1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJXYWl0aW5nUmVjZWl2ZWRNYWlsXCJdPixcblx0c2VudE1haWxzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJNYWlsXCJdPixcblx0ZHJhZnRNYWlsczogQXJyYXk8R3JhcGhRTFR5cGVzW1wiTWFpbFwiXT4sXG5cdGFwcFNldHRpbmdzPzogR3JhcGhRTFR5cGVzW1wiVXNlckFwcFNldHRpbmdzXCJdLFxuXHRhcHBsaWNhdGlvbnM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0+LFxuXHRwdWJsaWNLZXk6IHN0cmluZ1xufTtcblx0W1wiVXNlckFwcE5vdGlmaWNhdGlvbnNcIl06IHtcblx0X190eXBlbmFtZTogXCJVc2VyQXBwTm90aWZpY2F0aW9uc1wiLFxuXHRpZDogc3RyaW5nLFxuXHRlbmFibGVBbGw6IGJvb2xlYW4sXG5cdG1haWw6IGJvb2xlYW4sXG5cdGNsb3VkOiBib29sZWFuLFxuXHRkaXNhYmxlQWxsVW50aWw/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXVxufTtcblx0W1wiVXNlckFwcFNldHRpbmdzXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVXNlckFwcFNldHRpbmdzXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGNsb3VkRmlsZURheXNGb3JEZWxldGU6IG51bWJlcixcblx0Y2xvdWRGb2xkZXJEYXlzRm9yRGVsZXRlOiBudW1iZXIsXG5cdGhpc3RvcnlGaWxlRGF5c0ZvckRlbGV0ZT86IG51bWJlcixcblx0aGlzdG9yeU1heEZpbGVDb3VudDogbnVtYmVyLFxuXHRhdXRvRGlzY29ubmVjdERlbGF5PzogbnVtYmVyXG59O1xuXHRbXCJVc2VyU2Vzc2lvblwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlVzZXJTZXNzaW9uXCIsXG5cdGlkOiBzdHJpbmcsXG5cdGFwcFNlc3Npb25zOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJBcHBTZXNzaW9uXCJdPixcblx0bGFzdEFjdGl2aXR5PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHVzZXJBZ2VudD86IHN0cmluZyxcblx0aXA/OiBzdHJpbmcsXG5cdGNpdHk/OiBzdHJpbmcsXG5cdGNvdW50cnk/OiBzdHJpbmcsXG5cdGNyZWF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl1cbn07XG5cdFtcIlZGaWxlXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiVkZpbGVcIixcblx0aWQ6IHN0cmluZyxcblx0aXNGYXZvcml0ZTogYm9vbGVhbixcblx0Y3JlYXRlZEF0OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0ZGVsZXRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGZpbGVuYW1lOiBzdHJpbmcsXG5cdHVzZXJBcHBzOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJWRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0+LFxuXHRjcmVhdGVkQnk6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHVzZXJBcHA/OiBHcmFwaFFMVHlwZXNbXCJWRmlsZXNPblVzZXJzT25BcHBsaWNhdGlvbnNcIl0sXG5cdGZvbGRlcjogR3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdLFxuXHRoaXN0b3J5OiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlXCJdPixcblx0Y3VycmVudD86IEdyYXBoUUxUeXBlc1tcIkZpbGVcIl0sXG5cdHVwZGF0ZWRBdDogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl1cbn07XG5cdFtcIlZGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIlZGaWxlc09uVXNlcnNPbkFwcGxpY2F0aW9uc1wiLFxuXHR2RmlsZTogR3JhcGhRTFR5cGVzW1wiVkZpbGVcIl0sXG5cdHVzZXJBcHA6IEdyYXBoUUxUeXBlc1tcIkFwcGxpY2F0aW9uc09uVXNlcnNcIl0sXG5cdHJpZ2h0czogR3JhcGhRTFR5cGVzW1wiUmlnaHRzXCJdLFxuXHRuYW1lS2V5OiBzdHJpbmcsXG5cdGlzUm9vdDogYm9vbGVhblxufTtcblx0W1wiV2FpdGluZ1JlY2VpdmVkTWFpbFwiXToge1xuXHRfX3R5cGVuYW1lOiBcIldhaXRpbmdSZWNlaXZlZE1haWxcIixcblx0c2VuZGVyOiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHRkYXRlOiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0cmVjaXBpZW50czogQXJyYXk8R3JhcGhRTFR5cGVzW1wiVXNlclwiXT4sXG5cdHRlbXBvcmFyeVJlY2lwaWVudHM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlRlbXBvcmFyeVVzZXJcIl0+LFxuXHRhdHRhY2htZW50c0NvdW50OiBudW1iZXJcbn07XG5cdFtcIlBheW1lbnRJbmZvc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIlBheW1lbnRJbmZvc1wiLFxuXHRob3N0ZWRVcmw6IHN0cmluZyxcblx0Y3VycmVudFN1YnNjcmlwdGlvbjogR3JhcGhRTFR5cGVzW1wiUmVjdXJseVN1YnNjcmlwdGlvblwiXSxcblx0aW52b2ljZXM6IEFycmF5PEdyYXBoUUxUeXBlc1tcIlJlY3VybHlJbnZvaWNlc1wiXT5cbn07XG5cdFtcIlJlY3VybHlJbnZvaWNlc1wiXToge1xuXHRfX3R5cGVuYW1lOiBcIlJlY3VybHlJbnZvaWNlc1wiLFxuXHRwZGY6IHN0cmluZyxcblx0ZGF0ZTogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGR1ZTogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdHN0YXR1czogc3RyaW5nLFxuXHR0b3RhbDogbnVtYmVyLFxuXHRuYW1lOiBzdHJpbmcsXG5cdGN1cnJlbmN5OiBzdHJpbmdcbn07XG5cdFtcIlJlY3VybHlTdWJzY3JpcHRpb25cIl06IHtcblx0X190eXBlbmFtZTogXCJSZWN1cmx5U3Vic2NyaXB0aW9uXCIsXG5cdGF1dG9yZW5ldzogYm9vbGVhbixcblx0YWN0aXZhdGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3VycmVudFBlcmlvZEVuZHNBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRjdXJyZW50UGVyaW9kU3RhcnRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGNhbmNlbGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0Y3JlYXRlZEF0PzogR3JhcGhRTFR5cGVzW1wiRGF0ZVRpbWVcIl0sXG5cdGV4cGlyZXNBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHRwYXVzZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR0cmlhbEVuZHNBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR0cmlhbFN0YXJ0ZWRBdD86IEdyYXBoUUxUeXBlc1tcIkRhdGVUaW1lXCJdLFxuXHR1cGRhdGVkQXQ/OiBHcmFwaFFMVHlwZXNbXCJEYXRlVGltZVwiXSxcblx0c3RhdGU6IHN0cmluZyxcblx0Y29sbGVjdGlvbk1ldGhvZDogc3RyaW5nLFxuXHRwbGFuPzogc3RyaW5nLFxuXHRwbGFuQ29kZT86IHN0cmluZyxcblx0dG90YWw/OiBudW1iZXJcbn07XG5cdFtcIlNoYXJlRm9sZGVyUmVzcG9uc2VcIl06IHtcblx0X190eXBlbmFtZTogXCJTaGFyZUZvbGRlclJlc3BvbnNlXCIsXG5cdGZvbGRlcnM6IEFycmF5PHN0cmluZz4sXG5cdHZGaWxlczogQXJyYXk8c3RyaW5nPlxufTtcblx0W1wiUXVlcnlcIl06IHtcblx0X190eXBlbmFtZTogXCJRdWVyeVwiLFxuXHRhcHBOb3RpZmljYXRpb25zPzogR3JhcGhRTFR5cGVzW1wiQXBwTm90aWZpY2F0aW9uc1Jlc3VsdFwiXSxcblx0YmxvZz86IEdyYXBoUUxUeXBlc1tcIkJsb2dSZXN1bHRcIl0sXG5cdGRiQ29uZmlnPzogR3JhcGhRTFR5cGVzW1wiRGJDb25maWdSZXN1bHRcIl0sXG5cdGRiR2V0PzogR3JhcGhRTFR5cGVzW1wiRGJHZXRSZXN1bHRcIl0sXG5cdGRiU2VhcmNoPzogR3JhcGhRTFR5cGVzW1wiRGJTZWFyY2hSZXN1bHRcIl0sXG5cdGRlbGV0ZWRGb2xkZXJzPzogR3JhcGhRTFR5cGVzW1wiRGVsZXRlZEZvbGRlcnNSZXN1bHRcIl0sXG5cdGRlbGV0ZWRNYWlscz86IEdyYXBoUUxUeXBlc1tcIkRlbGV0ZWRNYWlsc1Jlc3VsdFwiXSxcblx0ZGVsZXRlZFZGaWxlcz86IEdyYXBoUUxUeXBlc1tcIkRlbGV0ZWRWRmlsZXNSZXN1bHRcIl0sXG5cdGZhcT86IEdyYXBoUUxUeXBlc1tcIkZhcVJlc3VsdFwiXSxcblx0ZmlsZT86IEdyYXBoUUxUeXBlc1tcIkZpbGVSZXN1bHRcIl0sXG5cdGZpbGVDb250ZW50PzogR3JhcGhRTFR5cGVzW1wiRmlsZUNvbnRlbnRSZXN1bHRcIl0sXG5cdGZpbGVzU2hhcmVkV2l0aE1lOiBBcnJheTxHcmFwaFFMVHlwZXNbXCJGaWxlU2hhcmVkQ29udGVudFwiXT4sXG5cdGZvbGRlcj86IEdyYXBoUUxUeXBlc1tcIkZvbGRlclJlc3VsdFwiXSxcblx0Zm9sZGVyU2l6ZT86IEdyYXBoUUxUeXBlc1tcIkZvbGRlclNpemVSZXN1bHRcIl0sXG5cdGZvbGRlcnNTaGFyZWRXaXRoTWU/OiBHcmFwaFFMVHlwZXNbXCJGb2xkZXJzU2hhcmVkV2l0aE1lUmVzdWx0XCJdLFxuXHRsaW1pdHM/OiBHcmFwaFFMVHlwZXNbXCJMaW1pdHNSZXN1bHRcIl0sXG5cdG1haWw/OiBHcmFwaFFMVHlwZXNbXCJNYWlsUmVzdWx0XCJdLFxuXHRwYXltZW50SW5mb3M/OiBHcmFwaFFMVHlwZXNbXCJQYXltZW50SW5mb3NSZXN1bHRcIl0sXG5cdHBsYW5zPzogR3JhcGhRTFR5cGVzW1wiUGxhbnNSZXN1bHRcIl0sXG5cdHNoYXJlZEZvbGRlcnM/OiBHcmFwaFFMVHlwZXNbXCJTaGFyZWRGb2xkZXJzUmVzdWx0XCJdLFxuXHRzaGFyZWRWRmlsZXM/OiBHcmFwaFFMVHlwZXNbXCJTaGFyZWRWRmlsZXNSZXN1bHRcIl0sXG5cdHRlc3Q/OiBib29sZWFuLFxuXHR1bnJlYWRSZWNlaXZlZE1haWxzQ291bnQ/OiBHcmFwaFFMVHlwZXNbXCJVbnJlYWRSZWNlaXZlZE1haWxzQ291bnRSZXN1bHRcIl0sXG5cdHVzZXI/OiBHcmFwaFFMVHlwZXNbXCJVc2VyUmVzdWx0XCJdLFxuXHR2RmlsZT86IEdyYXBoUUxUeXBlc1tcIlZGaWxlUmVzdWx0XCJdLFxuXHR2RmlsZXNTaGFyZWRXaXRoTWU/OiBHcmFwaFFMVHlwZXNbXCJWRmlsZXNTaGFyZWRXaXRoTWVSZXN1bHRcIl0sXG5cdHVzZXJMaXN0PzogR3JhcGhRTFR5cGVzW1wiVXNlckxpc3RSZXN1bHRcIl1cbn07XG5cdFtcIk11dGF0aW9uXCJdOiB7XG5cdF9fdHlwZW5hbWU6IFwiTXV0YXRpb25cIixcblx0YWRkRmlsZVRvSGlzdG9yeTogR3JhcGhRTFR5cGVzW1wiVkZpbGVcIl0sXG5cdGNhbmNlbFBheW1lbnQ/OiBib29sZWFuLFxuXHRjcmVhdGVBcHBsaWNhdGlvbj86IHN0cmluZyxcblx0Y3JlYXRlRHJhZnRNYWlsPzogR3JhcGhRTFR5cGVzW1wiTWFpbFwiXSxcblx0Y3JlYXRlRm9sZGVyPzogR3JhcGhRTFR5cGVzW1wiRm9sZGVyXCJdLFxuXHRkYkNvbmZpZzogR3JhcGhRTFR5cGVzW1wiSnNvblwiXSxcblx0ZGJTZXQ/OiBHcmFwaFFMVHlwZXNbXCJKc29uXCJdLFxuXHRkZWxldGVEcmFmdE1haWw/OiBib29sZWFuLFxuXHRkZWxldGVGaWxlOiBib29sZWFuLFxuXHRkZWxldGVGb2xkZXI/OiBib29sZWFuLFxuXHRkZWxldGVGb2xkZXJDbG91ZFRyYXNoPzogYm9vbGVhbixcblx0ZGVsZXRlRm9sZGVyU2hhcmluZzogYm9vbGVhbixcblx0ZGVsZXRlTWFpbDogYm9vbGVhbixcblx0ZGVsZXRlTWFpbFRyYXNoOiBib29sZWFuLFxuXHRkZWxldGVVc2VyPzogYm9vbGVhbixcblx0ZGVsZXRlVkZpbGU6IGJvb2xlYW4sXG5cdGRlbGV0ZVZGaWxlQ2xvdWRUcmFzaD86IGJvb2xlYW4sXG5cdGRlbGV0ZVZGaWxlU2hhcmluZzogYm9vbGVhbixcblx0ZHVwbGljYXRlVkZpbGU6IGJvb2xlYW4sXG5cdGVtcHR5Q2xvdWRUcmFzaD86IGJvb2xlYW4sXG5cdGVtcHR5TWFpbFRyYXNoPzogYm9vbGVhbixcblx0bG9nb3V0PzogYm9vbGVhbixcblx0bW92ZUZpbGVzPzogYm9vbGVhbixcblx0bW92ZUZvbGRlcnM/OiBib29sZWFuLFxuXHRwYXk6IGJvb2xlYW4sXG5cdHJlYWRNYWlsPzogYm9vbGVhbixcblx0cmVjb3ZlckZvbGRlcj86IGJvb2xlYW4sXG5cdHJlY292ZXJNYWlsOiBib29sZWFuLFxuXHRyZWNvdmVyVkZpbGU6IGJvb2xlYW4sXG5cdHNhdmVJbkNsb3VkOiBHcmFwaFFMVHlwZXNbXCJWRmlsZVwiXSxcblx0c2VuZERyYWZ0TWFpbD86IGJvb2xlYW4sXG5cdHNlbmRPbmVNYWlsPzogYm9vbGVhbixcblx0c2VuZFJlcG9ydD86IEdyYXBoUUxUeXBlc1tcIlJlcG9ydFwiXSxcblx0c2hhcmVGaWxlSW5IaXN0b3J5OiBib29sZWFuLFxuXHRzaGFyZUZvbGRlcjogR3JhcGhRTFR5cGVzW1wiU2hhcmVGb2xkZXJSZXNwb25zZVwiXSxcblx0c2hhcmVGb2xkZXJGaW5pc2g/OiBib29sZWFuLFxuXHRzaGFyZVZGaWxlPzogYm9vbGVhbixcblx0dW5yZWFkTWFpbD86IGJvb2xlYW4sXG5cdHVwZGF0ZUFwcE5vdGlmaWNhdGlvbnM/OiBHcmFwaFFMVHlwZXNbXCJVc2VyQXBwTm90aWZpY2F0aW9uc1wiXSxcblx0dXBkYXRlQXBwU2V0dGluZ3M6IEdyYXBoUUxUeXBlc1tcIlVzZXJBcHBTZXR0aW5nc1wiXSxcblx0dXBkYXRlRHJhZnRNYWlsPzogR3JhcGhRTFR5cGVzW1wiTWFpbFwiXSxcblx0dXBkYXRlRmlsZT86IEdyYXBoUUxUeXBlc1tcIlZGaWxlXCJdLFxuXHR1cGRhdGVGb2xkZXI/OiBHcmFwaFFMVHlwZXNbXCJGb2xkZXJcIl0sXG5cdHVwZGF0ZVByb2ZpbGU/OiBHcmFwaFFMVHlwZXNbXCJVc2VyXCJdLFxuXHR1cGxvYWRBbm9ueW1vdXM/OiBHcmFwaFFMVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl0sXG5cdHVwbG9hZEZpbGU/OiBHcmFwaFFMVHlwZXNbXCJGaWxlUmVzcG9uc2VcIl0sXG5cdHVwbG9hZEZpbGVFbmQ/OiBzdHJpbmcsXG5cdHVwbG9hZEZpbGVQYXJ0RW5kOiBib29sZWFuLFxuXHRjaGFuZ2VVc2VyUGxhbj86IEdyYXBoUUxUeXBlc1tcIlVzZXJcIl1cbn07XG5cdFtcIlN1YnNjcmlwdGlvblwiXToge1xuXHRfX3R5cGVuYW1lOiBcIlN1YnNjcmlwdGlvblwiLFxuXHR0ZXN0OiBib29sZWFuXG59XG4gICAgfVxuZXhwb3J0IGNvbnN0IGVudW0gTGFuZyB7XG5cdGZyID0gXCJmclwiLFxuXHRlbiA9IFwiZW5cIixcblx0aXQgPSBcIml0XCIsXG5cdGRlID0gXCJkZVwiLFxuXHRwdCA9IFwicHRcIixcblx0amEgPSBcImphXCIsXG5cdGVzID0gXCJlc1wiLFxuXHRubCA9IFwibmxcIixcblx0cGwgPSBcInBsXCIsXG5cdHJ1ID0gXCJydVwiLFxuXHR6aCA9IFwiemhcIixcblx0YXIgPSBcImFyXCIsXG5cdGhlID0gXCJoZVwiLFxuXHRoaSA9IFwiaGlcIixcblx0a28gPSBcImtvXCJcbn1cbmV4cG9ydCBjb25zdCBlbnVtIFBsYW5LaW5kIHtcblx0ZnJlZSA9IFwiZnJlZVwiLFxuXHRiYXNpYyA9IFwiYmFzaWNcIixcblx0YWR2YW5jZWQgPSBcImFkdmFuY2VkXCIsXG5cdHBybyA9IFwicHJvXCJcbn1cbmV4cG9ydCBjb25zdCBlbnVtIFVzZXJSb2xlIHtcblx0dXNlciA9IFwidXNlclwiLFxuXHRhZG1pbiA9IFwiYWRtaW5cIlxufVxuZXhwb3J0IGNvbnN0IGVudW0gTWFpbFR5cGUge1xuXHRzZW50ID0gXCJzZW50XCIsXG5cdHJlY2VpdmVkID0gXCJyZWNlaXZlZFwiXG59XG5leHBvcnQgY29uc3QgZW51bSBSaWdodHMge1xuXHRhZG1pbiA9IFwiYWRtaW5cIixcblx0d3JpdGUgPSBcIndyaXRlXCIsXG5cdHJlYWQgPSBcInJlYWRcIlxufVxuZXhwb3J0IGNvbnN0IGVudW0gRmlsZUNvbnRlbnRUeXBlIHtcblx0Y2xvdWQgPSBcImNsb3VkXCIsXG5cdHNlbnRfbWFpbCA9IFwic2VudF9tYWlsXCIsXG5cdHJlY2VpdmVkX21haWwgPSBcInJlY2VpdmVkX21haWxcIlxufVxuZXhwb3J0IGNvbnN0IGVudW0gUGF5SW5wdXRUeXBlIHtcblx0c2VjdXJlID0gXCJzZWN1cmVcIixcblx0Y2xhc3NpYyA9IFwiY2xhc3NpY1wiXG59XG5leHBvcnQgY2xhc3MgR3JhcGhRTEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyByZXNwb25zZTogR3JhcGhRTFJlc3BvbnNlKSB7XG4gICAgICBzdXBlcihcIlwiKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2UpO1xuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgIHJldHVybiBcIkdyYXBoUUwgUmVzcG9uc2UgRXJyb3JcIjtcbiAgICB9XG4gIH1cblxuXG5leHBvcnQgdHlwZSBVbndyYXBQcm9taXNlPFQ+ID0gVCBleHRlbmRzIFByb21pc2U8aW5mZXIgUj4gPyBSIDogVDtcbmV4cG9ydCB0eXBlIFpldXNTdGF0ZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBQcm9taXNlPGFueT4+ID0gTm9uTnVsbGFibGU8XG4gIFVud3JhcFByb21pc2U8UmV0dXJuVHlwZTxUPj5cbj47XG5leHBvcnQgdHlwZSBaZXVzSG9vazxcbiAgVCBleHRlbmRzIChcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApID0+IFJlY29yZDxzdHJpbmcsICguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxhbnk+PixcbiAgTiBleHRlbmRzIGtleW9mIFJldHVyblR5cGU8VD5cbj4gPSBaZXVzU3RhdGU8UmV0dXJuVHlwZTxUPltOXT47XG5cbnR5cGUgV2l0aFR5cGVOYW1lVmFsdWU8VD4gPSBUICYge1xuICBfX3R5cGVuYW1lPzogYm9vbGVhbjtcbn07XG50eXBlIEFsaWFzVHlwZTxUPiA9IFdpdGhUeXBlTmFtZVZhbHVlPFQ+ICYge1xuICBfX2FsaWFzPzogUmVjb3JkPHN0cmluZywgV2l0aFR5cGVOYW1lVmFsdWU8VD4+O1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgR3JhcGhRTFJlc3BvbnNlIHtcbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGVycm9ycz86IEFycmF5PHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gIH0+O1xufVxudHlwZSBEZWVwQW5pZnk8VD4gPSB7XG4gIFtQIGluIGtleW9mIFRdPzogYW55O1xufTtcbnR5cGUgSXNQYXlMb2FkPFQ+ID0gVCBleHRlbmRzIFthbnksIGluZmVyIFBheUxvYWRdID8gUGF5TG9hZCA6IFQ7XG50eXBlIElzQXJyYXk8VCwgVT4gPSBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgUj4gPyBJbnB1dFR5cGU8UiwgVT5bXSA6IElucHV0VHlwZTxULCBVPjtcbnR5cGUgRmxhdHRlbkFycmF5PFQ+ID0gVCBleHRlbmRzIEFycmF5PGluZmVyIFI+ID8gUiA6IFQ7XG5cbnR5cGUgSXNJbnRlcmZhY2VkPFNSQyBleHRlbmRzIERlZXBBbmlmeTxEU1Q+LCBEU1Q+ID0gRmxhdHRlbkFycmF5PFNSQz4gZXh0ZW5kcyBaRVVTX0lOVEVSRkFDRVMgfCBaRVVTX1VOSU9OU1xuICA/IHtcbiAgICAgIFtQIGluIGtleW9mIFNSQ106IFNSQ1tQXSBleHRlbmRzICdfX3VuaW9uJyAmIGluZmVyIFJcbiAgICAgICAgPyBQIGV4dGVuZHMga2V5b2YgRFNUXG4gICAgICAgICAgPyBJc0FycmF5PFIsICdfX3R5cGVuYW1lJyBleHRlbmRzIGtleW9mIERTVCA/IERTVFtQXSAmIHsgX190eXBlbmFtZTogdHJ1ZSB9IDogRFNUW1BdPlxuICAgICAgICAgIDoge31cbiAgICAgICAgOiBuZXZlcjtcbiAgICB9W2tleW9mIERTVF0gJlxuICAgICAge1xuICAgICAgICBbUCBpbiBrZXlvZiBPbWl0PFxuICAgICAgICAgIFBpY2s8XG4gICAgICAgICAgICBTUkMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFtQIGluIGtleW9mIERTVF06IFNSQ1tQXSBleHRlbmRzICdfX3VuaW9uJyA/IG5ldmVyIDogUDtcbiAgICAgICAgICAgIH1ba2V5b2YgRFNUXVxuICAgICAgICAgID4sXG4gICAgICAgICAgJ19fdHlwZW5hbWUnXG4gICAgICAgID5dOiBJc1BheUxvYWQ8RFNUW1BdPiBleHRlbmRzIGJvb2xlYW4gPyBTUkNbUF0gOiBJc0FycmF5PFNSQ1tQXSwgRFNUW1BdPjtcbiAgICAgIH1cbiAgOiB7XG4gICAgICBbUCBpbiBrZXlvZiBQaWNrPFNSQywga2V5b2YgRFNUPl06IElzUGF5TG9hZDxEU1RbUF0+IGV4dGVuZHMgYm9vbGVhbiA/IFNSQ1tQXSA6IElzQXJyYXk8U1JDW1BdLCBEU1RbUF0+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIE1hcFR5cGU8U1JDLCBEU1Q+ID0gU1JDIGV4dGVuZHMgRGVlcEFuaWZ5PERTVD4gPyBJc0ludGVyZmFjZWQ8U1JDLCBEU1Q+IDogbmV2ZXI7XG5leHBvcnQgdHlwZSBJbnB1dFR5cGU8U1JDLCBEU1Q+ID0gSXNQYXlMb2FkPERTVD4gZXh0ZW5kcyB7IF9fYWxpYXM6IGluZmVyIFIgfVxuICA/IHtcbiAgICAgIFtQIGluIGtleW9mIFJdOiBNYXBUeXBlPFNSQywgUltQXT47XG4gICAgfSAmXG4gICAgICBNYXBUeXBlPFNSQywgT21pdDxJc1BheUxvYWQ8RFNUPiwgJ19fYWxpYXMnPj5cbiAgOiBNYXBUeXBlPFNSQywgSXNQYXlMb2FkPERTVD4+O1xudHlwZSBGdW5jPFAgZXh0ZW5kcyBhbnlbXSwgUj4gPSAoLi4uYXJnczogUCkgPT4gUjtcbnR5cGUgQW55RnVuYyA9IEZ1bmM8YW55LCBhbnk+O1xuZXhwb3J0IHR5cGUgQXJnc1R5cGU8RiBleHRlbmRzIEFueUZ1bmM+ID0gRiBleHRlbmRzIEZ1bmM8aW5mZXIgUCwgYW55PiA/IFAgOiBuZXZlcjtcbmV4cG9ydCB0eXBlIE9wZXJhdGlvbk9wdGlvbnMgPSB7XG4gIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uVG9HcmFwaFFMPFosIFQ+ID0ge1xuICB3czogV2ViU29ja2V0O1xuICBvbjogKGZuOiAoYXJnczogSW5wdXRUeXBlPFQsIFo+KSA9PiB2b2lkKSA9PiB2b2lkO1xuICBvZmY6IChmbjogKGU6IHsgZGF0YT86IElucHV0VHlwZTxULCBaPjsgY29kZT86IG51bWJlcjsgcmVhc29uPzogc3RyaW5nOyBtZXNzYWdlPzogc3RyaW5nIH0pID0+IHZvaWQpID0+IHZvaWQ7XG4gIGVycm9yOiAoZm46IChlOiB7IGRhdGE/OiBJbnB1dFR5cGU8VCwgWj47IGVycm9ycz86IHN0cmluZ1tdIH0pID0+IHZvaWQpID0+IHZvaWQ7XG4gIG9wZW46ICgpID0+IHZvaWQ7XG59O1xuZXhwb3J0IHR5cGUgU2VsZWN0aW9uRnVuY3Rpb248Vj4gPSA8VD4odDogVCB8IFYpID0+IFQ7XG5leHBvcnQgdHlwZSBmZXRjaE9wdGlvbnMgPSBBcmdzVHlwZTx0eXBlb2YgZmV0Y2g+O1xudHlwZSB3ZWJzb2NrZXRPcHRpb25zID0gdHlwZW9mIFdlYlNvY2tldCBleHRlbmRzIG5ldyAoXG4gIC4uLmFyZ3M6IGluZmVyIFJcbikgPT4gV2ViU29ja2V0XG4gID8gUlxuICA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgY2hhaW5PcHRpb25zID1cbiAgfCBbZmV0Y2hPcHRpb25zWzBdLCBmZXRjaE9wdGlvbnNbMV0gJiB7d2Vic29ja2V0Pzogd2Vic29ja2V0T3B0aW9uc31dXG4gIHwgW2ZldGNoT3B0aW9uc1swXV07XG5leHBvcnQgdHlwZSBGZXRjaEZ1bmN0aW9uID0gKFxuICBxdWVyeTogc3RyaW5nLFxuICB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuKSA9PiBQcm9taXNlPGFueT47XG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25GdW5jdGlvbiA9IChxdWVyeTogc3RyaW5nKSA9PiBhbnk7XG50eXBlIE5vdFVuZGVmaW5lZDxUPiA9IFQgZXh0ZW5kcyB1bmRlZmluZWQgPyBuZXZlciA6IFQ7XG5leHBvcnQgdHlwZSBSZXNvbHZlclR5cGU8Rj4gPSBOb3RVbmRlZmluZWQ8RiBleHRlbmRzIFtpbmZlciBBUkdTLCBhbnldID8gQVJHUyA6IHVuZGVmaW5lZD47XG5cblxuXG5leHBvcnQgY29uc3QgWmV1c1NlbGVjdCA9IDxUPigpID0+ICgodDogYW55KSA9PiB0KSBhcyBTZWxlY3Rpb25GdW5jdGlvbjxUPjtcblxuZXhwb3J0IGNvbnN0IFNjYWxhclJlc29sdmVyID0gKHNjYWxhcjogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XG4gIHN3aXRjaCAoc2NhbGFyKSB7XG4gICAgY2FzZSAnU3RyaW5nJzpcbiAgICAgIHJldHVybiAgYCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWA7XG4gICAgY2FzZSAnSW50JzpcbiAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICAgIGNhc2UgJ0Zsb2F0JzpcbiAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICAgIGNhc2UgJ0Jvb2xlYW4nOlxuICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gICAgY2FzZSAnSUQnOlxuICAgICAgcmV0dXJuIGBcIiR7dmFsdWV9XCJgO1xuICAgIGNhc2UgJ2VudW0nOlxuICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG4gICAgY2FzZSAnc2NhbGFyJzpcbiAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cblxuZXhwb3J0IGNvbnN0IFR5cGVzUHJvcHNSZXNvbHZlciA9ICh7XG4gICAgdmFsdWUsXG4gICAgdHlwZSxcbiAgICBuYW1lLFxuICAgIGtleSxcbiAgICBibG9ja0FycmF5c1xufToge1xuICAgIHZhbHVlOiBhbnk7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgYmxvY2tBcnJheXM/OiBib29sZWFuO1xufSk6IHN0cmluZyA9PiB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBgbnVsbGA7XG4gICAgfVxuICAgIGxldCByZXNvbHZlZFZhbHVlID0gQWxsVHlwZXNQcm9wc1t0eXBlXVtuYW1lXTtcbiAgICBpZiAoa2V5KSB7XG4gICAgICAgIHJlc29sdmVkVmFsdWUgPSByZXNvbHZlZFZhbHVlW2tleV07XG4gICAgfVxuICAgIGlmICghcmVzb2x2ZWRWYWx1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlICR7dHlwZX0gJHtuYW1lfSR7a2V5ID8gYCAke2tleX1gIDogJyd9YClcbiAgICB9XG4gICAgY29uc3QgdHlwZVJlc29sdmVkID0gcmVzb2x2ZWRWYWx1ZS50eXBlO1xuICAgIGNvbnN0IGlzQXJyYXkgPSByZXNvbHZlZFZhbHVlLmFycmF5O1xuICAgIGNvbnN0IGlzQXJyYXlSZXF1aXJlZCA9IHJlc29sdmVkVmFsdWUuYXJyYXlSZXF1aXJlZDtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5zdGFydHNXaXRoKGBaRVVTX1ZBUiRgKSkge1xuICAgICAgICBjb25zdCBpc1JlcXVpcmVkID0gcmVzb2x2ZWRWYWx1ZS5yZXF1aXJlZCA/ICchJyA6ICcnO1xuICAgICAgICBsZXQgdCA9IGAke3R5cGVSZXNvbHZlZH1gO1xuICAgICAgICBpZiAoaXNBcnJheSkge1xuICAgICAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIHQgPSBgJHt0fSFgO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0ID0gYFske3R9XWA7XG4gICAgICAgICAgaWYoaXNBcnJheVJlcXVpcmVkKXtcbiAgICAgICAgICAgIHQgPSBgJHt0fSFgO1xuICAgICAgICAgIH1cbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICB0ID0gYCR7dH0hYDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGBcXCQke3ZhbHVlLnNwbGl0KGBaRVVTX1ZBUiRgKVsxXX1fX1pFVVNfVkFSX18ke3R9YDtcbiAgICB9XG4gICAgaWYgKGlzQXJyYXkgJiYgIWJsb2NrQXJyYXlzKSB7XG4gICAgICAgIHJldHVybiBgWyR7dmFsdWVcbiAgICAgICAgLm1hcCgodjogYW55KSA9PiBUeXBlc1Byb3BzUmVzb2x2ZXIoeyB2YWx1ZTogdiwgdHlwZSwgbmFtZSwga2V5LCBibG9ja0FycmF5czogdHJ1ZSB9KSlcbiAgICAgICAgLmpvaW4oJywnKX1dYDtcbiAgICB9XG4gICAgY29uc3QgcmVzbG92ZWRTY2FsYXIgPSBTY2FsYXJSZXNvbHZlcih0eXBlUmVzb2x2ZWQsIHZhbHVlKTtcbiAgICBpZiAoIXJlc2xvdmVkU2NhbGFyKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkVHlwZSA9IEFsbFR5cGVzUHJvcHNbdHlwZVJlc29sdmVkXTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvbHZlZFR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IGFyZ3NLZXlzID0gT2JqZWN0LmtleXMocmVzb2x2ZWRUeXBlKTtcbiAgICAgICAgcmV0dXJuIGB7JHthcmdzS2V5c1xuICAgICAgICAgICAgLmZpbHRlcigoYWspID0+IHZhbHVlW2FrXSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgIChhaykgPT4gYCR7YWt9OiR7VHlwZXNQcm9wc1Jlc29sdmVyKHsgdmFsdWU6IHZhbHVlW2FrXSwgdHlwZTogdHlwZVJlc29sdmVkLCBuYW1lOiBhayB9KX1gXG4gICAgICAgICAgICApfX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTY2FsYXJSZXNvbHZlcihBbGxUeXBlc1Byb3BzW3R5cGVSZXNvbHZlZF0sIHZhbHVlKSBhcyBzdHJpbmc7XG4gICAgfVxuICAgIHJldHVybiByZXNsb3ZlZFNjYWxhcjtcbn07XG5cblxuY29uc3QgaXNBcnJheUZ1bmN0aW9uID0gKFxuICBwYXJlbnQ6IHN0cmluZ1tdLFxuICBhOiBhbnlbXVxuKSA9PiB7XG4gIGNvbnN0IFt2YWx1ZXMsIHJdID0gYTtcbiAgY29uc3QgW21haW5LZXksIGtleSwgLi4ua2V5c10gPSBwYXJlbnQ7XG4gIGNvbnN0IGtleVZhbHVlcyA9IE9iamVjdC5rZXlzKHZhbHVlcykuZmlsdGVyKChrKSA9PiB0eXBlb2YgdmFsdWVzW2tdICE9PSAndW5kZWZpbmVkJyk7XG5cbiAgaWYgKCFrZXlzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGtleVZhbHVlcy5sZW5ndGggPiAwXG4gICAgICAgID8gYCgke2tleVZhbHVlc1xuICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgKHYpID0+XG4gICAgICAgICAgICAgICAgYCR7dn06JHtUeXBlc1Byb3BzUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlc1t2XSxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IG1haW5LZXksXG4gICAgICAgICAgICAgICAgICBuYW1lOiBrZXksXG4gICAgICAgICAgICAgICAgICBrZXk6IHZcbiAgICAgICAgICAgICAgICB9KX1gXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuam9pbignLCcpfSkke3IgPyB0cmF2ZXJzZVRvU2Vla0FycmF5cyhwYXJlbnQsIHIpIDogJyd9YFxuICAgICAgICA6IHRyYXZlcnNlVG9TZWVrQXJyYXlzKHBhcmVudCwgcik7XG4gICAgfVxuXG4gIGNvbnN0IFt0eXBlUmVzb2x2ZXJLZXldID0ga2V5cy5zcGxpY2Uoa2V5cy5sZW5ndGggLSAxLCAxKTtcbiAgbGV0IHZhbHVlVG9SZXNvbHZlID0gUmV0dXJuVHlwZXNbbWFpbktleV1ba2V5XTtcbiAgZm9yIChjb25zdCBrIG9mIGtleXMpIHtcbiAgICB2YWx1ZVRvUmVzb2x2ZSA9IFJldHVyblR5cGVzW3ZhbHVlVG9SZXNvbHZlXVtrXTtcbiAgfVxuXG4gIGNvbnN0IGFyZ3VtZW50U3RyaW5nID1cbiAgICBrZXlWYWx1ZXMubGVuZ3RoID4gMFxuICAgICAgPyBgKCR7a2V5VmFsdWVzXG4gICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICh2KSA9PlxuICAgICAgICAgICAgICBgJHt2fToke1R5cGVzUHJvcHNSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlc1t2XSxcbiAgICAgICAgICAgICAgICB0eXBlOiB2YWx1ZVRvUmVzb2x2ZSxcbiAgICAgICAgICAgICAgICBuYW1lOiB0eXBlUmVzb2x2ZXJLZXksXG4gICAgICAgICAgICAgICAga2V5OiB2XG4gICAgICAgICAgICAgIH0pfWBcbiAgICAgICAgICApXG4gICAgICAgICAgLmpvaW4oJywnKX0pJHtyID8gdHJhdmVyc2VUb1NlZWtBcnJheXMocGFyZW50LCByKSA6ICcnfWBcbiAgICAgIDogdHJhdmVyc2VUb1NlZWtBcnJheXMocGFyZW50LCByKTtcbiAgcmV0dXJuIGFyZ3VtZW50U3RyaW5nO1xufTtcblxuXG5jb25zdCByZXNvbHZlS1YgPSAoazogc3RyaW5nLCB2OiBib29sZWFuIHwgc3RyaW5nIHwgeyBbeDogc3RyaW5nXTogYm9vbGVhbiB8IHN0cmluZyB9KSA9PlxuICB0eXBlb2YgdiA9PT0gJ2Jvb2xlYW4nID8gayA6IHR5cGVvZiB2ID09PSAnb2JqZWN0JyA/IGAke2t9eyR7b2JqZWN0VG9UcmVlKHYpfX1gIDogYCR7a30ke3Z9YDtcblxuXG5jb25zdCBvYmplY3RUb1RyZWUgPSAobzogeyBbeDogc3RyaW5nXTogYm9vbGVhbiB8IHN0cmluZyB9KTogc3RyaW5nID0+XG4gIGB7JHtPYmplY3Qua2V5cyhvKS5tYXAoKGspID0+IGAke3Jlc29sdmVLVihrLCBvW2tdKX1gKS5qb2luKCcgJyl9fWA7XG5cblxuY29uc3QgdHJhdmVyc2VUb1NlZWtBcnJheXMgPSAocGFyZW50OiBzdHJpbmdbXSwgYT86IGFueSk6IHN0cmluZyA9PiB7XG4gIGlmICghYSkgcmV0dXJuICcnO1xuICBpZiAoT2JqZWN0LmtleXMoYSkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGxldCBiOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGlmIChBcnJheS5pc0FycmF5KGEpKSB7XG4gICAgcmV0dXJuIGlzQXJyYXlGdW5jdGlvbihbLi4ucGFyZW50XSwgYSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHR5cGVvZiBhID09PSAnb2JqZWN0Jykge1xuICAgICAgT2JqZWN0LmtleXMoYSlcbiAgICAgICAgLmZpbHRlcigoaykgPT4gdHlwZW9mIGFba10gIT09ICd1bmRlZmluZWQnKVxuICAgICAgICAuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgICBpZiAoayA9PT0gJ19fYWxpYXMnKSB7XG4gICAgICAgICAgT2JqZWN0LmtleXMoYVtrXSkuZm9yRWFjaCgoYWxpYXNLZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFsaWFzT3BlcmF0aW9ucyA9IGFba11bYWxpYXNLZXldO1xuICAgICAgICAgICAgY29uc3QgYWxpYXNPcGVyYXRpb25OYW1lID0gT2JqZWN0LmtleXMoYWxpYXNPcGVyYXRpb25zKVswXTtcbiAgICAgICAgICAgIGNvbnN0IGFsaWFzT3BlcmF0aW9uID0gYWxpYXNPcGVyYXRpb25zW2FsaWFzT3BlcmF0aW9uTmFtZV07XG4gICAgICAgICAgICBiW1xuICAgICAgICAgICAgICBgJHthbGlhc09wZXJhdGlvbk5hbWV9X19hbGlhc19fJHthbGlhc0tleX06ICR7YWxpYXNPcGVyYXRpb25OYW1lfWBcbiAgICAgICAgICAgIF0gPSB0cmF2ZXJzZVRvU2Vla0FycmF5cyhbLi4ucGFyZW50LCBhbGlhc09wZXJhdGlvbk5hbWVdLCBhbGlhc09wZXJhdGlvbik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYltrXSA9IHRyYXZlcnNlVG9TZWVrQXJyYXlzKFsuLi5wYXJlbnQsIGtdLCBhW2tdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdFRvVHJlZShiKTtcbn07XG5cblxuY29uc3QgYnVpbGRRdWVyeSA9ICh0eXBlOiBzdHJpbmcsIGE/OiBSZWNvcmQ8YW55LCBhbnk+KSA9PlxuICB0cmF2ZXJzZVRvU2Vla0FycmF5cyhbdHlwZV0sIGEpO1xuXG5cbmNvbnN0IGluc3BlY3RWYXJpYWJsZXMgPSAocXVlcnk6IHN0cmluZykgPT4ge1xuICBjb25zdCByZWdleCA9IC9cXCRcXGJcXHcqX19aRVVTX1ZBUl9fXFxbP1teIV5cXF1eXFxzXixeXFwpXlxcfV0qWyFdP1tcXF1dP1shXT8vZztcbiAgbGV0IHJlc3VsdDtcbiAgY29uc3QgQWxsVmFyaWFibGVzOiBzdHJpbmdbXSA9IFtdO1xuICB3aGlsZSAoKHJlc3VsdCA9IHJlZ2V4LmV4ZWMocXVlcnkpKSkge1xuICAgIGlmIChBbGxWYXJpYWJsZXMuaW5jbHVkZXMocmVzdWx0WzBdKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIEFsbFZhcmlhYmxlcy5wdXNoKHJlc3VsdFswXSk7XG4gIH1cbiAgaWYgKCFBbGxWYXJpYWJsZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG4gIGxldCBmaWx0ZXJlZFF1ZXJ5ID0gcXVlcnk7XG4gIEFsbFZhcmlhYmxlcy5mb3JFYWNoKCh2YXJpYWJsZSkgPT4ge1xuICAgIHdoaWxlIChmaWx0ZXJlZFF1ZXJ5LmluY2x1ZGVzKHZhcmlhYmxlKSkge1xuICAgICAgZmlsdGVyZWRRdWVyeSA9IGZpbHRlcmVkUXVlcnkucmVwbGFjZSh2YXJpYWJsZSwgdmFyaWFibGUuc3BsaXQoJ19fWkVVU19WQVJfXycpWzBdKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gYCgke0FsbFZhcmlhYmxlcy5tYXAoKGEpID0+IGEuc3BsaXQoJ19fWkVVU19WQVJfXycpKVxuICAgIC5tYXAoKFt2YXJpYWJsZU5hbWUsIHZhcmlhYmxlVHlwZV0pID0+IGAke3ZhcmlhYmxlTmFtZX06JHt2YXJpYWJsZVR5cGV9YClcbiAgICAuam9pbignLCAnKX0pJHtmaWx0ZXJlZFF1ZXJ5fWA7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBxdWVyeUNvbnN0cnVjdCA9ICh0OiAncXVlcnknIHwgJ211dGF0aW9uJyB8ICdzdWJzY3JpcHRpb24nLCB0TmFtZTogc3RyaW5nLCBvcGVyYXRpb25OYW1lPzogc3RyaW5nKSA9PiAobzogUmVjb3JkPGFueSwgYW55PikgPT5cbiAgYCR7dC50b0xvd2VyQ2FzZSgpfSR7b3BlcmF0aW9uTmFtZSA/ICcgJyArIG9wZXJhdGlvbk5hbWUgOiAnJ30ke2luc3BlY3RWYXJpYWJsZXMoYnVpbGRRdWVyeSh0TmFtZSwgbykpfWA7XG5cblxuZXhwb3J0IGNvbnN0IGZ1bGxDaGFpbkNvbnN0cnVjdCA9IChmbjogRmV0Y2hGdW5jdGlvbikgPT4gKHQ6ICdxdWVyeScgfCAnbXV0YXRpb24nIHwgJ3N1YnNjcmlwdGlvbicsIHROYW1lOiBzdHJpbmcpID0+IChcbiAgbzogUmVjb3JkPGFueSwgYW55PixcbiAgb3B0aW9ucz86IE9wZXJhdGlvbk9wdGlvbnMsXG4pID0+IGZuKHF1ZXJ5Q29uc3RydWN0KHQsIHROYW1lLCBvcHRpb25zPy5vcGVyYXRpb25OYW1lKShvKSwgb3B0aW9ucz8udmFyaWFibGVzKS50aGVuKChyOmFueSkgPT4ge1xuICBzZWVrRm9yQWxpYXNlcyhyKVxuICByZXR1cm4gclxufSk7XG5cblxuZXhwb3J0IGNvbnN0IGZ1bGxTdWJzY3JpcHRpb25Db25zdHJ1Y3QgPSAoZm46IFN1YnNjcmlwdGlvbkZ1bmN0aW9uKSA9PiAoXG4gIHQ6ICdxdWVyeScgfCAnbXV0YXRpb24nIHwgJ3N1YnNjcmlwdGlvbicsXG4gIHROYW1lOiBzdHJpbmcsXG4pID0+IChvOiBSZWNvcmQ8YW55LCBhbnk+LCBvcHRpb25zPzogT3BlcmF0aW9uT3B0aW9ucykgPT5cbiAgZm4ocXVlcnlDb25zdHJ1Y3QodCwgdE5hbWUsIG9wdGlvbnM/Lm9wZXJhdGlvbk5hbWUpKG8pKTtcblxuXG5jb25zdCBzZWVrRm9yQWxpYXNlcyA9IChyZXNwb25zZTogYW55KSA9PiB7XG4gIGNvbnN0IHRyYXZlcnNlQWxpYXMgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdmFsdWUuZm9yRWFjaChzZWVrRm9yQWxpYXNlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHNlZWtGb3JBbGlhc2VzKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGlmICh0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnICYmIHJlc3BvbnNlKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHJlc3BvbnNlKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGtleXMuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSByZXNwb25zZVtrXTtcbiAgICAgIGlmIChrLmluZGV4T2YoJ19fYWxpYXNfXycpICE9PSAtMSkge1xuICAgICAgICBjb25zdCBbb3BlcmF0aW9uLCBhbGlhc10gPSBrLnNwbGl0KCdfX2FsaWFzX18nKTtcbiAgICAgICAgcmVzcG9uc2VbYWxpYXNdID0ge1xuICAgICAgICAgIFtvcGVyYXRpb25dOiB2YWx1ZSxcbiAgICAgICAgfTtcbiAgICAgICAgZGVsZXRlIHJlc3BvbnNlW2tdO1xuICAgICAgfVxuICAgICAgdHJhdmVyc2VBbGlhcyh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cbn07XG5cblxuZXhwb3J0IGNvbnN0ICQgPSAodDogVGVtcGxhdGVTdHJpbmdzQXJyYXkpOiBhbnkgPT4gYFpFVVNfVkFSJCR7dC5qb2luKCcnKX1gO1xuXG5cbmV4cG9ydCBjb25zdCByZXNvbHZlckZvciA9IDxcbiAgWCxcbiAgVCBleHRlbmRzIGtleW9mIFZhbHVlVHlwZXMsXG4gIFogZXh0ZW5kcyBrZXlvZiBWYWx1ZVR5cGVzW1RdLFxuPihcbiAgX3R5cGU6IFQsXG4gIF9maWVsZDogWixcbiAgZm46IChcbiAgICBhcmdzOiBSZXF1aXJlZDxWYWx1ZVR5cGVzW1RdPltaXSBleHRlbmRzIFtpbmZlciBJbnB1dCwgYW55XSA/IElucHV0IDogYW55LFxuICAgIHNvdXJjZTogYW55LFxuICApID0+IFogZXh0ZW5kcyBrZXlvZiBNb2RlbFR5cGVzW1RdID8gTW9kZWxUeXBlc1tUXVtaXSB8IFByb21pc2U8TW9kZWxUeXBlc1tUXVtaXT4gfCBYIDogYW55LFxuKSA9PiBmbiBhcyAoYXJncz86IGFueSxzb3VyY2U/OiBhbnkpID0+IGFueTtcblxuXG5jb25zdCBoYW5kbGVGZXRjaFJlc3BvbnNlID0gKFxuICByZXNwb25zZTogUGFyYW1ldGVyczxFeHRyYWN0PFBhcmFtZXRlcnM8UmV0dXJuVHlwZTx0eXBlb2YgZmV0Y2g+Wyd0aGVuJ10+WzBdLCBGdW5jdGlvbj4+WzBdXG4pOiBQcm9taXNlPEdyYXBoUUxSZXNwb25zZT4gPT4ge1xuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHtcbiAgICAgIHJlc3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgICB0cnkgeyByZWplY3QoSlNPTi5wYXJzZSh0ZXh0KSk7IH1cbiAgICAgICAgY2F0Y2ggKGVycikgeyByZWplY3QodGV4dCk7IH1cbiAgICAgIH0pLmNhdGNoKHJlamVjdCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhcGlGZXRjaCA9IChvcHRpb25zOiBmZXRjaE9wdGlvbnMpID0+IChxdWVyeTogc3RyaW5nLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSkgPT4ge1xuICAgIGxldCBmZXRjaEZ1bmN0aW9uID0gZmV0Y2g7XG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gcXVlcnk7XG4gICAgbGV0IGZldGNoT3B0aW9ucyA9IG9wdGlvbnNbMV0gfHwge307XG4gICAgaWYgKGZldGNoT3B0aW9ucy5tZXRob2QgJiYgZmV0Y2hPcHRpb25zLm1ldGhvZCA9PT0gJ0dFVCcpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nID0gZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5KTtcbiAgICAgIHJldHVybiBmZXRjaEZ1bmN0aW9uKGAke29wdGlvbnNbMF19P3F1ZXJ5PSR7cXVlcnlTdHJpbmd9YCwgZmV0Y2hPcHRpb25zKVxuICAgICAgICAudGhlbihoYW5kbGVGZXRjaFJlc3BvbnNlKVxuICAgICAgICAudGhlbigocmVzcG9uc2U6IEdyYXBoUUxSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5lcnJvcnMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBmZXRjaEZ1bmN0aW9uKGAke29wdGlvbnNbMF19YCwge1xuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBxdWVyeTogcXVlcnlTdHJpbmcsIHZhcmlhYmxlcyB9KSxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICB9LFxuICAgICAgLi4uZmV0Y2hPcHRpb25zXG4gICAgfSlcbiAgICAgIC50aGVuKGhhbmRsZUZldGNoUmVzcG9uc2UpXG4gICAgICAudGhlbigocmVzcG9uc2U6IEdyYXBoUUxSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEdyYXBoUUxFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICB9KTtcbiAgfTtcblxuXG5leHBvcnQgY29uc3QgYXBpU3Vic2NyaXB0aW9uID0gKG9wdGlvbnM6IGNoYWluT3B0aW9ucykgPT4gKFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVN0cmluZyA9IG9wdGlvbnNbMF0gKyAnP3F1ZXJ5PScgKyBlbmNvZGVVUklDb21wb25lbnQocXVlcnkpO1xuICAgICAgY29uc3Qgd3NTdHJpbmcgPSBxdWVyeVN0cmluZy5yZXBsYWNlKCdodHRwJywgJ3dzJyk7XG4gICAgICBjb25zdCBob3N0ID0gKG9wdGlvbnMubGVuZ3RoID4gMSAmJiBvcHRpb25zWzFdPy53ZWJzb2NrZXQ/LlswXSkgfHwgd3NTdHJpbmc7XG4gICAgICBjb25zdCB3ZWJTb2NrZXRPcHRpb25zID0gb3B0aW9uc1sxXT8ud2Vic29ja2V0IHx8IFtob3N0XTtcbiAgICAgIGNvbnN0IHdzID0gbmV3IFdlYlNvY2tldCguLi53ZWJTb2NrZXRPcHRpb25zKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdzLFxuICAgICAgICBvbjogKGU6IChhcmdzOiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICB3cy5vbm1lc3NhZ2UgPSAoZXZlbnQ6YW55KSA9PiB7XG4gICAgICAgICAgICBpZihldmVudC5kYXRhKXtcbiAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShldmVudC5kYXRhKVxuICAgICAgICAgICAgICBjb25zdCBkYXRhID0gcGFyc2VkLmRhdGFcbiAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBzZWVrRm9yQWxpYXNlcyhkYXRhKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBvZmY6IChlOiAoYXJnczogYW55KSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgd3Mub25jbG9zZSA9IGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZTogKGFyZ3M6IGFueSkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIHdzLm9uZXJyb3IgPSBlO1xuICAgICAgICB9LFxuICAgICAgICBvcGVuOiAoZTogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIHdzLm9ub3BlbiA9IGU7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB3ZWJzb2NrZXRzIGltcGxlbWVudGVkJyk7XG4gICAgfVxuICB9O1xuXG5cblxuY29uc3QgYWxsT3BlcmF0aW9ucyA9IHtcbiAgICBcInF1ZXJ5XCI6IFwiUXVlcnlcIixcbiAgICBcIm11dGF0aW9uXCI6IFwiTXV0YXRpb25cIixcbiAgICBcInN1YnNjcmlwdGlvblwiOiBcIlN1YnNjcmlwdGlvblwiXG59XG5cbmV4cG9ydCB0eXBlIEdlbmVyaWNPcGVyYXRpb248Tz4gPSBPIGV4dGVuZHMgJ3F1ZXJ5J1xuICA/IFwiUXVlcnlcIlxuICA6IE8gZXh0ZW5kcyAnbXV0YXRpb24nXG4gID8gXCJNdXRhdGlvblwiXG4gIDogXCJTdWJzY3JpcHRpb25cIlxuXG5leHBvcnQgY29uc3QgVGh1bmRlciA9IChmbjogRmV0Y2hGdW5jdGlvbikgPT4gPFxuICBPIGV4dGVuZHMgJ3F1ZXJ5JyB8ICdtdXRhdGlvbicgfCAnc3Vic2NyaXB0aW9uJyxcbiAgUiBleHRlbmRzIGtleW9mIFZhbHVlVHlwZXMgPSBHZW5lcmljT3BlcmF0aW9uPE8+XG4+KFxuICBvcGVyYXRpb246IE8sXG4pID0+IDxaIGV4dGVuZHMgVmFsdWVUeXBlc1tSXT4obzogWiB8IFZhbHVlVHlwZXNbUl0sIG9wcz86IE9wZXJhdGlvbk9wdGlvbnMpID0+XG4gIGZ1bGxDaGFpbkNvbnN0cnVjdChmbikob3BlcmF0aW9uLCBhbGxPcGVyYXRpb25zW29wZXJhdGlvbl0pKG8gYXMgYW55LCBvcHMpIGFzIFByb21pc2U8SW5wdXRUeXBlPEdyYXBoUUxUeXBlc1tSXSwgWj4+O1xuXG5leHBvcnQgY29uc3QgQ2hhaW4gPSAoLi4ub3B0aW9uczogY2hhaW5PcHRpb25zKSA9PiBUaHVuZGVyKGFwaUZldGNoKG9wdGlvbnMpKTtcblxuZXhwb3J0IGNvbnN0IFN1YnNjcmlwdGlvblRodW5kZXIgPSAoZm46IFN1YnNjcmlwdGlvbkZ1bmN0aW9uKSA9PiA8XG4gIE8gZXh0ZW5kcyAncXVlcnknIHwgJ211dGF0aW9uJyB8ICdzdWJzY3JpcHRpb24nLFxuICBSIGV4dGVuZHMga2V5b2YgVmFsdWVUeXBlcyA9IEdlbmVyaWNPcGVyYXRpb248Tz5cbj4oXG4gIG9wZXJhdGlvbjogTyxcbikgPT4gPFogZXh0ZW5kcyBWYWx1ZVR5cGVzW1JdPihcbiAgbzogWiB8IFZhbHVlVHlwZXNbUl0sXG4gIG9wcz86IE9wZXJhdGlvbk9wdGlvbnNcbik9PlxuICBmdWxsU3Vic2NyaXB0aW9uQ29uc3RydWN0KGZuKShvcGVyYXRpb24sIGFsbE9wZXJhdGlvbnNbb3BlcmF0aW9uXSkoXG4gICAgbyBhcyBhbnksXG4gICAgb3BzLFxuICApIGFzIFN1YnNjcmlwdGlvblRvR3JhcGhRTDxaLCBHcmFwaFFMVHlwZXNbUl0+O1xuXG5leHBvcnQgY29uc3QgU3Vic2NyaXB0aW9uID0gKC4uLm9wdGlvbnM6IGNoYWluT3B0aW9ucykgPT4gU3Vic2NyaXB0aW9uVGh1bmRlcihhcGlTdWJzY3JpcHRpb24ob3B0aW9ucykpO1xuZXhwb3J0IGNvbnN0IFpldXMgPSA8XG4gIFogZXh0ZW5kcyBWYWx1ZVR5cGVzW1JdLFxuICBPIGV4dGVuZHMgJ3F1ZXJ5JyB8ICdtdXRhdGlvbicgfCAnc3Vic2NyaXB0aW9uJyxcbiAgUiBleHRlbmRzIGtleW9mIFZhbHVlVHlwZXMgPSBHZW5lcmljT3BlcmF0aW9uPE8+XG4+KFxuICBvcGVyYXRpb246IE8sXG4gIG86IFogfCBWYWx1ZVR5cGVzW1JdLFxuICBvcGVyYXRpb25OYW1lPzogc3RyaW5nLFxuKSA9PiBxdWVyeUNvbnN0cnVjdChvcGVyYXRpb24sIGFsbE9wZXJhdGlvbnNbb3BlcmF0aW9uXSwgb3BlcmF0aW9uTmFtZSkobyBhcyBhbnkpO1xuZXhwb3J0IGNvbnN0IFNlbGVjdG9yID0gPFQgZXh0ZW5kcyBrZXlvZiBWYWx1ZVR5cGVzPihfa2V5OiBUKSA9PiBaZXVzU2VsZWN0PFZhbHVlVHlwZXNbVF0+KCk7XG5cblxuZXhwb3J0IGNvbnN0IEdxbCA9IENoYWluKCdodHRwOi8vbG9jYWxob3N0OjQwMDAvZ3JhcGhxbCcpXG4iXX0=
|