@bitgo-beta/statics 10.0.1-alpha.34 → 10.0.1-alpha.340
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/.mocharc.js +1 -1
- package/CHANGELOG.md +3054 -0
- package/dist/src/account.d.ts +583 -31
- package/dist/src/account.d.ts.map +1 -1
- package/dist/src/account.js +960 -127
- package/dist/src/ada.d.ts.map +1 -1
- package/dist/src/ada.js +8 -3
- package/dist/src/avaxp.d.ts.map +1 -1
- package/dist/src/avaxp.js +9 -3
- package/dist/src/base.d.ts +1562 -33
- package/dist/src/base.d.ts.map +1 -1
- package/dist/src/base.js +1630 -49
- package/dist/src/coinFeatures.d.ts +87 -0
- package/dist/src/coinFeatures.d.ts.map +1 -0
- package/dist/src/coinFeatures.js +560 -0
- package/dist/src/coins/avaxTokens.d.ts +2 -0
- package/dist/src/coins/avaxTokens.d.ts.map +1 -0
- package/dist/src/coins/avaxTokens.js +97 -0
- package/dist/src/coins/bscTokens.d.ts +2 -0
- package/dist/src/coins/bscTokens.d.ts.map +1 -0
- package/dist/src/coins/bscTokens.js +157 -0
- package/dist/src/coins/erc20Coins.d.ts +2 -0
- package/dist/src/coins/erc20Coins.d.ts.map +1 -0
- package/dist/src/coins/erc20Coins.js +1451 -0
- package/dist/src/coins/nep141Tokens.d.ts +2 -0
- package/dist/src/coins/nep141Tokens.d.ts.map +1 -0
- package/dist/src/coins/nep141Tokens.js +14 -0
- package/dist/src/coins/ofcCoins.d.ts +2 -0
- package/dist/src/coins/ofcCoins.d.ts.map +1 -0
- package/dist/src/coins/ofcCoins.js +566 -0
- package/dist/src/coins/ofcErc20Coins.d.ts +3 -0
- package/dist/src/coins/ofcErc20Coins.d.ts.map +1 -0
- package/dist/src/coins/ofcErc20Coins.js +1338 -0
- package/dist/src/coins/polygonTokens.d.ts +2 -0
- package/dist/src/coins/polygonTokens.d.ts.map +1 -0
- package/dist/src/coins/polygonTokens.js +147 -0
- package/dist/src/coins/sip10Tokens.d.ts +2 -0
- package/dist/src/coins/sip10Tokens.d.ts.map +1 -0
- package/dist/src/coins/sip10Tokens.js +25 -0
- package/dist/src/coins/solTokens.d.ts +2 -0
- package/dist/src/coins/solTokens.d.ts.map +1 -0
- package/dist/src/coins/solTokens.js +362 -0
- package/dist/src/coins/vetTokens.d.ts +2 -0
- package/dist/src/coins/vetTokens.d.ts.map +1 -0
- package/dist/src/coins/vetTokens.js +11 -0
- package/dist/src/coins.d.ts +10 -0
- package/dist/src/coins.d.ts.map +1 -1
- package/dist/src/coins.js +685 -1375
- package/dist/src/constants.d.ts +1 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +3 -2
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +20 -3
- package/dist/src/lightning.d.ts +43 -0
- package/dist/src/lightning.d.ts.map +1 -0
- package/dist/src/lightning.js +60 -0
- package/dist/src/map.d.ts +4 -0
- package/dist/src/map.d.ts.map +1 -1
- package/dist/src/map.js +95 -19
- package/dist/src/networkFeatureMapForTokens.d.ts +3 -0
- package/dist/src/networkFeatureMapForTokens.d.ts.map +1 -0
- package/dist/src/networkFeatureMapForTokens.js +29 -0
- package/dist/src/networks.d.ts +826 -4
- package/dist/src/networks.d.ts.map +1 -1
- package/dist/src/networks.js +1099 -48
- package/dist/src/ofc.d.ts +349 -0
- package/dist/src/ofc.d.ts.map +1 -1
- package/dist/src/ofc.js +724 -14
- package/dist/src/tokenConfig.d.ts +168 -14
- package/dist/src/tokenConfig.d.ts.map +1 -1
- package/dist/src/tokenConfig.js +659 -238
- package/dist/src/utxo.d.ts +3 -1
- package/dist/src/utxo.d.ts.map +1 -1
- package/dist/src/utxo.js +83 -3
- package/dist/tsconfig.tsbuildinfo +1 -2744
- package/package.json +2 -2
- package/dist/resources/dot/index.d.ts +0 -3
- package/dist/resources/dot/index.d.ts.map +0 -1
- package/dist/resources/dot/index.js +0 -15
- package/dist/resources/dot/mainnet.d.ts +0 -2
- package/dist/resources/dot/mainnet.d.ts.map +0 -1
- package/dist/resources/dot/mainnet.js +0 -5
- package/dist/resources/dot/westend.d.ts +0 -2
- package/dist/resources/dot/westend.d.ts.map +0 -1
- package/dist/resources/dot/westend.js +0 -5
- package/resources/dot/index.ts +0 -2
- package/resources/dot/mainnet.ts +0 -2
- package/resources/dot/westend.ts +0 -2
package/dist/src/utxo.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseCoin, BaseUnit, CoinFeature, KeyCurve, UnderlyingAsset } from './base';
|
|
2
2
|
import { UtxoNetwork } from './networks';
|
|
3
|
-
|
|
3
|
+
interface UtxoConstructorOptions {
|
|
4
4
|
id: string;
|
|
5
5
|
fullName: string;
|
|
6
6
|
name: string;
|
|
@@ -38,4 +38,6 @@ export declare class UtxoCoin extends BaseCoin {
|
|
|
38
38
|
export declare function utxo(id: string, name: string, fullName: string, network: UtxoNetwork, asset: UnderlyingAsset, baseUnit: BaseUnit, features?: CoinFeature[], prefix?: string, suffix?: string,
|
|
39
39
|
/** All UTXOs BitGo supports are SECP256K1 **/
|
|
40
40
|
primaryKeyCurve?: KeyCurve): Readonly<UtxoCoin>;
|
|
41
|
+
export declare const utxoCoins: Readonly<BaseCoin>[];
|
|
42
|
+
export {};
|
|
41
43
|
//# sourceMappingURL=utxo.d.ts.map
|
package/dist/src/utxo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../src/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,
|
|
1
|
+
{"version":3,"file":"utxo.d.ts","sourceRoot":"","sources":["../../src/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAY,QAAQ,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAY,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnD,UAAU,sBAAsB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,QAAQ,CAAC;CAC3B;AAED,qBAAa,QAAS,SAAQ,QAAQ;IACpC,gBAAuB,gBAAgB,gBAUrC;IAEF;;OAEG;IACH,SAAgB,OAAO,EAAE,WAAW,CAAC;gBAEzB,OAAO,EAAE,sBAAsB;IAW3C,SAAS,CAAC,kBAAkB,IAAI,GAAG,CAAC,WAAW,CAAC;IAIhD,SAAS,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;CAG/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,IAAI,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,WAAW,EAA8B,EACnD,MAAM,SAAK,EACX,MAAM,GAAE,MAA2B;AACnC,8CAA8C;AAC9C,eAAe,GAAE,QAA6B,sBAgB/C;AAiDD,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAmMzC,CAAC"}
|
package/dist/src/utxo.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.utxoCoins = exports.UtxoCoin = void 0;
|
|
4
|
+
exports.utxo = utxo;
|
|
4
5
|
const base_1 = require("./base");
|
|
6
|
+
const networks_1 = require("./networks");
|
|
5
7
|
class UtxoCoin extends base_1.BaseCoin {
|
|
6
8
|
constructor(options) {
|
|
7
9
|
super({
|
|
@@ -25,6 +27,11 @@ UtxoCoin.DEFAULT_FEATURES = [
|
|
|
25
27
|
base_1.CoinFeature.CHILD_PAYS_FOR_PARENT,
|
|
26
28
|
base_1.CoinFeature.CUSTODY,
|
|
27
29
|
base_1.CoinFeature.CUSTODY_BITGO_TRUST,
|
|
30
|
+
base_1.CoinFeature.CUSTODY_BITGO_MENA_FZE,
|
|
31
|
+
base_1.CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE,
|
|
32
|
+
base_1.CoinFeature.MULTISIG_COLD,
|
|
33
|
+
base_1.CoinFeature.MULTISIG,
|
|
34
|
+
base_1.CoinFeature.PAYGO,
|
|
28
35
|
];
|
|
29
36
|
/**
|
|
30
37
|
* Factory function for utxo coin instances.
|
|
@@ -55,5 +62,78 @@ primaryKeyCurve = base_1.KeyCurve.Secp256k1) {
|
|
|
55
62
|
baseUnit,
|
|
56
63
|
}));
|
|
57
64
|
}
|
|
58
|
-
|
|
59
|
-
|
|
65
|
+
const BCH_FEATURES = [
|
|
66
|
+
...UtxoCoin.DEFAULT_FEATURES,
|
|
67
|
+
base_1.CoinFeature.BULK_TRANSACTION,
|
|
68
|
+
base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
|
|
69
|
+
base_1.CoinFeature.CUSTODY_BITGO_NEW_YORK,
|
|
70
|
+
base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
|
|
71
|
+
base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
|
|
72
|
+
];
|
|
73
|
+
const BTC_FEATURES = [
|
|
74
|
+
...UtxoCoin.DEFAULT_FEATURES,
|
|
75
|
+
base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
|
|
76
|
+
base_1.CoinFeature.CUSTODY_BITGO_NEW_YORK,
|
|
77
|
+
base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
|
|
78
|
+
base_1.CoinFeature.CUSTODY_BITGO_SISTER_TRUST_ONE,
|
|
79
|
+
base_1.CoinFeature.CUSTODY_BITGO_KOREA,
|
|
80
|
+
base_1.CoinFeature.CUSTODY_BITGO_EUROPE_APS,
|
|
81
|
+
base_1.CoinFeature.BULK_TRANSACTION,
|
|
82
|
+
base_1.CoinFeature.DISTRIBUTED_CUSTODY,
|
|
83
|
+
base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
|
|
84
|
+
base_1.CoinFeature.CUSTODY_BITGO_SWITZERLAND,
|
|
85
|
+
base_1.CoinFeature.STUCK_TRANSACTION_MANAGEMENT_ONCHAIN,
|
|
86
|
+
base_1.CoinFeature.STAKING,
|
|
87
|
+
];
|
|
88
|
+
const BTG_FEATURES = [
|
|
89
|
+
...UtxoCoin.DEFAULT_FEATURES,
|
|
90
|
+
base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
|
|
91
|
+
base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
|
|
92
|
+
];
|
|
93
|
+
const LTC_FEATURES = [
|
|
94
|
+
...UtxoCoin.DEFAULT_FEATURES,
|
|
95
|
+
base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
|
|
96
|
+
base_1.CoinFeature.CUSTODY_BITGO_NEW_YORK,
|
|
97
|
+
base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
|
|
98
|
+
base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
|
|
99
|
+
base_1.CoinFeature.BULK_TRANSACTION,
|
|
100
|
+
];
|
|
101
|
+
const DOGE_FEATURES = [
|
|
102
|
+
...UtxoCoin.DEFAULT_FEATURES,
|
|
103
|
+
base_1.CoinFeature.CUSTODY_BITGO_GERMANY,
|
|
104
|
+
base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT,
|
|
105
|
+
base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
|
|
106
|
+
base_1.CoinFeature.CUSTODY_BITGO_NEW_YORK,
|
|
107
|
+
base_1.CoinFeature.BULK_TRANSACTION,
|
|
108
|
+
];
|
|
109
|
+
const DASH_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, base_1.CoinFeature.CUSTODY_BITGO_FRANKFURT, base_1.CoinFeature.BULK_TRANSACTION];
|
|
110
|
+
const TDASH_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, base_1.CoinFeature.BULK_TRANSACTION];
|
|
111
|
+
const ZEC_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, base_1.CoinFeature.BULK_TRANSACTION];
|
|
112
|
+
exports.utxoCoins = [
|
|
113
|
+
utxo('8d6e08d5-399f-414f-8430-6ceca1798cbf', 'bch', 'Bitcoin Cash', networks_1.Networks.main.bitcoinCash, base_1.UnderlyingAsset.BCH, base_1.BaseUnit.BTC, BCH_FEATURES),
|
|
114
|
+
utxo('aae6fafc-5091-4b10-9a11-aa6cefea2805', 'tbch', 'Testnet Bitcoin Cash', networks_1.Networks.test.bitcoinCash, base_1.UnderlyingAsset.BCH, base_1.BaseUnit.BTC, BCH_FEATURES),
|
|
115
|
+
utxo('941587ce-1c7a-4305-b908-15455d15e961', 'bcha', 'ECash', networks_1.Networks.main.eCash, base_1.UnderlyingAsset.BCHA, base_1.BaseUnit.BTC),
|
|
116
|
+
utxo('af8de1e0-3e33-47bf-94d3-fb3c2bebead2', 'tbcha', 'Testnet ECash', networks_1.Networks.test.eCash, base_1.UnderlyingAsset.BCHA, base_1.BaseUnit.BTC),
|
|
117
|
+
utxo('f728cfc7-d0cf-4f99-bca0-d25273e65fcf', 'bsv', 'Bitcoin SV', networks_1.Networks.main.bitcoinSV, base_1.UnderlyingAsset.BSV, base_1.BaseUnit.BTC, [base_1.CoinFeature.DEPRECATED, ...UtxoCoin.DEFAULT_FEATURES]),
|
|
118
|
+
utxo('7cb81518-85d7-400f-960e-7bc00b3bfa62', 'tbsv', 'Testnet Bitcoin SV', networks_1.Networks.test.bitcoinSV, base_1.UnderlyingAsset.BSV, base_1.BaseUnit.BTC, [base_1.CoinFeature.DEPRECATED, ...UtxoCoin.DEFAULT_FEATURES]),
|
|
119
|
+
utxo('5c1691c5-c9cc-49ed-abe0-c433dab2edaa', 'btc', 'Bitcoin', networks_1.Networks.main.bitcoin, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES),
|
|
120
|
+
utxo('cde7559d-a536-4d12-8de4-90baa09f90bd', 'tbtc', 'Testnet Bitcoin', networks_1.Networks.test.bitcoin, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES.filter((f) => f !== base_1.CoinFeature.STAKING)),
|
|
121
|
+
utxo('a0d53dc9-2dcc-4ebb-a2d4-51983fe20da6', 'tbtcsig', 'Public Signet Bitcoin', networks_1.Networks.test.bitcoinPublicSignet, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES),
|
|
122
|
+
utxo('f76cec3f-7aef-473d-af5d-4c47dd40dfa8', 'tbtc4', 'Testnet4 Bitcoin', networks_1.Networks.test.bitcoinTestnet4, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES),
|
|
123
|
+
utxo('722522dc-a613-4bff-a1d1-183ebe5138ae', 'tbtcbgsig', 'BitGo Signet Bitcoin', networks_1.Networks.test.bitcoinBitGoSignet, base_1.UnderlyingAsset.BTC, base_1.BaseUnit.BTC, BTC_FEATURES),
|
|
124
|
+
utxo('8feb110d-0d68-44ce-ae97-b8c30ec870a9', 'btg', 'Bitcoin Gold', networks_1.Networks.main.bitcoinGold, base_1.UnderlyingAsset.BTG, base_1.BaseUnit.BTC, BTG_FEATURES),
|
|
125
|
+
utxo('633246f2-af21-41b8-8b9e-ba9ae25d386f', 'tbtg', 'Testnet Bitcoin Gold', networks_1.Networks.test.bitcoinGold, base_1.UnderlyingAsset.BTG, base_1.BaseUnit.BTC, BTG_FEATURES.filter((f) => f !== base_1.CoinFeature.MULTISIG_COLD)),
|
|
126
|
+
utxo('9c8097f1-5d2c-4a62-a94c-96c271c0e5e0', 'ltc', 'Litecoin', networks_1.Networks.main.litecoin, base_1.UnderlyingAsset.LTC, base_1.BaseUnit.LTC, LTC_FEATURES),
|
|
127
|
+
utxo('1aca32c8-a3e5-42eb-82df-4c263d8bfc68', 'tltc', 'Testnet Litecoin', networks_1.Networks.test.litecoin, base_1.UnderlyingAsset.LTC, base_1.BaseUnit.LTC, LTC_FEATURES),
|
|
128
|
+
utxo('0739be6a-c72e-468d-9464-ca5601965708', 'dash', 'Dash', networks_1.Networks.main.dash, base_1.UnderlyingAsset.DASH, base_1.BaseUnit.DASH, DASH_FEATURES.filter((feature) => ![
|
|
129
|
+
base_1.CoinFeature.CUSTODY_BITGO_SINGAPORE,
|
|
130
|
+
base_1.CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE,
|
|
131
|
+
base_1.CoinFeature.CUSTODY_BITGO_MENA_FZE,
|
|
132
|
+
].includes(feature))),
|
|
133
|
+
utxo('5950d78f-e8dd-457a-ab5d-310e6b476bb1', 'tdash', 'Testnet Dash', networks_1.Networks.test.dash, base_1.UnderlyingAsset.DASH, base_1.BaseUnit.DASH, TDASH_FEATURES),
|
|
134
|
+
utxo('508f6b53-1e6e-41fd-b541-b2498b7c4b61', 'zec', 'ZCash', networks_1.Networks.main.zCash, base_1.UnderlyingAsset.ZEC, base_1.BaseUnit.ZEC, ZEC_FEATURES),
|
|
135
|
+
utxo('549a4499-387c-42d3-9048-c01d6724d98a', 'tzec', 'Testnet ZCash', networks_1.Networks.test.zCash, base_1.UnderlyingAsset.ZEC, base_1.BaseUnit.ZEC, ZEC_FEATURES),
|
|
136
|
+
utxo('c93a9160-458f-4a31-bea0-4a93ae8b1d2d', 'doge', 'Dogecoin', networks_1.Networks.main.dogecoin, base_1.UnderlyingAsset.DOGE, base_1.BaseUnit.BTC, DOGE_FEATURES),
|
|
137
|
+
utxo('7a1597e8-fd8e-4b68-8086-f9159e37e0ce', 'tdoge', 'Testnet Dogecoin', networks_1.Networks.test.dogecoin, base_1.UnderlyingAsset.DOGE, base_1.BaseUnit.BTC, DOGE_FEATURES),
|
|
138
|
+
];
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXR4by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dHhvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW1FQSxvQkEyQkM7QUE5RkQsaUNBQThGO0FBQzlGLHlDQUFtRDtBQWVuRCxNQUFhLFFBQVMsU0FBUSxlQUFRO0lBa0JwQyxZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxlQUFRLENBQUMsTUFBTTtZQUNyQixPQUFPLEVBQUUsS0FBSztZQUNkLGFBQWEsRUFBRSxDQUFDO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxrQkFBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsa0JBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBbkNILDRCQW9DQztBQW5Dd0IseUJBQWdCLEdBQUc7SUFDeEMsa0JBQVcsQ0FBQyxhQUFhO0lBQ3pCLGtCQUFXLENBQUMscUJBQXFCO0lBQ2pDLGtCQUFXLENBQUMsT0FBTztJQUNuQixrQkFBVyxDQUFDLG1CQUFtQjtJQUMvQixrQkFBVyxDQUFDLHNCQUFzQjtJQUNsQyxrQkFBVyxDQUFDLDhCQUE4QjtJQUMxQyxrQkFBVyxDQUFDLGFBQWE7SUFDekIsa0JBQVcsQ0FBQyxRQUFRO0lBQ3BCLGtCQUFXLENBQUMsS0FBSztDQUNsQixDQUFDO0FBMkJKOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLElBQUksQ0FDbEIsRUFBVSxFQUNWLElBQVksRUFDWixRQUFnQixFQUNoQixPQUFvQixFQUNwQixLQUFzQixFQUN0QixRQUFrQixFQUNsQixXQUEwQixR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dEMsTUFBTSxFQUNOLFVBQVUsRUFDVixtQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQ3RCLHNCQUFlLENBQUMsSUFBSSxFQUNwQixlQUFRLENBQUMsR0FBRyxFQUNaLGFBQWEsQ0FDZDtJQUNELElBQUksQ0FDRixzQ0FBc0MsRUFDdEMsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixtQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQ3RCLHNCQUFlLENBQUMsSUFBSSxFQUNwQixlQUFRLENBQUMsR0FBRyxFQUNaLGFBQWEsQ0FDZDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiwgQmFzZVVuaXQsIENvaW5GZWF0dXJlLCBDb2luS2luZCwgS2V5Q3VydmUsIFVuZGVybHlpbmdBc3NldCB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBOZXR3b3JrcywgVXR4b05ldHdvcmsgfSBmcm9tICcuL25ldHdvcmtzJztcblxuaW50ZXJmYWNlIFV0eG9Db25zdHJ1Y3Rvck9wdGlvbnMge1xuICBpZDogc3RyaW5nO1xuICBmdWxsTmFtZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG5ldHdvcms6IFV0eG9OZXR3b3JrO1xuICBmZWF0dXJlczogQ29pbkZlYXR1cmVbXTtcbiAgYXNzZXQ6IFVuZGVybHlpbmdBc3NldDtcbiAgYmFzZVVuaXQ6IEJhc2VVbml0O1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZTtcbn1cblxuZXhwb3J0IGNsYXNzIFV0eG9Db2luIGV4dGVuZHMgQmFzZUNvaW4ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfRkVBVFVSRVMgPSBbXG4gICAgQ29pbkZlYXR1cmUuVU5TUEVOVF9NT0RFTCxcbiAgICBDb2luRmVhdHVyZS5DSElMRF9QQVlTX0ZPUl9QQVJFTlQsXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWSxcbiAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1RSVVNULFxuICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTUVOQV9GWkUsXG4gICAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19DVVNUT0RZX01FTkFfRlpFLFxuICAgIENvaW5GZWF0dXJlLk1VTFRJU0lHX0NPTEQsXG4gICAgQ29pbkZlYXR1cmUuTVVMVElTSUcsXG4gICAgQ29pbkZlYXR1cmUuUEFZR08sXG4gIF07XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZmllbGRzIGZvciB1dHhvIGNvaW5zXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmV0d29yazogVXR4b05ldHdvcms7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogVXR4b0NvbnN0cnVjdG9yT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBraW5kOiBDb2luS2luZC5DUllQVE8sXG4gICAgICBpc1Rva2VuOiBmYWxzZSxcbiAgICAgIGRlY2ltYWxQbGFjZXM6IDgsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5ldHdvcmsgPSBvcHRpb25zLm5ldHdvcms7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGlzYWxsb3dlZEZlYXR1cmVzKCk6IFNldDxDb2luRmVhdHVyZT4ge1xuICAgIHJldHVybiBuZXcgU2V0KFtDb2luRmVhdHVyZS5BQ0NPVU5UX01PREVMXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVxdWlyZWRGZWF0dXJlcygpOiBTZXQ8Q29pbkZlYXR1cmU+IHtcbiAgICByZXR1cm4gbmV3IFNldChbQ29pbkZlYXR1cmUuVU5TUEVOVF9NT0RFTF0pO1xuICB9XG59XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiBmb3IgdXR4byBjb2luIGluc3RhbmNlcy5cbiAqXG4gKiBAcGFyYW0gaWQgdXVpZCB2NCBvZiB0aGUgY29pblxuICogQHBhcmFtIG5hbWUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGNvaW5cbiAqIEBwYXJhbSBmdWxsTmFtZSBDb21wbGV0ZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoZSBjb2luXG4gKiBAcGFyYW0gbmV0d29yayBOZXR3b3JrIG9iamVjdCBmb3IgdGhpcyBjb2luXG4gKiBAcGFyYW0gYXNzZXQgQXNzZXQgd2hpY2ggdGhpcyBjb2luIHJlcHJlc2VudHMuIFRoaXMgaXMgdGhlIHNhbWUgZm9yIGJvdGggbWFpbm5ldCBhbmQgdGVzdG5ldCB2YXJpYW50cyBvZiBhIGNvaW4uXG4gKiBAcGFyYW0gZmVhdHVyZXM/IEZlYXR1cmVzIG9mIHRoaXMgY29pbi4gRGVmYXVsdHMgdG8gdGhlIERFRkFVTFRfRkVBVFVSRVMgZGVmaW5lZCBpbiBgVXR4b0NvaW5gXG4gKiBAcGFyYW0gcHJlZml4PyBPcHRpb25hbCBjb2luIHByZWZpeC4gRGVmYXVsdHMgdG8gZW1wdHkgc3RyaW5nXG4gKiBAcGFyYW0gc3VmZml4PyBPcHRpb25hbCBjb2luIHN1ZmZpeC4gRGVmYXVsdHMgdG8gY29pbiBuYW1lLlxuICogQHBhcmFtIHByaW1hcnlLZXlDdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUgZm9yIHRoaXMgY2hhaW4vdG9rZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHV0eG8oXG4gIGlkOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgZnVsbE5hbWU6IHN0cmluZyxcbiAgbmV0d29yazogVXR4b05ldHdvcmssXG4gIGFzc2V0OiBVbmRlcmx5aW5nQXNzZXQsXG4gIGJhc2VVbml0OiBCYXNlVW5pdCxcbiAgZmVhdHVyZXM6IENvaW5GZWF0dXJlW10gPSBVdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBwcmVmaXggPSAnJyxcbiAgc3VmZml4OiBzdHJpbmcgPSBuYW1lLnRvVXBwZXJDYXNlKCksXG4gIC8qKiBBbGwgVVRYT3MgQml0R28gc3VwcG9ydHMgYXJlIFNFQ1AyNTZLMSAqKi9cbiAgcHJpbWFyeUtleUN1cnZlOiBLZXlDdXJ2ZSA9IEtleUN1cnZlLlNlY3AyNTZrMVxuKSB7XG4gIHJldHVybiBPYmplY3QuZnJlZXplKFxuICAgIG5ldyBVdHhvQ29pbih7XG4gICAgICBpZCxcbiAgICAgIG5hbWUsXG4gICAgICBmdWxsTmFtZSxcbiAgICAgIG5ldHdvcmssXG4gICAgICBwcmVmaXgsXG4gICAgICBzdWZmaXgsXG4gICAgICBmZWF0dXJlcyxcbiAgICAgIGFzc2V0LFxuICAgICAgcHJpbWFyeUtleUN1cnZlLFxuICAgICAgYmFzZVVuaXQsXG4gICAgfSlcbiAgKTtcbn1cblxuY29uc3QgQkNIX0ZFQVRVUkVTID0gW1xuICAuLi5VdHhvQ29pbi5ERUZBVUxUX0ZFQVRVUkVTLFxuICBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0dFUk1BTlksXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fTkVXX1lPUkssXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fRlJBTktGVVJULFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJTkdBUE9SRSxcbl07XG5jb25zdCBCVENfRkVBVFVSRVMgPSBbXG4gIC4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fR0VSTUFOWSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19ORVdfWU9SSyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19GUkFOS0ZVUlQsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU0lTVEVSX1RSVVNUX09ORSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19LT1JFQSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19FVVJPUEVfQVBTLFxuICBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OLFxuICBDb2luRmVhdHVyZS5ESVNUUklCVVRFRF9DVVNUT0RZLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX1NJTkdBUE9SRSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19TV0lUWkVSTEFORCxcbiAgQ29pbkZlYXR1cmUuU1RVQ0tfVFJBTlNBQ1RJT05fTUFOQUdFTUVOVF9PTkNIQUlOLFxuICBDb2luRmVhdHVyZS5TVEFLSU5HLFxuXTtcbmNvbnN0IEJUR19GRUFUVVJFUyA9IFtcbiAgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19HRVJNQU5ZLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX0ZSQU5LRlVSVCxcbl07XG5jb25zdCBMVENfRkVBVFVSRVMgPSBbXG4gIC4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fR0VSTUFOWSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19ORVdfWU9SSyxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19GUkFOS0ZVUlQsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU0lOR0FQT1JFLFxuICBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OLFxuXTtcbmNvbnN0IERPR0VfRkVBVFVSRVMgPSBbXG4gIC4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVMsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fR0VSTUFOWSxcbiAgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19GUkFOS0ZVUlQsXG4gIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU0lOR0FQT1JFLFxuICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX05FV19ZT1JLLFxuICBDb2luRmVhdHVyZS5CVUxLX1RSQU5TQUNUSU9OLFxuXTtcbmNvbnN0IERBU0hfRkVBVFVSRVMgPSBbLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuQ1VTVE9EWV9CSVRHT19GUkFOS0ZVUlQsIENvaW5GZWF0dXJlLkJVTEtfVFJBTlNBQ1RJT05dO1xuY29uc3QgVERBU0hfRkVBVFVSRVMgPSBbLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuQlVMS19UUkFOU0FDVElPTl07XG5jb25zdCBaRUNfRkVBVFVSRVMgPSBbLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFUywgQ29pbkZlYXR1cmUuQlVMS19UUkFOU0FDVElPTl07XG5leHBvcnQgY29uc3QgdXR4b0NvaW5zOiBSZWFkb25seTxCYXNlQ29pbj5bXSA9IFtcbiAgdXR4byhcbiAgICAnOGQ2ZTA4ZDUtMzk5Zi00MTRmLTg0MzAtNmNlY2ExNzk4Y2JmJyxcbiAgICAnYmNoJyxcbiAgICAnQml0Y29pbiBDYXNoJyxcbiAgICBOZXR3b3Jrcy5tYWluLmJpdGNvaW5DYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5CQ0gsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJDSF9GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICdhYWU2ZmFmYy01MDkxLTRiMTAtOWExMS1hYTZjZWZlYTI4MDUnLFxuICAgICd0YmNoJyxcbiAgICAnVGVzdG5ldCBCaXRjb2luIENhc2gnLFxuICAgIE5ldHdvcmtzLnRlc3QuYml0Y29pbkNhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJDSCxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQkNIX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzk0MTU4N2NlLTFjN2EtNDMwNS1iOTA4LTE1NDU1ZDE1ZTk2MScsXG4gICAgJ2JjaGEnLFxuICAgICdFQ2FzaCcsXG4gICAgTmV0d29ya3MubWFpbi5lQ2FzaCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQkNIQSxcbiAgICBCYXNlVW5pdC5CVENcbiAgKSxcbiAgdXR4byhcbiAgICAnYWY4ZGUxZTAtM2UzMy00N2JmLTk0ZDMtZmIzYzJiZWJlYWQyJyxcbiAgICAndGJjaGEnLFxuICAgICdUZXN0bmV0IEVDYXNoJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmVDYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5CQ0hBLFxuICAgIEJhc2VVbml0LkJUQ1xuICApLFxuICB1dHhvKFxuICAgICdmNzI4Y2ZjNy1kMGNmLTRmOTktYmNhMC1kMjUyNzNlNjVmY2YnLFxuICAgICdic3YnLFxuICAgICdCaXRjb2luIFNWJyxcbiAgICBOZXR3b3Jrcy5tYWluLmJpdGNvaW5TVixcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlNWLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBbQ29pbkZlYXR1cmUuREVQUkVDQVRFRCwgLi4uVXR4b0NvaW4uREVGQVVMVF9GRUFUVVJFU11cbiAgKSxcbiAgdXR4byhcbiAgICAnN2NiODE1MTgtODVkNy00MDBmLTk2MGUtN2JjMDBiM2JmYTYyJyxcbiAgICAndGJzdicsXG4gICAgJ1Rlc3RuZXQgQml0Y29pbiBTVicsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luU1YsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJTVixcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgW0NvaW5GZWF0dXJlLkRFUFJFQ0FURUQsIC4uLlV0eG9Db2luLkRFRkFVTFRfRkVBVFVSRVNdXG4gICksXG4gIHV0eG8oXG4gICAgJzVjMTY5MWM1LWM5Y2MtNDllZC1hYmUwLWM0MzNkYWIyZWRhYScsXG4gICAgJ2J0YycsXG4gICAgJ0JpdGNvaW4nLFxuICAgIE5ldHdvcmtzLm1haW4uYml0Y29pbixcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlRDLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCVENfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnY2RlNzU1OWQtYTUzNi00ZDEyLThkZTQtOTBiYWEwOWY5MGJkJyxcbiAgICAndGJ0YycsXG4gICAgJ1Rlc3RuZXQgQml0Y29pbicsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luLFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEMsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJUQ19GRUFUVVJFUy5maWx0ZXIoKGYpID0+IGYgIT09IENvaW5GZWF0dXJlLlNUQUtJTkcpXG4gICksXG4gIHV0eG8oXG4gICAgJ2EwZDUzZGM5LTJkY2MtNGViYi1hMmQ0LTUxOTgzZmUyMGRhNicsXG4gICAgJ3RidGNzaWcnLFxuICAgICdQdWJsaWMgU2lnbmV0IEJpdGNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QuYml0Y29pblB1YmxpY1NpZ25ldCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlRDLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCVENfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnZjc2Y2VjM2YtN2FlZi00NzNkLWFmNWQtNGM0N2RkNDBkZmE4JyxcbiAgICAndGJ0YzQnLFxuICAgICdUZXN0bmV0NCBCaXRjb2luJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmJpdGNvaW5UZXN0bmV0NCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlRDLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCVENfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnNzIyNTIyZGMtYTYxMy00YmZmLWExZDEtMTgzZWJlNTEzOGFlJyxcbiAgICAndGJ0Y2Jnc2lnJyxcbiAgICAnQml0R28gU2lnbmV0IEJpdGNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QuYml0Y29pbkJpdEdvU2lnbmV0LFxuICAgIFVuZGVybHlpbmdBc3NldC5CVEMsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIEJUQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICc4ZmViMTEwZC0wZDY4LTQ0Y2UtYWU5Ny1iOGMzMGVjODcwYTknLFxuICAgICdidGcnLFxuICAgICdCaXRjb2luIEdvbGQnLFxuICAgIE5ldHdvcmtzLm1haW4uYml0Y29pbkdvbGQsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkJURyxcbiAgICBCYXNlVW5pdC5CVEMsXG4gICAgQlRHX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzYzMzI0NmYyLWFmMjEtNDFiOC04YjllLWJhOWFlMjVkMzg2ZicsXG4gICAgJ3RidGcnLFxuICAgICdUZXN0bmV0IEJpdGNvaW4gR29sZCcsXG4gICAgTmV0d29ya3MudGVzdC5iaXRjb2luR29sZCxcbiAgICBVbmRlcmx5aW5nQXNzZXQuQlRHLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBCVEdfRkVBVFVSRVMuZmlsdGVyKChmKSA9PiBmICE9PSBDb2luRmVhdHVyZS5NVUxUSVNJR19DT0xEKVxuICApLFxuICB1dHhvKFxuICAgICc5YzgwOTdmMS01ZDJjLTRhNjItYTk0Yy05NmMyNzFjMGU1ZTAnLFxuICAgICdsdGMnLFxuICAgICdMaXRlY29pbicsXG4gICAgTmV0d29ya3MubWFpbi5saXRlY29pbixcbiAgICBVbmRlcmx5aW5nQXNzZXQuTFRDLFxuICAgIEJhc2VVbml0LkxUQyxcbiAgICBMVENfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnMWFjYTMyYzgtYTNlNS00MmViLTgyZGYtNGMyNjNkOGJmYzY4JyxcbiAgICAndGx0YycsXG4gICAgJ1Rlc3RuZXQgTGl0ZWNvaW4nLFxuICAgIE5ldHdvcmtzLnRlc3QubGl0ZWNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkxUQyxcbiAgICBCYXNlVW5pdC5MVEMsXG4gICAgTFRDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzA3MzliZTZhLWM3MmUtNDY4ZC05NDY0LWNhNTYwMTk2NTcwOCcsXG4gICAgJ2Rhc2gnLFxuICAgICdEYXNoJyxcbiAgICBOZXR3b3Jrcy5tYWluLmRhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LkRBU0gsXG4gICAgQmFzZVVuaXQuREFTSCxcbiAgICBEQVNIX0ZFQVRVUkVTLmZpbHRlcihcbiAgICAgIChmZWF0dXJlKSA9PlxuICAgICAgICAhW1xuICAgICAgICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fU0lOR0FQT1JFLFxuICAgICAgICAgIENvaW5GZWF0dXJlLkNVU1RPRFlfQklUR09fQ1VTVE9EWV9NRU5BX0ZaRSxcbiAgICAgICAgICBDb2luRmVhdHVyZS5DVVNUT0RZX0JJVEdPX01FTkFfRlpFLFxuICAgICAgICBdLmluY2x1ZGVzKGZlYXR1cmUpXG4gICAgKVxuICApLFxuICB1dHhvKFxuICAgICc1OTUwZDc4Zi1lOGRkLTQ1N2EtYWI1ZC0zMTBlNmI0NzZiYjEnLFxuICAgICd0ZGFzaCcsXG4gICAgJ1Rlc3RuZXQgRGFzaCcsXG4gICAgTmV0d29ya3MudGVzdC5kYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5EQVNILFxuICAgIEJhc2VVbml0LkRBU0gsXG4gICAgVERBU0hfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnNTA4ZjZiNTMtMWU2ZS00MWZkLWI1NDEtYjI0OThiN2M0YjYxJyxcbiAgICAnemVjJyxcbiAgICAnWkNhc2gnLFxuICAgIE5ldHdvcmtzLm1haW4uekNhc2gsXG4gICAgVW5kZXJseWluZ0Fzc2V0LlpFQyxcbiAgICBCYXNlVW5pdC5aRUMsXG4gICAgWkVDX0ZFQVRVUkVTXG4gICksXG4gIHV0eG8oXG4gICAgJzU0OWE0NDk5LTM4N2MtNDJkMy05MDQ4LWMwMWQ2NzI0ZDk4YScsXG4gICAgJ3R6ZWMnLFxuICAgICdUZXN0bmV0IFpDYXNoJyxcbiAgICBOZXR3b3Jrcy50ZXN0LnpDYXNoLFxuICAgIFVuZGVybHlpbmdBc3NldC5aRUMsXG4gICAgQmFzZVVuaXQuWkVDLFxuICAgIFpFQ19GRUFUVVJFU1xuICApLFxuICB1dHhvKFxuICAgICdjOTNhOTE2MC00NThmLTRhMzEtYmVhMC00YTkzYWU4YjFkMmQnLFxuICAgICdkb2dlJyxcbiAgICAnRG9nZWNvaW4nLFxuICAgIE5ldHdvcmtzLm1haW4uZG9nZWNvaW4sXG4gICAgVW5kZXJseWluZ0Fzc2V0LkRPR0UsXG4gICAgQmFzZVVuaXQuQlRDLFxuICAgIERPR0VfRkVBVFVSRVNcbiAgKSxcbiAgdXR4byhcbiAgICAnN2ExNTk3ZTgtZmQ4ZS00YjY4LTgwODYtZjkxNTllMzdlMGNlJyxcbiAgICAndGRvZ2UnLFxuICAgICdUZXN0bmV0IERvZ2Vjb2luJyxcbiAgICBOZXR3b3Jrcy50ZXN0LmRvZ2Vjb2luLFxuICAgIFVuZGVybHlpbmdBc3NldC5ET0dFLFxuICAgIEJhc2VVbml0LkJUQyxcbiAgICBET0dFX0ZFQVRVUkVTXG4gICksXG5dO1xuIl19
|