@bitgo-beta/sdk-coin-xtz 1.4.3-alpha.23 → 1.4.3-alpha.230
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 +405 -0
- package/dist/src/index.js +6 -2
- package/dist/src/lib/iface.d.ts +1 -0
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/index.js +6 -2
- package/dist/src/lib/keyPair.js +15 -11
- package/dist/src/lib/multisigUtils.js +7 -3
- package/dist/src/lib/transaction.js +11 -7
- package/dist/src/lib/transactionBuilder.js +12 -12
- package/dist/src/lib/utils.d.ts +1 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +8 -4
- package/dist/src/xtz.d.ts +1 -0
- package/dist/src/xtz.d.ts.map +1 -1
- package/dist/src/xtz.js +6 -1
- package/package.json +9 -9
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -346,7 +350,7 @@ function buildPair(data, type, contractAddress) {
|
|
|
346
350
|
* @see {@link https://tezostaquito.io/docs/making_transfers#transfer-000005-50-mutez-tokens-from-a-kt1-address-to-a-tz1-address}
|
|
347
351
|
*/
|
|
348
352
|
function transferToAccount(address, amount) {
|
|
349
|
-
if (utils_1.isValidKey(address, utils_1.hashTypes.KT)) {
|
|
353
|
+
if ((0, utils_1.isValidKey)(address, utils_1.hashTypes.KT)) {
|
|
350
354
|
return transferToOriginatedAccount(address, amount);
|
|
351
355
|
}
|
|
352
356
|
// Lambda to transfer to an implicit account
|
|
@@ -1177,4 +1181,4 @@ function forwarderOriginationOperation(contractAddress, counter, source, fee, ga
|
|
|
1177
1181
|
};
|
|
1178
1182
|
}
|
|
1179
1183
|
exports.forwarderOriginationOperation = forwarderOriginationOperation;
|
|
1180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzaWdVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbXVsdGlzaWdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQTRCO0FBRTVCLG1DQUF1RztBQUV2RyxzQ0FBc0M7QUFDdEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUVwQjs7Ozs7R0FLRztBQUNILFNBQWdCLG9DQUFvQyxDQUFDLFNBQXdCO0lBQzNFLE1BQU0sR0FBRyxHQUFHO1FBQ1YsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHO1FBQ2xCLFFBQVEsRUFBRSxTQUFTLENBQUMsU0FBUztRQUM3QixZQUFZLEVBQUUsU0FBUyxDQUFDLGFBQWE7S0FDdEMsQ0FBQztJQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO1FBQ3pCLHdCQUF3QjtRQUN4QixPQUFPO1lBQ0wsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDdEIsRUFBRSxFQUFFLFNBQVMsQ0FBQyxXQUFXO1lBQ3pCLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtZQUN4QixHQUFHO1NBQ0osQ0FBQztLQUNIO0lBQ0Qsa0ZBQWtGO0lBQ2xGLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDL0QsbUVBQW1FO0lBQ25FLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFFbkMsSUFBSSxnQkFBZ0IsQ0FBQztJQUNyQixRQUFRLFdBQVcsRUFBRTtRQUNuQixLQUFLLGtCQUFrQjtZQUNyQixnQkFBZ0IsR0FBRyxDQUFDLENBQUM7WUFDckIsTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLGdCQUFnQixHQUFHLENBQUMsQ0FBQztZQUNyQixNQUFNO1FBQ1I7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7S0FDbEQ7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2pELElBQUk7UUFDSixFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNO1FBQ2xDLE1BQU0sRUFBRSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztRQUNsRCxHQUFHO1FBQ0gsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDO0FBNUNELG9GQTRDQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsK0JBQStCLENBQUMsU0FBd0I7SUFDdEUsTUFBTSxHQUFHLEdBQUc7UUFDVixHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUc7UUFDbEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxTQUFTO1FBQzdCLFlBQVksRUFBRSxTQUFTLENBQUMsYUFBYTtLQUN0QyxDQUFDO0lBRUYsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUVyRCw0RkFBNEY7SUFDNUYsTUFBTSxvQkFBb0IsR0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxxREFBcUQsQ0FBQyxDQUFDO0lBRTdHLE9BQU87UUFDTCxHQUFHO1FBQ0gsT0FBTztRQUNQLE9BQU87UUFDUCxJQUFJO1FBQ0osb0JBQW9CO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBbkJELDBFQW1CQztBQUNEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLDZCQUE2QixDQUMzQyxPQUFlLEVBQ2YsTUFBYyxFQUNkLE1BQWMsRUFDZCxXQUFtQixFQUNuQixNQUFjLG1CQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUM3QyxXQUFtQix5QkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQ3hELGVBQXVCLDZCQUFxQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7SUFFaEUsT0FBTztRQUNMLElBQUksRUFBRSxhQUFhO1FBQ25CLE1BQU07UUFDTixHQUFHO1FBQ0gsT0FBTztRQUNQLFNBQVMsRUFBRSxRQUFRO1FBQ25CLGFBQWEsRUFBRSxZQUFZO1FBQzNCLE1BQU07UUFDTixXQUFXO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFuQkQsc0VBbUJDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQzFDLE9BQWUsRUFDZixNQUFjLEVBQ2QsTUFBYyxFQUNkLGVBQXVCLEVBQ3ZCLGVBQXVCLEVBQ3ZCLGtCQUEwQixFQUMxQixVQUE4QixFQUM5QixNQUFjLG1CQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUM3QyxXQUFtQix5QkFBaUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQ3hELGVBQXVCLDZCQUFxQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFDaEUsSUFBWSxTQUFTO0lBRXJCLE9BQU87UUFDTCxJQUFJLEVBQUUsYUFBYTtRQUNuQixNQUFNO1FBQ04sR0FBRztRQUNILE9BQU87UUFDUCxTQUFTLEVBQUUsUUFBUTtRQUNuQixhQUFhLEVBQUUsWUFBWTtRQUMzQixNQUFNLEVBQUUsR0FBRztRQUNYLFdBQVcsRUFBRSxlQUFlO1FBQzVCLFVBQVUsRUFBRSw2QkFBNkIsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7S0FDdEcsQ0FBQztBQUNKLENBQUM7QUF4QkQsb0VBd0JDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyw2QkFBNkIsQ0FDcEMsa0JBQTBCLEVBQzFCLE1BQWMsRUFDZCxlQUF1QixFQUN2QixVQUE4QixFQUM5QixDQUFTO0lBRVQsTUFBTSxxQkFBcUIsR0FBVSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakUsT0FBTztRQUNMLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFO2dCQUNKO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7aUJBQzFHO2dCQUNELHFCQUFxQjthQUN0QjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGdDQUFnQyxDQUFDLFdBQTBCLEVBQUUsVUFBOEI7SUFDekcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0csQ0FBQztBQUZELDRFQUVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxXQUEwQjtJQUN0RSxNQUFNLFVBQVUsR0FBdUIsRUFBRSxDQUFDO0lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtRQUM3RixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBQ0QsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzdDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDcEMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDZCxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNO2dCQUMxQyxLQUFLLEVBQUUsQ0FBQzthQUNULENBQUMsQ0FBQztTQUNKO0tBQ0Y7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBZkQsc0VBZUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxlQUFlLENBQUMsVUFBOEIsRUFBRSxrQkFBa0IsR0FBRyxFQUFFLEVBQUUsSUFBWSxTQUFTO0lBQ3JHLHlFQUF5RTtJQUN6RSxNQUFNLHFCQUFxQixHQUFVLGtCQUFrQixDQUFDO0lBQ3hELE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztJQUN2QyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxHQUFHLENBQUMsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUM7S0FDbEY7SUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzdCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQzlDO0lBQ0QsMEVBQTBFO0lBQzFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN2QixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDWCxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDcEY7YUFBTTtZQUNMLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JELHdDQUF3QztnQkFDeEMsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO29CQUM1QyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDN0UsTUFBTTtpQkFDUDthQUNGO1NBQ0Y7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLHlCQUF5QixDQUN2QyxlQUF1QixFQUN2QixrQkFBMEIsRUFDMUIsTUFBYyxFQUNkLGVBQXVCO0lBRXZCLE1BQU0sSUFBSSxHQUFHO1FBQ1gsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUU7WUFDSixFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUU7WUFDeEI7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDdEQ7U0FDRjtLQUNGLENBQUM7SUFDRixNQUFNLElBQUksR0FBRztRQUNYLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFO1lBQ0o7Z0JBQ0UsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3JCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsSUFBSSxFQUFFO29CQUNKO3dCQUNFLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRTs0QkFDSixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7NEJBQ2hCO2dDQUNFLElBQUksRUFBRSxNQUFNO2dDQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDOzZCQUM5Qjt5QkFDRjt3QkFDRCxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7cUJBQ3ZCO29CQUNEO3dCQUNFLElBQUksRUFBRSxNQUFNO3dCQUNaLElBQUksRUFBRTs0QkFDSjtnQ0FDRSxJQUFJLEVBQUUsS0FBSztnQ0FDWCxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7NkJBQ3ZCOzRCQUNEO2dDQUNFLElBQUksRUFBRSxNQUFNO2dDQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO2dDQUN2QixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7NkJBQ2xCO3lCQUNGO3dCQUNELE1BQU0sRUFBRSxDQUFDLGNBQWMsQ0FBQztxQkFDekI7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDO2FBQ3BCO1NBQ0Y7UUFDRCxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUM7S0FDckIsQ0FBQztJQUNGLE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQTNERCw4REEyREM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFNBQVMsQ0FBQyxJQUFTLEVBQUUsSUFBUyxFQUFFLGVBQW9CO0lBQzNELE9BQU87UUFDTCxJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxFQUFFLElBQUksQ0FBQztTQUMxQztRQUNELElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxNQUFNO1lBQ1osSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDO1NBQ2xDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLE9BQWUsRUFBRSxNQUFjO0lBQ3hELElBQUksa0JBQVUsQ0FBQyxPQUFPLEVBQUUsaUJBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNyQyxPQUFPLDJCQUEyQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztLQUNyRDtJQUNELDRDQUE0QztJQUM1QyxPQUFPO1FBQ0wsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1FBQ2hCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFO1FBQzlDO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUNsRDtRQUNELEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1FBQzVCO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQztTQUMzQztRQUNELEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUNoQixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtRQUMzQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7S0FDakIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLDJCQUEyQixDQUFDLE9BQWUsRUFBRSxNQUFjO0lBQ2xFLE9BQU87UUFDTCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7UUFDaEIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUU7UUFDOUM7WUFDRSxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ2pEO1FBQ0QsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7UUFDOUM7WUFDRTtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUN2RDtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQzNDO1FBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1FBQ2hCLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1FBQzNCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtLQUNqQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixlQUFlLENBQzdCLE9BQWUsRUFDZixNQUFjLEVBQ2QsTUFBYyxFQUNkLE1BQWMsbUJBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQzNDLFdBQW1CLHlCQUFpQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFDdEQsZUFBdUIsNkJBQXFCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtJQUU5RCxPQUFPO1FBQ0wsSUFBSSxFQUFFLFFBQVE7UUFDZCxPQUFPO1FBQ1AsTUFBTTtRQUNOLEdBQUc7UUFDSCxTQUFTLEVBQUUsUUFBUTtRQUNuQixhQUFhLEVBQUUsWUFBWTtRQUMzQixVQUFVLEVBQUUsTUFBTTtLQUNuQixDQUFDO0FBQ0osQ0FBQztBQWpCRCwwQ0FpQkM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILFNBQWdCLG1DQUFtQyxDQUNqRCxPQUFlLEVBQ2YsTUFBYyxFQUNkLEdBQVcsRUFDWCxRQUFnQixFQUNoQixZQUFvQixFQUNwQixPQUFlLEVBQ2YsT0FBaUIsRUFDakIsUUFBaUIsRUFDakIsWUFBb0IsU0FBUztJQUU3QixNQUFNLGdCQUFnQixHQUFVLEVBQUUsQ0FBQztJQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sYUFBYSxHQUFrQjtRQUNuQyxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPO1FBQ1AsTUFBTTtRQUNOLEdBQUc7UUFDSCxTQUFTLEVBQUUsUUFBUTtRQUNuQixhQUFhLEVBQUUsWUFBWTtRQUMzQixPQUFPO1FBQ1AsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLGVBQWU7WUFDckIsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRTtvQkFDSjt3QkFDRSxHQUFHLEVBQUUsR0FBRztxQkFDVDtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsTUFBTTt3QkFDWixJQUFJLEVBQUU7NEJBQ0o7Z0NBQ0UsR0FBRyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUU7NkJBQzFCOzRCQUNELGdCQUFnQjt5QkFDakI7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUNGLElBQUksUUFBUSxFQUFFO1FBQ1osYUFBYSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7S0FDbkM7SUFDRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBOUNELGtGQThDQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsU0FBd0I7SUFDMUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztJQUN0RSxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ2YsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFORCxrREFNQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxlQUFlLEdBQUc7SUFDdEI7UUFDRSxJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUU7WUFDSjtnQkFDRSxJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUU7b0JBQ0osRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUN0Qzt3QkFDRSxJQUFJLEVBQUUsTUFBTTt3QkFDWixJQUFJLEVBQUU7NEJBQ0o7Z0NBQ0UsSUFBSSxFQUFFLE1BQU07Z0NBQ1osSUFBSSxFQUFFO29DQUNKO3dDQUNFLElBQUksRUFBRSxLQUFLO3dDQUNYLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQztxQ0FDckI7b0NBQ0Q7d0NBQ0UsSUFBSSxFQUFFLElBQUk7d0NBQ1YsSUFBSSxFQUFFOzRDQUNKO2dEQUNFLElBQUksRUFBRSxRQUFRO2dEQUNkLElBQUksRUFBRTtvREFDSixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7b0RBQ2hCO3dEQUNFLElBQUksRUFBRSxNQUFNO3dEQUNaLElBQUksRUFBRTs0REFDSjtnRUFDRSxJQUFJLEVBQUUsV0FBVzs2REFDbEI7eURBQ0Y7cURBQ0Y7aURBQ0Y7Z0RBQ0QsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDOzZDQUN2Qjs0Q0FDRDtnREFDRSxJQUFJLEVBQUUsTUFBTTtnREFDWixJQUFJLEVBQUU7b0RBQ0o7d0RBQ0UsSUFBSSxFQUFFLEtBQUs7d0RBQ1gsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO3FEQUN2QjtvREFDRDt3REFDRSxJQUFJLEVBQUUsTUFBTTt3REFDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzt3REFDdkIsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO3FEQUNsQjtpREFDRjtnREFDRCxNQUFNLEVBQUUsQ0FBQyxjQUFjLENBQUM7NkNBQ3pCO3lDQUNGO3dDQUNELE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztxQ0FDcEI7aUNBQ0Y7Z0NBQ0QsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDOzZCQUNyQjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsTUFBTTtnQ0FDWixJQUFJLEVBQUU7b0NBQ0o7d0NBQ0UsSUFBSSxFQUFFLFFBQVE7d0NBQ2QsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7cUNBQzlCO2lDQUNGO2dDQUNELE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQzs2QkFDbEI7eUJBQ0Y7d0JBQ0QsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO3FCQUNsQjtpQkFDRjthQUNGO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUU7WUFDSjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUU7b0JBQ0o7d0JBQ0UsSUFBSSxFQUFFLEtBQUs7d0JBQ1gsTUFBTSxFQUFFLENBQUMsaUJBQWlCLENBQUM7cUJBQzVCO29CQUNEO3dCQUNFLElBQUksRUFBRSxNQUFNO3dCQUNaLElBQUksRUFBRTs0QkFDSjtnQ0FDRSxJQUFJLEVBQUUsS0FBSztnQ0FDWCxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7NkJBQ3ZCOzRCQUNEO2dDQUNFLElBQUksRUFBRSxNQUFNO2dDQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO2dDQUN2QixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7NkJBQ2xCO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsTUFBTTtRQUNaLElBQUksRUFBRTtZQUNKO2dCQUNFO29CQUNFO3dCQUNFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTt3QkFDZixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7d0JBQ2Y7NEJBQ0UsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3lCQUMxQjtxQkFDRjtpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixJQUFJLEVBQUU7d0JBQ0o7NEJBQ0UsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFOzRCQUNoQjtnQ0FDRSxJQUFJLEVBQUUsS0FBSztnQ0FDWCxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQzs2QkFDOUI7NEJBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO3lCQUNqQjt3QkFDRDs0QkFDRTtnQ0FDRSxJQUFJLEVBQUUsTUFBTTtnQ0FDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQzs2QkFDeEM7NEJBQ0QsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFOzRCQUNsQjtnQ0FDRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO2dDQUNyQztvQ0FDRSxJQUFJLEVBQUUsSUFBSTtvQ0FDVixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztpQ0FDdkQ7NkJBQ0Y7NEJBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFOzRCQUNoQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7NEJBQ2Y7Z0NBQ0UsSUFBSSxFQUFFLEtBQUs7Z0NBQ1gsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDOzZCQUMzQjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsS0FBSztnQ0FDWCxJQUFJLEVBQUU7b0NBQ0o7d0NBQ0U7NENBQ0U7Z0RBQ0UsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO2dEQUNmLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtnREFDZjtvREFDRSxJQUFJLEVBQUUsS0FBSztvREFDWCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7aURBQzFCOzZDQUNGO3lDQUNGO3dDQUNELEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTt3Q0FDZixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7d0NBQ2hCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTt3Q0FDbkIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO3dDQUNoQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7d0NBQ2hCOzRDQUNFLElBQUksRUFBRSxLQUFLOzRDQUNYLElBQUksRUFBRTtnREFDSjtvREFDRTt3REFDRTs0REFDRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7NERBQ2Y7Z0VBQ0UsSUFBSSxFQUFFLEtBQUs7Z0VBQ1gsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDOzZEQUNyQjs0REFDRDtnRUFDRSxJQUFJLEVBQUUsS0FBSztnRUFDWCxJQUFJLEVBQUU7b0VBQ0o7d0VBQ0U7NEVBQ0UsSUFBSSxFQUFFLEtBQUs7eUVBQ1o7cUVBQ0Y7aUVBQ0Y7NkRBQ0Y7eURBQ0Y7cURBQ0Y7b0RBQ0Q7d0RBQ0UsSUFBSSxFQUFFLEtBQUs7d0RBQ1gsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO3FEQUMzQjtpREFDRjs2Q0FDRjt5Q0FDRjt3Q0FDRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7cUNBQ2pCO2lDQUNGOzZCQUNGOzRCQUNEO2dDQUNFO29DQUNFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtvQ0FDZjt3Q0FDRSxJQUFJLEVBQUUsS0FBSzt3Q0FDWCxNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztxQ0FDNUI7b0NBQ0Q7d0NBQ0UsSUFBSSxFQUFFLEtBQUs7d0NBQ1gsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3FDQUMxQjtpQ0FDRjs2QkFDRjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsS0FBSztnQ0FDWCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7NkJBQzNCOzRCQUNEO2dDQUNFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0NBQ3JDO29DQUNFLElBQUksRUFBRSxJQUFJO29DQUNWLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lDQUN2RDs2QkFDRjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsS0FBSztnQ0FDWCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7NkJBQzNCOzRCQUNEO2dDQUNFO29DQUNFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtvQ0FDZjt3Q0FDRSxJQUFJLEVBQUUsS0FBSzt3Q0FDWCxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7cUNBQ3ZCO29DQUNEO3dDQUNFLElBQUksRUFBRSxLQUFLO3dDQUNYLElBQUksRUFBRTs0Q0FDSjtnREFDRTtvREFDRSxJQUFJLEVBQUUsS0FBSztvREFDWCxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7aURBQ2xCOzZDQUNGO3lDQUNGO3FDQUNGO2lDQUNGOzZCQUNGOzRCQUNEO2dDQUNFLElBQUksRUFBRSxLQUFLO2dDQUNYLElBQUksRUFBRTtvQ0FDSjt3Q0FDRTs0Q0FDRSxJQUFJLEVBQUUsTUFBTTs0Q0FDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQzs0Q0FDckMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO3lDQUNuQjt3Q0FDRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7d0NBQ2hCOzRDQUNFLElBQUksRUFBRSxNQUFNOzRDQUNaLElBQUksRUFBRTtnREFDSjtvREFDRTt3REFDRSxJQUFJLEVBQUUsS0FBSzt3REFDWCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7cURBQzNCO29EQUNELEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtvREFDaEI7d0RBQ0UsSUFBSSxFQUFFLFNBQVM7d0RBQ2YsSUFBSSxFQUFFOzREQUNKO2dFQUNFO29FQUNFO3dFQUNFLElBQUksRUFBRSxTQUFTO3dFQUNmLElBQUksRUFBRTs0RUFDSjtnRkFDRTtvRkFDRSxJQUFJLEVBQUUsTUFBTTtpRkFDYjtnRkFDRDtvRkFDRSxJQUFJLEVBQUUsTUFBTTtpRkFDYjs2RUFDRjs0RUFDRDtnRkFDRTtvRkFDRSxJQUFJLEVBQUUsTUFBTTtpRkFDYjtnRkFDRDtvRkFDRSxJQUFJLEVBQUUsS0FBSztvRkFDWCxJQUFJLEVBQUU7d0ZBQ0o7NEZBQ0U7Z0dBQ0UsSUFBSSxFQUFFLE1BQU07NkZBQ2I7NEZBQ0Q7Z0dBQ0UsSUFBSSxFQUFFLEtBQUs7Z0dBQ1gsSUFBSSxFQUFFO29HQUNKO3dHQUNFLEdBQUcsRUFBRSxHQUFHO3FHQUNUO29HQUNEO3dHQUNFOzRHQUNFO2dIQUNFLElBQUksRUFBRSxLQUFLO2dIQUNYLElBQUksRUFBRTtvSEFDSjt3SEFDRTs0SEFDRSxJQUFJLEVBQUUsS0FBSzt5SEFDWjtxSEFDRjtpSEFDRjs2R0FDRjs0R0FDRDtnSEFDRSxJQUFJLEVBQUUsTUFBTTs2R0FDYjt5R0FDRjtxR0FDRjtpR0FDRjs2RkFDRjs0RkFDRDtnR0FDRTtvR0FDRTt3R0FDRSxJQUFJLEVBQUUsS0FBSzt3R0FDWCxJQUFJLEVBQUU7NEdBQ0o7Z0hBQ0UsR0FBRyxFQUFFLEdBQUc7NkdBQ1Q7NEdBQ0Q7Z0hBQ0U7b0hBQ0UsSUFBSSxFQUFFLEtBQUs7aUhBQ1o7NkdBQ0Y7eUdBQ0Y7cUdBQ0Y7b0dBQ0Q7d0dBQ0UsSUFBSSxFQUFFLEtBQUs7d0dBQ1gsSUFBSSxFQUFFOzRHQUNKO2dIQUNFLEdBQUcsRUFBRSxHQUFHOzZHQUNUO3lHQUNGO3FHQUNGO2lHQUNGO2dHQUNEO29HQUNFLElBQUksRUFBRSxLQUFLO29HQUNYLElBQUksRUFBRTt3R0FDSjs0R0FDRTtnSEFDRSxJQUFJLEVBQUUsaUJBQWlCOzZHQUN4Qjt5R0FDRjtxR0FDRjtpR0FDRjtnR0FDRDtvR0FDRSxJQUFJLEVBQUUsTUFBTTtpR0FDYjtnR0FDRDtvR0FDRSxJQUFJLEVBQUUsSUFBSTtvR0FDVixJQUFJLEVBQUU7d0dBQ0o7NEdBQ0U7Z0hBQ0UsSUFBSSxFQUFFLE1BQU07NkdBQ2I7eUdBQ0Y7d0dBQ0Q7NEdBQ0U7Z0hBQ0UsSUFBSSxFQUFFLFVBQVU7NkdBQ2pCO3lHQUNGO3FHQUNGO2lHQUNGOzZGQUNGOzRGQUNEO2dHQUNFLElBQUksRUFBRSxNQUFNO2dHQUNaLElBQUksRUFBRTtvR0FDSjt3R0FDRSxJQUFJLEVBQUUsS0FBSztxR0FDWjtvR0FDRDt3R0FDRSxHQUFHLEVBQUUsR0FBRztxR0FDVDtpR0FDRjs2RkFDRjs0RkFDRDtnR0FDRSxJQUFJLEVBQUUsS0FBSztnR0FDWCxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7NkZBQ25CO3lGQUNGO3FGQUNGO2lGQUNGOzZFQUNGO3lFQUNGO3FFQUNGO2lFQUNGOzZEQUNGOzREQUNEO2dFQUNFO29FQUNFO3dFQUNFLElBQUksRUFBRSxNQUFNO3FFQUNiO29FQUNEO3dFQUNFLElBQUksRUFBRSxVQUFVO3FFQUNqQjtpRUFDRjs2REFDRjt5REFDRjtxREFDRjtvREFDRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7aURBQ2pCOzZDQUNGO3lDQUNGO3FDQUNGO2lDQUNGOzZCQUNGOzRCQUNEO2dDQUNFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0NBQ3JDO29DQUNFLElBQUksRUFBRSxJQUFJO29DQUNWLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lDQUN2RDs2QkFDRjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsU0FBUztnQ0FDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs2QkFDdkQ7NEJBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFOzRCQUNoQjtnQ0FDRSxJQUFJLEVBQUUsS0FBSztnQ0FDWCxJQUFJLEVBQUU7b0NBQ0o7d0NBQ0U7NENBQ0U7Z0RBQ0UsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO2dEQUNmLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtnREFDZjtvREFDRSxJQUFJLEVBQUUsS0FBSztvREFDWCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7aURBQzFCOzZDQUNGO3lDQUNGO3dDQUNEOzRDQUNFLElBQUksRUFBRSxNQUFNOzRDQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO3lDQUN0Qzt3Q0FDRDs0Q0FDRSxJQUFJLEVBQUUsS0FBSzs0Q0FDWCxNQUFNLEVBQUUsQ0FBQyxjQUFjLENBQUM7eUNBQ3pCO3dDQUNELEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtxQ0FDakI7aUNBQ0Y7NkJBQ0Y7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsSUFBSSxFQUFFO29DQUNKLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7b0NBQ3BDO3dDQUNFOzRDQUNFLElBQUksRUFBRSxLQUFLOzRDQUNYLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzt5Q0FDMUI7d0NBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO3dDQUNoQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7d0NBQ2hCOzRDQUNFLElBQUksRUFBRSxLQUFLOzRDQUNYLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO3lDQUM5QjtxQ0FDRjtpQ0FDRjs2QkFDRjs0QkFDRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7eUJBQ2pCO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsU0FBUyxlQUFlLENBQUMsZUFBdUI7SUFDOUMsT0FBTztRQUNMO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFO2dCQUNKO29CQUNFLElBQUksRUFBRSxJQUFJO29CQUNWLElBQUksRUFBRTt3QkFDSixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ3RDOzRCQUNFLElBQUksRUFBRSxNQUFNOzRCQUNaLElBQUksRUFBRTtnQ0FDSixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7Z0NBQ2Y7b0NBQ0UsSUFBSSxFQUFFLFVBQVU7b0NBQ2hCLElBQUksRUFBRTt3Q0FDSjs0Q0FDRSxJQUFJLEVBQUUsTUFBTTs0Q0FDWixJQUFJLEVBQUU7Z0RBQ0osRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dEQUN0QztvREFDRSxJQUFJLEVBQUUsTUFBTTtvREFDWixJQUFJLEVBQUU7d0RBQ0osRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO3dEQUNwQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7cURBQ3BDO2lEQUNGOzZDQUNGO3lDQUNGO3FDQUNGO2lDQUNGOzZCQUNGOzRCQUNELE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzt5QkFDbkI7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7UUFDN0M7WUFDRSxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRTtnQkFDSjtvQkFDRTt3QkFDRSxJQUFJLEVBQUUsTUFBTTt3QkFDWixJQUFJLEVBQUU7NEJBQ0o7Z0NBQ0UsSUFBSSxFQUFFLE1BQU07Z0NBQ1osSUFBSSxFQUFFO29DQUNKO3dDQUNFLElBQUksRUFBRSxJQUFJO3dDQUNWLElBQUksRUFBRTs0Q0FDSixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7NENBQ2hCO2dEQUNFLElBQUksRUFBRSxNQUFNO2dEQUNaLElBQUksRUFBRTtvREFDSixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7b0RBQ2Y7d0RBQ0UsSUFBSSxFQUFFLFVBQVU7d0RBQ2hCLElBQUksRUFBRTs0REFDSjtnRUFDRSxJQUFJLEVBQUUsTUFBTTtnRUFDWixJQUFJLEVBQUU7b0VBQ0osRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO29FQUNuQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtpRUFDL0Q7NkRBQ0Y7eURBQ0Y7cURBQ0Y7aURBQ0Y7NkNBQ0Y7eUNBQ0Y7cUNBQ0Y7b0NBQ0QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2lDQUNqQjs2QkFDRjt5QkFDRjtxQkFDRjtvQkFDRCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7b0JBQ2Y7d0JBQ0UsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsSUFBSSxFQUFFOzRCQUNKO2dDQUNFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtnQ0FDaEI7b0NBQ0UsSUFBSSxFQUFFLE1BQU07b0NBQ1osSUFBSSxFQUFFO3dDQUNKOzRDQUNFLElBQUksRUFBRSxNQUFNOzRDQUNaLElBQUksRUFBRTtnREFDSixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7Z0RBQ2Y7b0RBQ0UsSUFBSSxFQUFFLFVBQVU7b0RBQ2hCLElBQUksRUFBRTt3REFDSjs0REFDRSxJQUFJLEVBQUUsTUFBTTs0REFDWixJQUFJLEVBQUU7Z0VBQ0osRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO2dFQUNuQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTs2REFDL0Q7eURBQ0Y7cURBQ0Y7aURBQ0Y7NkNBQ0Y7eUNBQ0Y7cUNBQ0Y7aUNBQ0Y7NkJBQ0Y7NEJBQ0QsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzt5QkFDbkI7cUJBQ0Y7b0JBQ0QsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7b0JBQ3JHO3dCQUNFLElBQUksRUFBRSxTQUFTO3dCQUNmLElBQUksRUFBRTs0QkFDSixDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUM7NEJBQ2hEO2dDQUNFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRTtnQ0FDMUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO2dDQUNmLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtnQ0FDZixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0NBQzFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO2dDQUNyQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Z0NBQ2hCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtnQ0FDaEIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO2dDQUNuQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Z0NBQ2hCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO2dDQUNwRixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtnQ0FDM0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0NBQ3pFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTs2QkFDakI7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO29CQUNuQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtvQkFDekQsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO29CQUNuQixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7b0JBQ2Q7d0JBQ0UsSUFBSSxFQUFFLElBQUk7d0JBQ1YsSUFBSSxFQUFFOzRCQUNKLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQzdDO2dDQUNFO29DQUNFLElBQUksRUFBRSxLQUFLO29DQUNYLElBQUksRUFBRTt3Q0FDSjs0Q0FDRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTs0Q0FDOUM7Z0RBQ0UsSUFBSSxFQUFFLFNBQVM7Z0RBQ2YsSUFBSSxFQUFFO29EQUNKO3dEQUNFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFFO3dEQUN4RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7cURBQ3JCO29EQUNELEVBQUU7aURBQ0g7NkNBQ0Y7NENBQ0QsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFOzRDQUNuQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7NENBQ2hCLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO3lDQUM1QjtxQ0FDRjtpQ0FDRjtnQ0FDRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Z0NBQ2hCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTs2QkFDakI7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUMzQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7aUJBQ2pCO2FBQ0Y7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQiw2QkFBNkIsQ0FDM0MsZUFBdUIsRUFDdkIsT0FBZSxFQUNmLE1BQWMsRUFDZCxHQUFXLEVBQ1gsUUFBZ0IsRUFDaEIsWUFBb0IsRUFDcEIsT0FBZTtJQUVmLE9BQU87UUFDTCxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPO1FBQ1AsTUFBTTtRQUNOLEdBQUc7UUFDSCxTQUFTLEVBQUUsUUFBUTtRQUNuQixhQUFhLEVBQUUsWUFBWTtRQUMzQixPQUFPO1FBQ1AsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLGVBQWUsQ0FBQyxlQUFlLENBQUM7WUFDdEMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtTQUMxQjtLQUNGLENBQUM7QUFDSixDQUFDO0FBdEJELHNFQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEluZGV4ZWRTaWduYXR1cmUsIE9yaWdpbmF0aW9uRGF0YSwgT3JpZ2luYXRpb25PcCwgUmV2ZWFsT3AsIFRyYW5zYWN0aW9uT3AsIFRyYW5zZmVyRGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgREVGQVVMVF9GRUUsIERFRkFVTFRfR0FTX0xJTUlULCBERUZBVUxUX1NUT1JBR0VfTElNSVQsIGhhc2hUeXBlcywgaXNWYWxpZEtleSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vLyBEZWZhdWx0IG4gb2YgbSBmb3IgbXVsdGlzaWcgd2FsbGV0c1xuY29uc3QgREVGQVVMVF9OID0gMjtcbmNvbnN0IERFRkFVTFRfTSA9IDM7XG5cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIHRyYW5zZmVyIGRldGFpbHMgZnJvbSBhIGdlbmVyaWMgbXVsdGlzaWcgdHJhbnNhY3Rpb24gb3BlcmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25PcH0gb3BlcmF0aW9uIEEgdHJhbnNhY3Rpb24gb3BlcmF0aW9uIEpTT05cbiAqIEByZXR1cm5zIHtUcmFuc2ZlckRhdGF9IEluZm9ybWF0aW9uIGFib3V0IHRoZSBkZXN0aW5hdGlvbiwgdG9rZW4gYW5kIHRyYW5zZmVyIGFtb3VudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TXVsdGlzaWdUcmFuc2ZlckRhdGFGcm9tT3BlcmF0aW9uKG9wZXJhdGlvbjogVHJhbnNhY3Rpb25PcCk6IFRyYW5zZmVyRGF0YSB7XG4gIGNvbnN0IGZlZSA9IHtcbiAgICBmZWU6IG9wZXJhdGlvbi5mZWUsXG4gICAgZ2FzTGltaXQ6IG9wZXJhdGlvbi5nYXNfbGltaXQsXG4gICAgc3RvcmFnZUxpbWl0OiBvcGVyYXRpb24uc3RvcmFnZV9saW1pdCxcbiAgfTtcblxuICBpZiAoIW9wZXJhdGlvbi5wYXJhbWV0ZXJzKSB7XG4gICAgLy8gU2luZ2xlc2lnIHRyYW5zYWN0aW9uXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvaW46ICdtdXRleicsXG4gICAgICBmcm9tOiBvcGVyYXRpb24uc291cmNlLFxuICAgICAgdG86IG9wZXJhdGlvbi5kZXN0aW5hdGlvbixcbiAgICAgIGFtb3VudDogb3BlcmF0aW9uLmFtb3VudCxcbiAgICAgIGZlZSxcbiAgICB9O1xuICB9XG4gIC8vIFRoZXNlIGZvbGxvdyB0aGUgc3RydWN0dXJlIGZyb20gdGhlIHJlc3BvbnNlIG9mIGdlbmVyaWNNdWx0aXNpZ1RyYW5zZmVyUGFyYW1zKClcbiAgY29uc3QgdHJhbnNmZXJBcmdzID0gb3BlcmF0aW9uLnBhcmFtZXRlcnMudmFsdWUuYXJnc1swXS5hcmdzWzFdLmFyZ3NbMF07XG4gIGNvbnN0IGFjY291bnRUeXBlID0gdHJhbnNmZXJBcmdzWzNdLnByaW07XG4gIGNvbnN0IGNvdW50ZXIgPSBvcGVyYXRpb24ucGFyYW1ldGVycy52YWx1ZS5hcmdzWzBdLmFyZ3NbMF0uaW50O1xuICAvLyBJbiBtdWx0aXNpZyB0cmFuc2FjdGlvbnMsIHRoZSB3YWxsZXQgY29udHJhY3QgaXMgdGhlIGRlc3RpbmF0aW9uXG4gIGNvbnN0IGZyb20gPSBvcGVyYXRpb24uZGVzdGluYXRpb247XG5cbiAgbGV0IGFjY291bnRUeXBlSW5kZXg7XG4gIHN3aXRjaCAoYWNjb3VudFR5cGUpIHtcbiAgICBjYXNlICdJTVBMSUNJVF9BQ0NPVU5UJzpcbiAgICAgIGFjY291bnRUeXBlSW5kZXggPSA0O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnQ09OVFJBQ1QnOlxuICAgICAgYWNjb3VudFR5cGVJbmRleCA9IDU7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbnRyYWN0IHBhcmFtZXRlcnMnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY29pbjogdHJhbnNmZXJBcmdzW2FjY291bnRUeXBlSW5kZXhdLmFyZ3NbMF0ucHJpbSxcbiAgICBmcm9tLFxuICAgIHRvOiB0cmFuc2ZlckFyZ3NbMl0uYXJnc1sxXS5zdHJpbmcsXG4gICAgYW1vdW50OiB0cmFuc2ZlckFyZ3NbYWNjb3VudFR5cGVJbmRleF0uYXJnc1sxXS5pbnQsXG4gICAgZmVlLFxuICAgIGNvdW50ZXIsXG4gIH07XG59XG5cbi8qKlxuICogIEhlbHBlciBtZXRob2QgdG8gZ2V0IHRoZSB3YWxsZXQgb3IgYWRkcmVzcyBpbml0aWFsaXphdGlvbiB0eCBmcm9tIGFuIG9yaWdpbmF0aW9uIG9wZXJhdGlvblxuICpcbiAqIEBwYXJhbSB7T3JpZ2luYXRpb25PcH0gb3BlcmF0aW9uXG4gKiBAcmV0dXJucyB7T3JpZ2luYXRpb25EYXRhfSBJbmZvcm1hdGlvbiBhYm91dCB0aGUgd2FsbGV0IGNvbnRyYWN0IGNyZWF0aW5nIGEgZm9yd2FyZGVyIGNvbnRyYWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmlnaW5hdGlvbkRhdGFGcm9tT3BlcmF0aW9uKG9wZXJhdGlvbjogT3JpZ2luYXRpb25PcCk6IE9yaWdpbmF0aW9uRGF0YSB7XG4gIGNvbnN0IGZlZSA9IHtcbiAgICBmZWU6IG9wZXJhdGlvbi5mZWUsXG4gICAgZ2FzTGltaXQ6IG9wZXJhdGlvbi5nYXNfbGltaXQsXG4gICAgc3RvcmFnZUxpbWl0OiBvcGVyYXRpb24uc3RvcmFnZV9saW1pdCxcbiAgfTtcblxuICBjb25zdCB7IHNvdXJjZTogZnJvbSwgY291bnRlciwgYmFsYW5jZSB9ID0gb3BlcmF0aW9uO1xuXG4gIC8vIFRyYW5zYWN0aW9ucyBpbml0aWFsaXppbmcgYSBmb3J3YXJkZXIgY29udHJhY3QgY29udGFpbiB0aGUgYWRkcmVzcyBvZiB0aGUgd2FsbGV0IGNvbnRyYWN0XG4gIGNvbnN0IGZvcndhcmRlckRlc3RpbmF0aW9uOiBzdHJpbmcgPSBfLmdldChvcGVyYXRpb24sICdzY3JpcHQuY29kZVsyXS5hcmdzWzBdWzNdLmFyZ3NbMF1bMF0uYXJnc1sxXS5zdHJpbmcnKTtcblxuICByZXR1cm4ge1xuICAgIGZlZSxcbiAgICBjb3VudGVyLFxuICAgIGJhbGFuY2UsXG4gICAgZnJvbSxcbiAgICBmb3J3YXJkZXJEZXN0aW5hdGlvbixcbiAgfTtcbn1cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBidWlsZCBhIHNpbmdsZXNpZyB0cmFuc2FjdGlvbiBvcGVyYXRpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvdW50ZXIgU291cmNlIGFjY291bnQgbmV4dCBjb3VudGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gc291cmNlIFRoZSBhY2NvdW50IHRoYXQgd2lsbCBwYXkgZm9yIGZlZXMsIGFuZCBpbiBzaW5nbGVzaWcgdHJhbnNhY3Rpb25zLCB3aGVyZVxuICogICAgICAgIHRoZSBmdW5kcyBhcmUgdGFrZW4gZnJvbVxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCBUaGUgYW1vdW50IGluIG11dGV6IHRvIGJlIHRyYW5zZmVycmVkXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb24gVGhlIGFjY291bnQgYWRkcmVzcyB0byBzZW5kIHRoZSBmdW5kcyB0b1xuICogQHBhcmFtIHtzdHJpbmd9IGZlZSBGZWVzIGluIG11dGV6IHRvIHBheSBieSB0aGUgc291cmNlIGFjY291bnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBnYXNMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBnYXMgZmVlc1xuICogQHBhcmFtIHtzdHJpbmd9IHN0b3JhZ2VMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBzdG9yYWdlIGZlZXNcbiAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbk9wfUEgVGV6b3MgdHJhbnNhY3Rpb24gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaW5nbGVzaWdUcmFuc2FjdGlvbk9wZXJhdGlvbihcbiAgY291bnRlcjogc3RyaW5nLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgYW1vdW50OiBzdHJpbmcsXG4gIGRlc3RpbmF0aW9uOiBzdHJpbmcsXG4gIGZlZTogc3RyaW5nID0gREVGQVVMVF9GRUUuVFJBTlNGRVIudG9TdHJpbmcoKSxcbiAgZ2FzTGltaXQ6IHN0cmluZyA9IERFRkFVTFRfR0FTX0xJTUlULlRSQU5TRkVSLnRvU3RyaW5nKCksXG4gIHN0b3JhZ2VMaW1pdDogc3RyaW5nID0gREVGQVVMVF9TVE9SQUdFX0xJTUlULlRSQU5TRkVSLnRvU3RyaW5nKClcbik6IFRyYW5zYWN0aW9uT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICd0cmFuc2FjdGlvbicsXG4gICAgc291cmNlLFxuICAgIGZlZSxcbiAgICBjb3VudGVyLFxuICAgIGdhc19saW1pdDogZ2FzTGltaXQsXG4gICAgc3RvcmFnZV9saW1pdDogc3RvcmFnZUxpbWl0LFxuICAgIGFtb3VudCxcbiAgICBkZXN0aW5hdGlvbixcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtdWx0aXNpZyB3YWxsZXQgdHJhbnNhY3Rpb24gb3BlcmF0aW9uLlxuICpcbiAqIEBzZWUge0BsaW5rIHRyYW5zYWN0aW9uT3BlcmF0aW9ufVxuICogQHBhcmFtIHtzdHJpbmd9IGNvdW50ZXIgU291cmNlIGFjY291bnQgbmV4dCBjb3VudGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gc291cmNlIFRoZSBhY2NvdW50IHRoYXQgd2lsbCBwYXkgZm9yIGZlZXMsIGFuZCBpbiBzaW5nbGVzaWcgdHJhbnNhY3Rpb25zLCB3aGVyZVxuICogICAgICAgIHRoZSBmdW5kcyBhcmUgdGFrZW4gZnJvbVxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCBUaGUgYW1vdW50IGluIG11dGV6IHRvIGJlIHRyYW5zZmVycmVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udHJhY3RBZGRyZXNzIElmIGl0IGlzIGEgbXVsdGlzaWcgdHJhbnNmZXIsIHRoZSBzbWFydCBjb250cmFjdCBhZGRyZXNzIHdpdGggdGhlXG4gKiAgICAgICAgZnVuZHMgdG8gYmUgdHJhbnNmZXJyZWQgZnJvbVxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyYWN0Q291bnRlciBJZiBpdCBpcyBhIG11bHRpc2lnIHRyYW5zZmVyLCB0aGUgc21hcnQgY29udHJhY3QgY291bnRlciB0byB1c2VcbiAqICAgICAgICBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IGRlc3RpbmF0aW9uQWRkcmVzcyBBbiBpbXBsaWNpdCBvciBvcmlnaW5hdGVkIGFkZHJlc3MgdG8gdHJhbnNmZXIgZnVkbnMgdG9cbiAqIEBwYXJhbSB7c3RyaW5nW119IHNpZ25hdHVyZXMgc2lnbmF0dXJlcyBMaXN0IG9mIHNpZ25hdHVyZXMgYXV0aG9yaXppbmcgdGhlIGZ1bmRzIHRyYW5zZmVyIGZvcm1cbiAqICAgICAgICB0aGUgbXVsdGlzaWcgd2FsbGV0XG4gKiBAcGFyYW0ge3N0cmluZ30gZmVlIEZlZXMgaW4gbXV0ZXogdG8gcGF5IGJ5IHRoZSBzb3VyY2UgYWNjb3VudFxuICogQHBhcmFtIHtzdHJpbmd9IGdhc0xpbWl0IE1heGltdW0gYW1vdW50IGluIG11dGV6IHRvIHNwZW5kIGluIGdhcyBmZWVzXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RvcmFnZUxpbWl0IE1heGltdW0gYW1vdW50IGluIG11dGV6IHRvIHNwZW5kIGluIHN0b3JhZ2UgZmVlc1xuICogQHBhcmFtIHtudW1iZXJ9IG0gVGhlIG51bWJlciBvZiBzaWduZXJzIChvd25lcnMpIGZvciB0aGUgbXVsdGlzaWcgd2FsbGV0IGJlaW5nIHVzZWQuIERlZmF1bHQgaXMgM1xuICogQHJldHVybnMge1RyYW5zYWN0aW9uT3B9IEEgVGV6b3Mgb3BlcmF0aW9uIHdpdGggYSBnZW5lcmljIG11bHRpc2lnIHRyYW5zZmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtdWx0aXNpZ1RyYW5zYWN0aW9uT3BlcmF0aW9uKFxuICBjb3VudGVyOiBzdHJpbmcsXG4gIHNvdXJjZTogc3RyaW5nLFxuICBhbW91bnQ6IHN0cmluZyxcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmcsXG4gIGNvbnRyYWN0Q291bnRlcjogc3RyaW5nLFxuICBkZXN0aW5hdGlvbkFkZHJlc3M6IHN0cmluZyxcbiAgc2lnbmF0dXJlczogSW5kZXhlZFNpZ25hdHVyZVtdLFxuICBmZWU6IHN0cmluZyA9IERFRkFVTFRfRkVFLlRSQU5TRkVSLnRvU3RyaW5nKCksXG4gIGdhc0xpbWl0OiBzdHJpbmcgPSBERUZBVUxUX0dBU19MSU1JVC5UUkFOU0ZFUi50b1N0cmluZygpLFxuICBzdG9yYWdlTGltaXQ6IHN0cmluZyA9IERFRkFVTFRfU1RPUkFHRV9MSU1JVC5UUkFOU0ZFUi50b1N0cmluZygpLFxuICBtOiBudW1iZXIgPSBERUZBVUxUX01cbik6IFRyYW5zYWN0aW9uT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICd0cmFuc2FjdGlvbicsXG4gICAgc291cmNlLFxuICAgIGZlZSxcbiAgICBjb3VudGVyLFxuICAgIGdhc19saW1pdDogZ2FzTGltaXQsXG4gICAgc3RvcmFnZV9saW1pdDogc3RvcmFnZUxpbWl0LFxuICAgIGFtb3VudDogJzAnLCAvLyBEb24ndCB0cmFuc2ZlciBhbnkgZnVuZHMgZnJvbSBoZSBzb3VyY2UgYWNjb3VudCB0byB0aGUgY29udHJhY3QgaW4gbXVsdGlzaWcgdHhzXG4gICAgZGVzdGluYXRpb246IGNvbnRyYWN0QWRkcmVzcyxcbiAgICBwYXJhbWV0ZXJzOiBnZW5lcmljTXVsdGlzaWdUcmFuc2ZlclBhcmFtcyhkZXN0aW5hdGlvbkFkZHJlc3MsIGFtb3VudCwgY29udHJhY3RDb3VudGVyLCBzaWduYXR1cmVzLCBtKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gYnVpbGQgdGhlIHBhcmFtZXRlcnMgdG8gY2FsbCB0aGUgZ2VuZXJpYyBtdWx0aXNpZyBzbWFydCBjb250cmFjdCB3aXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0aW5hdGlvbkFkZHJlc3MgQW4gaW1wbGljaXQgb3Igb3JpZ2luYXRlZCBhZGRyZXNzXG4gKiBAcGFyYW0ge251bWJlcn0gYW1vdW50IE51bWJlciBvZiBNdXRleiB0byBiZSB0cmFuc2ZlcnJlZFxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyYWN0Q291bnRlciBNdWx0aXNpZyBjb250cmFjdCBjb3VudGVyIG51bWJlclxuICogQHBhcmFtIHtJbmRleGVkU2lnbmF0dXJlW119IHNpZ25hdHVyZXMgTGlzdCBvZiB0cmFuc2FjdGlvbnMgYW5kIHRoZWlyIG9yZGVyXG4gKiBAcGFyYW0ge251bWJlcn0gbSBUaGUgbXVsdGlzaWcgd2FsbGV0IHRvdGFsIG51bWJlciBvZiBzaWduZXJzIChvd25lcnMpXG4gKiBAcmV0dXJucyBUaGUgcGFyYW1ldGVycyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZ2VuZXJpY011bHRpc2lnVHJhbnNmZXJQYXJhbXMoXG4gIGRlc3RpbmF0aW9uQWRkcmVzczogc3RyaW5nLFxuICBhbW91bnQ6IHN0cmluZyxcbiAgY29udHJhY3RDb3VudGVyOiBzdHJpbmcsXG4gIHNpZ25hdHVyZXM6IEluZGV4ZWRTaWduYXR1cmVbXSxcbiAgbTogbnVtYmVyXG4pIHtcbiAgY29uc3QgdHJhbnNhY3Rpb25TaWduYXR1cmVzOiBhbnlbXSA9IGJ1aWxkU2lnbmF0dXJlcyhzaWduYXR1cmVzKTtcbiAgcmV0dXJuIHtcbiAgICBlbnRyeXBvaW50OiAnbWFpbicsXG4gICAgdmFsdWU6IHtcbiAgICAgIHByaW06ICdQYWlyJyxcbiAgICAgIGFyZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByaW06ICdQYWlyJyxcbiAgICAgICAgICBhcmdzOiBbeyBpbnQ6IGNvbnRyYWN0Q291bnRlciB9LCB7IHByaW06ICdMZWZ0JywgYXJnczogW3RyYW5zZmVyVG9BY2NvdW50KGRlc3RpbmF0aW9uQWRkcmVzcywgYW1vdW50KV0gfV0sXG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zYWN0aW9uU2lnbmF0dXJlcyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXBsYWNlIHRoZSBzaWduYXR1cmVzIGluIGEgbXVsdGlzaWcgdHJhbnNhY3Rpb24gb3BlcmF0aW9uIHdpdGggbmV3IG9uZXMuXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbk9wfSB0cmFuc2FjdGlvbiBUcmFuc2FjdGlvbiB0byBtdXRhdGVcbiAqIEBwYXJhbSB7SW5kZXhlZFNpZ25hdHVyZVtdfSBzaWduYXR1cmVzIExpc3Qgb2YgdHJhbnNhY3Rpb25zIGFuZCB0aGVpciBvcmRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlTXVsdGlzaWdUcmFuc2ZlclNpZ25hdHVyZXModHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uT3AsIHNpZ25hdHVyZXM6IEluZGV4ZWRTaWduYXR1cmVbXSkge1xuICB0cmFuc2FjdGlvbi5wYXJhbWV0ZXJzLnZhbHVlLmFyZ3NbMV0gPSBidWlsZFNpZ25hdHVyZXMoc2lnbmF0dXJlcywgdHJhbnNhY3Rpb24ucGFyYW1ldGVycy52YWx1ZS5hcmdzWzFdKTtcbn1cblxuLyoqXG4gKiBHZSB0aGUgbGlzdCBpZiBtdWx0aXNpZyBzaWduYXR1cmVzIGlmIGFueSBpbiBhIGNvbnZlbmllbnQgZm9ybWF0LlxuICpcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25PcH0gdHJhbnNhY3Rpb24gVGhlIHRyYW5zYWN0aW9uIHRvIHNlYXJjaCB0aGUgc2lnbmF0dXJlcyBpblxuICogQHJldHVybnMge0luZGV4ZWRTaWduYXR1cmVbXX0gQSBsaXN0IG9mIHNpZ25hdHVyZXMgYW5kIHRoZWlyIG9yZGVyIGluIHRlaCB0cmFuc2ZlciBzY3JpcHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE11bHRpc2lnVHJhbnNmZXJTaWduYXR1cmVzKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbk9wKTogSW5kZXhlZFNpZ25hdHVyZVtdIHtcbiAgY29uc3Qgc2lnbmF0dXJlczogSW5kZXhlZFNpZ25hdHVyZVtdID0gW107XG4gIGlmICghdHJhbnNhY3Rpb24ucGFyYW1ldGVycyAmJiAhdHJhbnNhY3Rpb24ucGFyYW1ldGVycy52YWx1ZSAmJiAhdHJhbnNhY3Rpb24ucGFyYW1ldGVycy52YWx1ZSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBjb25zdCByYXdTaWduYXR1cmVzID0gdHJhbnNhY3Rpb24ucGFyYW1ldGVycy52YWx1ZS5hcmdzWzFdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHJhd1NpZ25hdHVyZXMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAocmF3U2lnbmF0dXJlc1tpXS5wcmltID09PSAnU29tZScpIHtcbiAgICAgIHNpZ25hdHVyZXMucHVzaCh7XG4gICAgICAgIHNpZ25hdHVyZTogcmF3U2lnbmF0dXJlc1tpXS5hcmdzWzBdLnN0cmluZyxcbiAgICAgICAgaW5kZXg6IGksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNpZ25hdHVyZXM7XG59XG5cbi8qKlxuICogQnVpbGQgYSBsaXN0IG9mIG9yZGVyZWQgc2lnbmF0dXJlcywgcHV0dGluZyBhIE5vbmUgcHJpbWl0aXZlIGZvciB0aGUgbWlzc2luZyBpbmRleGVzLlxuICpcbiAqIEBwYXJhbSB7SW5kZXhlZFNpZ25hdHVyZVtdfSBzaWduYXR1cmVzIExpc3Qgb2YgdHJhbnNhY3Rpb25zIGFuZCB0aGVpciBvcmRlclxuICogQHBhcmFtIHtudW1iZXJ9IG0gU2l6ZSBvZiB0aGUgc2lnbmF0dXJlIGxpc3RcbiAqIEBwYXJhbSB7YW55W119IGV4aXN0aW5nU2lnbmF0dXJlcyBMaXN0IG9mIGV4aXN0aW5nIHNpZ25hdHVyZXMgdG8gbWVyZ2Ugd2l0aCB0aGUgZ2VuZXJhdGVkIG9uZXNcbiAqIEByZXR1cm5zIHthbnlbXX0gTGlzdCBvZiBzaWduYXR1cmVzIGluIHRoZSByaWdodCBvcmRlclxuICovXG5mdW5jdGlvbiBidWlsZFNpZ25hdHVyZXMoc2lnbmF0dXJlczogSW5kZXhlZFNpZ25hdHVyZVtdLCBleGlzdGluZ1NpZ25hdHVyZXMgPSBbXSwgbTogbnVtYmVyID0gREVGQVVMVF9NKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGFycmF5IHdpdGggdGhlIGV4aXN0aW5nIHNpZ25hdHVyZXMgYW5kL29yIGVtcHR5IG9iamVjdHNcbiAgY29uc3QgdHJhbnNhY3Rpb25TaWduYXR1cmVzOiBhbnlbXSA9IGV4aXN0aW5nU2lnbmF0dXJlcztcbiAgY29uc3Qgc2l6ZSA9IGV4aXN0aW5nU2lnbmF0dXJlcy5sZW5ndGg7XG4gIGlmIChzaXplID4gbSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVG9vIG1hbnkgc2lnbmF0dXJlcy4gRXhwZWN0ZWQgbGVzcyB0aGFuICcgKyBtICsgJyBnb3QgJyArIHNpemUpO1xuICB9XG4gIGZvciAobGV0IGkgPSBzaXplOyBpIDwgbTsgaSsrKSB7XG4gICAgdHJhbnNhY3Rpb25TaWduYXR1cmVzLnB1c2goeyBwcmltOiAnTm9uZScgfSk7XG4gIH1cbiAgLy8gUmVwbGFjZSB0aGUgZW1wdHkgc2lnbmF0dXJlcyBmb3IgdGhlIHJlYWwgb25lcyBiYXNlZCBvbiB0aGUgcmlnaHQgaW5kZXhcbiAgc2lnbmF0dXJlcy5mb3JFYWNoKChzKSA9PiB7XG4gICAgaWYgKHMuaW5kZXgpIHtcbiAgICAgIHRyYW5zYWN0aW9uU2lnbmF0dXJlc1tzLmluZGV4XSA9IHsgcHJpbTogJ1NvbWUnLCBhcmdzOiBbeyBzdHJpbmc6IHMuc2lnbmF0dXJlIH1dIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJhbnNhY3Rpb25TaWduYXR1cmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vIFNlYXJjaCBmb3IgdGhlIGZpcnN0IFwibnVsbFwiIHNpZ25hdHVyZVxuICAgICAgICBpZiAodHJhbnNhY3Rpb25TaWduYXR1cmVzW2ldLnByaW0gPT09ICdOb25lJykge1xuICAgICAgICAgIHRyYW5zYWN0aW9uU2lnbmF0dXJlc1tpXSA9IHsgcHJpbTogJ1NvbWUnLCBhcmdzOiBbeyBzdHJpbmc6IHMuc2lnbmF0dXJlIH1dIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gdHJhbnNhY3Rpb25TaWduYXR1cmVzO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBidWlsZCB0aGUgTWljaGVsc29uIHNjcmlwdCB0byBiZSBzaWduZWQgdG8gdHJhbnNmZXIgZnVuZHMgZnJvbSBhIG11bHRpc2lnXG4gKiB3YWxsZXQuXG4gKlxuICogQHBhcmFtIGNvbnRyYWN0QWRkcmVzcyBUaGUgbXVsdGlzaWcgc21hcnQgY29udHJhY3QgYWRkcmVzc1xuICogQHBhcmFtIHtzdHJpbmd9IGRlc3RpbmF0aW9uQWRkcmVzcyBUaGUgZGVzdGluYXRpb24gYWNjb3VudCBhZGRyZXNzIChpbXBsaWNpdCBvciBvcmlnaW5hdGVkKVxuICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBOdW1iZXIgb2YgbXV0ZXogdG8gdHJhbnNmZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250cmFjdENvdW50ZXIgV2FsbGV0IGNvdW50ZXIgdG8gdXNlIGluIHRoZSB0cmFuc2FjdGlvblxuICogQHJldHVybnMgQSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBNaWNoZWxzb24gc2NyaXB0IHRvIHNpZ24gYW5kIGFwcHJvdmUgYSB0cmFuc2ZlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJpY011bHRpc2lnRGF0YVRvU2lnbihcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmcsXG4gIGRlc3RpbmF0aW9uQWRkcmVzczogc3RyaW5nLFxuICBhbW91bnQ6IHN0cmluZyxcbiAgY29udHJhY3RDb3VudGVyOiBzdHJpbmdcbikge1xuICBjb25zdCBkYXRhID0ge1xuICAgIHByaW06ICdQYWlyJyxcbiAgICBhcmdzOiBbXG4gICAgICB7IGludDogY29udHJhY3RDb3VudGVyIH0sXG4gICAgICB7XG4gICAgICAgIHByaW06ICdMZWZ0JyxcbiAgICAgICAgYXJnczogW3RyYW5zZmVyVG9BY2NvdW50KGRlc3RpbmF0aW9uQWRkcmVzcywgYW1vdW50KV0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG4gIGNvbnN0IHR5cGUgPSB7XG4gICAgcHJpbTogJ3BhaXInLFxuICAgIGFyZ3M6IFtcbiAgICAgIHtcbiAgICAgICAgcHJpbTogJ25hdCcsXG4gICAgICAgIGFubm90czogWyclY291bnRlciddLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJpbTogJ29yJyxcbiAgICAgICAgYXJnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW06ICdsYW1iZGEnLFxuICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICB7IHByaW06ICd1bml0JyB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ2xpc3QnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICdvcGVyYXRpb24nIH1dLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFubm90czogWyclb3BlcmF0aW9uJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcmltOiAncGFpcicsXG4gICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnbmF0JyxcbiAgICAgICAgICAgICAgICBhbm5vdHM6IFsnJXRocmVzaG9sZCddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ2xpc3QnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICdrZXknIH1dLFxuICAgICAgICAgICAgICAgIGFubm90czogWycla2V5cyddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFubm90czogWyclY2hhbmdlX2tleXMnXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBhbm5vdHM6IFsnOmFjdGlvbiddLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGFubm90czogWyc6cGF5bG9hZCddLFxuICB9O1xuICByZXR1cm4gYnVpbGRQYWlyKGRhdGEsIHR5cGUsIGNvbnRyYWN0QWRkcmVzcyk7XG59XG5cbi8qKlxuICogVXRpbCBmdW5jdGlvbiB0byBidWlsZCBhIE1pY2hlbHNvbiBQYWlyIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gZGF0YVxuICogQHBhcmFtIHR5cGVcbiAqIEBwYXJhbSBjb250cmFjdEFkZHJlc3NcbiAqL1xuZnVuY3Rpb24gYnVpbGRQYWlyKGRhdGE6IGFueSwgdHlwZTogYW55LCBjb250cmFjdEFkZHJlc3M6IGFueSkge1xuICByZXR1cm4ge1xuICAgIGRhdGE6IHtcbiAgICAgIHByaW06ICdQYWlyJyxcbiAgICAgIGFyZ3M6IFt7IHN0cmluZzogY29udHJhY3RBZGRyZXNzIH0sIGRhdGFdLFxuICAgIH0sXG4gICAgdHlwZToge1xuICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgYXJnczogW3sgcHJpbTogJ2FkZHJlc3MnIH0sIHR5cGVdLFxuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIGxhbWJkYSBmb3IgdGhlIG11bHRpc2lnIHRyYW5zYWN0aW9uIHRyYW5zZmVyIHRvIGFuIGltcGxpY2l0IG9yIG9yaWdpbmF0ZWQgYWNjb3VudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyBBY2NvdW50IGFkZHJlc3MgdG8gc2VuZCB0aGUgZnVuZHMgdG9cbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgVGhlIGFtb3VudCBpbiBtdXRleiB0byB0cmFuc2ZlclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly90ZXpvc3RhcXVpdG8uaW8vZG9jcy9tYWtpbmdfdHJhbnNmZXJzI3RyYW5zZmVyLTAwMDAwNS01MC1tdXRlei10b2tlbnMtZnJvbS1hLWt0MS1hZGRyZXNzLXRvLWEtdHoxLWFkZHJlc3N9XG4gKi9cbmZ1bmN0aW9uIHRyYW5zZmVyVG9BY2NvdW50KGFkZHJlc3M6IHN0cmluZywgYW1vdW50OiBzdHJpbmcpIHtcbiAgaWYgKGlzVmFsaWRLZXkoYWRkcmVzcywgaGFzaFR5cGVzLktUKSkge1xuICAgIHJldHVybiB0cmFuc2ZlclRvT3JpZ2luYXRlZEFjY291bnQoYWRkcmVzcywgYW1vdW50KTtcbiAgfVxuICAvLyBMYW1iZGEgdG8gdHJhbnNmZXIgdG8gYW4gaW1wbGljaXQgYWNjb3VudFxuICByZXR1cm4gW1xuICAgIHsgcHJpbTogJ0RST1AnIH0sXG4gICAgeyBwcmltOiAnTklMJywgYXJnczogW3sgcHJpbTogJ29wZXJhdGlvbicgfV0gfSxcbiAgICB7XG4gICAgICBwcmltOiAnUFVTSCcsXG4gICAgICBhcmdzOiBbeyBwcmltOiAna2V5X2hhc2gnIH0sIHsgc3RyaW5nOiBhZGRyZXNzIH1dLFxuICAgIH0sXG4gICAgeyBwcmltOiAnSU1QTElDSVRfQUNDT1VOVCcgfSxcbiAgICB7XG4gICAgICBwcmltOiAnUFVTSCcsXG4gICAgICBhcmdzOiBbeyBwcmltOiAnbXV0ZXonIH0sIHsgaW50OiBhbW91bnQgfV0sXG4gICAgfSxcbiAgICB7IHByaW06ICdVTklUJyB9LFxuICAgIHsgcHJpbTogJ1RSQU5TRkVSX1RPS0VOUycgfSxcbiAgICB7IHByaW06ICdDT05TJyB9LFxuICBdO1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBsYW1iZGEgZm9yIHRoZSBtdWx0aXNpZyB0cmFuc2FjdGlvbiB0cmFuc2ZlciB0byBhbiBvcmlnaW5hdGVkIGFjY291bnQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgT3JpZ2luYXRlZCBhY2NvdW50IGFkZHJlc3MgdG8gc2VuZCB0aGUgZnVuZHMgdG9cbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgVGhlIGFtb3VudCBpbiBtdXRleiB0byB0cmFuc2ZlclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly90ZXpvc3RhcXVpdG8uaW8vZG9jcy9tYWtpbmdfdHJhbnNmZXJzI3RyYW5zZmVyLTAwMDAwMDEtMS1tdXRlei10b2tlbnMtZnJvbS1hLWt0MS1hZGRyZXNzLXRvLWEta3QxLWFkZHJlc3N9XG4gKi9cbmZ1bmN0aW9uIHRyYW5zZmVyVG9PcmlnaW5hdGVkQWNjb3VudChhZGRyZXNzOiBzdHJpbmcsIGFtb3VudDogc3RyaW5nKSB7XG4gIHJldHVybiBbXG4gICAgeyBwcmltOiAnRFJPUCcgfSxcbiAgICB7IHByaW06ICdOSUwnLCBhcmdzOiBbeyBwcmltOiAnb3BlcmF0aW9uJyB9XSB9LFxuICAgIHtcbiAgICAgIHByaW06ICdQVVNIJyxcbiAgICAgIGFyZ3M6IFt7IHByaW06ICdhZGRyZXNzJyB9LCB7IHN0cmluZzogYWRkcmVzcyB9XSxcbiAgICB9LFxuICAgIHsgcHJpbTogJ0NPTlRSQUNUJywgYXJnczogW3sgcHJpbTogJ3VuaXQnIH1dIH0sXG4gICAgW1xuICAgICAge1xuICAgICAgICBwcmltOiAnSUZfTk9ORScsXG4gICAgICAgIGFyZ3M6IFtbW3sgcHJpbTogJ1VOSVQnIH0sIHsgcHJpbTogJ0ZBSUxXSVRIJyB9XV0sIFtdXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICB7XG4gICAgICBwcmltOiAnUFVTSCcsXG4gICAgICBhcmdzOiBbeyBwcmltOiAnbXV0ZXonIH0sIHsgaW50OiBhbW91bnQgfV0sXG4gICAgfSxcbiAgICB7IHByaW06ICdVTklUJyB9LFxuICAgIHsgcHJpbTogJ1RSQU5TRkVSX1RPS0VOUycgfSxcbiAgICB7IHByaW06ICdDT05TJyB9LFxuICBdO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHJldmVhbCBvcGVyYXRpb24gZm9yIGEgcHVibGljIGtleS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY291bnRlciBTb3VyY2UgYWNjb3VudCBuZXh0IGNvdW50ZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2UgU291cmNlIGFjY291bnQgYWRkcmVzc1xuICogQHBhcmFtIHtzdHJpbmd9IHB1YktleSBUaGUgcHVibGljIGtleSB0byByZXZlYWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBmZWUgRmVlcyBpbiBtdXRleiB0byBwYXkgYnkgdGhlIHNvdXJjZSBhY2NvdW50XG4gKiBAcGFyYW0ge3N0cmluZ30gZ2FzTGltaXQgTWF4aW11bSBhbW91bnQgaW4gbXV0ZXogdG8gc3BlbmQgaW4gZ2FzIGZlZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yYWdlTGltaXQgTWF4aW11bSBhbW91bnQgaW4gbXV0ZXogdG8gc3BlbmQgaW4gc3RvcmFnZSBmZWVzXG4gKiBAcmV0dXJucyBBbiBvcmlnaW5hdGlvbiBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldmVhbE9wZXJhdGlvbihcbiAgY291bnRlcjogc3RyaW5nLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgcHViS2V5OiBzdHJpbmcsXG4gIGZlZTogc3RyaW5nID0gREVGQVVMVF9GRUUuUkVWRUFMLnRvU3RyaW5nKCksXG4gIGdhc0xpbWl0OiBzdHJpbmcgPSBERUZBVUxUX0dBU19MSU1JVC5SRVZFQUwudG9TdHJpbmcoKSxcbiAgc3RvcmFnZUxpbWl0OiBzdHJpbmcgPSBERUZBVUxUX1NUT1JBR0VfTElNSVQuUkVWRUFMLnRvU3RyaW5nKClcbik6IFJldmVhbE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAncmV2ZWFsJyxcbiAgICBjb3VudGVyLFxuICAgIHNvdXJjZSxcbiAgICBmZWUsXG4gICAgZ2FzX2xpbWl0OiBnYXNMaW1pdCxcbiAgICBzdG9yYWdlX2xpbWl0OiBzdG9yYWdlTGltaXQsXG4gICAgcHVibGljX2tleTogcHViS2V5LFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBvcmlnaW5hdGlvbiBvcGVyYXRpb24gZm9yIHRoZSBnZW5lcmljIG11bHRpc2cgY29udHJhY3QuIEl0IGRvZXMgbm90IGNyZWF0ZSBhIHJldmVhbFxuICogb3BlcmF0aW9uIGZvciB0aGUgc291cmNlIGFjY291bnQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvdW50ZXIgVmFsaWQgc291cmNlIGFjY291bnQgY291bnRlciB0byB1c2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2UgU291cmNlIGFjY291bnQgYWRkcmVzc1xuICogQHBhcmFtIHtzdHJpbmd9IGZlZSBGZWVzIGluIG11dGV6IHRvIHBheSBieSB0aGUgc291cmNlIGFjY291bnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBnYXNMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBnYXMgZmVlc1xuICogQHBhcmFtIHtzdHJpbmd9IHN0b3JhZ2VMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBzdG9yYWdlIGZlZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYWxhbmNlIE5ldyBtdWx0aXNpZyBhY2NvdW50IGluaXRpYWwgYmFsYW5jZSB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgYWNjb3VudFxuICogQHBhcmFtIHtzdHJpbmdbXX0gcHViS2V5cyBMaXN0IG9mIHB1YmxpYyBrZXlzIG9mIHRoZSBtdWx0aXNpZyBvd25lclxuICogQHBhcmFtIHtzdHJpbmd9IGRlbGVnYXRlIE9wdGlvbmFsIGltcGxpY2l0IGFkZHJlc3MgdG8gZGVsZWdhdGUgdGhlIHdhbGxldCBmdW5kcyB0b1xuICogQHBhcmFtIHtudW1iZXJ9IHRocmVzaG9sZCBNaW5pbXVtIG51bWJlciBvZiBzaWduYXR1cmVzIHJlcXVpcmVkIHRvIGF1dGhvcml6ZSBhIG11bHRpc2lnIG9wZXJhdGlvblxuICogQHJldHVybnMgQW4gb3JpZ2luYXRpb24gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmljTXVsdGlzaWdPcmlnaW5hdGlvbk9wZXJhdGlvbihcbiAgY291bnRlcjogc3RyaW5nLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgZmVlOiBzdHJpbmcsXG4gIGdhc0xpbWl0OiBzdHJpbmcsXG4gIHN0b3JhZ2VMaW1pdDogc3RyaW5nLFxuICBiYWxhbmNlOiBzdHJpbmcsXG4gIHB1YktleXM6IHN0cmluZ1tdLFxuICBkZWxlZ2F0ZT86IHN0cmluZyxcbiAgdGhyZXNob2xkOiBudW1iZXIgPSBERUZBVUxUX05cbik6IE9yaWdpbmF0aW9uT3Age1xuICBjb25zdCB3YWxsZXRQdWJsaWNLZXlzOiBhbnlbXSA9IFtdO1xuICBwdWJLZXlzLmZvckVhY2goKHBrKSA9PiB3YWxsZXRQdWJsaWNLZXlzLnB1c2goeyBzdHJpbmc6IHBrIH0pKTtcbiAgY29uc3Qgb3JpZ2luYXRpb25PcDogT3JpZ2luYXRpb25PcCA9IHtcbiAgICBraW5kOiAnb3JpZ2luYXRpb24nLFxuICAgIGNvdW50ZXIsXG4gICAgc291cmNlLFxuICAgIGZlZSxcbiAgICBnYXNfbGltaXQ6IGdhc0xpbWl0LFxuICAgIHN0b3JhZ2VfbGltaXQ6IHN0b3JhZ2VMaW1pdCxcbiAgICBiYWxhbmNlLFxuICAgIHNjcmlwdDoge1xuICAgICAgY29kZTogZ2VuZXJpY011bHRpc2lnLFxuICAgICAgc3RvcmFnZToge1xuICAgICAgICBwcmltOiAnUGFpcicsXG4gICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpbnQ6ICcwJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW06ICdQYWlyJyxcbiAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGludDogdGhyZXNob2xkLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHdhbGxldFB1YmxpY0tleXMsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG4gIGlmIChkZWxlZ2F0ZSkge1xuICAgIG9yaWdpbmF0aW9uT3AuZGVsZWdhdGUgPSBkZWxlZ2F0ZTtcbiAgfVxuICByZXR1cm4gb3JpZ2luYXRpb25PcDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHB1YmxpYyBrZXkgb2YgZWFjaCBvd25lciBvZiBhbiBtdWx0aXNpZyB3YWxsZXQgb3JpZ2luYXRpb24gY29udHJhY3QuXG4gKlxuICogQHBhcmFtIHtPcmlnaW5hdGlvbk9wfSBvcGVyYXRpb24gQW4gb3BlcmF0aW9uIHdpdGggdGhlIGdlbmVyaWMgbXVsdGlzaWcgd2FsbGV0IG9yaWdpbmF0aW9uXG4gKiBAcmV0dXJucyB7c3RyaW5nW119IExpc3Qgb2YgYWxsIHRoZSBvd25lcnMgc2V0IGluIHRoZSBvcmlnaW5hdGlvbiB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3duZXJzUHVibGljS2V5cyhvcGVyYXRpb246IE9yaWdpbmF0aW9uT3ApOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG93bmVyc0FyZ3MgPSBfLmdldChvcGVyYXRpb24sICdzY3JpcHQuc3RvcmFnZS5hcmdzWzFdLmFyZ3NbMV0nKTtcbiAgaWYgKCFvd25lcnNBcmdzKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBvd25lcnNBcmdzLm1hcCgobykgPT4gby5zdHJpbmcpO1xufVxuXG4vKipcbiAqIEdlbmVyaWMgTXVsdGlzaWcgY29udHJhY3QgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbXVyYmFyZC9zbWFydC1jb250cmFjdHMvYmxvYi9tYXN0ZXIvbXVsdGlzaWcvbWljaGVsc29uL2dlbmVyaWMudHpcbiAqL1xuY29uc3QgZ2VuZXJpY011bHRpc2lnID0gW1xuICB7XG4gICAgcHJpbTogJ3BhcmFtZXRlcicsXG4gICAgYXJnczogW1xuICAgICAge1xuICAgICAgICBwcmltOiAnb3InLFxuICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgeyBwcmltOiAndW5pdCcsIGFubm90czogWyclZGVmYXVsdCddIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJpbTogJ25hdCcsXG4gICAgICAgICAgICAgICAgICAgIGFubm90czogWyclY291bnRlciddLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJpbTogJ29yJyxcbiAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdsYW1iZGEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICd1bml0JyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ2xpc3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ29wZXJhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RzOiBbJyVvcGVyYXRpb24nXSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICduYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubm90czogWycldGhyZXNob2xkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnbGlzdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW3sgcHJpbTogJ2tleScgfV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RzOiBbJyVrZXlzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RzOiBbJyVjaGFuZ2Vfa2V5cyddLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIGFubm90czogWyc6YWN0aW9uJ10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgYW5ub3RzOiBbJzpwYXlsb2FkJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnbGlzdCcsXG4gICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcmltOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgYXJnczogW3sgcHJpbTogJ3NpZ25hdHVyZScgfV0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgYW5ub3RzOiBbJyVzaWdzJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgYW5ub3RzOiBbJyVtYWluJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIHByaW06ICdzdG9yYWdlJyxcbiAgICBhcmdzOiBbXG4gICAgICB7XG4gICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgYXJnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW06ICduYXQnLFxuICAgICAgICAgICAgYW5ub3RzOiBbJyVzdG9yZWRfY291bnRlciddLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ25hdCcsXG4gICAgICAgICAgICAgICAgYW5ub3RzOiBbJyV0aHJlc2hvbGQnXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdsaXN0JyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbeyBwcmltOiAna2V5JyB9XSxcbiAgICAgICAgICAgICAgICBhbm5vdHM6IFsnJWtleXMnXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIHByaW06ICdjb2RlJyxcbiAgICBhcmdzOiBbXG4gICAgICBbXG4gICAgICAgIFtcbiAgICAgICAgICBbXG4gICAgICAgICAgICB7IHByaW06ICdEVVAnIH0sXG4gICAgICAgICAgICB7IHByaW06ICdDQVInIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICBhcmdzOiBbW3sgcHJpbTogJ0NEUicgfV1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICBdLFxuICAgICAgICB7XG4gICAgICAgICAgcHJpbTogJ0lGX0xFRlQnLFxuICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgeyBwcmltOiAnRFJPUCcgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdOSUwnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICdvcGVyYXRpb24nIH1dLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdQVVNIJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbeyBwcmltOiAnbXV0ZXonIH0sIHsgaW50OiAnMCcgfV0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgcHJpbTogJ0FNT1VOVCcgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFt7IHByaW06ICdDT01QQVJFJyB9LCB7IHByaW06ICdFUScgfV0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcHJpbTogJ0lGJyxcbiAgICAgICAgICAgICAgICAgIGFyZ3M6IFtbXSwgW1t7IHByaW06ICdVTklUJyB9LCB7IHByaW06ICdGQUlMV0lUSCcgfV1dXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB7IHByaW06ICdTV0FQJyB9LFxuICAgICAgICAgICAgICB7IHByaW06ICdEVVAnIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbW3sgcHJpbTogJ1NXQVAnIH1dXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RVUCcgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0NBUicgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtbeyBwcmltOiAnQ0RSJyB9XV0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RVUCcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnU0VMRicgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnQUREUkVTUycgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnUEFJUicgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnUEFDSycgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RVUCcgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0NBUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubm90czogWydAY291bnRlciddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdDRFInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1t7IHByaW06ICdTV0FQJyB9XV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1NXQVAnIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICB7IHByaW06ICdEVVAnIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByaW06ICdDQVInLFxuICAgICAgICAgICAgICAgICAgICBhbm5vdHM6IFsnQHN0b3JlZF9jb3VudGVyJ10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgYXJnczogW1t7IHByaW06ICdDRFInIH1dXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFtbeyBwcmltOiAnU1dBUCcgfV1dLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgW3sgcHJpbTogJ0NPTVBBUkUnIH0sIHsgcHJpbTogJ0VRJyB9XSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBwcmltOiAnSUYnLFxuICAgICAgICAgICAgICAgICAgYXJnczogW1tdLCBbW3sgcHJpbTogJ1VOSVQnIH0sIHsgcHJpbTogJ0ZBSUxXSVRIJyB9XV1dLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbW3sgcHJpbTogJ1NXQVAnIH1dXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RVUCcgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0NBUicsXG4gICAgICAgICAgICAgICAgICAgIGFubm90czogWydAdGhyZXNob2xkJ10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0NEUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFubm90czogWydAa2V5cyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ1BVU0gnLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICduYXQnIH0sIHsgaW50OiAnMCcgfV0sXG4gICAgICAgICAgICAgICAgICAgICAgYW5ub3RzOiBbJ0B2YWxpZCddLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdTV0FQJyB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0lURVInLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtbeyBwcmltOiAnU1dBUCcgfV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdTV0FQJyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0lGX0NPTlMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdJRl9OT05FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdTV0FQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdEUk9QJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ1NXQVAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnU1dBUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDogJzInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RVUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnU1dBUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ6ICcyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRFVQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdESUcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50OiAnMycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0NIRUNLX1NJR05BVFVSRScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnU1dBUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnSUYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRFJPUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRkFJTFdJVEgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdQVVNIJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICduYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50OiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0FERCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5vdHM6IFsnQHZhbGlkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnVU5JVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRkFJTFdJVEgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1NXQVAnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbeyBwcmltOiAnQ09NUEFSRScgfSwgeyBwcmltOiAnTEUnIH1dLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHByaW06ICdJRicsXG4gICAgICAgICAgICAgICAgICBhcmdzOiBbW10sIFtbeyBwcmltOiAnVU5JVCcgfSwgeyBwcmltOiAnRkFJTFdJVEgnIH1dXV0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdJRl9DT05TJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbW1t7IHByaW06ICdVTklUJyB9LCB7IHByaW06ICdGQUlMV0lUSCcgfV1dLCBbXV0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgcHJpbTogJ0RST1AnIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdEVVAnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdDQVInIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbW3sgcHJpbTogJ0NEUicgfV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ1BVU0gnLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICduYXQnIH0sIHsgaW50OiAnMScgfV0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnQUREJyxcbiAgICAgICAgICAgICAgICAgICAgICBhbm5vdHM6IFsnQG5ld19jb3VudGVyJ10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1BBSVInIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnSUZfTEVGVCcsXG4gICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgW3sgcHJpbTogJ1VOSVQnIH0sIHsgcHJpbTogJ0VYRUMnIH1dLFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgYXJnczogW1t7IHByaW06ICdDQVInIH1dXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnU1dBUCcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnUEFJUicgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdOSUwnLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICdvcGVyYXRpb24nIH1dLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICBdLFxuICB9LFxuXTtcblxuLyoqXG4gKiBBZGQgY29udHJhY3QgYWRkcmVzcyB0byBmb3J3YXJkZXIgY29udHJhY3QgdGVtcGxhdGUgYW5kIHJldHVybiBjb250cmFjdCBNaWNoZWxzb24gY29kZSBhcyBKU09OXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyYWN0QWRkcmVzcyAtIG11bHRpc2lnIGNvbnRyYWN0QWRkcmVzcyB0aGF0IHdpbGwgcmVjZWl2ZSBmb3J3YXJkZWQgZnVuZHNcbiAqIEByZXR1cm5zIHtvYmplY3RbXX0gTWljaGVsc29uIGNvZGUgZm9yIHRoZSBvcmlnaW5hdGlvbiBvcGVyYXRpb25cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRm9yd2FyZGVyKGNvbnRyYWN0QWRkcmVzczogc3RyaW5nKSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJpbTogJ3BhcmFtZXRlcicsXG4gICAgICBhcmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcmltOiAnb3InLFxuICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgIHsgcHJpbTogJ3VuaXQnLCBhbm5vdHM6IFsnJWRlZmF1bHQnXSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwcmltOiAncGFpcicsXG4gICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICB7IHByaW06ICduYXQnIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcHJpbTogJ2NvbnRyYWN0JyxcbiAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdhZGRyZXNzJywgYW5ub3RzOiBbJzpmcm9tJ10gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnYWRkcmVzcycsIGFubm90czogWyc6dG8nXSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ25hdCcsIGFubm90czogWyc6dmFsdWUnXSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBhbm5vdHM6IFsnJWZsdXNoJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgeyBwcmltOiAnc3RvcmFnZScsIGFyZ3M6IFt7IHByaW06ICd1bml0JyB9XSB9LFxuICAgIHtcbiAgICAgIHByaW06ICdjb2RlJyxcbiAgICAgIGFyZ3M6IFtcbiAgICAgICAgW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW06ICdDQVNUJyxcbiAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByaW06ICdvcicsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICd1bml0JyB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnbmF0JyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ2NvbnRyYWN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ2FkZHJlc3MnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAncGFpcicsIGFyZ3M6IFt7IHByaW06ICdhZGRyZXNzJyB9LCB7IHByaW06ICduYXQnIH1dIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgeyBwcmltOiAndW5pdCcgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgcHJpbTogJ0NBUicgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcmltOiAnSUZfTEVGVCcsXG4gICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7IHByaW06ICdEUk9QJyB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHByaW06ICdOT05FJyxcbiAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICduYXQnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdjb250cmFjdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAncGFpcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ2FkZHJlc3MnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ3BhaXInLCBhcmdzOiBbeyBwcmltOiAnYWRkcmVzcycgfSwgeyBwcmltOiAnbmF0JyB9XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBbeyBwcmltOiAnU09NRScgfV0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBwcmltOiAnRElQJywgYXJnczogW1t7IHByaW06ICdQVVNIJywgYXJnczogW3sgcHJpbTogJ2FkZHJlc3MnIH0sIHsgc3RyaW5nOiBjb250cmFjdEFkZHJlc3MgfV0gfV1dIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpbTogJ0lGX05PTkUnLFxuICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICBbeyBwcmltOiAnTklMJywgYXJnczogW3sgcHJpbTogJ29wZXJhdGlvbicgfV0gfV0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7IHByaW06ICdESVAnLCBhcmdzOiBbW3sgcHJpbTogJ0RVUCcgfV1dIH0sXG4gICAgICAgICAgICAgICAgeyBwcmltOiAnRFVQJyB9LFxuICAgICAgICAgICAgICAgIHsgcHJpbTogJ0NBUicgfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdESVAnLCBhcmdzOiBbW3sgcHJpbTogJ0NEUicgfV1dIH0sXG4gICAgICAgICAgICAgICAgeyBwcmltOiAnRElHJywgYXJnczogW3sgaW50OiAnMicgfV0gfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICAgICAgICAgIHsgcHJpbTogJ1NFTEYnIH0sXG4gICAgICAgICAgICAgICAgeyBwcmltOiAnQUREUkVTUycgfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RJUCcsIGFyZ3M6IFtbeyBwcmltOiAnUFVTSCcsIGFyZ3M6IFt7IHByaW06ICdtdXRleicgfSwgeyBpbnQ6ICcwJyB9XSB9XV0gfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdUUkFOU0ZFUl9UT0tFTlMnIH0sXG4gICAgICAgICAgICAgICAgeyBwcmltOiAnRElQJywgYXJnczogW1t7IHByaW06ICdOSUwnLCBhcmdzOiBbeyBwcmltOiAnb3BlcmF0aW9uJyB9XSB9XV0gfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdDT05TJyB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgcHJpbTogJ0JBTEFOQ0UnIH0sXG4gICAgICAgICAgeyBwcmltOiAnUFVTSCcsIGFyZ3M6IFt7IHByaW06ICdtdXRleicgfSwgeyBpbnQ6ICcwJyB9XSB9LFxuICAgICAgICAgIHsgcHJpbTogJ0NPTVBBUkUnIH0sXG4gICAgICAgICAgeyBwcmltOiAnRVEnIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpbTogJ0lGJyxcbiAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgW3sgcHJpbTogJ0RJUCcsIGFyZ3M6IFtbeyBwcmltOiAnRFJPUCcgfV1dIH1dLFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdDT05UUkFDVCcsIGFyZ3M6IFt7IHByaW06ICd1bml0JyB9XSB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdJRl9OT05FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1BVU0gnLCBhcmdzOiBbeyBwcmltOiAnc3RyaW5nJyB9LCB7IHN0cmluZzogJ25vdCBhIHdhbGxldCcgfV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdGQUlMV0lUSCcgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnQkFMQU5DRScgfSxcbiAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdVTklUJyB9LFxuICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1RSQU5TRkVSX1RPS0VOUycgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdTV0FQJyB9LFxuICAgICAgICAgICAgICAgIHsgcHJpbTogJ0NPTlMnIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBwcmltOiAnRElQJywgYXJnczogW1t7IHByaW06ICdVTklUJyB9XV0gfSxcbiAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICBdLFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBvcmlnaW5hdGlvbiBvcGVyYXRpb24gZm9yIGEgZm9yd2FyZGVyIGNvbnRyYWN0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyYWN0QWRkcmVzcyBvcmlnaW5hdGVkIG11bHRpc2lnIGFkZHJlc3MgdG8gZm9yd2FyZCBmdW5kc1xuICogQHBhcmFtIHtzdHJpbmd9IGNvdW50ZXIgVmFsaWQgc291cmNlIGFjY291bnQgY291bnRlciB0byB1c2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2UgU291cmNlIGFjY291bnQgYWRkcmVzc1xuICogQHBhcmFtIHtzdHJpbmd9IGZlZSBGZWVzIGluIG11dGV6IHRvIHBheSBieSB0aGUgc291cmNlIGFjY291bnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBnYXNMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBnYXMgZmVlc1xuICogQHBhcmFtIHtzdHJpbmd9IHN0b3JhZ2VMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBzdG9yYWdlIGZlZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYWxhbmNlIE5ldyBtdWx0aXNpZyBhY2NvdW50IGluaXRpYWwgYmFsYW5jZSB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgYWNjb3VudFxuICogQHJldHVybnMge09yaWdpbmF0aW9uT3B9IHRoZSBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRlck9yaWdpbmF0aW9uT3BlcmF0aW9uKFxuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZyxcbiAgY291bnRlcjogc3RyaW5nLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgZmVlOiBzdHJpbmcsXG4gIGdhc0xpbWl0OiBzdHJpbmcsXG4gIHN0b3JhZ2VMaW1pdDogc3RyaW5nLFxuICBiYWxhbmNlOiBzdHJpbmdcbik6IE9yaWdpbmF0aW9uT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdvcmlnaW5hdGlvbicsXG4gICAgY291bnRlcixcbiAgICBzb3VyY2UsXG4gICAgZmVlLFxuICAgIGdhc19saW1pdDogZ2FzTGltaXQsXG4gICAgc3RvcmFnZV9saW1pdDogc3RvcmFnZUxpbWl0LFxuICAgIGJhbGFuY2UsXG4gICAgc2NyaXB0OiB7XG4gICAgICBjb2RlOiBjcmVhdGVGb3J3YXJkZXIoY29udHJhY3RBZGRyZXNzKSxcbiAgICAgIHN0b3JhZ2U6IHsgcHJpbTogJ1VuaXQnIH0sXG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
1184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzaWdVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbXVsdGlzaWdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUE0QjtBQUU1QixtQ0FBdUc7QUFFdkcsc0NBQXNDO0FBQ3RDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUNwQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFFcEI7Ozs7O0dBS0c7QUFDSCxTQUFnQixvQ0FBb0MsQ0FBQyxTQUF3QjtJQUMzRSxNQUFNLEdBQUcsR0FBRztRQUNWLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRztRQUNsQixRQUFRLEVBQUUsU0FBUyxDQUFDLFNBQVM7UUFDN0IsWUFBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhO0tBQ3RDLENBQUM7SUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRTtRQUN6Qix3QkFBd0I7UUFDeEIsT0FBTztZQUNMLElBQUksRUFBRSxPQUFPO1lBQ2IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3RCLEVBQUUsRUFBRSxTQUFTLENBQUMsV0FBVztZQUN6QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDeEIsR0FBRztTQUNKLENBQUM7S0FDSDtJQUNELGtGQUFrRjtJQUNsRixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FB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Q2hCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTs2QkFDakI7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUMzQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7aUJBQ2pCO2FBQ0Y7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQiw2QkFBNkIsQ0FDM0MsZUFBdUIsRUFDdkIsT0FBZSxFQUNmLE1BQWMsRUFDZCxHQUFXLEVBQ1gsUUFBZ0IsRUFDaEIsWUFBb0IsRUFDcEIsT0FBZTtJQUVmLE9BQU87UUFDTCxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPO1FBQ1AsTUFBTTtRQUNOLEdBQUc7UUFDSCxTQUFTLEVBQUUsUUFBUTtRQUNuQixhQUFhLEVBQUUsWUFBWTtRQUMzQixPQUFPO1FBQ1AsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLGVBQWUsQ0FBQyxlQUFlLENBQUM7WUFDdEMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtTQUMxQjtLQUNGLENBQUM7QUFDSixDQUFDO0FBdEJELHNFQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEluZGV4ZWRTaWduYXR1cmUsIE9yaWdpbmF0aW9uRGF0YSwgT3JpZ2luYXRpb25PcCwgUmV2ZWFsT3AsIFRyYW5zYWN0aW9uT3AsIFRyYW5zZmVyRGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgREVGQVVMVF9GRUUsIERFRkFVTFRfR0FTX0xJTUlULCBERUZBVUxUX1NUT1JBR0VfTElNSVQsIGhhc2hUeXBlcywgaXNWYWxpZEtleSB9IGZyb20gJy4vdXRpbHMnO1xuXG4vLyBEZWZhdWx0IG4gb2YgbSBmb3IgbXVsdGlzaWcgd2FsbGV0c1xuY29uc3QgREVGQVVMVF9OID0gMjtcbmNvbnN0IERFRkFVTFRfTSA9IDM7XG5cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIHRyYW5zZmVyIGRldGFpbHMgZnJvbSBhIGdlbmVyaWMgbXVsdGlzaWcgdHJhbnNhY3Rpb24gb3BlcmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25PcH0gb3BlcmF0aW9uIEEgdHJhbnNhY3Rpb24gb3BlcmF0aW9uIEpTT05cbiAqIEByZXR1cm5zIHtUcmFuc2ZlckRhdGF9IEluZm9ybWF0aW9uIGFib3V0IHRoZSBkZXN0aW5hdGlvbiwgdG9rZW4gYW5kIHRyYW5zZmVyIGFtb3VudFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TXVsdGlzaWdUcmFuc2ZlckRhdGFGcm9tT3BlcmF0aW9uKG9wZXJhdGlvbjogVHJhbnNhY3Rpb25PcCk6IFRyYW5zZmVyRGF0YSB7XG4gIGNvbnN0IGZlZSA9IHtcbiAgICBmZWU6IG9wZXJhdGlvbi5mZWUsXG4gICAgZ2FzTGltaXQ6IG9wZXJhdGlvbi5nYXNfbGltaXQsXG4gICAgc3RvcmFnZUxpbWl0OiBvcGVyYXRpb24uc3RvcmFnZV9saW1pdCxcbiAgfTtcblxuICBpZiAoIW9wZXJhdGlvbi5wYXJhbWV0ZXJzKSB7XG4gICAgLy8gU2luZ2xlc2lnIHRyYW5zYWN0aW9uXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvaW46ICdtdXRleicsXG4gICAgICBmcm9tOiBvcGVyYXRpb24uc291cmNlLFxuICAgICAgdG86IG9wZXJhdGlvbi5kZXN0aW5hdGlvbixcbiAgICAgIGFtb3VudDogb3BlcmF0aW9uLmFtb3VudCxcbiAgICAgIGZlZSxcbiAgICB9O1xuICB9XG4gIC8vIFRoZXNlIGZvbGxvdyB0aGUgc3RydWN0dXJlIGZyb20gdGhlIHJlc3BvbnNlIG9mIGdlbmVyaWNNdWx0aXNpZ1RyYW5zZmVyUGFyYW1zKClcbiAgY29uc3QgdHJhbnNmZXJBcmdzID0gb3BlcmF0aW9uLnBhcmFtZXRlcnMudmFsdWUuYXJnc1swXS5hcmdzWzFdLmFyZ3NbMF07XG4gIGNvbnN0IGFjY291bnRUeXBlID0gdHJhbnNmZXJBcmdzWzNdLnByaW07XG4gIGNvbnN0IGNvdW50ZXIgPSBvcGVyYXRpb24ucGFyYW1ldGVycy52YWx1ZS5hcmdzWzBdLmFyZ3NbMF0uaW50O1xuICAvLyBJbiBtdWx0aXNpZyB0cmFuc2FjdGlvbnMsIHRoZSB3YWxsZXQgY29udHJhY3QgaXMgdGhlIGRlc3RpbmF0aW9uXG4gIGNvbnN0IGZyb20gPSBvcGVyYXRpb24uZGVzdGluYXRpb247XG5cbiAgbGV0IGFjY291bnRUeXBlSW5kZXg7XG4gIHN3aXRjaCAoYWNjb3VudFR5cGUpIHtcbiAgICBjYXNlICdJTVBMSUNJVF9BQ0NPVU5UJzpcbiAgICAgIGFjY291bnRUeXBlSW5kZXggPSA0O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnQ09OVFJBQ1QnOlxuICAgICAgYWNjb3VudFR5cGVJbmRleCA9IDU7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbnRyYWN0IHBhcmFtZXRlcnMnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY29pbjogdHJhbnNmZXJBcmdzW2FjY291bnRUeXBlSW5kZXhdLmFyZ3NbMF0ucHJpbSxcbiAgICBmcm9tLFxuICAgIHRvOiB0cmFuc2ZlckFyZ3NbMl0uYXJnc1sxXS5zdHJpbmcsXG4gICAgYW1vdW50OiB0cmFuc2ZlckFyZ3NbYWNjb3VudFR5cGVJbmRleF0uYXJnc1sxXS5pbnQsXG4gICAgZmVlLFxuICAgIGNvdW50ZXIsXG4gIH07XG59XG5cbi8qKlxuICogIEhlbHBlciBtZXRob2QgdG8gZ2V0IHRoZSB3YWxsZXQgb3IgYWRkcmVzcyBpbml0aWFsaXphdGlvbiB0eCBmcm9tIGFuIG9yaWdpbmF0aW9uIG9wZXJhdGlvblxuICpcbiAqIEBwYXJhbSB7T3JpZ2luYXRpb25PcH0gb3BlcmF0aW9uXG4gKiBAcmV0dXJucyB7T3JpZ2luYXRpb25EYXRhfSBJbmZvcm1hdGlvbiBhYm91dCB0aGUgd2FsbGV0IGNvbnRyYWN0IGNyZWF0aW5nIGEgZm9yd2FyZGVyIGNvbnRyYWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmlnaW5hdGlvbkRhdGFGcm9tT3BlcmF0aW9uKG9wZXJhdGlvbjogT3JpZ2luYXRpb25PcCk6IE9yaWdpbmF0aW9uRGF0YSB7XG4gIGNvbnN0IGZlZSA9IHtcbiAgICBmZWU6IG9wZXJhdGlvbi5mZWUsXG4gICAgZ2FzTGltaXQ6IG9wZXJhdGlvbi5nYXNfbGltaXQsXG4gICAgc3RvcmFnZUxpbWl0OiBvcGVyYXRpb24uc3RvcmFnZV9saW1pdCxcbiAgfTtcblxuICBjb25zdCB7IHNvdXJjZTogZnJvbSwgY291bnRlciwgYmFsYW5jZSB9ID0gb3BlcmF0aW9uO1xuXG4gIC8vIFRyYW5zYWN0aW9ucyBpbml0aWFsaXppbmcgYSBmb3J3YXJkZXIgY29udHJhY3QgY29udGFpbiB0aGUgYWRkcmVzcyBvZiB0aGUgd2FsbGV0IGNvbnRyYWN0XG4gIGNvbnN0IGZvcndhcmRlckRlc3RpbmF0aW9uOiBzdHJpbmcgPSBfLmdldChvcGVyYXRpb24sICdzY3JpcHQuY29kZVsyXS5hcmdzWzBdWzNdLmFyZ3NbMF1bMF0uYXJnc1sxXS5zdHJpbmcnKTtcblxuICByZXR1cm4ge1xuICAgIGZlZSxcbiAgICBjb3VudGVyLFxuICAgIGJhbGFuY2UsXG4gICAgZnJvbSxcbiAgICBmb3J3YXJkZXJEZXN0aW5hdGlvbixcbiAgfTtcbn1cbi8qKlxuICogSGVscGVyIG1ldGhvZCB0byBidWlsZCBhIHNpbmdsZXNpZyB0cmFuc2FjdGlvbiBvcGVyYXRpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvdW50ZXIgU291cmNlIGFjY291bnQgbmV4dCBjb3VudGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gc291cmNlIFRoZSBhY2NvdW50IHRoYXQgd2lsbCBwYXkgZm9yIGZlZXMsIGFuZCBpbiBzaW5nbGVzaWcgdHJhbnNhY3Rpb25zLCB3aGVyZVxuICogICAgICAgIHRoZSBmdW5kcyBhcmUgdGFrZW4gZnJvbVxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCBUaGUgYW1vdW50IGluIG11dGV6IHRvIGJlIHRyYW5zZmVycmVkXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb24gVGhlIGFjY291bnQgYWRkcmVzcyB0byBzZW5kIHRoZSBmdW5kcyB0b1xuICogQHBhcmFtIHtzdHJpbmd9IGZlZSBGZWVzIGluIG11dGV6IHRvIHBheSBieSB0aGUgc291cmNlIGFjY291bnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBnYXNMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBnYXMgZmVlc1xuICogQHBhcmFtIHtzdHJpbmd9IHN0b3JhZ2VMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBzdG9yYWdlIGZlZXNcbiAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbk9wfUEgVGV6b3MgdHJhbnNhY3Rpb24gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaW5nbGVzaWdUcmFuc2FjdGlvbk9wZXJhdGlvbihcbiAgY291bnRlcjogc3RyaW5nLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgYW1vdW50OiBzdHJpbmcsXG4gIGRlc3RpbmF0aW9uOiBzdHJpbmcsXG4gIGZlZTogc3RyaW5nID0gREVGQVVMVF9GRUUuVFJBTlNGRVIudG9TdHJpbmcoKSxcbiAgZ2FzTGltaXQ6IHN0cmluZyA9IERFRkFVTFRfR0FTX0xJTUlULlRSQU5TRkVSLnRvU3RyaW5nKCksXG4gIHN0b3JhZ2VMaW1pdDogc3RyaW5nID0gREVGQVVMVF9TVE9SQUdFX0xJTUlULlRSQU5TRkVSLnRvU3RyaW5nKClcbik6IFRyYW5zYWN0aW9uT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICd0cmFuc2FjdGlvbicsXG4gICAgc291cmNlLFxuICAgIGZlZSxcbiAgICBjb3VudGVyLFxuICAgIGdhc19saW1pdDogZ2FzTGltaXQsXG4gICAgc3RvcmFnZV9saW1pdDogc3RvcmFnZUxpbWl0LFxuICAgIGFtb3VudCxcbiAgICBkZXN0aW5hdGlvbixcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtdWx0aXNpZyB3YWxsZXQgdHJhbnNhY3Rpb24gb3BlcmF0aW9uLlxuICpcbiAqIEBzZWUge0BsaW5rIHRyYW5zYWN0aW9uT3BlcmF0aW9ufVxuICogQHBhcmFtIHtzdHJpbmd9IGNvdW50ZXIgU291cmNlIGFjY291bnQgbmV4dCBjb3VudGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gc291cmNlIFRoZSBhY2NvdW50IHRoYXQgd2lsbCBwYXkgZm9yIGZlZXMsIGFuZCBpbiBzaW5nbGVzaWcgdHJhbnNhY3Rpb25zLCB3aGVyZVxuICogICAgICAgIHRoZSBmdW5kcyBhcmUgdGFrZW4gZnJvbVxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCBUaGUgYW1vdW50IGluIG11dGV6IHRvIGJlIHRyYW5zZmVycmVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udHJhY3RBZGRyZXNzIElmIGl0IGlzIGEgbXVsdGlzaWcgdHJhbnNmZXIsIHRoZSBzbWFydCBjb250cmFjdCBhZGRyZXNzIHdpdGggdGhlXG4gKiAgICAgICAgZnVuZHMgdG8gYmUgdHJhbnNmZXJyZWQgZnJvbVxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyYWN0Q291bnRlciBJZiBpdCBpcyBhIG11bHRpc2lnIHRyYW5zZmVyLCB0aGUgc21hcnQgY29udHJhY3QgY291bnRlciB0byB1c2VcbiAqICAgICAgICBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IGRlc3RpbmF0aW9uQWRkcmVzcyBBbiBpbXBsaWNpdCBvciBvcmlnaW5hdGVkIGFkZHJlc3MgdG8gdHJhbnNmZXIgZnVkbnMgdG9cbiAqIEBwYXJhbSB7c3RyaW5nW119IHNpZ25hdHVyZXMgc2lnbmF0dXJlcyBMaXN0IG9mIHNpZ25hdHVyZXMgYXV0aG9yaXppbmcgdGhlIGZ1bmRzIHRyYW5zZmVyIGZvcm1cbiAqICAgICAgICB0aGUgbXVsdGlzaWcgd2FsbGV0XG4gKiBAcGFyYW0ge3N0cmluZ30gZmVlIEZlZXMgaW4gbXV0ZXogdG8gcGF5IGJ5IHRoZSBzb3VyY2UgYWNjb3VudFxuICogQHBhcmFtIHtzdHJpbmd9IGdhc0xpbWl0IE1heGltdW0gYW1vdW50IGluIG11dGV6IHRvIHNwZW5kIGluIGdhcyBmZWVzXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RvcmFnZUxpbWl0IE1heGltdW0gYW1vdW50IGluIG11dGV6IHRvIHNwZW5kIGluIHN0b3JhZ2UgZmVlc1xuICogQHBhcmFtIHtudW1iZXJ9IG0gVGhlIG51bWJlciBvZiBzaWduZXJzIChvd25lcnMpIGZvciB0aGUgbXVsdGlzaWcgd2FsbGV0IGJlaW5nIHVzZWQuIERlZmF1bHQgaXMgM1xuICogQHJldHVybnMge1RyYW5zYWN0aW9uT3B9IEEgVGV6b3Mgb3BlcmF0aW9uIHdpdGggYSBnZW5lcmljIG11bHRpc2lnIHRyYW5zZmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtdWx0aXNpZ1RyYW5zYWN0aW9uT3BlcmF0aW9uKFxuICBjb3VudGVyOiBzdHJpbmcsXG4gIHNvdXJjZTogc3RyaW5nLFxuICBhbW91bnQ6IHN0cmluZyxcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmcsXG4gIGNvbnRyYWN0Q291bnRlcjogc3RyaW5nLFxuICBkZXN0aW5hdGlvbkFkZHJlc3M6IHN0cmluZyxcbiAgc2lnbmF0dXJlczogSW5kZXhlZFNpZ25hdHVyZVtdLFxuICBmZWU6IHN0cmluZyA9IERFRkFVTFRfRkVFLlRSQU5TRkVSLnRvU3RyaW5nKCksXG4gIGdhc0xpbWl0OiBzdHJpbmcgPSBERUZBVUxUX0dBU19MSU1JVC5UUkFOU0ZFUi50b1N0cmluZygpLFxuICBzdG9yYWdlTGltaXQ6IHN0cmluZyA9IERFRkFVTFRfU1RPUkFHRV9MSU1JVC5UUkFOU0ZFUi50b1N0cmluZygpLFxuICBtOiBudW1iZXIgPSBERUZBVUxUX01cbik6IFRyYW5zYWN0aW9uT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICd0cmFuc2FjdGlvbicsXG4gICAgc291cmNlLFxuICAgIGZlZSxcbiAgICBjb3VudGVyLFxuICAgIGdhc19saW1pdDogZ2FzTGltaXQsXG4gICAgc3RvcmFnZV9saW1pdDogc3RvcmFnZUxpbWl0LFxuICAgIGFtb3VudDogJzAnLCAvLyBEb24ndCB0cmFuc2ZlciBhbnkgZnVuZHMgZnJvbSBoZSBzb3VyY2UgYWNjb3VudCB0byB0aGUgY29udHJhY3QgaW4gbXVsdGlzaWcgdHhzXG4gICAgZGVzdGluYXRpb246IGNvbnRyYWN0QWRkcmVzcyxcbiAgICBwYXJhbWV0ZXJzOiBnZW5lcmljTXVsdGlzaWdUcmFuc2ZlclBhcmFtcyhkZXN0aW5hdGlvbkFkZHJlc3MsIGFtb3VudCwgY29udHJhY3RDb3VudGVyLCBzaWduYXR1cmVzLCBtKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gYnVpbGQgdGhlIHBhcmFtZXRlcnMgdG8gY2FsbCB0aGUgZ2VuZXJpYyBtdWx0aXNpZyBzbWFydCBjb250cmFjdCB3aXRoLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXN0aW5hdGlvbkFkZHJlc3MgQW4gaW1wbGljaXQgb3Igb3JpZ2luYXRlZCBhZGRyZXNzXG4gKiBAcGFyYW0ge251bWJlcn0gYW1vdW50IE51bWJlciBvZiBNdXRleiB0byBiZSB0cmFuc2ZlcnJlZFxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyYWN0Q291bnRlciBNdWx0aXNpZyBjb250cmFjdCBjb3VudGVyIG51bWJlclxuICogQHBhcmFtIHtJbmRleGVkU2lnbmF0dXJlW119IHNpZ25hdHVyZXMgTGlzdCBvZiB0cmFuc2FjdGlvbnMgYW5kIHRoZWlyIG9yZGVyXG4gKiBAcGFyYW0ge251bWJlcn0gbSBUaGUgbXVsdGlzaWcgd2FsbGV0IHRvdGFsIG51bWJlciBvZiBzaWduZXJzIChvd25lcnMpXG4gKiBAcmV0dXJucyBUaGUgcGFyYW1ldGVycyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZ2VuZXJpY011bHRpc2lnVHJhbnNmZXJQYXJhbXMoXG4gIGRlc3RpbmF0aW9uQWRkcmVzczogc3RyaW5nLFxuICBhbW91bnQ6IHN0cmluZyxcbiAgY29udHJhY3RDb3VudGVyOiBzdHJpbmcsXG4gIHNpZ25hdHVyZXM6IEluZGV4ZWRTaWduYXR1cmVbXSxcbiAgbTogbnVtYmVyXG4pIHtcbiAgY29uc3QgdHJhbnNhY3Rpb25TaWduYXR1cmVzOiBhbnlbXSA9IGJ1aWxkU2lnbmF0dXJlcyhzaWduYXR1cmVzKTtcbiAgcmV0dXJuIHtcbiAgICBlbnRyeXBvaW50OiAnbWFpbicsXG4gICAgdmFsdWU6IHtcbiAgICAgIHByaW06ICdQYWlyJyxcbiAgICAgIGFyZ3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByaW06ICdQYWlyJyxcbiAgICAgICAgICBhcmdzOiBbeyBpbnQ6IGNvbnRyYWN0Q291bnRlciB9LCB7IHByaW06ICdMZWZ0JywgYXJnczogW3RyYW5zZmVyVG9BY2NvdW50KGRlc3RpbmF0aW9uQWRkcmVzcywgYW1vdW50KV0gfV0sXG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zYWN0aW9uU2lnbmF0dXJlcyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXBsYWNlIHRoZSBzaWduYXR1cmVzIGluIGEgbXVsdGlzaWcgdHJhbnNhY3Rpb24gb3BlcmF0aW9uIHdpdGggbmV3IG9uZXMuXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbk9wfSB0cmFuc2FjdGlvbiBUcmFuc2FjdGlvbiB0byBtdXRhdGVcbiAqIEBwYXJhbSB7SW5kZXhlZFNpZ25hdHVyZVtdfSBzaWduYXR1cmVzIExpc3Qgb2YgdHJhbnNhY3Rpb25zIGFuZCB0aGVpciBvcmRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlTXVsdGlzaWdUcmFuc2ZlclNpZ25hdHVyZXModHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uT3AsIHNpZ25hdHVyZXM6IEluZGV4ZWRTaWduYXR1cmVbXSkge1xuICB0cmFuc2FjdGlvbi5wYXJhbWV0ZXJzLnZhbHVlLmFyZ3NbMV0gPSBidWlsZFNpZ25hdHVyZXMoc2lnbmF0dXJlcywgdHJhbnNhY3Rpb24ucGFyYW1ldGVycy52YWx1ZS5hcmdzWzFdKTtcbn1cblxuLyoqXG4gKiBHZSB0aGUgbGlzdCBpZiBtdWx0aXNpZyBzaWduYXR1cmVzIGlmIGFueSBpbiBhIGNvbnZlbmllbnQgZm9ybWF0LlxuICpcbiAqIEBwYXJhbSB7VHJhbnNhY3Rpb25PcH0gdHJhbnNhY3Rpb24gVGhlIHRyYW5zYWN0aW9uIHRvIHNlYXJjaCB0aGUgc2lnbmF0dXJlcyBpblxuICogQHJldHVybnMge0luZGV4ZWRTaWduYXR1cmVbXX0gQSBsaXN0IG9mIHNpZ25hdHVyZXMgYW5kIHRoZWlyIG9yZGVyIGluIHRlaCB0cmFuc2ZlciBzY3JpcHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE11bHRpc2lnVHJhbnNmZXJTaWduYXR1cmVzKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbk9wKTogSW5kZXhlZFNpZ25hdHVyZVtdIHtcbiAgY29uc3Qgc2lnbmF0dXJlczogSW5kZXhlZFNpZ25hdHVyZVtdID0gW107XG4gIGlmICghdHJhbnNhY3Rpb24ucGFyYW1ldGVycyAmJiAhdHJhbnNhY3Rpb24ucGFyYW1ldGVycy52YWx1ZSAmJiAhdHJhbnNhY3Rpb24ucGFyYW1ldGVycy52YWx1ZSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBjb25zdCByYXdTaWduYXR1cmVzID0gdHJhbnNhY3Rpb24ucGFyYW1ldGVycy52YWx1ZS5hcmdzWzFdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHJhd1NpZ25hdHVyZXMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAocmF3U2lnbmF0dXJlc1tpXS5wcmltID09PSAnU29tZScpIHtcbiAgICAgIHNpZ25hdHVyZXMucHVzaCh7XG4gICAgICAgIHNpZ25hdHVyZTogcmF3U2lnbmF0dXJlc1tpXS5hcmdzWzBdLnN0cmluZyxcbiAgICAgICAgaW5kZXg6IGksXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNpZ25hdHVyZXM7XG59XG5cbi8qKlxuICogQnVpbGQgYSBsaXN0IG9mIG9yZGVyZWQgc2lnbmF0dXJlcywgcHV0dGluZyBhIE5vbmUgcHJpbWl0aXZlIGZvciB0aGUgbWlzc2luZyBpbmRleGVzLlxuICpcbiAqIEBwYXJhbSB7SW5kZXhlZFNpZ25hdHVyZVtdfSBzaWduYXR1cmVzIExpc3Qgb2YgdHJhbnNhY3Rpb25zIGFuZCB0aGVpciBvcmRlclxuICogQHBhcmFtIHtudW1iZXJ9IG0gU2l6ZSBvZiB0aGUgc2lnbmF0dXJlIGxpc3RcbiAqIEBwYXJhbSB7YW55W119IGV4aXN0aW5nU2lnbmF0dXJlcyBMaXN0IG9mIGV4aXN0aW5nIHNpZ25hdHVyZXMgdG8gbWVyZ2Ugd2l0aCB0aGUgZ2VuZXJhdGVkIG9uZXNcbiAqIEByZXR1cm5zIHthbnlbXX0gTGlzdCBvZiBzaWduYXR1cmVzIGluIHRoZSByaWdodCBvcmRlclxuICovXG5mdW5jdGlvbiBidWlsZFNpZ25hdHVyZXMoc2lnbmF0dXJlczogSW5kZXhlZFNpZ25hdHVyZVtdLCBleGlzdGluZ1NpZ25hdHVyZXMgPSBbXSwgbTogbnVtYmVyID0gREVGQVVMVF9NKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGFycmF5IHdpdGggdGhlIGV4aXN0aW5nIHNpZ25hdHVyZXMgYW5kL29yIGVtcHR5IG9iamVjdHNcbiAgY29uc3QgdHJhbnNhY3Rpb25TaWduYXR1cmVzOiBhbnlbXSA9IGV4aXN0aW5nU2lnbmF0dXJlcztcbiAgY29uc3Qgc2l6ZSA9IGV4aXN0aW5nU2lnbmF0dXJlcy5sZW5ndGg7XG4gIGlmIChzaXplID4gbSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVG9vIG1hbnkgc2lnbmF0dXJlcy4gRXhwZWN0ZWQgbGVzcyB0aGFuICcgKyBtICsgJyBnb3QgJyArIHNpemUpO1xuICB9XG4gIGZvciAobGV0IGkgPSBzaXplOyBpIDwgbTsgaSsrKSB7XG4gICAgdHJhbnNhY3Rpb25TaWduYXR1cmVzLnB1c2goeyBwcmltOiAnTm9uZScgfSk7XG4gIH1cbiAgLy8gUmVwbGFjZSB0aGUgZW1wdHkgc2lnbmF0dXJlcyBmb3IgdGhlIHJlYWwgb25lcyBiYXNlZCBvbiB0aGUgcmlnaHQgaW5kZXhcbiAgc2lnbmF0dXJlcy5mb3JFYWNoKChzKSA9PiB7XG4gICAgaWYgKHMuaW5kZXgpIHtcbiAgICAgIHRyYW5zYWN0aW9uU2lnbmF0dXJlc1tzLmluZGV4XSA9IHsgcHJpbTogJ1NvbWUnLCBhcmdzOiBbeyBzdHJpbmc6IHMuc2lnbmF0dXJlIH1dIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJhbnNhY3Rpb25TaWduYXR1cmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vIFNlYXJjaCBmb3IgdGhlIGZpcnN0IFwibnVsbFwiIHNpZ25hdHVyZVxuICAgICAgICBpZiAodHJhbnNhY3Rpb25TaWduYXR1cmVzW2ldLnByaW0gPT09ICdOb25lJykge1xuICAgICAgICAgIHRyYW5zYWN0aW9uU2lnbmF0dXJlc1tpXSA9IHsgcHJpbTogJ1NvbWUnLCBhcmdzOiBbeyBzdHJpbmc6IHMuc2lnbmF0dXJlIH1dIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gdHJhbnNhY3Rpb25TaWduYXR1cmVzO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBidWlsZCB0aGUgTWljaGVsc29uIHNjcmlwdCB0byBiZSBzaWduZWQgdG8gdHJhbnNmZXIgZnVuZHMgZnJvbSBhIG11bHRpc2lnXG4gKiB3YWxsZXQuXG4gKlxuICogQHBhcmFtIGNvbnRyYWN0QWRkcmVzcyBUaGUgbXVsdGlzaWcgc21hcnQgY29udHJhY3QgYWRkcmVzc1xuICogQHBhcmFtIHtzdHJpbmd9IGRlc3RpbmF0aW9uQWRkcmVzcyBUaGUgZGVzdGluYXRpb24gYWNjb3VudCBhZGRyZXNzIChpbXBsaWNpdCBvciBvcmlnaW5hdGVkKVxuICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBOdW1iZXIgb2YgbXV0ZXogdG8gdHJhbnNmZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250cmFjdENvdW50ZXIgV2FsbGV0IGNvdW50ZXIgdG8gdXNlIGluIHRoZSB0cmFuc2FjdGlvblxuICogQHJldHVybnMgQSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBNaWNoZWxzb24gc2NyaXB0IHRvIHNpZ24gYW5kIGFwcHJvdmUgYSB0cmFuc2ZlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJpY011bHRpc2lnRGF0YVRvU2lnbihcbiAgY29udHJhY3RBZGRyZXNzOiBzdHJpbmcsXG4gIGRlc3RpbmF0aW9uQWRkcmVzczogc3RyaW5nLFxuICBhbW91bnQ6IHN0cmluZyxcbiAgY29udHJhY3RDb3VudGVyOiBzdHJpbmdcbikge1xuICBjb25zdCBkYXRhID0ge1xuICAgIHByaW06ICdQYWlyJyxcbiAgICBhcmdzOiBbXG4gICAgICB7IGludDogY29udHJhY3RDb3VudGVyIH0sXG4gICAgICB7XG4gICAgICAgIHByaW06ICdMZWZ0JyxcbiAgICAgICAgYXJnczogW3RyYW5zZmVyVG9BY2NvdW50KGRlc3RpbmF0aW9uQWRkcmVzcywgYW1vdW50KV0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG4gIGNvbnN0IHR5cGUgPSB7XG4gICAgcHJpbTogJ3BhaXInLFxuICAgIGFyZ3M6IFtcbiAgICAgIHtcbiAgICAgICAgcHJpbTogJ25hdCcsXG4gICAgICAgIGFubm90czogWyclY291bnRlciddLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJpbTogJ29yJyxcbiAgICAgICAgYXJnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW06ICdsYW1iZGEnLFxuICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICB7IHByaW06ICd1bml0JyB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ2xpc3QnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICdvcGVyYXRpb24nIH1dLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFubm90czogWyclb3BlcmF0aW9uJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcmltOiAncGFpcicsXG4gICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnbmF0JyxcbiAgICAgICAgICAgICAgICBhbm5vdHM6IFsnJXRocmVzaG9sZCddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ2xpc3QnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICdrZXknIH1dLFxuICAgICAgICAgICAgICAgIGFubm90czogWycla2V5cyddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFubm90czogWyclY2hhbmdlX2tleXMnXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBhbm5vdHM6IFsnOmFjdGlvbiddLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGFubm90czogWyc6cGF5bG9hZCddLFxuICB9O1xuICByZXR1cm4gYnVpbGRQYWlyKGRhdGEsIHR5cGUsIGNvbnRyYWN0QWRkcmVzcyk7XG59XG5cbi8qKlxuICogVXRpbCBmdW5jdGlvbiB0byBidWlsZCBhIE1pY2hlbHNvbiBQYWlyIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gZGF0YVxuICogQHBhcmFtIHR5cGVcbiAqIEBwYXJhbSBjb250cmFjdEFkZHJlc3NcbiAqL1xuZnVuY3Rpb24gYnVpbGRQYWlyKGRhdGE6IGFueSwgdHlwZTogYW55LCBjb250cmFjdEFkZHJlc3M6IGFueSkge1xuICByZXR1cm4ge1xuICAgIGRhdGE6IHtcbiAgICAgIHByaW06ICdQYWlyJyxcbiAgICAgIGFyZ3M6IFt7IHN0cmluZzogY29udHJhY3RBZGRyZXNzIH0sIGRhdGFdLFxuICAgIH0sXG4gICAgdHlwZToge1xuICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgYXJnczogW3sgcHJpbTogJ2FkZHJlc3MnIH0sIHR5cGVdLFxuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIGxhbWJkYSBmb3IgdGhlIG11bHRpc2lnIHRyYW5zYWN0aW9uIHRyYW5zZmVyIHRvIGFuIGltcGxpY2l0IG9yIG9yaWdpbmF0ZWQgYWNjb3VudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyBBY2NvdW50IGFkZHJlc3MgdG8gc2VuZCB0aGUgZnVuZHMgdG9cbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgVGhlIGFtb3VudCBpbiBtdXRleiB0byB0cmFuc2ZlclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly90ZXpvc3RhcXVpdG8uaW8vZG9jcy9tYWtpbmdfdHJhbnNmZXJzI3RyYW5zZmVyLTAwMDAwNS01MC1tdXRlei10b2tlbnMtZnJvbS1hLWt0MS1hZGRyZXNzLXRvLWEtdHoxLWFkZHJlc3N9XG4gKi9cbmZ1bmN0aW9uIHRyYW5zZmVyVG9BY2NvdW50KGFkZHJlc3M6IHN0cmluZywgYW1vdW50OiBzdHJpbmcpIHtcbiAgaWYgKGlzVmFsaWRLZXkoYWRkcmVzcywgaGFzaFR5cGVzLktUKSkge1xuICAgIHJldHVybiB0cmFuc2ZlclRvT3JpZ2luYXRlZEFjY291bnQoYWRkcmVzcywgYW1vdW50KTtcbiAgfVxuICAvLyBMYW1iZGEgdG8gdHJhbnNmZXIgdG8gYW4gaW1wbGljaXQgYWNjb3VudFxuICByZXR1cm4gW1xuICAgIHsgcHJpbTogJ0RST1AnIH0sXG4gICAgeyBwcmltOiAnTklMJywgYXJnczogW3sgcHJpbTogJ29wZXJhdGlvbicgfV0gfSxcbiAgICB7XG4gICAgICBwcmltOiAnUFVTSCcsXG4gICAgICBhcmdzOiBbeyBwcmltOiAna2V5X2hhc2gnIH0sIHsgc3RyaW5nOiBhZGRyZXNzIH1dLFxuICAgIH0sXG4gICAgeyBwcmltOiAnSU1QTElDSVRfQUNDT1VOVCcgfSxcbiAgICB7XG4gICAgICBwcmltOiAnUFVTSCcsXG4gICAgICBhcmdzOiBbeyBwcmltOiAnbXV0ZXonIH0sIHsgaW50OiBhbW91bnQgfV0sXG4gICAgfSxcbiAgICB7IHByaW06ICdVTklUJyB9LFxuICAgIHsgcHJpbTogJ1RSQU5TRkVSX1RPS0VOUycgfSxcbiAgICB7IHByaW06ICdDT05TJyB9LFxuICBdO1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBsYW1iZGEgZm9yIHRoZSBtdWx0aXNpZyB0cmFuc2FjdGlvbiB0cmFuc2ZlciB0byBhbiBvcmlnaW5hdGVkIGFjY291bnQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgT3JpZ2luYXRlZCBhY2NvdW50IGFkZHJlc3MgdG8gc2VuZCB0aGUgZnVuZHMgdG9cbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgVGhlIGFtb3VudCBpbiBtdXRleiB0byB0cmFuc2ZlclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly90ZXpvc3RhcXVpdG8uaW8vZG9jcy9tYWtpbmdfdHJhbnNmZXJzI3RyYW5zZmVyLTAwMDAwMDEtMS1tdXRlei10b2tlbnMtZnJvbS1hLWt0MS1hZGRyZXNzLXRvLWEta3QxLWFkZHJlc3N9XG4gKi9cbmZ1bmN0aW9uIHRyYW5zZmVyVG9PcmlnaW5hdGVkQWNjb3VudChhZGRyZXNzOiBzdHJpbmcsIGFtb3VudDogc3RyaW5nKSB7XG4gIHJldHVybiBbXG4gICAgeyBwcmltOiAnRFJPUCcgfSxcbiAgICB7IHByaW06ICdOSUwnLCBhcmdzOiBbeyBwcmltOiAnb3BlcmF0aW9uJyB9XSB9LFxuICAgIHtcbiAgICAgIHByaW06ICdQVVNIJyxcbiAgICAgIGFyZ3M6IFt7IHByaW06ICdhZGRyZXNzJyB9LCB7IHN0cmluZzogYWRkcmVzcyB9XSxcbiAgICB9LFxuICAgIHsgcHJpbTogJ0NPTlRSQUNUJywgYXJnczogW3sgcHJpbTogJ3VuaXQnIH1dIH0sXG4gICAgW1xuICAgICAge1xuICAgICAgICBwcmltOiAnSUZfTk9ORScsXG4gICAgICAgIGFyZ3M6IFtbW3sgcHJpbTogJ1VOSVQnIH0sIHsgcHJpbTogJ0ZBSUxXSVRIJyB9XV0sIFtdXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICB7XG4gICAgICBwcmltOiAnUFVTSCcsXG4gICAgICBhcmdzOiBbeyBwcmltOiAnbXV0ZXonIH0sIHsgaW50OiBhbW91bnQgfV0sXG4gICAgfSxcbiAgICB7IHByaW06ICdVTklUJyB9LFxuICAgIHsgcHJpbTogJ1RSQU5TRkVSX1RPS0VOUycgfSxcbiAgICB7IHByaW06ICdDT05TJyB9LFxuICBdO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHJldmVhbCBvcGVyYXRpb24gZm9yIGEgcHVibGljIGtleS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY291bnRlciBTb3VyY2UgYWNjb3VudCBuZXh0IGNvdW50ZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2UgU291cmNlIGFjY291bnQgYWRkcmVzc1xuICogQHBhcmFtIHtzdHJpbmd9IHB1YktleSBUaGUgcHVibGljIGtleSB0byByZXZlYWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBmZWUgRmVlcyBpbiBtdXRleiB0byBwYXkgYnkgdGhlIHNvdXJjZSBhY2NvdW50XG4gKiBAcGFyYW0ge3N0cmluZ30gZ2FzTGltaXQgTWF4aW11bSBhbW91bnQgaW4gbXV0ZXogdG8gc3BlbmQgaW4gZ2FzIGZlZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yYWdlTGltaXQgTWF4aW11bSBhbW91bnQgaW4gbXV0ZXogdG8gc3BlbmQgaW4gc3RvcmFnZSBmZWVzXG4gKiBAcmV0dXJucyBBbiBvcmlnaW5hdGlvbiBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldmVhbE9wZXJhdGlvbihcbiAgY291bnRlcjogc3RyaW5nLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgcHViS2V5OiBzdHJpbmcsXG4gIGZlZTogc3RyaW5nID0gREVGQVVMVF9GRUUuUkVWRUFMLnRvU3RyaW5nKCksXG4gIGdhc0xpbWl0OiBzdHJpbmcgPSBERUZBVUxUX0dBU19MSU1JVC5SRVZFQUwudG9TdHJpbmcoKSxcbiAgc3RvcmFnZUxpbWl0OiBzdHJpbmcgPSBERUZBVUxUX1NUT1JBR0VfTElNSVQuUkVWRUFMLnRvU3RyaW5nKClcbik6IFJldmVhbE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAncmV2ZWFsJyxcbiAgICBjb3VudGVyLFxuICAgIHNvdXJjZSxcbiAgICBmZWUsXG4gICAgZ2FzX2xpbWl0OiBnYXNMaW1pdCxcbiAgICBzdG9yYWdlX2xpbWl0OiBzdG9yYWdlTGltaXQsXG4gICAgcHVibGljX2tleTogcHViS2V5LFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBvcmlnaW5hdGlvbiBvcGVyYXRpb24gZm9yIHRoZSBnZW5lcmljIG11bHRpc2cgY29udHJhY3QuIEl0IGRvZXMgbm90IGNyZWF0ZSBhIHJldmVhbFxuICogb3BlcmF0aW9uIGZvciB0aGUgc291cmNlIGFjY291bnQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvdW50ZXIgVmFsaWQgc291cmNlIGFjY291bnQgY291bnRlciB0byB1c2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2UgU291cmNlIGFjY291bnQgYWRkcmVzc1xuICogQHBhcmFtIHtzdHJpbmd9IGZlZSBGZWVzIGluIG11dGV6IHRvIHBheSBieSB0aGUgc291cmNlIGFjY291bnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBnYXNMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBnYXMgZmVlc1xuICogQHBhcmFtIHtzdHJpbmd9IHN0b3JhZ2VMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBzdG9yYWdlIGZlZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYWxhbmNlIE5ldyBtdWx0aXNpZyBhY2NvdW50IGluaXRpYWwgYmFsYW5jZSB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgYWNjb3VudFxuICogQHBhcmFtIHtzdHJpbmdbXX0gcHViS2V5cyBMaXN0IG9mIHB1YmxpYyBrZXlzIG9mIHRoZSBtdWx0aXNpZyBvd25lclxuICogQHBhcmFtIHtzdHJpbmd9IGRlbGVnYXRlIE9wdGlvbmFsIGltcGxpY2l0IGFkZHJlc3MgdG8gZGVsZWdhdGUgdGhlIHdhbGxldCBmdW5kcyB0b1xuICogQHBhcmFtIHtudW1iZXJ9IHRocmVzaG9sZCBNaW5pbXVtIG51bWJlciBvZiBzaWduYXR1cmVzIHJlcXVpcmVkIHRvIGF1dGhvcml6ZSBhIG11bHRpc2lnIG9wZXJhdGlvblxuICogQHJldHVybnMgQW4gb3JpZ2luYXRpb24gb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmljTXVsdGlzaWdPcmlnaW5hdGlvbk9wZXJhdGlvbihcbiAgY291bnRlcjogc3RyaW5nLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgZmVlOiBzdHJpbmcsXG4gIGdhc0xpbWl0OiBzdHJpbmcsXG4gIHN0b3JhZ2VMaW1pdDogc3RyaW5nLFxuICBiYWxhbmNlOiBzdHJpbmcsXG4gIHB1YktleXM6IHN0cmluZ1tdLFxuICBkZWxlZ2F0ZT86IHN0cmluZyxcbiAgdGhyZXNob2xkOiBudW1iZXIgPSBERUZBVUxUX05cbik6IE9yaWdpbmF0aW9uT3Age1xuICBjb25zdCB3YWxsZXRQdWJsaWNLZXlzOiBhbnlbXSA9IFtdO1xuICBwdWJLZXlzLmZvckVhY2goKHBrKSA9PiB3YWxsZXRQdWJsaWNLZXlzLnB1c2goeyBzdHJpbmc6IHBrIH0pKTtcbiAgY29uc3Qgb3JpZ2luYXRpb25PcDogT3JpZ2luYXRpb25PcCA9IHtcbiAgICBraW5kOiAnb3JpZ2luYXRpb24nLFxuICAgIGNvdW50ZXIsXG4gICAgc291cmNlLFxuICAgIGZlZSxcbiAgICBnYXNfbGltaXQ6IGdhc0xpbWl0LFxuICAgIHN0b3JhZ2VfbGltaXQ6IHN0b3JhZ2VMaW1pdCxcbiAgICBiYWxhbmNlLFxuICAgIHNjcmlwdDoge1xuICAgICAgY29kZTogZ2VuZXJpY011bHRpc2lnLFxuICAgICAgc3RvcmFnZToge1xuICAgICAgICBwcmltOiAnUGFpcicsXG4gICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpbnQ6ICcwJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW06ICdQYWlyJyxcbiAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGludDogdGhyZXNob2xkLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHdhbGxldFB1YmxpY0tleXMsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG4gIGlmIChkZWxlZ2F0ZSkge1xuICAgIG9yaWdpbmF0aW9uT3AuZGVsZWdhdGUgPSBkZWxlZ2F0ZTtcbiAgfVxuICByZXR1cm4gb3JpZ2luYXRpb25PcDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHB1YmxpYyBrZXkgb2YgZWFjaCBvd25lciBvZiBhbiBtdWx0aXNpZyB3YWxsZXQgb3JpZ2luYXRpb24gY29udHJhY3QuXG4gKlxuICogQHBhcmFtIHtPcmlnaW5hdGlvbk9wfSBvcGVyYXRpb24gQW4gb3BlcmF0aW9uIHdpdGggdGhlIGdlbmVyaWMgbXVsdGlzaWcgd2FsbGV0IG9yaWdpbmF0aW9uXG4gKiBAcmV0dXJucyB7c3RyaW5nW119IExpc3Qgb2YgYWxsIHRoZSBvd25lcnMgc2V0IGluIHRoZSBvcmlnaW5hdGlvbiB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3duZXJzUHVibGljS2V5cyhvcGVyYXRpb246IE9yaWdpbmF0aW9uT3ApOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG93bmVyc0FyZ3MgPSBfLmdldChvcGVyYXRpb24sICdzY3JpcHQuc3RvcmFnZS5hcmdzWzFdLmFyZ3NbMV0nKTtcbiAgaWYgKCFvd25lcnNBcmdzKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBvd25lcnNBcmdzLm1hcCgobykgPT4gby5zdHJpbmcpO1xufVxuXG4vKipcbiAqIEdlbmVyaWMgTXVsdGlzaWcgY29udHJhY3QgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbXVyYmFyZC9zbWFydC1jb250cmFjdHMvYmxvYi9tYXN0ZXIvbXVsdGlzaWcvbWljaGVsc29uL2dlbmVyaWMudHpcbiAqL1xuY29uc3QgZ2VuZXJpY011bHRpc2lnID0gW1xuICB7XG4gICAgcHJpbTogJ3BhcmFtZXRlcicsXG4gICAgYXJnczogW1xuICAgICAge1xuICAgICAgICBwcmltOiAnb3InLFxuICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgeyBwcmltOiAndW5pdCcsIGFubm90czogWyclZGVmYXVsdCddIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJpbTogJ25hdCcsXG4gICAgICAgICAgICAgICAgICAgIGFubm90czogWyclY291bnRlciddLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJpbTogJ29yJyxcbiAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdsYW1iZGEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICd1bml0JyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ2xpc3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ29wZXJhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RzOiBbJyVvcGVyYXRpb24nXSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICduYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubm90czogWycldGhyZXNob2xkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnbGlzdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW3sgcHJpbTogJ2tleScgfV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RzOiBbJyVrZXlzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RzOiBbJyVjaGFuZ2Vfa2V5cyddLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIGFubm90czogWyc6YWN0aW9uJ10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgYW5ub3RzOiBbJzpwYXlsb2FkJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnbGlzdCcsXG4gICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcmltOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgYXJnczogW3sgcHJpbTogJ3NpZ25hdHVyZScgfV0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgYW5ub3RzOiBbJyVzaWdzJ10sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgYW5ub3RzOiBbJyVtYWluJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIHByaW06ICdzdG9yYWdlJyxcbiAgICBhcmdzOiBbXG4gICAgICB7XG4gICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgYXJnczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW06ICduYXQnLFxuICAgICAgICAgICAgYW5ub3RzOiBbJyVzdG9yZWRfY291bnRlciddLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ25hdCcsXG4gICAgICAgICAgICAgICAgYW5ub3RzOiBbJyV0aHJlc2hvbGQnXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdsaXN0JyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbeyBwcmltOiAna2V5JyB9XSxcbiAgICAgICAgICAgICAgICBhbm5vdHM6IFsnJWtleXMnXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIHByaW06ICdjb2RlJyxcbiAgICBhcmdzOiBbXG4gICAgICBbXG4gICAgICAgIFtcbiAgICAgICAgICBbXG4gICAgICAgICAgICB7IHByaW06ICdEVVAnIH0sXG4gICAgICAgICAgICB7IHByaW06ICdDQVInIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICBhcmdzOiBbW3sgcHJpbTogJ0NEUicgfV1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICBdLFxuICAgICAgICB7XG4gICAgICAgICAgcHJpbTogJ0lGX0xFRlQnLFxuICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgeyBwcmltOiAnRFJPUCcgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdOSUwnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICdvcGVyYXRpb24nIH1dLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdQVVNIJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbeyBwcmltOiAnbXV0ZXonIH0sIHsgaW50OiAnMCcgfV0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgcHJpbTogJ0FNT1VOVCcgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFt7IHByaW06ICdDT01QQVJFJyB9LCB7IHByaW06ICdFUScgfV0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcHJpbTogJ0lGJyxcbiAgICAgICAgICAgICAgICAgIGFyZ3M6IFtbXSwgW1t7IHByaW06ICdVTklUJyB9LCB7IHByaW06ICdGQUlMV0lUSCcgfV1dXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB7IHByaW06ICdTV0FQJyB9LFxuICAgICAgICAgICAgICB7IHByaW06ICdEVVAnIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbW3sgcHJpbTogJ1NXQVAnIH1dXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RVUCcgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0NBUicgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtbeyBwcmltOiAnQ0RSJyB9XV0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RVUCcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnU0VMRicgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnQUREUkVTUycgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnUEFJUicgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnUEFDSycgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RVUCcgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0NBUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFubm90czogWydAY291bnRlciddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdDRFInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1t7IHByaW06ICdTV0FQJyB9XV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1NXQVAnIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICB7IHByaW06ICdEVVAnIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByaW06ICdDQVInLFxuICAgICAgICAgICAgICAgICAgICBhbm5vdHM6IFsnQHN0b3JlZF9jb3VudGVyJ10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgYXJnczogW1t7IHByaW06ICdDRFInIH1dXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgIGFyZ3M6IFtbeyBwcmltOiAnU1dBUCcgfV1dLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgW3sgcHJpbTogJ0NPTVBBUkUnIH0sIHsgcHJpbTogJ0VRJyB9XSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBwcmltOiAnSUYnLFxuICAgICAgICAgICAgICAgICAgYXJnczogW1tdLCBbW3sgcHJpbTogJ1VOSVQnIH0sIHsgcHJpbTogJ0ZBSUxXSVRIJyB9XV1dLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbW3sgcHJpbTogJ1NXQVAnIH1dXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RVUCcgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0NBUicsXG4gICAgICAgICAgICAgICAgICAgIGFubm90czogWydAdGhyZXNob2xkJ10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0NEUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFubm90czogWydAa2V5cyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ1BVU0gnLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICduYXQnIH0sIHsgaW50OiAnMCcgfV0sXG4gICAgICAgICAgICAgICAgICAgICAgYW5ub3RzOiBbJ0B2YWxpZCddLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdTV0FQJyB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0lURVInLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtbeyBwcmltOiAnU1dBUCcgfV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdTV0FQJyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0lGX0NPTlMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdJRl9OT05FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdTV0FQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdEUk9QJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ1NXQVAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnU1dBUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDogJzInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RVUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnU1dBUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ6ICcyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRFVQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdESUcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50OiAnMycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0NIRUNLX1NJR05BVFVSRScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnU1dBUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnSUYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRFJPUCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRkFJTFdJVEgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdQVVNIJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICduYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50OiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0FERCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm5vdHM6IFsnQHZhbGlkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnVU5JVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnRkFJTFdJVEgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1NXQVAnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbeyBwcmltOiAnQ09NUEFSRScgfSwgeyBwcmltOiAnTEUnIH1dLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHByaW06ICdJRicsXG4gICAgICAgICAgICAgICAgICBhcmdzOiBbW10sIFtbeyBwcmltOiAnVU5JVCcgfSwgeyBwcmltOiAnRkFJTFdJVEgnIH1dXV0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdJRl9DT05TJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbW1t7IHByaW06ICdVTklUJyB9LCB7IHByaW06ICdGQUlMV0lUSCcgfV1dLCBbXV0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgcHJpbTogJ0RST1AnIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnRElQJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdEVVAnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdDQVInIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdESVAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbW3sgcHJpbTogJ0NEUicgfV1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ1BVU0gnLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICduYXQnIH0sIHsgaW50OiAnMScgfV0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBwcmltOiAnQUREJyxcbiAgICAgICAgICAgICAgICAgICAgICBhbm5vdHM6IFsnQG5ld19jb3VudGVyJ10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1BBSVInIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmltOiAnSUZfTEVGVCcsXG4gICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgW3sgcHJpbTogJ1VOSVQnIH0sIHsgcHJpbTogJ0VYRUMnIH1dLFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICAgICAgYXJnczogW1t7IHByaW06ICdDQVInIH1dXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnU1dBUCcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnUEFJUicgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdOSUwnLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFt7IHByaW06ICdvcGVyYXRpb24nIH1dLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICBdLFxuICB9LFxuXTtcblxuLyoqXG4gKiBBZGQgY29udHJhY3QgYWRkcmVzcyB0byBmb3J3YXJkZXIgY29udHJhY3QgdGVtcGxhdGUgYW5kIHJldHVybiBjb250cmFjdCBNaWNoZWxzb24gY29kZSBhcyBKU09OXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyYWN0QWRkcmVzcyAtIG11bHRpc2lnIGNvbnRyYWN0QWRkcmVzcyB0aGF0IHdpbGwgcmVjZWl2ZSBmb3J3YXJkZWQgZnVuZHNcbiAqIEByZXR1cm5zIHtvYmplY3RbXX0gTWljaGVsc29uIGNvZGUgZm9yIHRoZSBvcmlnaW5hdGlvbiBvcGVyYXRpb25cbiAqL1xuZnVuY3Rpb24gY3JlYXRlRm9yd2FyZGVyKGNvbnRyYWN0QWRkcmVzczogc3RyaW5nKSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJpbTogJ3BhcmFtZXRlcicsXG4gICAgICBhcmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcmltOiAnb3InLFxuICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgIHsgcHJpbTogJ3VuaXQnLCBhbm5vdHM6IFsnJWRlZmF1bHQnXSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwcmltOiAncGFpcicsXG4gICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICB7IHByaW06ICduYXQnIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcHJpbTogJ2NvbnRyYWN0JyxcbiAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdhZGRyZXNzJywgYW5ub3RzOiBbJzpmcm9tJ10gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ3BhaXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnYWRkcmVzcycsIGFubm90czogWyc6dG8nXSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ25hdCcsIGFubm90czogWyc6dmFsdWUnXSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBhbm5vdHM6IFsnJWZsdXNoJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgeyBwcmltOiAnc3RvcmFnZScsIGFyZ3M6IFt7IHByaW06ICd1bml0JyB9XSB9LFxuICAgIHtcbiAgICAgIHByaW06ICdjb2RlJyxcbiAgICAgIGFyZ3M6IFtcbiAgICAgICAgW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW06ICdDQVNUJyxcbiAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByaW06ICdvcicsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICd1bml0JyB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnbmF0JyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbTogJ2NvbnRyYWN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ2FkZHJlc3MnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAncGFpcicsIGFyZ3M6IFt7IHByaW06ICdhZGRyZXNzJyB9LCB7IHByaW06ICduYXQnIH1dIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgeyBwcmltOiAndW5pdCcgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgcHJpbTogJ0NBUicgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcmltOiAnSUZfTEVGVCcsXG4gICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7IHByaW06ICdEUk9QJyB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHByaW06ICdOT05FJyxcbiAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdwYWlyJyxcbiAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICduYXQnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdjb250cmFjdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltOiAncGFpcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ2FkZHJlc3MnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ3BhaXInLCBhcmdzOiBbeyBwcmltOiAnYWRkcmVzcycgfSwgeyBwcmltOiAnbmF0JyB9XSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBbeyBwcmltOiAnU09NRScgfV0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBwcmltOiAnRElQJywgYXJnczogW1t7IHByaW06ICdQVVNIJywgYXJnczogW3sgcHJpbTogJ2FkZHJlc3MnIH0sIHsgc3RyaW5nOiBjb250cmFjdEFkZHJlc3MgfV0gfV1dIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpbTogJ0lGX05PTkUnLFxuICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICBbeyBwcmltOiAnTklMJywgYXJnczogW3sgcHJpbTogJ29wZXJhdGlvbicgfV0gfV0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7IHByaW06ICdESVAnLCBhcmdzOiBbW3sgcHJpbTogJ0RVUCcgfV1dIH0sXG4gICAgICAgICAgICAgICAgeyBwcmltOiAnRFVQJyB9LFxuICAgICAgICAgICAgICAgIHsgcHJpbTogJ0NBUicgfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdESVAnLCBhcmdzOiBbW3sgcHJpbTogJ0NEUicgfV1dIH0sXG4gICAgICAgICAgICAgICAgeyBwcmltOiAnRElHJywgYXJnczogW3sgaW50OiAnMicgfV0gfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICAgICAgICAgIHsgcHJpbTogJ1NFTEYnIH0sXG4gICAgICAgICAgICAgICAgeyBwcmltOiAnQUREUkVTUycgfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICAgICAgICAgIHsgcHJpbTogJ0RJUCcsIGFyZ3M6IFtbeyBwcmltOiAnUFVTSCcsIGFyZ3M6IFt7IHByaW06ICdtdXRleicgfSwgeyBpbnQ6ICcwJyB9XSB9XV0gfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdUUkFOU0ZFUl9UT0tFTlMnIH0sXG4gICAgICAgICAgICAgICAgeyBwcmltOiAnRElQJywgYXJnczogW1t7IHByaW06ICdOSUwnLCBhcmdzOiBbeyBwcmltOiAnb3BlcmF0aW9uJyB9XSB9XV0gfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdDT05TJyB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgcHJpbTogJ0JBTEFOQ0UnIH0sXG4gICAgICAgICAgeyBwcmltOiAnUFVTSCcsIGFyZ3M6IFt7IHByaW06ICdtdXRleicgfSwgeyBpbnQ6ICcwJyB9XSB9LFxuICAgICAgICAgIHsgcHJpbTogJ0NPTVBBUkUnIH0sXG4gICAgICAgICAgeyBwcmltOiAnRVEnIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpbTogJ0lGJyxcbiAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgW3sgcHJpbTogJ0RJUCcsIGFyZ3M6IFtbeyBwcmltOiAnRFJPUCcgfV1dIH1dLFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcHJpbTogJ0RJUCcsXG4gICAgICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdDT05UUkFDVCcsIGFyZ3M6IFt7IHByaW06ICd1bml0JyB9XSB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW06ICdJRl9OT05FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1BVU0gnLCBhcmdzOiBbeyBwcmltOiAnc3RyaW5nJyB9LCB7IHN0cmluZzogJ25vdCBhIHdhbGxldCcgfV0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdGQUlMV0lUSCcgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgeyBwcmltOiAnQkFMQU5DRScgfSxcbiAgICAgICAgICAgICAgICAgICAgICB7IHByaW06ICdVTklUJyB9LFxuICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbTogJ1RSQU5TRkVSX1RPS0VOUycgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IHByaW06ICdTV0FQJyB9LFxuICAgICAgICAgICAgICAgIHsgcHJpbTogJ0NPTlMnIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBwcmltOiAnRElQJywgYXJnczogW1t7IHByaW06ICdVTklUJyB9XV0gfSxcbiAgICAgICAgICB7IHByaW06ICdQQUlSJyB9LFxuICAgICAgICBdLFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBvcmlnaW5hdGlvbiBvcGVyYXRpb24gZm9yIGEgZm9yd2FyZGVyIGNvbnRyYWN0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyYWN0QWRkcmVzcyBvcmlnaW5hdGVkIG11bHRpc2lnIGFkZHJlc3MgdG8gZm9yd2FyZCBmdW5kc1xuICogQHBhcmFtIHtzdHJpbmd9IGNvdW50ZXIgVmFsaWQgc291cmNlIGFjY291bnQgY291bnRlciB0byB1c2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2UgU291cmNlIGFjY291bnQgYWRkcmVzc1xuICogQHBhcmFtIHtzdHJpbmd9IGZlZSBGZWVzIGluIG11dGV6IHRvIHBheSBieSB0aGUgc291cmNlIGFjY291bnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBnYXNMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBnYXMgZmVlc1xuICogQHBhcmFtIHtzdHJpbmd9IHN0b3JhZ2VMaW1pdCBNYXhpbXVtIGFtb3VudCBpbiBtdXRleiB0byBzcGVuZCBpbiBzdG9yYWdlIGZlZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBiYWxhbmNlIE5ldyBtdWx0aXNpZyBhY2NvdW50IGluaXRpYWwgYmFsYW5jZSB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgYWNjb3VudFxuICogQHJldHVybnMge09yaWdpbmF0aW9uT3B9IHRoZSBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRlck9yaWdpbmF0aW9uT3BlcmF0aW9uKFxuICBjb250cmFjdEFkZHJlc3M6IHN0cmluZyxcbiAgY291bnRlcjogc3RyaW5nLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgZmVlOiBzdHJpbmcsXG4gIGdhc0xpbWl0OiBzdHJpbmcsXG4gIHN0b3JhZ2VMaW1pdDogc3RyaW5nLFxuICBiYWxhbmNlOiBzdHJpbmdcbik6IE9yaWdpbmF0aW9uT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdvcmlnaW5hdGlvbicsXG4gICAgY291bnRlcixcbiAgICBzb3VyY2UsXG4gICAgZmVlLFxuICAgIGdhc19saW1pdDogZ2FzTGltaXQsXG4gICAgc3RvcmFnZV9saW1pdDogc3RvcmFnZUxpbWl0LFxuICAgIGJhbGFuY2UsXG4gICAgc2NyaXB0OiB7XG4gICAgICBjb2RlOiBjcmVhdGVGb3J3YXJkZXIoY29udHJhY3RBZGRyZXNzKSxcbiAgICAgIHN0b3JhZ2U6IHsgcHJpbTogJ1VuaXQnIH0sXG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -119,14 +123,14 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
119
123
|
* originated address
|
|
120
124
|
*/
|
|
121
125
|
async recordOriginationOpFields(operation, index) {
|
|
122
|
-
const originationData = multisigUtils_1.getOriginationDataFromOperation(operation);
|
|
126
|
+
const originationData = (0, multisigUtils_1.getOriginationDataFromOperation)(operation);
|
|
123
127
|
if (originationData.forwarderDestination) {
|
|
124
128
|
this._type = sdk_core_1.TransactionType.AddressInitialization;
|
|
125
129
|
this._forwarderDestination = originationData.forwarderDestination;
|
|
126
130
|
}
|
|
127
131
|
else {
|
|
128
132
|
this._type = sdk_core_1.TransactionType.WalletInitialization;
|
|
129
|
-
this._owners = multisigUtils_1.getOwnersPublicKeys(operation);
|
|
133
|
+
this._owners = (0, multisigUtils_1.getOwnersPublicKeys)(operation);
|
|
130
134
|
}
|
|
131
135
|
this._delegate = operation.delegate;
|
|
132
136
|
this._outputs.push({
|
|
@@ -167,7 +171,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
167
171
|
else {
|
|
168
172
|
this._type = sdk_core_1.TransactionType.SingleSigSend;
|
|
169
173
|
}
|
|
170
|
-
const transferData = multisigUtils_1.getMultisigTransferDataFromOperation(operation);
|
|
174
|
+
const transferData = (0, multisigUtils_1.getMultisigTransferDataFromOperation)(operation);
|
|
171
175
|
// Fees are paid by the source account, along with the amount in the transaction
|
|
172
176
|
this._inputs.push({
|
|
173
177
|
address: operation.source,
|
|
@@ -220,7 +224,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
220
224
|
if (!this._parsedTransaction) {
|
|
221
225
|
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
222
226
|
}
|
|
223
|
-
multisigUtils_1.updateMultisigTransferSignatures(this._parsedTransaction.contents[index], signatures);
|
|
227
|
+
(0, multisigUtils_1.updateMultisigTransferSignatures)(this._parsedTransaction.contents[index], signatures);
|
|
224
228
|
this._encodedTransaction = await local_forging_1.localForger.forge(this._parsedTransaction);
|
|
225
229
|
}
|
|
226
230
|
/** @inheritdoc */
|
|
@@ -291,7 +295,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
291
295
|
if (!this._parsedTransaction) {
|
|
292
296
|
return [];
|
|
293
297
|
}
|
|
294
|
-
return multisigUtils_1.getMultisigTransferSignatures(this._parsedTransaction.contents[transferIndex]);
|
|
298
|
+
return (0, multisigUtils_1.getMultisigTransferSignatures)(this._parsedTransaction.contents[transferIndex]);
|
|
295
299
|
}
|
|
296
300
|
/**
|
|
297
301
|
* Get the list of index per tezos transaction type. This is useful to locate specific operations
|
|
@@ -312,4 +316,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
312
316
|
}
|
|
313
317
|
}
|
|
314
318
|
exports.Transaction = Transaction;
|
|
315
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFNOEI7QUFFOUIsMERBQTREO0FBQzVELGdFQUFxQztBQUdyQyxtREFNeUI7QUFDekIsK0NBQWlDO0FBRWpDOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFTOUM7Ozs7T0FJRztJQUNILFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLDZCQUE2QixDQUFDLHFCQUE2QjtRQUMvRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcscUJBQXFCLENBQUM7UUFDakQsSUFBSTtZQUNGLE1BQU0saUJBQWlCLEdBQUcsTUFBTSwyQkFBVyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDekQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLDRGQUE0RjtZQUM1Rix5RUFBeUU7WUFDekUsTUFBTSw2QkFBNkIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0UsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2FBQ3hEO1lBQ0QsdURBQXVEO1lBQ3ZELE1BQU0saUJBQWlCLEdBQUcsTUFBTSwyQkFBVyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2pGLE1BQU0sYUFBYSxHQUFHLE1BQU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDaEYsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDeEU7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMseUJBQXlCLENBQUMsaUJBQW9DLEVBQUUsYUFBc0I7UUFDMUYsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM3QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSwyQkFBVyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxhQUFhLEVBQUU7WUFDakIsdUZBQXVGO1lBQ3ZGLGVBQWU7WUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7U0FDZjtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztRQUM1QyxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDdkIsS0FBSyxNQUFNLFNBQVMsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7WUFDbEQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTtnQkFDckQsTUFBTSxJQUFJLGtDQUF1QixDQUMvQixrRUFBa0UsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUM5RyxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO2FBQ2pDO1lBQ0QsUUFBUSxTQUFTLENBQUMsSUFBSSxFQUFFO2dCQUN0QixLQUFLLHFCQUFLLENBQUMsY0FBYztvQkFDdkIsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBMEIsRUFBRSxjQUFjLENBQUMsQ0FBQztvQkFDakYsY0FBYyxFQUFFLENBQUM7b0JBQ2pCLE1BQU07Z0JBQ1IsS0FBSyxxQkFBSyxDQUFDLFNBQVM7b0JBQ2xCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFxQixDQUFDLENBQUM7b0JBQ2pELE1BQU07Z0JBQ1IsS0FBSyxxQkFBSyxDQUFDLGNBQWM7b0JBQ3ZCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxTQUEwQixDQUFDLENBQUM7b0JBQzNELE1BQU07Z0JBQ1I7b0JBQ0UsTUFBTTthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssS0FBSyxDQUFDLHlCQUF5QixDQUFDLFNBQXdCLEVBQUUsS0FBYTtRQUM3RSxNQUFNLGVBQWUsR0FBRywrQ0FBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuRSxJQUFJLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMscUJBQXFCLENBQUM7WUFDbkQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQztTQUNuRTthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO1lBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsbUNBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0M7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIseUVBQXlFO1lBQ3pFLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hGLFVBQVU7WUFDVixLQUFLLEVBQUUsU0FBUyxDQUFDLE9BQU87U0FDekIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3pCLHdFQUF3RTtZQUN4RSxLQUFLLEVBQUUsSUFBSSxzQkFBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtTQUN2RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLG9CQUFvQixDQUFDLFNBQW1CO1FBQzlDLElBQUksQ0FBQyxLQUFLLEdBQUcsMEJBQWUsQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3pCLHdFQUF3RTtZQUN4RSxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUc7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyx5QkFBeUIsQ0FBQyxTQUF3QjtRQUN4RCxJQUFJLFNBQVMsQ0FBQyxVQUFVLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLElBQUksQ0FBQztTQUNuQzthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLGFBQWEsQ0FBQztTQUM1QztRQUNELE1BQU0sWUFBWSxHQUFHLG9EQUFvQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLGdGQUFnRjtRQUNoRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDekIsS0FBSyxFQUFFLElBQUksc0JBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDdEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakIseUVBQXlFO2dCQUN6RSxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ3hCLFVBQVU7Z0JBQ1YsS0FBSyxFQUFFLFlBQVksQ0FBQyxNQUFNO2FBQzNCLENBQUMsQ0FBQztZQUNILDhDQUE4QztZQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDaEIsT0FBTyxFQUFFLFlBQVksQ0FBQyxJQUFJO2dCQUMxQix3RUFBd0U7Z0JBQ3hFLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTTthQUMzQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZ0I7UUFDekIsa0RBQWtEO1FBQ2xELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsbUNBQW1DO1FBQ25DLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSwyQkFBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU1RSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBRXBELG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxVQUE4QixFQUFFLEtBQWE7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixNQUFNLElBQUksa0NBQXVCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN4RDtRQUNELGdEQUFnQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLDJCQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsMkVBQTJFO1FBQzNFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixNQUFNLElBQUksa0NBQXVCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN4RDtRQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM3QixNQUFNLElBQUksa0NBQXVCLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNsRTtRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDbEU7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUFDLGFBQWEsR0FBRyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sNkNBQTZCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQWtCLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCwyQkFBMkI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNoRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0RCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRTtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQWxURCxrQ0FrVEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQ09ERUMsIGxvY2FsRm9yZ2VyIH0gZnJvbSAnQHRhcXVpdG8vbG9jYWwtZm9yZ2luZyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBJbmRleGVkU2lnbmF0dXJlLCBPcmlnaW5hdGlvbk9wLCBQYXJzZWRUcmFuc2FjdGlvbiwgUmV2ZWFsT3AsIFRyYW5zYWN0aW9uT3AgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHtcbiAgZ2V0TXVsdGlzaWdUcmFuc2ZlckRhdGFGcm9tT3BlcmF0aW9uLFxuICBnZXRNdWx0aXNpZ1RyYW5zZmVyU2lnbmF0dXJlcyxcbiAgZ2V0T3JpZ2luYXRpb25EYXRhRnJvbU9wZXJhdGlvbixcbiAgZ2V0T3duZXJzUHVibGljS2V5cyxcbiAgdXBkYXRlTXVsdGlzaWdUcmFuc2ZlclNpZ25hdHVyZXMsXG59IGZyb20gJy4vbXVsdGlzaWdVdGlscyc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBUZXpvcyB0cmFuc2FjdGlvbiBtb2RlbC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfcGFyc2VkVHJhbnNhY3Rpb24/OiBQYXJzZWRUcmFuc2FjdGlvbjsgLy8gdHJhbnNhY3Rpb24gaW4gSlNPTiBmb3JtYXRcbiAgcHJpdmF0ZSBfZW5jb2RlZFRyYW5zYWN0aW9uPzogc3RyaW5nOyAvLyB0cmFuc2FjdGlvbiBpbiBoZXggZm9ybWF0XG4gIHByaXZhdGUgX3NvdXJjZTogc3RyaW5nO1xuICBwcml2YXRlIF9kZWxlZ2F0ZT86IHN0cmluZztcbiAgcHJpdmF0ZSBfZm9yd2FyZGVyRGVzdGluYXRpb24/OiBzdHJpbmc7XG4gIHByaXZhdGUgX3B1YmxpY0tleVRvUmV2ZWFsPzogc3RyaW5nO1xuICBwcml2YXRlIF9vd25lcnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhZG9ubHk8Q29pbkNvbmZpZz59IGNvaW5Db25maWdcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fb3duZXJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gZmllbGRzIGJhc2VkIG9uIGFub3RoZXIgc2VyaWFsaXplZCB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNlcmlhbGl6ZWRUcmFuc2FjdGlvbiBUcmFuc2FjdGlvbiBpbiBicm9hZGNhc3QgZm9ybWF0LlxuICAgKi9cbiAgYXN5bmMgaW5pdEZyb21TZXJpYWxpemVkVHJhbnNhY3Rpb24oc2VyaWFsaXplZFRyYW5zYWN0aW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9lbmNvZGVkVHJhbnNhY3Rpb24gPSBzZXJpYWxpemVkVHJhbnNhY3Rpb247XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZFRyYW5zYWN0aW9uID0gYXdhaXQgbG9jYWxGb3JnZXIucGFyc2Uoc2VyaWFsaXplZFRyYW5zYWN0aW9uKTtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdEZyb21QYXJzZWRUcmFuc2FjdGlvbihwYXJzZWRUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gSWYgaXQgdGhyb3dzLCBpdCBpcyBwb3NzaWJsZSB0aGUgc2VyaWFsaXplZCB0cmFuc2FjdGlvbiBpcyBzaWduZWQsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWRcbiAgICAgIC8vIGJ5IGxvY2FsLWZvcmdpbmcuIFRyeSBleHRyYWN0aW5nIHRoZSBsYXN0IDY0IGJ5dGVzIGFuZCBwYXJzZSBpdCBhZ2Fpbi5cbiAgICAgIGNvbnN0IHVuc2lnbmVkU2VyaWFsaXplZFRyYW5zYWN0aW9uID0gc2VyaWFsaXplZFRyYW5zYWN0aW9uLnNsaWNlKDAsIC0xMjgpO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlID0gc2VyaWFsaXplZFRyYW5zYWN0aW9uLnNsaWNlKC0xMjgpO1xuICAgICAgaWYgKFV0aWxzLmlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlKSkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgICAvLyBUT0RPOiBlbmNvZGUgdGhlIHNpZ25hdHVyZSBhbmQgc2F2ZSBpdCBpbiBfc2lnbmF0dXJlXG4gICAgICBjb25zdCBwYXJzZWRUcmFuc2FjdGlvbiA9IGF3YWl0IGxvY2FsRm9yZ2VyLnBhcnNlKHVuc2lnbmVkU2VyaWFsaXplZFRyYW5zYWN0aW9uKTtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uSWQgPSBhd2FpdCBVdGlscy5jYWxjdWxhdGVUcmFuc2FjdGlvbklkKHNlcmlhbGl6ZWRUcmFuc2FjdGlvbik7XG4gICAgICBhd2FpdCB0aGlzLmluaXRGcm9tUGFyc2VkVHJhbnNhY3Rpb24ocGFyc2VkVHJhbnNhY3Rpb24sIHRyYW5zYWN0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBmaWVsZHMgYmFzZWQgb24gYW5vdGhlciBwYXJzZWQgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7UGFyc2VkVHJhbnNhY3Rpb259IHBhcnNlZFRyYW5zYWN0aW9uIEEgVGV6b3MgdHJhbnNhY3Rpb24gb2JqZWN0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0cmFuc2FjdGlvbklkIFRoZSB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgcGFyc2VkVHJhbnNhY3Rpb24gaWYgaXQgaXMgc2lnbmVkXG4gICAqL1xuICBhc3luYyBpbml0RnJvbVBhcnNlZFRyYW5zYWN0aW9uKHBhcnNlZFRyYW5zYWN0aW9uOiBQYXJzZWRUcmFuc2FjdGlvbiwgdHJhbnNhY3Rpb25JZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5fZW5jb2RlZFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aGlzLl9lbmNvZGVkVHJhbnNhY3Rpb24gPSBhd2FpdCBsb2NhbEZvcmdlci5mb3JnZShwYXJzZWRUcmFuc2FjdGlvbik7XG4gICAgfVxuICAgIGlmICh0cmFuc2FjdGlvbklkKSB7XG4gICAgICAvLyBJZiB0aGUgdHJhbnNhY3Rpb24gaWQgaXMgcGFzc2VkLCBzYXZlIGl0IGFuZCBjbGVhbiB1cCB0aGUgZW50cmllcyBzaW5jZSB0aGV5IHdpbGwgYmVcbiAgICAgIC8vIHJlY2FsY3VsYXRlZFxuICAgICAgdGhpcy5faWQgPSB0cmFuc2FjdGlvbklkO1xuICAgICAgdGhpcy5faW5wdXRzID0gW107XG4gICAgICB0aGlzLl9vdXRwdXRzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2lkID0gJyc7XG4gICAgfVxuICAgIHRoaXMuX3BhcnNlZFRyYW5zYWN0aW9uID0gcGFyc2VkVHJhbnNhY3Rpb247XG4gICAgbGV0IG9wZXJhdGlvbkluZGV4ID0gMDtcbiAgICBmb3IgKGNvbnN0IG9wZXJhdGlvbiBvZiBwYXJzZWRUcmFuc2FjdGlvbi5jb250ZW50cykge1xuICAgICAgaWYgKHRoaXMuX3NvdXJjZSAmJiB0aGlzLl9zb3VyY2UgIT09IG9wZXJhdGlvbi5zb3VyY2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgICdTb3VyY2UgbXVzdCBiZSB0aGUgc2FtZSBmb3IgZXZlcnkgb3BlcmF0aW9uIGJ1dCBpdCBjaGFuZ2VkIGZyb20gJyArIHRoaXMuX3NvdXJjZSArICcgdG8gJyArIG9wZXJhdGlvbi5zb3VyY2VcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IG9wZXJhdGlvbi5zb3VyY2U7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKG9wZXJhdGlvbi5raW5kKSB7XG4gICAgICAgIGNhc2UgQ09ERUMuT1BfT1JJR0lOQVRJT046XG4gICAgICAgICAgYXdhaXQgdGhpcy5yZWNvcmRPcmlnaW5hdGlvbk9wRmllbGRzKG9wZXJhdGlvbiBhcyBPcmlnaW5hdGlvbk9wLCBvcGVyYXRpb25JbmRleCk7XG4gICAgICAgICAgb3BlcmF0aW9uSW5kZXgrKztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDT0RFQy5PUF9SRVZFQUw6XG4gICAgICAgICAgdGhpcy5yZWNvcmRSZXZlYWxPcEZpZWxkcyhvcGVyYXRpb24gYXMgUmV2ZWFsT3ApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENPREVDLk9QX1RSQU5TQUNUSU9OOlxuICAgICAgICAgIHRoaXMucmVjb3JkVHJhbnNhY3Rpb25PcEZpZWxkcyhvcGVyYXRpb24gYXMgVHJhbnNhY3Rpb25PcCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlY29yZCB0aGUgbW9zdCBpbXBvcnRhbnQgZmllbGRzIGZyb20gYW4gb3JpZ2luYXRpb24gb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge09wZXJhdGlvbn0gb3BlcmF0aW9uIEFuIG9wZXJhdGlvbiBvYmplY3QgZnJvbSBhIFRlem9zIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBUaGUgb3JpZ2luYXRpb24gb3BlcmF0aW9uIGluZGV4IGluIHRoZSB0cmFuc2FjdGlvbi4gVXNlZCB0byBjYWxjdWxhdGUgdGhlXG4gICAqICAgICAgb3JpZ2luYXRlZCBhZGRyZXNzXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlY29yZE9yaWdpbmF0aW9uT3BGaWVsZHMob3BlcmF0aW9uOiBPcmlnaW5hdGlvbk9wLCBpbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgb3JpZ2luYXRpb25EYXRhID0gZ2V0T3JpZ2luYXRpb25EYXRhRnJvbU9wZXJhdGlvbihvcGVyYXRpb24pO1xuICAgIGlmIChvcmlnaW5hdGlvbkRhdGEuZm9yd2FyZGVyRGVzdGluYXRpb24pIHtcbiAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uO1xuICAgICAgdGhpcy5fZm9yd2FyZGVyRGVzdGluYXRpb24gPSBvcmlnaW5hdGlvbkRhdGEuZm9yd2FyZGVyRGVzdGluYXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gICAgICB0aGlzLl9vd25lcnMgPSBnZXRPd25lcnNQdWJsaWNLZXlzKG9wZXJhdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy5fZGVsZWdhdGUgPSBvcGVyYXRpb24uZGVsZWdhdGU7XG4gICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgIC8vIEt0IGFkZHJlc3NlcyBjYW4gb25seSBiZSBjYWxjdWxhdGVkIGZvciBzaWduZWQgdHJhbnNhY3Rpb25zIHdpdGggYW4gaWRcbiAgICAgIGFkZHJlc3M6IHRoaXMuX2lkID8gYXdhaXQgVXRpbHMuY2FsY3VsYXRlT3JpZ2luYXRlZEFkZHJlc3ModGhpcy5faWQsIGluZGV4KSA6ICcnLFxuICAgICAgLy8gQmFsYW5jZVxuICAgICAgdmFsdWU6IG9wZXJhdGlvbi5iYWxhbmNlLFxuICAgIH0pO1xuICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IG9wZXJhdGlvbi5zb3VyY2UsXG4gICAgICAvLyBCYWxhbmNlICsgZmVlcyArIG1heCBnYXMgKyBtYXggc3RvcmFnZSBhcmUgcGFpZCBieSB0aGUgc291cmNlIGFjY291bnRcbiAgICAgIHZhbHVlOiBuZXcgQmlnTnVtYmVyKG9wZXJhdGlvbi5iYWxhbmNlKS5wbHVzKG9wZXJhdGlvbi5mZWUpLnRvU3RyaW5nKCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb3JkIHRoZSBtb3N0IGltcG9ydGFudCBmaWVsZHMgZnJvbSBhIHJldmVhbCBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7UmV2ZWFsT3B9IG9wZXJhdGlvbiBBIHJldmVhbCBvcGVyYXRpb24gb2JqZWN0IGZyb20gYSBUZXpvcyB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZWNvcmRSZXZlYWxPcEZpZWxkcyhvcGVyYXRpb246IFJldmVhbE9wKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50VXBkYXRlO1xuICAgIHRoaXMuX3B1YmxpY0tleVRvUmV2ZWFsID0gb3BlcmF0aW9uLnB1YmxpY19rZXk7XG4gICAgdGhpcy5faW5wdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogb3BlcmF0aW9uLnNvdXJjZSxcbiAgICAgIC8vIEJhbGFuY2UgKyBmZWVzICsgbWF4IGdhcyArIG1heCBzdG9yYWdlIGFyZSBwYWlkIGJ5IHRoZSBzb3VyY2UgYWNjb3VudFxuICAgICAgdmFsdWU6IG9wZXJhdGlvbi5mZWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb3JkIHRoZSBtb3N0IGltcG9ydGFudCBmaWVsZHMgZm9yIGEgVHJhbnNhY3Rpb24gb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uT3B9IG9wZXJhdGlvbiBBIHRyYW5zYWN0aW9uIG9iamVjdCBmcm9tIGEgVGV6b3Mgb3BlcmF0aW9uXG4gICAqL1xuICBwcml2YXRlIHJlY29yZFRyYW5zYWN0aW9uT3BGaWVsZHMob3BlcmF0aW9uOiBUcmFuc2FjdGlvbk9wKTogdm9pZCB7XG4gICAgaWYgKG9wZXJhdGlvbi5wYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2luZ2xlU2lnU2VuZDtcbiAgICB9XG4gICAgY29uc3QgdHJhbnNmZXJEYXRhID0gZ2V0TXVsdGlzaWdUcmFuc2ZlckRhdGFGcm9tT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gICAgLy8gRmVlcyBhcmUgcGFpZCBieSB0aGUgc291cmNlIGFjY291bnQsIGFsb25nIHdpdGggdGhlIGFtb3VudCBpbiB0aGUgdHJhbnNhY3Rpb25cbiAgICB0aGlzLl9pbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiBvcGVyYXRpb24uc291cmNlLFxuICAgICAgdmFsdWU6IG5ldyBCaWdOdW1iZXIodHJhbnNmZXJEYXRhLmZlZS5mZWUpLnRvRml4ZWQoMCksXG4gICAgfSk7XG5cbiAgICBpZiAodHJhbnNmZXJEYXRhLmNvaW4gPT09ICdtdXRleicpIHtcbiAgICAgIHRoaXMuX291dHB1dHMucHVzaCh7XG4gICAgICAgIC8vIEt0IGFkZHJlc3NlcyBjYW4gb25seSBiZSBjYWxjdWxhdGVkIGZvciBzaWduZWQgdHJhbnNhY3Rpb25zIHdpdGggYW4gaWRcbiAgICAgICAgYWRkcmVzczogdHJhbnNmZXJEYXRhLnRvLFxuICAgICAgICAvLyBCYWxhbmNlXG4gICAgICAgIHZhbHVlOiB0cmFuc2ZlckRhdGEuYW1vdW50LFxuICAgICAgfSk7XG4gICAgICAvLyBUaGUgZnVuZHMgYmVpbmcgdHJhbnNmZXJyZWQgZnJvbSB0aGUgd2FsbGV0XG4gICAgICB0aGlzLl9pbnB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IHRyYW5zZmVyRGF0YS5mcm9tLFxuICAgICAgICAvLyBCYWxhbmNlICsgZmVlcyArIG1heCBnYXMgKyBtYXggc3RvcmFnZSBhcmUgcGFpZCBieSB0aGUgc291cmNlIGFjY291bnRcbiAgICAgICAgdmFsdWU6IHRyYW5zZmVyRGF0YS5hbW91bnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2lnbiB0aGUgdHJhbnNhY3Rpb24gd2l0aCB0aGUgcHJvdmlkZWQga2V5LiBJdCBkb2VzIG5vdCBjaGVjayBpZiB0aGUgc2lnbmVyIGlzIGFsbG93ZWQgdG8gc2lnblxuICAgKiBpdCBvciBub3QuXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpcn0ga2V5UGFpciBUaGUga2V5IHRvIHNpZ24gdGhlIHRyYW5zYWN0aW9uIHdpdGhcbiAgICovXG4gIGFzeW5jIHNpZ24oa2V5UGFpcjogS2V5UGFpcik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRPRE86IGZhaWwgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIGFscmVhZHkgc2lnbmVkXG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYSB0cmFuc2FjdGlvbiB0byBzaWduXG4gICAgaWYgKCF0aGlzLl9wYXJzZWRUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICAvLyBHZXQgdGhlIHRyYW5zYWN0aW9uIGJvZHkgdG8gc2lnblxuICAgIGNvbnN0IGVuY29kZWRUcmFuc2FjdGlvbiA9IGF3YWl0IGxvY2FsRm9yZ2VyLmZvcmdlKHRoaXMuX3BhcnNlZFRyYW5zYWN0aW9uKTtcblxuICAgIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uID0gYXdhaXQgVXRpbHMuc2lnbihrZXlQYWlyLCBlbmNvZGVkVHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuX2VuY29kZWRUcmFuc2FjdGlvbiA9IHNpZ25lZFRyYW5zYWN0aW9uLnNieXRlcztcblxuICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBpZCBjYW4gb25seSBiZSBjYWxjdWxhdGVkIGZvciBzaWduZWQgdHJhbnNhY3Rpb25zXG4gICAgdGhpcy5faWQgPSBhd2FpdCBVdGlscy5jYWxjdWxhdGVUcmFuc2FjdGlvbklkKHRoaXMuX2VuY29kZWRUcmFuc2FjdGlvbik7XG4gICAgYXdhaXQgdGhpcy5pbml0RnJvbVBhcnNlZFRyYW5zYWN0aW9uKHRoaXMuX3BhcnNlZFRyYW5zYWN0aW9uLCB0aGlzLl9pZCk7XG5cbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmVkVHJhbnNhY3Rpb24uc2lnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGxpc3Qgb2Ygc2lnbmF0dXJlcyBmb3IgYSBtdWx0aXNpZyB0cmFuc2FjdGlvbiBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7SW5kZXhlZFNpZ25hdHVyZVtdfSBzaWduYXR1cmVzIExpc3Qgb2Ygc2lnbmF0dXJlcyBhbmQgdGhlIGluZGV4IHRoZXkgc2hvdWxkIGJlIHB1dCBvblxuICAgKiAgICBpbiB0aGUgbXVsdGlzaWcgdHJhbnNmZXJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IFRoZSB0cmFuc2ZlciBpbmRleCB0byBhZGQgdGhlIHNpZ25hdHVyZXMgdG9cbiAgICovXG4gIGFzeW5jIGFkZFRyYW5zZmVyU2lnbmF0dXJlKHNpZ25hdHVyZXM6IEluZGV4ZWRTaWduYXR1cmVbXSwgaW5kZXg6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgdXBkYXRlTXVsdGlzaWdUcmFuc2ZlclNpZ25hdHVyZXModGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24uY29udGVudHNbaW5kZXhdIGFzIFRyYW5zYWN0aW9uT3AsIHNpZ25hdHVyZXMpO1xuICAgIHRoaXMuX2VuY29kZWRUcmFuc2FjdGlvbiA9IGF3YWl0IGxvY2FsRm9yZ2VyLmZvcmdlKHRoaXMuX3BhcnNlZFRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIC8vIFRPRE86IGNoZWNrIHRoZSBrZXkgYmVsb25ncyB0byB0aGUgX3NvdXJjZSBhY2NvdW50IGluIF9wYXJzZWRUcmFuc2FjdGlvblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBQYXJzZWRUcmFuc2FjdGlvbiB7XG4gICAgaWYgKCF0aGlzLl9wYXJzZWRUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkVHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX2VuY29kZWRUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIGVuY29kZWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2VuY29kZWRUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRyYW5zYWN0aW9uIHNvdXJjZSBpZiBpdCBpcyBhdmFpbGFibGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFNvdXJjZSBvZiB0aGUgdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldCBzb3VyY2UoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3NvdXJjZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRyYW5zYWN0aW9uIGRlbGVnYXRpb24gYWRkcmVzcyBpZiBpdCBpcyBhdmFpbGFibGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IHRyYW5zYWN0aW9uIGRlbGVnYXRpb24gYWRkcmVzc1xuICAgKi9cbiAgZ2V0IGRlbGVnYXRlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHVibGljIGtleSByZXZlYWxlZCBieSB0aGUgdHJhbnNhY3Rpb24gaWYgaXQgZXhpc3RzXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IHB1YmxpYyBrZXlcbiAgICovXG4gIGdldCBwdWJsaWNLZXlUb1JldmVhbCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9wdWJsaWNLZXlUb1JldmVhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRlc3RpbmF0aW9uIG9mIGFuIGFkZHJlc3MgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb24gaWYgaXQgZXhpc3RzXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IGZvcndhcmRlciBkZXN0aW5hdGlvblxuICAgKi9cbiAgZ2V0IGZvcndhcmRlckRlc3RpbmF0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvcndhcmRlckRlc3RpbmF0aW9uO1xuICB9XG5cbiAgZ2V0IG93bmVycygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX293bmVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNpZ25hdHVyZXMgZm9yIHRoZSBnaXZlbiBtdWx0aXNpZyB0cmFuc2ZlcixcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRyYW5zZmVySW5kZXggVGhlIHRyYW5zZmVyIHNjcmlwdCBpbmRleCBpbiB0aGUgVGV6b3MgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge0luZGV4ZWRTaWduYXR1cmVbXX0gQSBsaXN0IG9mIHNpZ25hdHVyZXMgd2l0aCB0aGVpciBpbmRleCBpbnNpZGUgdGhlIG11bHRpc2lnIHRyYW5zZmVyXG4gICAqICAgICAgc2NyaXB0XG4gICAqL1xuICBnZXRUcmFuc2ZlclNpZ25hdHVyZXModHJhbnNmZXJJbmRleCA9IDApOiBJbmRleGVkU2lnbmF0dXJlW10ge1xuICAgIGlmICghdGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGdldE11bHRpc2lnVHJhbnNmZXJTaWduYXR1cmVzKHRoaXMuX3BhcnNlZFRyYW5zYWN0aW9uLmNvbnRlbnRzW3RyYW5zZmVySW5kZXhdIGFzIFRyYW5zYWN0aW9uT3ApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdCBvZiBpbmRleCBwZXIgdGV6b3MgdHJhbnNhY3Rpb24gdHlwZS4gVGhpcyBpcyB1c2VmdWwgdG8gbG9jYXRlIHNwZWNpZmljIG9wZXJhdGlvbnNcbiAgICogd2l0aGluIHRoZSB0cmFuc2FjdGlvbiBhbmQgdmVyaWZ5IG9yIHNpZ24gdGhlbS5cbiAgICpcbiAgICogQHJldHVybnMge3tbcDogc3RyaW5nXTogbnVtYmVyW119fSBMaXN0IG9mIGluZGV4ZXMgd2hlcmUgdGhlIGtleSBpcyB0aGUgdHJhbnNhY3Rpb24ga2luZFxuICAgKi9cbiAgZ2V0SW5kZXhlc0J5VHJhbnNhY3Rpb25UeXBlKCk6IHsgW2tpbmQ6IHN0cmluZ106IG51bWJlcltdIH0ge1xuICAgIGlmICghdGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgaW5kZXhlcyA9IHt9O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24uY29udGVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGtpbmQgPSB0aGlzLl9wYXJzZWRUcmFuc2FjdGlvbi5jb250ZW50c1tpXS5raW5kO1xuICAgICAgaW5kZXhlc1traW5kXSA9IGluZGV4ZXNba2luZF0gPyBpbmRleGVzW2tpbmRdLmNvbmNhdChbaV0pIDogW2ldO1xuICAgIH1cbiAgICByZXR1cm4gaW5kZXhlcztcbiAgfVxufVxuIl19
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBTThCO0FBRTlCLDBEQUE0RDtBQUM1RCxnRUFBcUM7QUFHckMsbURBTXlCO0FBQ3pCLCtDQUFpQztBQUVqQzs7R0FFRztBQUNILE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBUzlDOzs7O09BSUc7SUFDSCxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxxQkFBNkI7UUFDL0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO1FBQ2pELElBQUk7WUFDRixNQUFNLGlCQUFpQixHQUFHLE1BQU0sMkJBQVcsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN6RSxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3pEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDViw0RkFBNEY7WUFDNUYseUVBQXlFO1lBQ3pFLE1BQU0sNkJBQTZCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BELElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLElBQUksZ0NBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQzthQUN4RDtZQUNELHVEQUF1RDtZQUN2RCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sMkJBQVcsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNqRixNQUFNLGFBQWEsR0FBRyxNQUFNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ2hGLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQ3hFO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLHlCQUF5QixDQUFDLGlCQUFvQyxFQUFFLGFBQXNCO1FBQzFGLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sMkJBQVcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksYUFBYSxFQUFFO1lBQ2pCLHVGQUF1RjtZQUN2RixlQUFlO1lBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUM7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7U0FDcEI7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7UUFDNUMsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssTUFBTSxTQUFTLElBQUksaUJBQWlCLENBQUMsUUFBUSxFQUFFO1lBQ2xELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JELE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0Isa0VBQWtFLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FDOUcsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUNqQztZQUNELFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRTtnQkFDdEIsS0FBSyxxQkFBSyxDQUFDLGNBQWM7b0JBQ3ZCLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFNBQTBCLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQ2pGLGNBQWMsRUFBRSxDQUFDO29CQUNqQixNQUFNO2dCQUNSLEtBQUsscUJBQUssQ0FBQyxTQUFTO29CQUNsQixJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBcUIsQ0FBQyxDQUFDO29CQUNqRCxNQUFNO2dCQUNSLEtBQUsscUJBQUssQ0FBQyxjQUFjO29CQUN2QixJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBMEIsQ0FBQyxDQUFDO29CQUMzRCxNQUFNO2dCQUNSO29CQUNFLE1BQU07YUFDVDtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxTQUF3QixFQUFFLEtBQWE7UUFDN0UsTUFBTSxlQUFlLEdBQUcsSUFBQSwrQ0FBK0IsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUNuRSxJQUFJLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMscUJBQXFCLENBQUM7WUFDbkQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQztTQUNuRTthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO1lBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBQSxtQ0FBbUIsRUFBQyxTQUFTLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQix5RUFBeUU7WUFDekUsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEYsVUFBVTtZQUNWLEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTztTQUN6QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDekIsd0VBQXdFO1lBQ3hFLEtBQUssRUFBRSxJQUFJLHNCQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFO1NBQ3ZFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssb0JBQW9CLENBQUMsU0FBbUI7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLGFBQWEsQ0FBQztRQUMzQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixPQUFPLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDekIsd0VBQXdFO1lBQ3hFLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHlCQUF5QixDQUFDLFNBQXdCO1FBQ3hELElBQUksU0FBUyxDQUFDLFVBQVUsRUFBRTtZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsSUFBSSxDQUFDO1NBQ25DO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsYUFBYSxDQUFDO1NBQzVDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBQSxvREFBb0MsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3pCLEtBQUssRUFBRSxJQUFJLHNCQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3RELENBQUMsQ0FBQztRQUVILElBQUksWUFBWSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pCLHlFQUF5RTtnQkFDekUsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFO2dCQUN4QixVQUFVO2dCQUNWLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTTthQUMzQixDQUFDLENBQUM7WUFDSCw4Q0FBOEM7WUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLE9BQU8sRUFBRSxZQUFZLENBQUMsSUFBSTtnQkFDMUIsd0VBQXdFO2dCQUN4RSxLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU07YUFDM0IsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQWdCO1FBQ3pCLGtEQUFrRDtRQUNsRCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixNQUFNLElBQUksa0NBQXVCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN4RDtRQUNELG1DQUFtQztRQUNuQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sMkJBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFNUUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUVwRCxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN4RSxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsb0JBQW9CLENBQUMsVUFBOEIsRUFBRSxLQUFhO1FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFBLGdEQUFnQyxFQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLDJCQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsMkVBQTJFO1FBQzNFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixNQUFNLElBQUksa0NBQXVCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN4RDtRQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM3QixNQUFNLElBQUksa0NBQXVCLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNsRTtRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDbEU7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHFCQUFxQixDQUFDLGFBQWEsR0FBRyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sSUFBQSw2Q0FBNkIsRUFBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBa0IsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDJCQUEyQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3RELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBbFRELGtDQWtUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBDT0RFQywgbG9jYWxGb3JnZXIgfSBmcm9tICdAdGFxdWl0by9sb2NhbC1mb3JnaW5nJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEluZGV4ZWRTaWduYXR1cmUsIE9yaWdpbmF0aW9uT3AsIFBhcnNlZFRyYW5zYWN0aW9uLCBSZXZlYWxPcCwgVHJhbnNhY3Rpb25PcCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQge1xuICBnZXRNdWx0aXNpZ1RyYW5zZmVyRGF0YUZyb21PcGVyYXRpb24sXG4gIGdldE11bHRpc2lnVHJhbnNmZXJTaWduYXR1cmVzLFxuICBnZXRPcmlnaW5hdGlvbkRhdGFGcm9tT3BlcmF0aW9uLFxuICBnZXRPd25lcnNQdWJsaWNLZXlzLFxuICB1cGRhdGVNdWx0aXNpZ1RyYW5zZmVyU2lnbmF0dXJlcyxcbn0gZnJvbSAnLi9tdWx0aXNpZ1V0aWxzJztcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG4vKipcbiAqIFRlem9zIHRyYW5zYWN0aW9uIG1vZGVsLlxuICovXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF9wYXJzZWRUcmFuc2FjdGlvbj86IFBhcnNlZFRyYW5zYWN0aW9uOyAvLyB0cmFuc2FjdGlvbiBpbiBKU09OIGZvcm1hdFxuICBwcml2YXRlIF9lbmNvZGVkVHJhbnNhY3Rpb24/OiBzdHJpbmc7IC8vIHRyYW5zYWN0aW9uIGluIGhleCBmb3JtYXRcbiAgcHJpdmF0ZSBfc291cmNlOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RlbGVnYXRlPzogc3RyaW5nO1xuICBwcml2YXRlIF9mb3J3YXJkZXJEZXN0aW5hdGlvbj86IHN0cmluZztcbiAgcHJpdmF0ZSBfcHVibGljS2V5VG9SZXZlYWw/OiBzdHJpbmc7XG4gIHByaXZhdGUgX293bmVyczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFkb25seTxDb2luQ29uZmlnPn0gY29pbkNvbmZpZ1xuICAgKi9cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLl9vd25lcnMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBmaWVsZHMgYmFzZWQgb24gYW5vdGhlciBzZXJpYWxpemVkIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gc2VyaWFsaXplZFRyYW5zYWN0aW9uIFRyYW5zYWN0aW9uIGluIGJyb2FkY2FzdCBmb3JtYXQuXG4gICAqL1xuICBhc3luYyBpbml0RnJvbVNlcmlhbGl6ZWRUcmFuc2FjdGlvbihzZXJpYWxpemVkVHJhbnNhY3Rpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuX2VuY29kZWRUcmFuc2FjdGlvbiA9IHNlcmlhbGl6ZWRUcmFuc2FjdGlvbjtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkVHJhbnNhY3Rpb24gPSBhd2FpdCBsb2NhbEZvcmdlci5wYXJzZShzZXJpYWxpemVkVHJhbnNhY3Rpb24pO1xuICAgICAgYXdhaXQgdGhpcy5pbml0RnJvbVBhcnNlZFRyYW5zYWN0aW9uKHBhcnNlZFRyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBJZiBpdCB0aHJvd3MsIGl0IGlzIHBvc3NpYmxlIHRoZSBzZXJpYWxpemVkIHRyYW5zYWN0aW9uIGlzIHNpZ25lZCwgd2hpY2ggaXMgbm90IHN1cHBvcnRlZFxuICAgICAgLy8gYnkgbG9jYWwtZm9yZ2luZy4gVHJ5IGV4dHJhY3RpbmcgdGhlIGxhc3QgNjQgYnl0ZXMgYW5kIHBhcnNlIGl0IGFnYWluLlxuICAgICAgY29uc3QgdW5zaWduZWRTZXJpYWxpemVkVHJhbnNhY3Rpb24gPSBzZXJpYWxpemVkVHJhbnNhY3Rpb24uc2xpY2UoMCwgLTEyOCk7XG4gICAgICBjb25zdCBzaWduYXR1cmUgPSBzZXJpYWxpemVkVHJhbnNhY3Rpb24uc2xpY2UoLTEyOCk7XG4gICAgICBpZiAoVXRpbHMuaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmUpKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IGVuY29kZSB0aGUgc2lnbmF0dXJlIGFuZCBzYXZlIGl0IGluIF9zaWduYXR1cmVcbiAgICAgIGNvbnN0IHBhcnNlZFRyYW5zYWN0aW9uID0gYXdhaXQgbG9jYWxGb3JnZXIucGFyc2UodW5zaWduZWRTZXJpYWxpemVkVHJhbnNhY3Rpb24pO1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb25JZCA9IGF3YWl0IFV0aWxzLmNhbGN1bGF0ZVRyYW5zYWN0aW9uSWQoc2VyaWFsaXplZFRyYW5zYWN0aW9uKTtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdEZyb21QYXJzZWRUcmFuc2FjdGlvbihwYXJzZWRUcmFuc2FjdGlvbiwgdHJhbnNhY3Rpb25JZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGZpZWxkcyBiYXNlZCBvbiBhbm90aGVyIHBhcnNlZCB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtQYXJzZWRUcmFuc2FjdGlvbn0gcGFyc2VkVHJhbnNhY3Rpb24gQSBUZXpvcyB0cmFuc2FjdGlvbiBvYmplY3RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRyYW5zYWN0aW9uSWQgVGhlIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBwYXJzZWRUcmFuc2FjdGlvbiBpZiBpdCBpcyBzaWduZWRcbiAgICovXG4gIGFzeW5jIGluaXRGcm9tUGFyc2VkVHJhbnNhY3Rpb24ocGFyc2VkVHJhbnNhY3Rpb246IFBhcnNlZFRyYW5zYWN0aW9uLCB0cmFuc2FjdGlvbklkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLl9lbmNvZGVkVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRoaXMuX2VuY29kZWRUcmFuc2FjdGlvbiA9IGF3YWl0IGxvY2FsRm9yZ2VyLmZvcmdlKHBhcnNlZFRyYW5zYWN0aW9uKTtcbiAgICB9XG4gICAgaWYgKHRyYW5zYWN0aW9uSWQpIHtcbiAgICAgIC8vIElmIHRoZSB0cmFuc2FjdGlvbiBpZCBpcyBwYXNzZWQsIHNhdmUgaXQgYW5kIGNsZWFuIHVwIHRoZSBlbnRyaWVzIHNpbmNlIHRoZXkgd2lsbCBiZVxuICAgICAgLy8gcmVjYWxjdWxhdGVkXG4gICAgICB0aGlzLl9pZCA9IHRyYW5zYWN0aW9uSWQ7XG4gICAgICB0aGlzLl9pbnB1dHMgPSBbXTtcbiAgICAgIHRoaXMuX291dHB1dHMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faWQgPSAnJztcbiAgICB9XG4gICAgdGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24gPSBwYXJzZWRUcmFuc2FjdGlvbjtcbiAgICBsZXQgb3BlcmF0aW9uSW5kZXggPSAwO1xuICAgIGZvciAoY29uc3Qgb3BlcmF0aW9uIG9mIHBhcnNlZFRyYW5zYWN0aW9uLmNvbnRlbnRzKSB7XG4gICAgICBpZiAodGhpcy5fc291cmNlICYmIHRoaXMuX3NvdXJjZSAhPT0gb3BlcmF0aW9uLnNvdXJjZSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgICAgJ1NvdXJjZSBtdXN0IGJlIHRoZSBzYW1lIGZvciBldmVyeSBvcGVyYXRpb24gYnV0IGl0IGNoYW5nZWQgZnJvbSAnICsgdGhpcy5fc291cmNlICsgJyB0byAnICsgb3BlcmF0aW9uLnNvdXJjZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fc291cmNlID0gb3BlcmF0aW9uLnNvdXJjZTtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCAob3BlcmF0aW9uLmtpbmQpIHtcbiAgICAgICAgY2FzZSBDT0RFQy5PUF9PUklHSU5BVElPTjpcbiAgICAgICAgICBhd2FpdCB0aGlzLnJlY29yZE9yaWdpbmF0aW9uT3BGaWVsZHMob3BlcmF0aW9uIGFzIE9yaWdpbmF0aW9uT3AsIG9wZXJhdGlvbkluZGV4KTtcbiAgICAgICAgICBvcGVyYXRpb25JbmRleCsrO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIENPREVDLk9QX1JFVkVBTDpcbiAgICAgICAgICB0aGlzLnJlY29yZFJldmVhbE9wRmllbGRzKG9wZXJhdGlvbiBhcyBSZXZlYWxPcCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQ09ERUMuT1BfVFJBTlNBQ1RJT046XG4gICAgICAgICAgdGhpcy5yZWNvcmRUcmFuc2FjdGlvbk9wRmllbGRzKG9wZXJhdGlvbiBhcyBUcmFuc2FjdGlvbk9wKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVjb3JkIHRoZSBtb3N0IGltcG9ydGFudCBmaWVsZHMgZnJvbSBhbiBvcmlnaW5hdGlvbiBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9ufSBvcGVyYXRpb24gQW4gb3BlcmF0aW9uIG9iamVjdCBmcm9tIGEgVGV6b3MgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IFRoZSBvcmlnaW5hdGlvbiBvcGVyYXRpb24gaW5kZXggaW4gdGhlIHRyYW5zYWN0aW9uLiBVc2VkIHRvIGNhbGN1bGF0ZSB0aGVcbiAgICogICAgICBvcmlnaW5hdGVkIGFkZHJlc3NcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVjb3JkT3JpZ2luYXRpb25PcEZpZWxkcyhvcGVyYXRpb246IE9yaWdpbmF0aW9uT3AsIGluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvcmlnaW5hdGlvbkRhdGEgPSBnZXRPcmlnaW5hdGlvbkRhdGFGcm9tT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gICAgaWYgKG9yaWdpbmF0aW9uRGF0YS5mb3J3YXJkZXJEZXN0aW5hdGlvbikge1xuICAgICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb247XG4gICAgICB0aGlzLl9mb3J3YXJkZXJEZXN0aW5hdGlvbiA9IG9yaWdpbmF0aW9uRGF0YS5mb3J3YXJkZXJEZXN0aW5hdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjtcbiAgICAgIHRoaXMuX293bmVycyA9IGdldE93bmVyc1B1YmxpY0tleXMob3BlcmF0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLl9kZWxlZ2F0ZSA9IG9wZXJhdGlvbi5kZWxlZ2F0ZTtcbiAgICB0aGlzLl9vdXRwdXRzLnB1c2goe1xuICAgICAgLy8gS3QgYWRkcmVzc2VzIGNhbiBvbmx5IGJlIGNhbGN1bGF0ZWQgZm9yIHNpZ25lZCB0cmFuc2FjdGlvbnMgd2l0aCBhbiBpZFxuICAgICAgYWRkcmVzczogdGhpcy5faWQgPyBhd2FpdCBVdGlscy5jYWxjdWxhdGVPcmlnaW5hdGVkQWRkcmVzcyh0aGlzLl9pZCwgaW5kZXgpIDogJycsXG4gICAgICAvLyBCYWxhbmNlXG4gICAgICB2YWx1ZTogb3BlcmF0aW9uLmJhbGFuY2UsXG4gICAgfSk7XG4gICAgdGhpcy5faW5wdXRzLnB1c2goe1xuICAgICAgYWRkcmVzczogb3BlcmF0aW9uLnNvdXJjZSxcbiAgICAgIC8vIEJhbGFuY2UgKyBmZWVzICsgbWF4IGdhcyArIG1heCBzdG9yYWdlIGFyZSBwYWlkIGJ5IHRoZSBzb3VyY2UgYWNjb3VudFxuICAgICAgdmFsdWU6IG5ldyBCaWdOdW1iZXIob3BlcmF0aW9uLmJhbGFuY2UpLnBsdXMob3BlcmF0aW9uLmZlZSkudG9TdHJpbmcoKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvcmQgdGhlIG1vc3QgaW1wb3J0YW50IGZpZWxkcyBmcm9tIGEgcmV2ZWFsIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtSZXZlYWxPcH0gb3BlcmF0aW9uIEEgcmV2ZWFsIG9wZXJhdGlvbiBvYmplY3QgZnJvbSBhIFRlem9zIHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIHJlY29yZFJldmVhbE9wRmllbGRzKG9wZXJhdGlvbjogUmV2ZWFsT3ApOiB2b2lkIHtcbiAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGU7XG4gICAgdGhpcy5fcHVibGljS2V5VG9SZXZlYWwgPSBvcGVyYXRpb24ucHVibGljX2tleTtcbiAgICB0aGlzLl9pbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiBvcGVyYXRpb24uc291cmNlLFxuICAgICAgLy8gQmFsYW5jZSArIGZlZXMgKyBtYXggZ2FzICsgbWF4IHN0b3JhZ2UgYXJlIHBhaWQgYnkgdGhlIHNvdXJjZSBhY2NvdW50XG4gICAgICB2YWx1ZTogb3BlcmF0aW9uLmZlZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvcmQgdGhlIG1vc3QgaW1wb3J0YW50IGZpZWxkcyBmb3IgYSBUcmFuc2FjdGlvbiBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25PcH0gb3BlcmF0aW9uIEEgdHJhbnNhY3Rpb24gb2JqZWN0IGZyb20gYSBUZXpvcyBvcGVyYXRpb25cbiAgICovXG4gIHByaXZhdGUgcmVjb3JkVHJhbnNhY3Rpb25PcEZpZWxkcyhvcGVyYXRpb246IFRyYW5zYWN0aW9uT3ApOiB2b2lkIHtcbiAgICBpZiAob3BlcmF0aW9uLnBhcmFtZXRlcnMpIHtcbiAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TaW5nbGVTaWdTZW5kO1xuICAgIH1cbiAgICBjb25zdCB0cmFuc2ZlckRhdGEgPSBnZXRNdWx0aXNpZ1RyYW5zZmVyRGF0YUZyb21PcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgICAvLyBGZWVzIGFyZSBwYWlkIGJ5IHRoZSBzb3VyY2UgYWNjb3VudCwgYWxvbmcgd2l0aCB0aGUgYW1vdW50IGluIHRoZSB0cmFuc2FjdGlvblxuICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IG9wZXJhdGlvbi5zb3VyY2UsXG4gICAgICB2YWx1ZTogbmV3IEJpZ051bWJlcih0cmFuc2ZlckRhdGEuZmVlLmZlZSkudG9GaXhlZCgwKSxcbiAgICB9KTtcblxuICAgIGlmICh0cmFuc2ZlckRhdGEuY29pbiA9PT0gJ211dGV6Jykge1xuICAgICAgdGhpcy5fb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgLy8gS3QgYWRkcmVzc2VzIGNhbiBvbmx5IGJlIGNhbGN1bGF0ZWQgZm9yIHNpZ25lZCB0cmFuc2FjdGlvbnMgd2l0aCBhbiBpZFxuICAgICAgICBhZGRyZXNzOiB0cmFuc2ZlckRhdGEudG8sXG4gICAgICAgIC8vIEJhbGFuY2VcbiAgICAgICAgdmFsdWU6IHRyYW5zZmVyRGF0YS5hbW91bnQsXG4gICAgICB9KTtcbiAgICAgIC8vIFRoZSBmdW5kcyBiZWluZyB0cmFuc2ZlcnJlZCBmcm9tIHRoZSB3YWxsZXRcbiAgICAgIHRoaXMuX2lucHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogdHJhbnNmZXJEYXRhLmZyb20sXG4gICAgICAgIC8vIEJhbGFuY2UgKyBmZWVzICsgbWF4IGdhcyArIG1heCBzdG9yYWdlIGFyZSBwYWlkIGJ5IHRoZSBzb3VyY2UgYWNjb3VudFxuICAgICAgICB2YWx1ZTogdHJhbnNmZXJEYXRhLmFtb3VudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIHRoZSB0cmFuc2FjdGlvbiB3aXRoIHRoZSBwcm92aWRlZCBrZXkuIEl0IGRvZXMgbm90IGNoZWNrIGlmIHRoZSBzaWduZXIgaXMgYWxsb3dlZCB0byBzaWduXG4gICAqIGl0IG9yIG5vdC5cbiAgICpcbiAgICogQHBhcmFtIHtLZXlQYWlyfSBrZXlQYWlyIFRoZSBrZXkgdG8gc2lnbiB0aGUgdHJhbnNhY3Rpb24gd2l0aFxuICAgKi9cbiAgYXN5bmMgc2lnbihrZXlQYWlyOiBLZXlQYWlyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVE9ETzogZmFpbCBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgYWxyZWFkeSBzaWduZWRcbiAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyBhIHRyYW5zYWN0aW9uIHRvIHNpZ25cbiAgICBpZiAoIXRoaXMuX3BhcnNlZFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIC8vIEdldCB0aGUgdHJhbnNhY3Rpb24gYm9keSB0byBzaWduXG4gICAgY29uc3QgZW5jb2RlZFRyYW5zYWN0aW9uID0gYXdhaXQgbG9jYWxGb3JnZXIuZm9yZ2UodGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24pO1xuXG4gICAgY29uc3Qgc2lnbmVkVHJhbnNhY3Rpb24gPSBhd2FpdCBVdGlscy5zaWduKGtleVBhaXIsIGVuY29kZWRUcmFuc2FjdGlvbik7XG4gICAgdGhpcy5fZW5jb2RlZFRyYW5zYWN0aW9uID0gc2lnbmVkVHJhbnNhY3Rpb24uc2J5dGVzO1xuXG4gICAgLy8gVGhlIHRyYW5zYWN0aW9uIGlkIGNhbiBvbmx5IGJlIGNhbGN1bGF0ZWQgZm9yIHNpZ25lZCB0cmFuc2FjdGlvbnNcbiAgICB0aGlzLl9pZCA9IGF3YWl0IFV0aWxzLmNhbGN1bGF0ZVRyYW5zYWN0aW9uSWQodGhpcy5fZW5jb2RlZFRyYW5zYWN0aW9uKTtcbiAgICBhd2FpdCB0aGlzLmluaXRGcm9tUGFyc2VkVHJhbnNhY3Rpb24odGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24sIHRoaXMuX2lkKTtcblxuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduZWRUcmFuc2FjdGlvbi5zaWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgbGlzdCBvZiBzaWduYXR1cmVzIGZvciBhIG11bHRpc2lnIHRyYW5zYWN0aW9uIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtJbmRleGVkU2lnbmF0dXJlW119IHNpZ25hdHVyZXMgTGlzdCBvZiBzaWduYXR1cmVzIGFuZCB0aGUgaW5kZXggdGhleSBzaG91bGQgYmUgcHV0IG9uXG4gICAqICAgIGluIHRoZSBtdWx0aXNpZyB0cmFuc2ZlclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggVGhlIHRyYW5zZmVyIGluZGV4IHRvIGFkZCB0aGUgc2lnbmF0dXJlcyB0b1xuICAgKi9cbiAgYXN5bmMgYWRkVHJhbnNmZXJTaWduYXR1cmUoc2lnbmF0dXJlczogSW5kZXhlZFNpZ25hdHVyZVtdLCBpbmRleDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLl9wYXJzZWRUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICB1cGRhdGVNdWx0aXNpZ1RyYW5zZmVyU2lnbmF0dXJlcyh0aGlzLl9wYXJzZWRUcmFuc2FjdGlvbi5jb250ZW50c1tpbmRleF0gYXMgVHJhbnNhY3Rpb25PcCwgc2lnbmF0dXJlcyk7XG4gICAgdGhpcy5fZW5jb2RlZFRyYW5zYWN0aW9uID0gYXdhaXQgbG9jYWxGb3JnZXIuZm9yZ2UodGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgLy8gVE9ETzogY2hlY2sgdGhlIGtleSBiZWxvbmdzIHRvIHRoZSBfc291cmNlIGFjY291bnQgaW4gX3BhcnNlZFRyYW5zYWN0aW9uXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFBhcnNlZFRyYW5zYWN0aW9uIHtcbiAgICBpZiAoIXRoaXMuX3BhcnNlZFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9wYXJzZWRUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fZW5jb2RlZFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgZW5jb2RlZCB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZW5jb2RlZFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdHJhbnNhY3Rpb24gc291cmNlIGlmIGl0IGlzIGF2YWlsYWJsZS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gU291cmNlIG9mIHRoZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0IHNvdXJjZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fc291cmNlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIG5vdCBpbml0aWFsaXplZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdHJhbnNhY3Rpb24gZGVsZWdhdGlvbiBhZGRyZXNzIGlmIGl0IGlzIGF2YWlsYWJsZS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gdHJhbnNhY3Rpb24gZGVsZWdhdGlvbiBhZGRyZXNzXG4gICAqL1xuICBnZXQgZGVsZWdhdGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwdWJsaWMga2V5IHJldmVhbGVkIGJ5IHRoZSB0cmFuc2FjdGlvbiBpZiBpdCBleGlzdHNcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gcHVibGljIGtleVxuICAgKi9cbiAgZ2V0IHB1YmxpY0tleVRvUmV2ZWFsKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3B1YmxpY0tleVRvUmV2ZWFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVzdGluYXRpb24gb2YgYW4gYWRkcmVzcyBpbml0aWFsaXphdGlvbiB0cmFuc2FjdGlvbiBpZiBpdCBleGlzdHNcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gZm9yd2FyZGVyIGRlc3RpbmF0aW9uXG4gICAqL1xuICBnZXQgZm9yd2FyZGVyRGVzdGluYXRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZm9yd2FyZGVyRGVzdGluYXRpb247XG4gIH1cblxuICBnZXQgb3duZXJzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fb3duZXJzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2lnbmF0dXJlcyBmb3IgdGhlIGdpdmVuIG11bHRpc2lnIHRyYW5zZmVyLFxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdHJhbnNmZXJJbmRleCBUaGUgdHJhbnNmZXIgc2NyaXB0IGluZGV4IGluIHRoZSBUZXpvcyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7SW5kZXhlZFNpZ25hdHVyZVtdfSBBIGxpc3Qgb2Ygc2lnbmF0dXJlcyB3aXRoIHRoZWlyIGluZGV4IGluc2lkZSB0aGUgbXVsdGlzaWcgdHJhbnNmZXJcbiAgICogICAgICBzY3JpcHRcbiAgICovXG4gIGdldFRyYW5zZmVyU2lnbmF0dXJlcyh0cmFuc2ZlckluZGV4ID0gMCk6IEluZGV4ZWRTaWduYXR1cmVbXSB7XG4gICAgaWYgKCF0aGlzLl9wYXJzZWRUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0TXVsdGlzaWdUcmFuc2ZlclNpZ25hdHVyZXModGhpcy5fcGFyc2VkVHJhbnNhY3Rpb24uY29udGVudHNbdHJhbnNmZXJJbmRleF0gYXMgVHJhbnNhY3Rpb25PcCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIGluZGV4IHBlciB0ZXpvcyB0cmFuc2FjdGlvbiB0eXBlLiBUaGlzIGlzIHVzZWZ1bCB0byBsb2NhdGUgc3BlY2lmaWMgb3BlcmF0aW9uc1xuICAgKiB3aXRoaW4gdGhlIHRyYW5zYWN0aW9uIGFuZCB2ZXJpZnkgb3Igc2lnbiB0aGVtLlxuICAgKlxuICAgKiBAcmV0dXJucyB7e1twOiBzdHJpbmddOiBudW1iZXJbXX19IExpc3Qgb2YgaW5kZXhlcyB3aGVyZSB0aGUga2V5IGlzIHRoZSB0cmFuc2FjdGlvbiBraW5kXG4gICAqL1xuICBnZXRJbmRleGVzQnlUcmFuc2FjdGlvblR5cGUoKTogeyBba2luZDogc3RyaW5nXTogbnVtYmVyW10gfSB7XG4gICAgaWYgKCF0aGlzLl9wYXJzZWRUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCBpbmRleGVzID0ge307XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9wYXJzZWRUcmFuc2FjdGlvbi5jb250ZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qga2luZCA9IHRoaXMuX3BhcnNlZFRyYW5zYWN0aW9uLmNvbnRlbnRzW2ldLmtpbmQ7XG4gICAgICBpbmRleGVzW2tpbmRdID0gaW5kZXhlc1traW5kXSA/IGluZGV4ZXNba2luZF0uY29uY2F0KFtpXSkgOiBbaV07XG4gICAgfVxuICAgIHJldHVybiBpbmRleGVzO1xuICB9XG59XG4iXX0=
|