@bitgo/sdk-coin-canton 1.2.0 → 1.3.0

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.
Files changed (38) hide show
  1. package/dist/src/lib/constant.d.ts +2 -0
  2. package/dist/src/lib/constant.d.ts.map +1 -1
  3. package/dist/src/lib/constant.js +4 -2
  4. package/dist/src/lib/iface.d.ts +19 -5
  5. package/dist/src/lib/iface.d.ts.map +1 -1
  6. package/dist/src/lib/iface.js +1 -1
  7. package/dist/src/lib/index.d.ts +1 -1
  8. package/dist/src/lib/index.d.ts.map +1 -1
  9. package/dist/src/lib/index.js +2 -2
  10. package/dist/src/lib/{transaction.d.ts → transaction/transaction.d.ts} +1 -1
  11. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  12. package/dist/src/lib/transaction/transaction.js +53 -0
  13. package/dist/src/lib/transactionBuilder.d.ts +1 -1
  14. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  15. package/dist/src/lib/transactionBuilder.js +1 -1
  16. package/dist/src/lib/utils.d.ts +36 -0
  17. package/dist/src/lib/utils.d.ts.map +1 -1
  18. package/dist/src/lib/utils.js +60 -1
  19. package/dist/src/lib/walletInitBuilder.d.ts +107 -0
  20. package/dist/src/lib/walletInitBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/walletInitBuilder.js +240 -0
  22. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +17 -0
  23. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -0
  24. package/dist/src/lib/walletInitialization/walletInitTransaction.js +60 -0
  25. package/dist/test/resources.d.ts +17 -0
  26. package/dist/test/resources.d.ts.map +1 -1
  27. package/dist/test/resources.js +28 -2
  28. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts +2 -0
  29. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts.map +1 -0
  30. package/dist/test/unit/builder/walletInit/walletInitBuilder.js +68 -0
  31. package/dist/test/unit/utils.js +8 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +6 -6
  34. package/dist/src/lib/transaction.d.ts.map +0 -1
  35. package/dist/src/lib/transaction.js +0 -53
  36. package/dist/src/lib/walletInitialization/walletInitializationTransaction.d.ts +0 -13
  37. package/dist/src/lib/walletInitialization/walletInitializationTransaction.d.ts.map +0 -1
  38. package/dist/src/lib/walletInitialization/walletInitializationTransaction.js +0 -38
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WalletInitBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo/sdk-core");
8
+ const keyPair_1 = require("./keyPair");
9
+ const utils_1 = __importDefault(require("./utils"));
10
+ const walletInitTransaction_1 = require("./walletInitialization/walletInitTransaction");
11
+ const constant_1 = require("./constant");
12
+ class WalletInitBuilder extends sdk_core_1.BaseTransactionBuilder {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ this._localParticipantObservationOnly = false;
16
+ this._otherConfirmingParticipantUids = [];
17
+ this._confirmationThreshold = 1;
18
+ this._observingParticipantUids = [];
19
+ this._transaction = new walletInitTransaction_1.WalletInitTransaction(_coinConfig);
20
+ }
21
+ initBuilder(tx) {
22
+ this._transaction = tx;
23
+ }
24
+ buildImplementation() {
25
+ throw new Error('Not implemented');
26
+ }
27
+ fromImplementation(rawTransaction, isFirstSigner) {
28
+ throw new Error('Not implemented');
29
+ }
30
+ signImplementation(key) {
31
+ throw new Error('Not implemented');
32
+ }
33
+ get transaction() {
34
+ return this._transaction;
35
+ }
36
+ set transaction(transaction) {
37
+ this._transaction.preparedParty = transaction;
38
+ }
39
+ validateAddress(address, addressFormat) {
40
+ if (!utils_1.default.isValidAddress(address.address)) {
41
+ throw new sdk_core_1.BuildTransactionError('Invalid address ' + address.address);
42
+ }
43
+ }
44
+ validateKey(key) {
45
+ let keyPair;
46
+ try {
47
+ keyPair = new keyPair_1.KeyPair({ prv: key.key });
48
+ }
49
+ catch {
50
+ throw new sdk_core_1.BuildTransactionError('Invalid key');
51
+ }
52
+ if (!keyPair.getKeys().prv) {
53
+ throw new sdk_core_1.BuildTransactionError('Invalid key');
54
+ }
55
+ }
56
+ validateRawTransaction(rawTransaction) {
57
+ if (!rawTransaction || !this._transaction.preparedParty) {
58
+ throw new sdk_core_1.BuildTransactionError('invalid raw transaction');
59
+ }
60
+ const localHash = utils_1.default.computeHashFromCreatePartyResponse(rawTransaction);
61
+ if (localHash !== this._transaction.preparedParty.multiHash) {
62
+ throw new sdk_core_1.BuildTransactionError('invalid raw transaction, hash not matching');
63
+ }
64
+ }
65
+ validateTransaction(transaction) {
66
+ if (!transaction?.preparedParty) {
67
+ return;
68
+ }
69
+ const localHash = utils_1.default.computeHashFromCreatePartyResponse(transaction.preparedParty.topologyTransactions);
70
+ if (localHash !== this._transaction.preparedParty.multiHash) {
71
+ throw new sdk_core_1.BuildTransactionError('invalid transaction');
72
+ }
73
+ }
74
+ // not implemented because wallet initialization doesn't require any value
75
+ validateValue(value) {
76
+ throw new Error('Not implemented');
77
+ }
78
+ /**
79
+ * Sets the public key used for signing.
80
+ *
81
+ * @param key - The public key of the wallet.
82
+ * @returns The current builder instance for chaining.
83
+ * @throws Error if key is not a valid public key
84
+ */
85
+ publicKey(key) {
86
+ utils_1.default.isValidPublicKey(key);
87
+ this._publicKey = {
88
+ format: constant_1.PUBLIC_KEY_FORMAT,
89
+ keyData: key,
90
+ keySpec: constant_1.PUBLIC_KEY_SPEC,
91
+ };
92
+ return this;
93
+ }
94
+ /**
95
+ * Sets the synchronizer ID for the wallet initialization.
96
+ *
97
+ * @param id - The synchronizer identifier (must be a non-empty string).
98
+ * @returns The current builder instance for chaining.
99
+ * @throws Error if the synchronizer ID is empty.
100
+ */
101
+ synchronizer(id) {
102
+ if (!id.trim()) {
103
+ throw new Error('synchronizer must be a non-empty string');
104
+ }
105
+ this._synchronizer = id.trim();
106
+ return this;
107
+ }
108
+ /**
109
+ * Sets the party hint (alias or name) used during wallet initialization.
110
+ *
111
+ * @param hint - A 5-character non-empty string representing the party hint.
112
+ * @returns The current builder instance for chaining.
113
+ * @throws Error if the hint is empty or more than 5 characters long.
114
+ */
115
+ partyHint(hint) {
116
+ const trimmedHint = hint.trim();
117
+ if (!trimmedHint) {
118
+ throw new Error('partyHint cannot be empty');
119
+ }
120
+ if (trimmedHint.length > 5) {
121
+ throw new Error('partyHint must be less than 6 characters long');
122
+ }
123
+ this._partyHint = trimmedHint;
124
+ return this;
125
+ }
126
+ /**
127
+ * Sets whether the local participant should be added in observation-only mode.
128
+ *
129
+ * @param flag - Boolean flag indicating observation-only status.
130
+ * @returns The current builder instance for chaining.
131
+ */
132
+ localParticipantObservationOnly(flag) {
133
+ this._localParticipantObservationOnly = flag;
134
+ return this;
135
+ }
136
+ /**
137
+ * Adds a confirming participant UID to the list of other confirming participants.
138
+ *
139
+ * @param uid - A non-empty string UID of another confirming participant.
140
+ * @returns The current builder instance for chaining.
141
+ * @throws Error if the UID is empty.
142
+ */
143
+ otherConfirmingParticipantUid(uid) {
144
+ const trimmedUid = uid.trim();
145
+ if (!trimmedUid) {
146
+ throw new Error('otherConfirmingParticipantUid cannot be empty');
147
+ }
148
+ if (!this._otherConfirmingParticipantUids) {
149
+ this._otherConfirmingParticipantUids = [];
150
+ }
151
+ this._otherConfirmingParticipantUids.push(trimmedUid);
152
+ return this;
153
+ }
154
+ /**
155
+ * Sets the confirmation threshold for the wallet initialization.
156
+ *
157
+ * @param threshold - A positive integer indicating how many confirmations are required.
158
+ * @returns The current builder instance for chaining.
159
+ * @throws Error if the threshold is not a positive integer.
160
+ */
161
+ confirmationThreshold(threshold) {
162
+ if (!Number.isInteger(threshold) || threshold <= 0) {
163
+ throw new Error('confirmationThreshold must be a positive integer');
164
+ }
165
+ this._confirmationThreshold = threshold;
166
+ return this;
167
+ }
168
+ /**
169
+ * Adds an observing participant UID to the list of observers.
170
+ *
171
+ * @param uid - A non-empty string UID of the observing participant.
172
+ * @returns The current builder instance for chaining.
173
+ * @throws Error if the UID is empty.
174
+ */
175
+ observingParticipantUid(uid) {
176
+ const trimmedUid = uid.trim();
177
+ if (!trimmedUid) {
178
+ throw new Error('observingParticipantUid cannot be empty');
179
+ }
180
+ if (!this._observingParticipantUids) {
181
+ this._observingParticipantUids = [];
182
+ }
183
+ this._observingParticipantUids.push(trimmedUid);
184
+ return this;
185
+ }
186
+ /**
187
+ * Builds and returns the WalletInitRequest object from the builder's internal state.
188
+ *
189
+ * This method performs validation before constructing the object. If required fields are
190
+ * missing or invalid, it throws an error.
191
+ *
192
+ * @returns {WalletInitRequest} - A fully constructed and validated request object for wallet initialization.
193
+ * @throws {Error} If any required field is missing or fails validation.
194
+ */
195
+ toRequestObject() {
196
+ this.validate();
197
+ return {
198
+ publicKey: this._publicKey,
199
+ synchronizer: this._synchronizer,
200
+ partyHint: this._partyHint,
201
+ localParticipantObservationOnly: this._localParticipantObservationOnly,
202
+ otherConfirmingParticipantUids: this._otherConfirmingParticipantUids,
203
+ confirmationThreshold: this._confirmationThreshold,
204
+ observingParticipantUids: this._observingParticipantUids,
205
+ };
206
+ }
207
+ /**
208
+ * Validates the internal state of the builder before building the request object.
209
+ *
210
+ * Checks for:
211
+ * - Presence of a synchronizer ID.
212
+ * - `partyHint` must not be empty and must be at most 5 characters long.
213
+ * - Public key must include `keyData`, `format`, and `keySpec`.
214
+ * - Confirmation threshold must be a positive integer.
215
+ * - Confirming and observing participant UID lists must be arrays.
216
+ *
217
+ * @private
218
+ * @throws {Error} If any required field is missing or invalid.
219
+ */
220
+ validate() {
221
+ if (!this._synchronizer)
222
+ throw new Error('Missing synchronizer');
223
+ if (!this._partyHint || this._partyHint.length > 5)
224
+ throw new Error('Invalid partyHint');
225
+ if (!this._publicKey || !this._publicKey.keyData || !this._publicKey.format || !this._publicKey.keySpec) {
226
+ throw new Error('Invalid publicKey');
227
+ }
228
+ if (!Number.isInteger(this._confirmationThreshold) || this._confirmationThreshold <= 0) {
229
+ throw new Error('Invalid confirmationThreshold');
230
+ }
231
+ if (!Array.isArray(this._otherConfirmingParticipantUids)) {
232
+ throw new Error('otherConfirmingParticipantUids must be an array');
233
+ }
234
+ if (!Array.isArray(this._observingParticipantUids)) {
235
+ throw new Error('observingParticipantUids must be an array');
236
+ }
237
+ }
238
+ }
239
+ exports.WalletInitBuilder = WalletInitBuilder;
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3dhbGxldEluaXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDhDQUFzRztBQUd0Ryx1Q0FBb0M7QUFFcEMsb0RBQTRCO0FBQzVCLHdGQUFxRjtBQUNyRix5Q0FBZ0U7QUFFaEUsTUFBYSxpQkFBa0IsU0FBUSxpQ0FBc0I7SUFXM0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFOYixxQ0FBZ0MsR0FBRyxLQUFLLENBQUM7UUFDekMsb0NBQStCLEdBQWEsRUFBRSxDQUFDO1FBQy9DLDJCQUFzQixHQUFHLENBQUMsQ0FBQztRQUMzQiw4QkFBeUIsR0FBYSxFQUFFLENBQUM7UUFJL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDZDQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXLENBQUMsRUFBeUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVTLG1CQUFtQjtRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVTLGtCQUFrQixDQUFDLGNBQW1CLEVBQUUsYUFBdUI7UUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUEwQjtRQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7SUFDaEQsQ0FBQztJ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QyxVQUFVLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hHLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQztZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6UEQsOENBeVBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5pbXBvcnQgeyBCYXNlQWRkcmVzcywgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciwgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgSVB1YmxpY0tleSwgUHJlcGFyZWRQYXJ0eSwgV2FsbGV0SW5pdFJlcXVlc3QgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFdhbGxldEluaXRUcmFuc2FjdGlvbiB9IGZyb20gJy4vd2FsbGV0SW5pdGlhbGl6YXRpb24vd2FsbGV0SW5pdFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFBVQkxJQ19LRVlfRk9STUFULCBQVUJMSUNfS0VZX1NQRUMgfSBmcm9tICcuL2NvbnN0YW50JztcblxuZXhwb3J0IGNsYXNzIFdhbGxldEluaXRCdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBXYWxsZXRJbml0VHJhbnNhY3Rpb247XG5cbiAgcHJpdmF0ZSBfcHVibGljS2V5OiBJUHVibGljS2V5O1xuICBwcml2YXRlIF9zeW5jaHJvbml6ZXI6IHN0cmluZztcbiAgcHJpdmF0ZSBfcGFydHlIaW50OiBzdHJpbmc7XG4gIHByaXZhdGUgX2xvY2FsUGFydGljaXBhbnRPYnNlcnZhdGlvbk9ubHkgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9jb25maXJtYXRpb25UaHJlc2hvbGQgPSAxO1xuICBwcml2YXRlIF9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFdhbGxldEluaXRUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogV2FsbGV0SW5pdFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8V2FsbGV0SW5pdFRyYW5zYWN0aW9uPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IGFueSwgaXNGaXJzdFNpZ25lcj86IGJvb2xlYW4pOiBXYWxsZXRJbml0VHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFdhbGxldEluaXRUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGdldCB0cmFuc2FjdGlvbigpOiBXYWxsZXRJbml0VHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogUHJlcGFyZWRQYXJ0eSkge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkgPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcywgYWRkcmVzc0Zvcm1hdD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzICcgKyBhZGRyZXNzLmFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIGxldCBrZXlQYWlyOiBLZXlQYWlyO1xuICAgIHRyeSB7XG4gICAgICBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGtleScpO1xuICAgIH1cbiAgICBpZiAoIWtleVBhaXIuZ2V0S2V5cygpLnBydikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBrZXknKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICghcmF3VHJhbnNhY3Rpb24gfHwgIXRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IGxvY2FsSGFzaCA9IHV0aWxzLmNvbXB1dGVIYXNoRnJvbUNyZWF0ZVBhcnR5UmVzcG9uc2UocmF3VHJhbnNhY3Rpb24pO1xuICAgIGlmIChsb2NhbEhhc2ggIT09IHRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkubXVsdGlIYXNoKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbiwgaGFzaCBub3QgbWF0Y2hpbmcnKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uPzogV2FsbGV0SW5pdFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbj8ucHJlcGFyZWRQYXJ0eSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBsb2NhbEhhc2ggPSB1dGlscy5jb21wdXRlSGFzaEZyb21DcmVhdGVQYXJ0eVJlc3BvbnNlKHRyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkudG9wb2xvZ3lUcmFuc2FjdGlvbnMpO1xuICAgIGlmIChsb2NhbEhhc2ggIT09IHRoaXMuX3RyYW5zYWN0aW9uLnByZXBhcmVkUGFydHkubXVsdGlIYXNoKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdpbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gbm90IGltcGxlbWVudGVkIGJlY2F1c2Ugd2FsbGV0IGluaXRpYWxpemF0aW9uIGRvZXNuJ3QgcmVxdWlyZSBhbnkgdmFsdWVcbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwdWJsaWMga2V5IHVzZWQgZm9yIHNpZ25pbmcuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgcHVibGljIGtleSBvZiB0aGUgd2FsbGV0LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiBrZXkgaXMgbm90IGEgdmFsaWQgcHVibGljIGtleVxuICAgKi9cbiAgcHVibGljS2V5KGtleTogc3RyaW5nKTogdGhpcyB7XG4gICAgdXRpbHMuaXNWYWxpZFB1YmxpY0tleShrZXkpO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IHtcbiAgICAgIGZvcm1hdDogUFVCTElDX0tFWV9GT1JNQVQsXG4gICAgICBrZXlEYXRhOiBrZXksXG4gICAgICBrZXlTcGVjOiBQVUJMSUNfS0VZX1NQRUMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzeW5jaHJvbml6ZXIgSUQgZm9yIHRoZSB3YWxsZXQgaW5pdGlhbGl6YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBzeW5jaHJvbml6ZXIgaWRlbnRpZmllciAobXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcpLlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgc3luY2hyb25pemVyIElEIGlzIGVtcHR5LlxuICAgKi9cbiAgc3luY2hyb25pemVyKGlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlkLnRyaW0oKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzeW5jaHJvbml6ZXIgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcbiAgICB9XG4gICAgdGhpcy5fc3luY2hyb25pemVyID0gaWQudHJpbSgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnR5IGhpbnQgKGFsaWFzIG9yIG5hbWUpIHVzZWQgZHVyaW5nIHdhbGxldCBpbml0aWFsaXphdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGhpbnQgLSBBIDUtY2hhcmFjdGVyIG5vbi1lbXB0eSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBwYXJ0eSBoaW50LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgaGludCBpcyBlbXB0eSBvciBtb3JlIHRoYW4gNSBjaGFyYWN0ZXJzIGxvbmcuXG4gICAqL1xuICBwYXJ0eUhpbnQoaGludDogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdHJpbW1lZEhpbnQgPSBoaW50LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRIaW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcnR5SGludCBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICB9XG4gICAgaWYgKHRyaW1tZWRIaW50Lmxlbmd0aCA+IDUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncGFydHlIaW50IG11c3QgYmUgbGVzcyB0aGFuIDYgY2hhcmFjdGVycyBsb25nJyk7XG4gICAgfVxuICAgIHRoaXMuX3BhcnR5SGludCA9IHRyaW1tZWRIaW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgd2hldGhlciB0aGUgbG9jYWwgcGFydGljaXBhbnQgc2hvdWxkIGJlIGFkZGVkIGluIG9ic2VydmF0aW9uLW9ubHkgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIGZsYWcgLSBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyBvYnNlcnZhdGlvbi1vbmx5IHN0YXR1cy5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBsb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5KGZsYWc6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLl9sb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5ID0gZmxhZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29uZmlybWluZyBwYXJ0aWNpcGFudCBVSUQgdG8gdGhlIGxpc3Qgb2Ygb3RoZXIgY29uZmlybWluZyBwYXJ0aWNpcGFudHMuXG4gICAqXG4gICAqIEBwYXJhbSB1aWQgLSBBIG5vbi1lbXB0eSBzdHJpbmcgVUlEIG9mIGFub3RoZXIgY29uZmlybWluZyBwYXJ0aWNpcGFudC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIFVJRCBpcyBlbXB0eS5cbiAgICovXG4gIG90aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkKHVpZDogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdHJpbW1lZFVpZCA9IHVpZC50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkVWlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcykge1xuICAgICAgdGhpcy5fb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzID0gW107XG4gICAgfVxuICAgIHRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcy5wdXNoKHRyaW1tZWRVaWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbmZpcm1hdGlvbiB0aHJlc2hvbGQgZm9yIHRoZSB3YWxsZXQgaW5pdGlhbGl6YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB0aHJlc2hvbGQgLSBBIHBvc2l0aXZlIGludGVnZXIgaW5kaWNhdGluZyBob3cgbWFueSBjb25maXJtYXRpb25zIGFyZSByZXF1aXJlZC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHRocmVzaG9sZCBpcyBub3QgYSBwb3NpdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgY29uZmlybWF0aW9uVGhyZXNob2xkKHRocmVzaG9sZDogbnVtYmVyKTogdGhpcyB7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHRocmVzaG9sZCkgfHwgdGhyZXNob2xkIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29uZmlybWF0aW9uVGhyZXNob2xkIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbmZpcm1hdGlvblRocmVzaG9sZCA9IHRocmVzaG9sZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIG9ic2VydmluZyBwYXJ0aWNpcGFudCBVSUQgdG8gdGhlIGxpc3Qgb2Ygb2JzZXJ2ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gdWlkIC0gQSBub24tZW1wdHkgc3RyaW5nIFVJRCBvZiB0aGUgb2JzZXJ2aW5nIHBhcnRpY2lwYW50LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgVUlEIGlzIGVtcHR5LlxuICAgKi9cbiAgb2JzZXJ2aW5nUGFydGljaXBhbnRVaWQodWlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB0cmltbWVkVWlkID0gdWlkLnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRVaWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb2JzZXJ2aW5nUGFydGljaXBhbnRVaWQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzKSB7XG4gICAgICB0aGlzLl9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzLnB1c2godHJpbW1lZFVpZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGFuZCByZXR1cm5zIHRoZSBXYWxsZXRJbml0UmVxdWVzdCBvYmplY3QgZnJvbSB0aGUgYnVpbGRlcidzIGludGVybmFsIHN0YXRlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBwZXJmb3JtcyB2YWxpZGF0aW9uIGJlZm9yZSBjb25zdHJ1Y3RpbmcgdGhlIG9iamVjdC4gSWYgcmVxdWlyZWQgZmllbGRzIGFyZVxuICAgKiBtaXNzaW5nIG9yIGludmFsaWQsIGl0IHRocm93cyBhbiBlcnJvci5cbiAgICpcbiAgICogQHJldHVybnMge1dhbGxldEluaXRSZXF1ZXN0fSAtIEEgZnVsbHkgY29uc3RydWN0ZWQgYW5kIHZhbGlkYXRlZCByZXF1ZXN0IG9iamVjdCBmb3Igd2FsbGV0IGluaXRpYWxpemF0aW9uLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW55IHJlcXVpcmVkIGZpZWxkIGlzIG1pc3Npbmcgb3IgZmFpbHMgdmFsaWRhdGlvbi5cbiAgICovXG4gIHRvUmVxdWVzdE9iamVjdCgpOiBXYWxsZXRJbml0UmVxdWVzdCB7XG4gICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgIHJldHVybiB7XG4gICAgICBwdWJsaWNLZXk6IHRoaXMuX3B1YmxpY0tleSxcbiAgICAgIHN5bmNocm9uaXplcjogdGhpcy5fc3luY2hyb25pemVyLFxuICAgICAgcGFydHlIaW50OiB0aGlzLl9wYXJ0eUhpbnQsXG4gICAgICBsb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5OiB0aGlzLl9sb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5LFxuICAgICAgb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzOiB0aGlzLl9vdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHMsXG4gICAgICBjb25maXJtYXRpb25UaHJlc2hvbGQ6IHRoaXMuX2NvbmZpcm1hdGlvblRocmVzaG9sZCxcbiAgICAgIG9ic2VydmluZ1BhcnRpY2lwYW50VWlkczogdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgYnVpbGRlciBiZWZvcmUgYnVpbGRpbmcgdGhlIHJlcXVlc3Qgb2JqZWN0LlxuICAgKlxuICAgKiBDaGVja3MgZm9yOlxuICAgKiAtIFByZXNlbmNlIG9mIGEgc3luY2hyb25pemVyIElELlxuICAgKiAtIGBwYXJ0eUhpbnRgIG11c3Qgbm90IGJlIGVtcHR5IGFuZCBtdXN0IGJlIGF0IG1vc3QgNSBjaGFyYWN0ZXJzIGxvbmcuXG4gICAqIC0gUHVibGljIGtleSBtdXN0IGluY2x1ZGUgYGtleURhdGFgLCBgZm9ybWF0YCwgYW5kIGBrZXlTcGVjYC5cbiAgICogLSBDb25maXJtYXRpb24gdGhyZXNob2xkIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlxuICAgKiAtIENvbmZpcm1pbmcgYW5kIG9ic2VydmluZyBwYXJ0aWNpcGFudCBVSUQgbGlzdHMgbXVzdCBiZSBhcnJheXMuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiBhbnkgcmVxdWlyZWQgZmllbGQgaXMgbWlzc2luZyBvciBpbnZhbGlkLlxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3N5bmNocm9uaXplcikgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHN5bmNocm9uaXplcicpO1xuICAgIGlmICghdGhpcy5fcGFydHlIaW50IHx8IHRoaXMuX3BhcnR5SGludC5sZW5ndGggPiA1KSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFydHlIaW50Jyk7XG4gICAgaWYgKCF0aGlzLl9wdWJsaWNLZXkgfHwgIXRoaXMuX3B1YmxpY0tleS5rZXlEYXRhIHx8ICF0aGlzLl9wdWJsaWNLZXkuZm9ybWF0IHx8ICF0aGlzLl9wdWJsaWNLZXkua2V5U3BlYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHB1YmxpY0tleScpO1xuICAgIH1cbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodGhpcy5fY29uZmlybWF0aW9uVGhyZXNob2xkKSB8fCB0aGlzLl9jb25maXJtYXRpb25UaHJlc2hvbGQgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbmZpcm1hdGlvblRocmVzaG9sZCcpO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMgbXVzdCBiZSBhbiBhcnJheScpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,17 @@
1
+ import { BaseKey, BaseTransaction } from '@bitgo/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
+ import { PreparedParty, WalletInitTxData } from '../iface';
4
+ import { Buffer } from 'buffer';
5
+ export declare class WalletInitTransaction extends BaseTransaction {
6
+ private _preparedParty;
7
+ constructor(coinConfig: Readonly<CoinConfig>);
8
+ get preparedParty(): PreparedParty;
9
+ set preparedParty(transaction: PreparedParty);
10
+ canSign(key: BaseKey): boolean;
11
+ set signatures(signature: string);
12
+ toBroadcastFormat(): string;
13
+ toJson(): WalletInitTxData;
14
+ get signablePayload(): Buffer;
15
+ fromRawTransaction(rawTx: string): void;
16
+ }
17
+ //# sourceMappingURL=walletInitTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletInitTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/walletInitialization/walletInitTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4C,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,OAAO,CAAC,cAAc,CAAgB;gBAE1B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED,IAAI,aAAa,CAAC,WAAW,EAAE,aAAa,EAI3C;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAE/B;IAED,iBAAiB,IAAI,MAAM;IAO3B,MAAM,IAAI,gBAAgB;IAY1B,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAUxC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletInitTransaction = void 0;
4
+ const sdk_core_1 = require("@bitgo/sdk-core");
5
+ const buffer_1 = require("buffer");
6
+ class WalletInitTransaction extends sdk_core_1.BaseTransaction {
7
+ constructor(coinConfig) {
8
+ super(coinConfig);
9
+ }
10
+ get preparedParty() {
11
+ return this._preparedParty;
12
+ }
13
+ set preparedParty(transaction) {
14
+ this._preparedParty = transaction;
15
+ this._id = transaction.multiHash;
16
+ this._type = sdk_core_1.TransactionType.WalletInitialization;
17
+ }
18
+ canSign(key) {
19
+ return false;
20
+ }
21
+ set signatures(signature) {
22
+ this._signatures.push(signature);
23
+ }
24
+ toBroadcastFormat() {
25
+ if (!this._preparedParty) {
26
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
27
+ }
28
+ return buffer_1.Buffer.from(JSON.stringify(this._preparedParty)).toString('base64');
29
+ }
30
+ toJson() {
31
+ if (!this._preparedParty) {
32
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
33
+ }
34
+ const result = {
35
+ id: this.id,
36
+ type: this._type,
37
+ preparedParty: this._preparedParty,
38
+ };
39
+ return result;
40
+ }
41
+ get signablePayload() {
42
+ if (!this._preparedParty) {
43
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
44
+ }
45
+ return buffer_1.Buffer.from(this._preparedParty.multiHash);
46
+ }
47
+ fromRawTransaction(rawTx) {
48
+ try {
49
+ const decoded = JSON.parse(buffer_1.Buffer.from(rawTx, 'base64').toString('utf8'));
50
+ this._preparedParty = decoded;
51
+ this._type = sdk_core_1.TransactionType.WalletInitialization;
52
+ this._id = decoded.multiHash;
53
+ }
54
+ catch (e) {
55
+ throw new sdk_core_1.InvalidTransactionError('Unable to parse raw transaction data');
56
+ }
57
+ }
58
+ }
59
+ exports.WalletInitTransaction = WalletInitTransaction;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdFRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbi93YWxsZXRJbml0VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQXFHO0FBR3JHLG1DQUFnQztBQUVoQyxNQUFhLHFCQUFzQixTQUFRLDBCQUFlO0lBR3hELFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLFdBQTBCO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsb0JBQW9CLENBQUM7SUFDcEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQWlCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPLGVBQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBcUI7WUFDL0IsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUF3QjtZQUNuQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDbkMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksa0NBQXVCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxlQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLG9CQUFvQixDQUFDO1lBQ2xELElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUMvQixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE3REQsc0RBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUtleSwgQmFzZVRyYW5zYWN0aW9uLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBQcmVwYXJlZFBhcnR5LCBXYWxsZXRJbml0VHhEYXRhIH0gZnJvbSAnLi4vaWZhY2UnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcblxuZXhwb3J0IGNsYXNzIFdhbGxldEluaXRUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX3ByZXBhcmVkUGFydHk6IFByZXBhcmVkUGFydHk7XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBwcmVwYXJlZFBhcnR5KCk6IFByZXBhcmVkUGFydHkge1xuICAgIHJldHVybiB0aGlzLl9wcmVwYXJlZFBhcnR5O1xuICB9XG5cbiAgc2V0IHByZXBhcmVkUGFydHkodHJhbnNhY3Rpb246IFByZXBhcmVkUGFydHkpIHtcbiAgICB0aGlzLl9wcmVwYXJlZFBhcnR5ID0gdHJhbnNhY3Rpb247XG4gICAgdGhpcy5faWQgPSB0cmFuc2FjdGlvbi5tdWx0aUhhc2g7XG4gICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc2V0IHNpZ25hdHVyZXMoc2lnbmF0dXJlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTtcbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlZFBhcnR5KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHRoaXMuX3ByZXBhcmVkUGFydHkpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICB0b0pzb24oKTogV2FsbGV0SW5pdFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlZFBhcnR5KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBXYWxsZXRJbml0VHhEYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICB0eXBlOiB0aGlzLl90eXBlIGFzIFRyYW5zYWN0aW9uVHlwZSxcbiAgICAgIHByZXBhcmVkUGFydHk6IHRoaXMuX3ByZXBhcmVkUGFydHksXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0IHNpZ25hYmxlUGF5bG9hZCgpOiBCdWZmZXIge1xuICAgIGlmICghdGhpcy5fcHJlcGFyZWRQYXJ0eSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0aGlzLl9wcmVwYXJlZFBhcnR5Lm11bHRpSGFzaCk7XG4gIH1cblxuICBmcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkOiBQcmVwYXJlZFBhcnR5ID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShyYXdUeCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGY4JykpO1xuICAgICAgdGhpcy5fcHJlcGFyZWRQYXJ0eSA9IGRlY29kZWQ7XG4gICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uO1xuICAgICAgdGhpcy5faWQgPSBkZWNvZGVkLm11bHRpSGFzaDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1VuYWJsZSB0byBwYXJzZSByYXcgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,2 +1,19 @@
1
1
  export declare const PreparedTransactionRawData = "CtWhAQoDMi4xEgEwGtsMCgIxMsI+0wwK0AwKAzIuMRJCMDBjYTQyYmNiNzEyYzM1NDUwYjM5MDQxNDU4ZDg0ZWI2NGY4YjVmZDhmZWQ2NGZkMjgxZmI0YmI5Yzg3MzVjNjAwGg1zcGxpY2UtYW11bGV0Il8KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5BbXVsZXQaDExvY2tlZEFtdWxldCrkCHLhCApfCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgxMb2NrZWRBbXVsZXQSrgUKBmFtdWxldBKjBXKgBQpZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQSUgoDZHNvEks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWISVgoFb3duZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkEpYDCgZhbW91bnQSiwNyiAMKXwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDkV4cGlyaW5nQW1vdW50EiAKDWluaXRpYWxBbW91bnQSDzINNDYuOTkxNzg0NTYwMBJ3CgljcmVhdGVkQXQSanJoClcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5UeXBlcxoFUm91bmQSDQoGbnVtYmVyEgMYzgISiQEKDHJhdGVQZXJSb3VuZBJ5cncKXQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDFJhdGVQZXJSb3VuZBIWCgRyYXRlEg4yDDAuMDAzODA1MTgwMBLMAgoEbG9jaxLDAnLAAgpbCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuRXhwaXJ5GghUaW1lTG9jaxJaCgdob2xkZXJzEk9aTQpLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEhYKCWV4cGlyZXNBdBIJKbjceqY/QAYAEm0KCm9wdENvbnRleHQSX1JdCltCWXRyYW5zZmVyIHRvICdhYmMtMjo6MTIyMDdlOTZhZGExOGE4NDVhZGY0ZGMwMTQxMDI2NTYzM2Q1MjY2ZGNhOWJiMjgwYzk4ZTM1YzM2OTJkYjg3ZDNlMzUnMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQ6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWI6S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBrvAwoBM8I+6AMS5QMKAzIuMRKKATAwMTFmYzk2Y2NmMzljOWQwN2YyN2ZiZjA1ZTY3MDgxM2E0NDQzOWZjY2RmZDc3ZjlmZjJmMjQzODE3YjY1NDJjN2NhMTExMjIwMGIyNmY4MmRjZTBhMDYzZTRhMTAwMTBiNjhmNjMwYTE0MTY1OWUwNTFlMGEwMWNhNmNmNTY3MjdkZGRlZjMyZRoNc3BsaWNlLWFtdWxldCJhCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuUm91bmQaD09wZW5NaW5pbmdSb3VuZCpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhqVCQoCMTPCPo0JCooJCgMyLjESQjAwM2Q5NzAxNjkzYjhmYWMxMjYyYmYwNzgyMThlMDVlZjkyYzE1ZjQyZDdmYWM3NDM5MjE4NTU2MDkyYjZmOTcwYxoNc3BsaWNlLWFtdWxldCJZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQqpAVyoQUKWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoGQW11bGV0ElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiElYKBW93bmVyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBKXAwoGYW1vdW50EowDcokDCl8KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGg5FeHBpcmluZ0Ftb3VudBIhCg1pbml0aWFsQW1vdW50EhAyDjQ0MC4wMDgyMTU0NDAwEncKCWNyZWF0ZWRBdBJqcmgKVwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlR5cGVzGgVSb3VuZBINCgZudW1iZXISAxjOAhKJAQoMcmF0ZVBlclJvdW5kEnlydwpdCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgtTcGxpY2UuRmVlcxoMUmF0ZVBlclJvdW5kEhYKBHJhdGUSDjIMMC4wMDM4MDUxODAwMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQ6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWI6S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBrEBwoCMTHCPrwHCrkHCgMyLjESQjAwZDRkNGE3MmU3ZWE4NTlmODVlNjE5ZTIxMWNmYjg4YmY4ZjJlYzhjYTBmMWZmNTVhZmY1NjBjMjQxMDEzZGJiORoNc3BsaWNlLWFtdWxldCJiCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0Gg9BcHBSZXdhcmRDb3Vwb24qlwRylAQKYgpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoPQXBwUmV3YXJkQ291cG9uElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiElkKCHByb3ZpZGVyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBIOCghmZWF0dXJlZBICEAASGAoGYW1vdW50Eg4yDDcuMDAwMDAwMDAwMBJzCgVyb3VuZBJqcmgKVwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlR5cGVzGgVSb3VuZBINCgZudW1iZXISAxjOAhJgCgtiZW5lZmljaWFyeRJRUk8KTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQa8QMKATHCPuoDEucDCgMyLjESigEwMGRmZTdlOGU5Nzg3ZTc1NzQ2NzdlNTZkMGY5ZjY3ZDZlZWE5MTEwMzc3ZGQ3NjljNTE5MWE0YzQ4NDVkOWUyYmRjYTExMTIyMGM2ZWQ2NjZiN2JhYWE4N2NiNTZmM2I0MzlkNzZjNWQyNWEzYjRiZTU0Y2NmMGI3ZTE2MmYxZGJmNjJhM2RhZTUaDXNwbGljZS1hbXVsZXQiYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcypJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhrvAwoBNMI+6AMS5QMKAzIuMRKKATAwMTFmYzk2Y2NmMzljOWQwN2YyN2ZiZjA1ZTY3MDgxM2E0NDQzOWZjY2RmZDc3ZjlmZjJmMjQzODE3YjY1NDJjN2NhMTExMjIwMGIyNmY4MmRjZTBhMDYzZTRhMTAwMTBiNjhmNjMwYTE0MTY1OWUwNTFlMGEwMWNhNmNmNTY3MjdkZGRlZjMyZRoNc3BsaWNlLWFtdWxldCJhCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuUm91bmQaD09wZW5NaW5pbmdSb3VuZCpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhrOBQoBOMI+xwUSxAUKAzIuMRKKATAwMGFhODdhMTY0MjIwMmRlYzMyMDAwNjRkOTU4MDc4ZWMxZGY1YmI3Y2ZiMDI4N2MyN2NhNTA3YzJkMTE0ZTllYmNhMTExMjIwNGY0NWZjODlkMzdmN2U1MGNiY2U0NTI3ODA4NTdhOGVmMmRkNWM5YThhNGVmNWFhYTRjMGNmZjI4ZmI3YTM0ORoNc3BsaWNlLWFtdWxldCJZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQqSURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIqS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQa2gYKAjEwwj7SBgrPBgoDMi4xEkIwMDQzMjBkZWQwYTc1NmQzYjI2ZDlmN2UxNzgxZjlkNjE4MTFiNzhjYjg3MTcxMDQ0NzY5YjhlZTk4M2U5Zjc2MzgaDXNwbGljZS1hbXVsZXQiaApANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoVVmFsaWRhdG9yUmV3YXJkQ291cG9uKqcDcqQDCmgKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5BbXVsZXQaFVZhbGlkYXRvclJld2FyZENvdXBvbhJSCgNkc28SSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhJVCgR1c2VyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBIYCgZhbW91bnQSDjIMNy4wMDAwMDAwMDAwEnMKBXJvdW5kEmpyaApXCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuVHlwZXMaBVJvdW5kEg0KBm51bWJlchIDGM4CMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQayw0KAjE0wj7DDQrADQoDMi4xEkIwMGE3YjkwZjJmODIzMmNmMzg3NGM4MDQ1OGY5OTY3YTAwNWYyOGUwN2U1M2QxZWUxMGNlN2JhZjU5NDlkNjcxZTcaDXNwbGljZS1hbXVsZXQifwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIgU3BsaWNlLkFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24aGUFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24q5why5AgKfwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIgU3BsaWNlLkFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24aGUFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24SVAoMbG9ja2VkQW11bGV0EkRKQjAwY2E0MmJjYjcxMmMzNTQ1MGIzOTA0MTQ1OGQ4NGViNjRmOGI1ZmQ4ZmVkNjRmZDI4MWZiNGJiOWM4NzM1YzYwMBKKBwoIdHJhbnNmZXIS/QZy+gYKdApANTViYTRkZWIwYWQ0NjYyYzQxNjhiMzk4NTk3MzhhMGU5MTM4OGQyNTIyODY0ODBjNzMzMWIzZjcxYTUxNzI4MRImU3BsaWNlLkFwaS5Ub2tlbi5UcmFuc2Zlckluc3RydWN0aW9uVjEaCFRyYW5zZmVyElcKBnNlbmRlchJNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQSWQoIcmVjZWl2ZXISTTpLYWJjLTI6OjEyMjA3ZTk2YWRhMThhODQ1YWRmNGRjMDE0MTAyNjU2MzNkNTI2NmRjYTliYjI4MGM5OGUzNWMzNjkyZGI4N2QzZTM1EhkKBmFtb3VudBIPMg0yMC4wMDAwMDAwMDAwEugBCgxpbnN0cnVtZW50SWQS1wFy1AEKbApANzE4YTBmNzdlNTA1YThkZTIyZjE4OGJkNGM4N2ZlNzQxMDEyNzRlOWQ0Y2IxYmZhYzdkMDlhZWM3MTU4ZDM1YhIaU3BsaWNlLkFwaS5Ub2tlbi5Ib2xkaW5nVjEaDEluc3RydW1lbnRJZBJUCgVhZG1pbhJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEg4KAmlkEghCBkFtdWxldBIYCgtyZXF1ZXN0ZWRBdBIJKej3oogrQAYAEhoKDWV4ZWN1dGVCZWZvcmUSCSm43HqmP0AGABJcChBpbnB1dEhvbGRpbmdDaWRzEkhaRgpESkIwMGNhNDJiY2I3MTJjMzU0NTBiMzkwNDE0NThkODRlYjY0ZjhiNWZkOGZlZDY0ZmQyODFmYjRiYjljODczNWM2MDASswEKBG1ldGESqgFypwEKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghNZXRhZGF0YRI6CgZ2YWx1ZXMSMGIuCiwKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvcmVhc29uEgJCADJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQ6S2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNRrUIAoBNsI+zSAayiAKAzIuMRKKATAwZGZlN2U4ZTk3ODdlNzU3NDY3N2U1NmQwZjlmNjdkNmVlYTkxMTAzNzdkZDc2OWM1MTkxYTRjNDg0NWQ5ZTJiZGNhMTExMjIwYzZlZDY2NmI3YmFhYTg3Y2I1NmYzYjQzOWQ3NmM1ZDI1YTNiNGJlNTRjY2YwYjdlMTYyZjFkYmY2MmEzZGFlNRoNc3BsaWNlLWFtdWxldCJjCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaC0FtdWxldFJ1bGVzKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmRKFEFtdWxldFJ1bGVzX1RyYW5zZmVyUtUNctINCmwKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoUQW11bGV0UnVsZXNfVHJhbnNmZXISsAkKCHRyYW5zZmVyEqMJcqAJCmAKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoIVHJhbnNmZXISVwoGc2VuZGVyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBJZCghwcm92aWRlchJNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQSmAIKBmlucHV0cxKNAlqKAgqHAnqEAgplCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaDVRyYW5zZmVySW5wdXQSC0lucHV0QW11bGV0Go0BSooBMDAwYWE4N2ExNjQyMjAyZGVjMzIwMDA2NGQ5NTgwNzhlYzFkZjViYjdjZmIwMjg3YzI3Y2E1MDdjMmQxMTRlOWViY2ExMTEyMjA0ZjQ1ZmM4OWQzN2Y3ZTUwY2JjZTQ1Mjc4MDg1N2E4ZWYyZGQ1YzlhOGE0ZWY1YWFhNGMwY2ZmMjhmYjdhMzQ5EuwECgdvdXRwdXRzEuAEWt0ECtoEctcECmYKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoOVHJhbnNmZXJPdXRwdXQSWQoIcmVjZWl2ZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkEiIKEHJlY2VpdmVyRmVlUmF0aW8SDjIMMC4wMDAwMDAwMDAwEhkKBmFtb3VudBIPMg00Ni45OTE3ODQ1NjAwEtICCgRsb2NrEskCUsYCCsMCcsACClsKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5FeHBpcnkaCFRpbWVMb2NrEloKB2hvbGRlcnMST1pNCks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWISFgoJZXhwaXJlc0F0EgkpuNx6pj9ABgASbQoKb3B0Q29udGV4dBJfUl0KW0JZdHJhbnNmZXIgdG8gJ2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNScSzgIKB2NvbnRleHQSwgJyvwIKZwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGg9UcmFuc2ZlckNvbnRleHQSoQEKD29wZW5NaW5pbmdSb3VuZBKNAUqKATAwMTFmYzk2Y2NmMzljOWQwN2YyN2ZiZjA1ZTY3MDgxM2E0NDQzOWZjY2RmZDc3ZjlmZjJmMjQzODE3YjY1NDJjN2NhMTExMjIwMGIyNmY4MmRjZTBhMDYzZTRhMTAwMTBiNjhmNjMwYTE0MTY1OWUwNTFlMGEwMWNhNmNmNTY3MjdkZGRlZjMyZRIZChNpc3N1aW5nTWluaW5nUm91bmRzEgJqABIVCg92YWxpZGF0b3JSaWdodHMSAmoAEl4KC2V4cGVjdGVkRHNvEk9STQpLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiYgE3YgE4YgE5YgIxMGICMTFiAjEyYgIxM2qMDnKJDgpmCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaDlRyYW5zZmVyUmVzdWx0EnMKBXJvdW5kEmpyaApXCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuVHlwZXMaBVJvdW5kEg0KBm51bWJlchIDGM4CEu4GCgdzdW1tYXJ5EuIGct8GCmcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoPVHJhbnNmZXJTdW1tYXJ5EiYKFGlucHV0QXBwUmV3YXJkQW1vdW50Eg4yDDAuMDAwMDAwMDAwMBIsChppbnB1dFZhbGlkYXRvclJld2FyZEFtb3VudBIOMgwwLjAwMDAwMDAwMDASJQoTaW5wdXRTdlJld2FyZEFtb3VudBIOMgwwLjAwMDAwMDAwMDASJQoRaW5wdXRBbXVsZXRBbW91bnQSEDIONTAwLjAwMDAwMDAwMDASuAIKDmJhbGFuY2VDaGFuZ2VzEqUCaqICCp8CCk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBLNAXLKAQplCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaDUJhbGFuY2VDaGFuZ2USNgoiY2hhbmdlVG9Jbml0aWFsQW1vdW50QXNPZlJvdW5kWmVybxIQMg4tMTIuMzY0NTM0OTQwMBIpChdjaGFuZ2VUb0hvbGRpbmdGZWVzUmF0ZRIOMgwwLjAwMzgwNTE4MDASHQoLaG9sZGluZ0ZlZXMSDjIMMC4wMDAwMDAwMDAwEiAKCm91dHB1dEZlZXMSEloQCg4yDDcuMDAwMDAwMDAwMBIhCg9zZW5kZXJDaGFuZ2VGZWUSDjIMNi4wMDAwMDAwMDAwEiYKEnNlbmRlckNoYW5nZUFtb3VudBIQMg40NDAuMDA4MjE1NDQwMBIdCgthbXVsZXRQcmljZRIOMgwwLjAwNTAwMDAwMDASMAoaaW5wdXRWYWxpZGF0b3JGYXVjZXRBbW91bnQSElIQCg4yDDAuMDAwMDAwMDAwMBI4CiJpbnB1dFVuY2xhaW1lZEFjdGl2aXR5UmVjb3JkQW1vdW50EhJSEAoOMgwwLjAwMDAwMDAwMDAS5QEKDmNyZWF0ZWRBbXVsZXRzEtIBWs8BCswBeskBCmUKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoNQ3JlYXRlZEFtdWxldBIaVHJhbnNmZXJSZXN1bHRMb2NrZWRBbXVsZXQaREpCMDBjYTQyYmNiNzEyYzM1NDUwYjM5MDQxNDU4ZDg0ZWI2NGY4YjVmZDhmZWQ2NGZkMjgxZmI0YmI5Yzg3MzVjNjAwEl4KEnNlbmRlckNoYW5nZUFtdWxldBJIUkYKREpCMDAzZDk3MDE2OTNiOGZhYzEyNjJiZjA3ODIxOGUwNWVmOTJjMTVmNDJkN2ZhYzc0MzkyMTg1NTYwOTJiNmY5NzBjEvACCgRtZXRhEucCUuQCCuECct4CCmkKQDRkZWQ2YjY2OGNiM2I2NGY3YTg4YTMwODc0Y2Q0MWM3NTgyOWY1ZTA2NGIzZmJiYWRmNDFlYzdlODM2MzM1NGYSG1NwbGljZS5BcGkuVG9rZW4uTWV0YWRhdGFWMRoITWV0YWRhdGES8AEKBnZhbHVlcxLlAWLiAQowCiZzcGxpY2UubGZkZWNlbnRyYWxpemVkdHJ1c3Qub3JnL2J1cm5lZBIGQgQxMy4wCncKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvc2VuZGVyEk1CS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZAo1CidzcGxpY2UubGZkZWNlbnRyYWxpemVkdHJ1c3Qub3JnL3R4LWtpbmQSCkIIdHJhbnNmZXIawwwKATLCPrwMGrkMCgMyLjESigEwMGRmZTdlOGU5Nzg3ZTc1NzQ2NzdlNTZkMGY5ZjY3ZDZlZWE5MTEwMzc3ZGQ3NjljNTE5MWE0YzQ4NDVkOWUyYmRjYTExMTIyMGM2ZWQ2NjZiN2JhYWE4N2NiNTZmM2I0MzlkNzZjNWQyNWEzYjRiZTU0Y2NmMGI3ZTE2MmYxZGJmNjJhM2RhZTUaDXNwbGljZS1hbXVsZXQiYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcypJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkShdBbXVsZXRSdWxlc19Db21wdXRlRmVlc1KYB3KVBwpvCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaF0FtdWxldFJ1bGVzX0NvbXB1dGVGZWVzEs4CCgdjb250ZXh0EsICcr8CCmcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoPVHJhbnNmZXJDb250ZXh0EqEBCg9vcGVuTWluaW5nUm91bmQSjQFKigEwMDExZmM5NmNjZjM5YzlkMDdmMjdmYmYwNWU2NzA4MTNhNDQ0MzlmY2NkZmQ3N2Y5ZmYyZjI0MzgxN2I2NTQyYzdjYTExMTIyMDBiMjZmODJkY2UwYTA2M2U0YTEwMDEwYjY4ZjYzMGExNDE2NTllMDUxZTBhMDFjYTZjZjU2NzI3ZGRkZWYzMmUSGQoTaXNzdWluZ01pbmluZ1JvdW5kcxICagASFQoPdmFsaWRhdG9yUmlnaHRzEgJqABJXCgZzZW5kZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkEpcCCgdvdXRwdXRzEosCWogCCoUCcoICCmYKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoOVHJhbnNmZXJPdXRwdXQSWQoIcmVjZWl2ZXISTTpLYWJjLTI6OjEyMjA3ZTk2YWRhMThhODQ1YWRmNGRjMDE0MTAyNjU2MzNkNTI2NmRjYTliYjI4MGM5OGUzNWMzNjkyZGI4N2QzZTM1EiIKEHJlY2VpdmVyRmVlUmF0aW8SDjIMMC4wMDAwMDAwMDAwEhkKBmFtb3VudBIPMg0yMC4wMDAwMDAwMDAwEl4KC2V4cGVjdGVkRHNvEk9STQpLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiYgEzapYBcpMBCnUKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxodQW11bGV0UnVsZXNfQ29tcHV0ZUZlZXNSZXN1bHQSGgoEZmVlcxISWhAKDjIMNi4yMDAwMDAwMDAwGu8DCgE3wj7oAxLlAwoDMi4xEooBMDAxMWZjOTZjY2YzOWM5ZDA3ZjI3ZmJmMDVlNjcwODEzYTQ0NDM5ZmNjZGZkNzdmOWZmMmYyNDM4MTdiNjU0MmM3Y2ExMTEyMjAwYjI2ZjgyZGNlMGEwNjNlNGExMDAxMGI2OGY2MzBhMTQxNjU5ZTA1MWUwYTAxY2E2Y2Y1NjcyN2RkZGVmMzJlGg1zcGxpY2UtYW11bGV0ImEKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5Sb3VuZBoPT3Blbk1pbmluZ1JvdW5kKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiGtUdCgEwwj7OHRrLHQoDMi4xEooBMDA0NTZlYWU2YWIyMjQ5ZWZiZmU3NGU5YTM4OThkY2E2NGU1NDg1ODBhMzBjNDFlNjI3MmYyM2Y0ZDdlOGQ5MmExY2ExMTEyMjA4YzA5OTc1MWYwMDJhODc4YWQ0MTM1NDY2MGY2Y2YxZTJiNWUxNTM3ODgxNTRmOGFmMDUxNDJjMTQzZGFkYjIzGg1zcGxpY2UtYW11bGV0In0KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSH1NwbGljZS5FeHRlcm5hbFBhcnR5QW11bGV0UnVsZXMaGEV4dGVybmFsUGFydHlBbXVsZXRSdWxlcypJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkQnsKQDU1YmE0ZGViMGFkNDY2MmM0MTY4YjM5ODU5NzM4YTBlOTEzODhkMjUyMjg2NDgwYzczMzFiM2Y3MWE1MTcyODESJlNwbGljZS5BcGkuVG9rZW4uVHJhbnNmZXJJbnN0cnVjdGlvblYxGg9UcmFuc2ZlckZhY3RvcnlKGFRyYW5zZmVyRmFjdG9yeV9UcmFuc2ZlclKbEXKYEQqEAQpANTViYTRkZWIwYWQ0NjYyYzQxNjhiMzk4NTk3MzhhMGU5MTM4OGQyNTIyODY0ODBjNzMzMWIzZjcxYTUxNzI4MRImU3BsaWNlLkFwaS5Ub2tlbi5UcmFuc2Zlckluc3RydWN0aW9uVjEaGFRyYW5zZmVyRmFjdG9yeV9UcmFuc2ZlchJcCg1leHBlY3RlZEFkbWluEks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIS1wcKCHRyYW5zZmVyEsoHcscHCnQKQDU1YmE0ZGViMGFkNDY2MmM0MTY4YjM5ODU5NzM4YTBlOTEzODhkMjUyMjg2NDgwYzczMzFiM2Y3MWE1MTcyODESJlNwbGljZS5BcGkuVG9rZW4uVHJhbnNmZXJJbnN0cnVjdGlvblYxGghUcmFuc2ZlchJXCgZzZW5kZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkElkKCHJlY2VpdmVyEk06S2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNRIZCgZhbW91bnQSDzINMjAuMDAwMDAwMDAwMBLoAQoMaW5zdHJ1bWVudElkEtcBctQBCmwKQDcxOGEwZjc3ZTUwNWE4ZGUyMmYxODhiZDRjODdmZTc0MTAxMjc0ZTlkNGNiMWJmYWM3ZDA5YWVjNzE1OGQzNWISGlNwbGljZS5BcGkuVG9rZW4uSG9sZGluZ1YxGgxJbnN0cnVtZW50SWQSVAoFYWRtaW4SSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhIOCgJpZBIIQgZBbXVsZXQSGAoLcmVxdWVzdGVkQXQSCSno96KIK0AGABIaCg1leGVjdXRlQmVmb3JlEgkpuNx6pj9ABgASqAEKEGlucHV0SG9sZGluZ0NpZHMSkwFakAEKjQFKigEwMDBhYTg3YTE2NDIyMDJkZWMzMjAwMDY0ZDk1ODA3OGVjMWRmNWJiN2NmYjAyODdjMjdjYTUwN2MyZDExNGU5ZWJjYTExMTIyMDRmNDVmYzg5ZDM3ZjdlNTBjYmNlNDUyNzgwODU3YThlZjJkZDVjOWE4YTRlZjVhYWE0YzBjZmYyOGZiN2EzNDkSswEKBG1ldGESqgFypwEKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghNZXRhZGF0YRI6CgZ2YWx1ZXMSMGIuCiwKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvcmVhc29uEgJCABLWBwoJZXh0cmFBcmdzEsgHcsUHCmoKQDRkZWQ2YjY2OGNiM2I2NGY3YTg4YTMwODc0Y2Q0MWM3NTgyOWY1ZTA2NGIzZmJiYWRmNDFlYzdlODM2MzM1NGYSG1NwbGljZS5BcGkuVG9rZW4uTWV0YWRhdGFWMRoJRXh0cmFBcmdzEtAFCgdjb250ZXh0EsQFcsEFCm4KQDRkZWQ2YjY2OGNiM2I2NGY3YTg4YTMwODc0Y2Q0MWM3NTgyOWY1ZTA2NGIzZmJiYWRmNDFlYzdlODM2MzM1NGYSG1NwbGljZS5BcGkuVG9rZW4uTWV0YWRhdGFWMRoNQ2hvaWNlQ29udGV4dBLOBAoGdmFsdWVzEsMEYsAECp4CCgxhbXVsZXQtcnVsZXMSjQJ6igIKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghBbnlWYWx1ZRINQVZfQ29udHJhY3RJZBqNAUqKATAwZGZlN2U4ZTk3ODdlNzU3NDY3N2U1NmQwZjlmNjdkNmVlYTkxMTAzNzdkZDc2OWM1MTkxYTRjNDg0NWQ5ZTJiZGNhMTExMjIwYzZlZDY2NmI3YmFhYTg3Y2I1NmYzYjQzOWQ3NmM1ZDI1YTNiNGJlNTRjY2YwYjdlMTYyZjFkYmY2MmEzZGFlNQqcAgoKb3Blbi1yb3VuZBKNAnqKAgppCkA0ZGVkNmI2NjhjYjNiNjRmN2E4OGEzMDg3NGNkNDFjNzU4MjlmNWUwNjRiM2ZiYmFkZjQxZWM3ZTgzNjMzNTRmEhtTcGxpY2UuQXBpLlRva2VuLk1ldGFkYXRhVjEaCEFueVZhbHVlEg1BVl9Db250cmFjdElkGo0BSooBMDAxMWZjOTZjY2YzOWM5ZDA3ZjI3ZmJmMDVlNjcwODEzYTQ0NDM5ZmNjZGZkNzdmOWZmMmYyNDM4MTdiNjU0MmM3Y2ExMTEyMjAwYjI2ZjgyZGNlMGEwNjNlNGExMDAxMGI2OGY2MzBhMTQxNjU5ZTA1MWUwYTAxY2E2Y2Y1NjcyN2RkZGVmMzJlEoMBCgRtZXRhEntyeQppCkA0ZGVkNmI2NjhjYjNiNjRmN2E4OGEzMDg3NGNkNDFjNzU4MjlmNWUwNjRiM2ZiYmFkZjQxZWM3ZTgzNjMzNTRmEhtTcGxpY2UuQXBpLlRva2VuLk1ldGFkYXRhVjEaCE1ldGFkYXRhEgwKBnZhbHVlcxICYgBiATFiATJiATRiATViATZiAjE0av0GcvoGCoUBCkA1NWJhNGRlYjBhZDQ2NjJjNDE2OGIzOTg1OTczOGEwZTkxMzg4ZDI1MjI4NjQ4MGM3MzMxYjNmNzFhNTE3MjgxEiZTcGxpY2UuQXBpLlRva2VuLlRyYW5zZmVySW5zdHJ1Y3Rpb25WMRoZVHJhbnNmZXJJbnN0cnVjdGlvblJlc3VsdBLXAwoGb3V0cHV0EswDeskDCowBCkA1NWJhNGRlYjBhZDQ2NjJjNDE2OGIzOTg1OTczOGEwZTkxMzg4ZDI1MjI4NjQ4MGM3MzMxYjNmNzFhNTE3MjgxEiZTcGxpY2UuQXBpLlRva2VuLlRyYW5zZmVySW5zdHJ1Y3Rpb25WMRogVHJhbnNmZXJJbnN0cnVjdGlvblJlc3VsdF9PdXRwdXQSIVRyYW5zZmVySW5zdHJ1Y3Rpb25SZXN1bHRfUGVuZGluZxqUAnKRAgquAQpANTViYTRkZWIwYWQ0NjYyYzQxNjhiMzk4NTk3MzhhMGU5MTM4OGQyNTIyODY0ODBjNzMzMWIzZjcxYTUxNzI4MRImU3BsaWNlLkFwaS5Ub2tlbi5UcmFuc2Zlckluc3RydWN0aW9uVjEaQlRyYW5zZmVySW5zdHJ1Y3Rpb25SZXN1bHRfT3V0cHV0LlRyYW5zZmVySW5zdHJ1Y3Rpb25SZXN1bHRfUGVuZGluZxJeChZ0cmFuc2Zlckluc3RydWN0aW9uQ2lkEkRKQjAwYTdiOTBmMmY4MjMyY2YzODc0YzgwNDU4Zjk5NjdhMDA1ZjI4ZTA3ZTUzZDFlZTEwY2U3YmFmNTk0OWQ2NzFlNxJcChBzZW5kZXJDaGFuZ2VDaWRzEkhaRgpESkIwMDNkOTcwMTY5M2I4ZmFjMTI2MmJmMDc4MjE4ZTA1ZWY5MmMxNWY0MmQ3ZmFjNzQzOTIxODU1NjA5MmI2Zjk3MGMStwEKBG1ldGESrgFyqwEKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghNZXRhZGF0YRI+CgZ2YWx1ZXMSNGIyCjAKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvYnVybmVkEgZCBDEzLjAaxAYKATnCPr0GGroGCgMyLjESigEwMDBhYTg3YTE2NDIyMDJkZWMzMjAwMDY0ZDk1ODA3OGVjMWRmNWJiN2NmYjAyODdjMjdjYTUwN2MyZDExNGU5ZWJjYTExMTIyMDRmNDVmYzg5ZDM3ZjdlNTBjYmNlNDUyNzgwODU3YThlZjJkZDVjOWE4YTRlZjVhYWE0YzBjZmYyOGZiN2EzNDkaDXNwbGljZS1hbXVsZXQiWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoGQW11bGV0KklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiKkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQySURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIyS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkSgdBcmNoaXZlUmVyYwphCkA5ZTcwYThiMzUxMGQ2MTdmOGExMzYyMTNmMzNkNmE5MDNhMTBjYTBlZWVjNzZiYjA2YmE1NWQxZWQ5NjgwZjY5EhREQS5JbnRlcm5hbC5UZW1wbGF0ZRoHQXJjaGl2ZVgBagIKABq3BgoBNcI+sAYSrQYKAzIuMRKKATAwMGFhODdhMTY0MjIwMmRlYzMyMDAwNjRkOTU4MDc4ZWMxZGY1YmI3Y2ZiMDI4N2MyN2NhNTA3YzJkMTE0ZTllYmNhMTExMjIwNGY0NWZjODlkMzdmN2U1MGNiY2U0NTI3ODA4NTdhOGVmMmRkNWM5YThhNGVmNWFhYTRjMGNmZjI4ZmI3YTM0ORoNc3BsaWNlLWFtdWxldCJZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQqSURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIqS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmRCZwpANzE4YTBmNzdlNTA1YThkZTIyZjE4OGJkNGM4N2ZlNzQxMDEyNzRlOWQ0Y2IxYmZhYzdkMDlhZWM3MTU4ZDM1YhIaU3BsaWNlLkFwaS5Ub2tlbi5Ib2xkaW5nVjEaB0hvbGRpbmciIhIgx4D0qUq85aLjDcLW/xqgQlDU5EPy7kO44hBvtSdAPBIiJAgCEiAaTlp/nYjR3CjhJoCk3ZOAjaU5R8cTLJLWg6Z+L554VyIkCAYSIJDUE6VD1eRx/n2UBuUtsFvX/zc3HTzeKwPP6rMGxGIXIiQICRIgqiI4qhSuD5yIfh4mZYCdK1vF1YZ9CMHiEXKdxPwjQ8siJAgKEiAJygjowcASrLWmgPqSDvgzcxzMwsQ5qY0qFjBsS5HXBSIkCAsSIBdq09f6h0nrt8Cy2DrQGqzTnk22s5V2JQv3FF5dlQg4IiQIDBIgQ71KJaILts60r4bb45Fuxvg3lNygxOhgLd5JilpTChYiJAgNEiCPYYBtjtaHU7HB5H5ncMyOVX4X2dTVyePl3Lzb+0AZQCIkCA4SILDumoZ/Uoj3ouFJ2KSfYybDrI2ntoooLzAKADXFFDeZEod6EnMKS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBIkYzJlNjUzNzQtNDg1OC00YTZmLThkZDMtZGRhNDU1ZDI1ZTZhGlNnbG9iYWwtZG9tYWluOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYiokZmViYzM5NDgtNTBiMi00MjA0LTk4ZmYtNmU5YmFiM2MyNGRiMPOKtsa4hZADOtAOCtMJCgMyLjESigEwMDBhYTg3YTE2NDIyMDJkZWMzMjAwMDY0ZDk1ODA3OGVjMWRmNWJiN2NmYjAyODdjMjdjYTUwN2MyZDExNGU5ZWJjYTExMTIyMDRmNDVmYzg5ZDM3ZjdlNTBjYmNlNDUyNzgwODU3YThlZjJkZDVjOWE4YTRlZjVhYWE0YzBjZmYyOGZiN2EzNDkaDXNwbGljZS1hbXVsZXQiWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoGQW11bGV0KqQFcqEFClkKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5BbXVsZXQaBkFtdWxldBJSCgNkc28SSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhJWCgVvd25lchJNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQSlwMKBmFtb3VudBKMA3KJAwpfCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgtTcGxpY2UuRmVlcxoORXhwaXJpbmdBbW91bnQSIQoNaW5pdGlhbEFtb3VudBIQMg41MDAuMDAwMDAwMDAwMBJ3CgljcmVhdGVkQXQSanJoClcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5UeXBlcxoFUm91bmQSDQoGbnVtYmVyEgMYzgISiQEKDHJhdGVQZXJSb3VuZBJ5cncKXQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDFJhdGVQZXJSb3VuZBIWCgRyYXRlEg4yDDAuMDAzODA1MTgwMDJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmTAPprH4uC3hZAD0j7sBAoDMi4xEuQECkUACqh6FkIgLewyAAZNlYB47B31u3z7AofCfKUHwtEU6evKERIgT0X8idN/flDLzkUngIV6jvLdXJqKTvWqpMDP8o+3o0kSDXNwbGljZS1hbXVsZXQaWgpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIGU3BsaWNlEgZBbXVsZXQaBkFtdWxldCLiAWrfAQpNCks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIKTwpNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQKPQo7ajkKEgoQMg41MDAuMDAwMDAwMDAwMAoLCglqBwoFCgMYzgIKFgoUahIKEAoOMgwwLjAwMzgwNTE4MDAqSURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIqS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDmaoxh8K0AGAEIqCiYKJAgBEiDIbmTsF2mLbs56uyDfkJkXTtqgBkwCHQDVA2WttnKwihAeOuYcCq8VCgMyLjESigEwMDExZmM5NmNjZjM5YzlkMDdmMjdmYmYwNWU2NzA4MTNhNDQ0MzlmY2NkZmQ3N2Y5ZmYyZjI0MzgxN2I2NTQyYzdjYTExMTIyMDBiMjZmODJkY2UwYTA2M2U0YTEwMDEwYjY4ZjYzMGExNDE2NTllMDUxZTBhMDFjYTZjZjU2NzI3ZGRkZWYzMmUaDXNwbGljZS1hbXVsZXQiYQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlJvdW5kGg9PcGVuTWluaW5nUm91bmQqkhJyjxIKYQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlJvdW5kGg9PcGVuTWluaW5nUm91bmQSUgoDZHNvEks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIScwoFcm91bmQSanJoClcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5UeXBlcxoFUm91bmQSDQoGbnVtYmVyEgMYzgISHQoLYW11bGV0UHJpY2USDjIMMC4wMDUwMDAwMDAwEhQKB29wZW5zQXQSCSmDaVNlK0AGABIbCg50YXJnZXRDbG9zZXNBdBIJKYP12awrQAYAEoUBCgppc3N1aW5nRm9yEndydQpaCkBiNzBkYjgzNjllMWM0NjFkNWM3MGYxYzg2ZjUyNmEyOWU5Nzc2YzY1NWU2ZmZjMjU2MGY5NWIwNWNjYjhiOTQ2Eg1EQS5UaW1lLlR5cGVzGgdSZWxUaW1lEhcKDG1pY3Jvc2Vjb25kcxIHGIColcbqBRLSCQoRdHJhbnNmZXJDb25maWdVc2QSvAlyuQkKZwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxITU3BsaWNlLkFtdWxldENvbmZpZxoOVHJhbnNmZXJDb25maWcSgQEKCWNyZWF0ZUZlZRJ0cnIKWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaCEZpeGVkRmVlEhUKA2ZlZRIOMgwwLjAzMDAwMDAwMDAShwEKCmhvbGRpbmdGZWUSeXJ3Cl0KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGgxSYXRlUGVyUm91bmQSFgoEcmF0ZRIOMgwwLjAwMDAxOTAyNTkSwwQKC3RyYW5zZmVyRmVlErMEcrAEClwKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGgtTdGVwcGVkUmF0ZRIdCgtpbml0aWFsUmF0ZRIOMgwwLjAxMDAwMDAwMDASsAMKBXN0ZXBzEqYDWqMDCocBcoQBClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISFgoCXzESEDIOMTAwLjAwMDAwMDAwMDASFAoCXzISDjIMMC4wMDEwMDAwMDAwCogBcoUBClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISFwoCXzESETIPMTAwMC4wMDAwMDAwMDAwEhQKAl8yEg4yDDAuMDAwMTAwMDAwMAqLAXKIAQpUCkA1YWVlOWIyMWI4ZTlhNGM0OTc1YjVmNGM0MTk4ZTZlNmU4NDY5ZGY0OWUyMDEwODIwZTc5MmYzOTNkYjg3MGY0EghEQS5UeXBlcxoGVHVwbGUyEhoKAl8xEhQyEjEwMDAwMDAuMDAwMDAwMDAwMBIUCgJfMhIOMgwwLjAwMDAxMDAwMDAShQEKDWxvY2tIb2xkZXJGZWUSdHJyClkKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGghGaXhlZEZlZRIVCgNmZWUSDjIMMC4wMDUwMDAwMDAwEi4KHGV4dHJhRmVhdHVyZWRBcHBSZXdhcmRBbW91bnQSDjIMMS4wMDAwMDAwMDAwEhMKDG1heE51bUlucHV0cxIDGMgBEhQKDW1heE51bU91dHB1dHMSAxjIARIXChFtYXhOdW1Mb2NrSG9sZGVycxICGGQSqAMKDmlzc3VhbmNlQ29uZmlnEpUDcpIDCmMKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSD1NwbGljZS5Jc3N1YW5jZRoOSXNzdWFuY2VDb25maWcSMAoUYW11bGV0VG9Jc3N1ZVBlclllYXISGDIWNDAwMDAwMDAwMDAuMDAwMDAwMDAwMBIrChl2YWxpZGF0b3JSZXdhcmRQZXJjZW50YWdlEg4yDDAuMDUwMDAwMDAwMBIlChNhcHBSZXdhcmRQZXJjZW50YWdlEg4yDDAuMTUwMDAwMDAwMBIkChJ2YWxpZGF0b3JSZXdhcmRDYXASDjIMMC4yMDAwMDAwMDAwEigKFGZlYXR1cmVkQXBwUmV3YXJkQ2FwEhAyDjEwMC4wMDAwMDAwMDAwEigKFnVuZmVhdHVyZWRBcHBSZXdhcmRDYXASDjIMMC42MDAwMDAwMDAwEisKFW9wdFZhbGlkYXRvckZhdWNldENhcBISUhAKDjIMMi44NTAwMDAwMDAwEoYBCgx0aWNrRHVyYXRpb24SdnJ0CloKQGI3MGRiODM2OWUxYzQ2MWQ1YzcwZjFjODZmNTI2YTI5ZTk3NzZjNjU1ZTZmZmMyNTYwZjk1YjA1Y2NiOGI5NDYSDURBLlRpbWUuVHlwZXMaB1JlbFRpbWUSFgoMbWljcm9zZWNvbmRzEgYYgJiavAQySURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWI6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWLAPoPHwIy0hZAD0j6mBwoDMi4xEp4HCkUAEfyWzPOcnQfyf78F5nCBOkRDn8zf13+f8vJDgXtlQsfKERIgCyb4Lc4KBj5KEAELaPYwoUFlngUeCgHKbPVnJ93e8y4SDXNwbGljZS1hbXVsZXQaYgpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIGU3BsaWNlEgVSb3VuZBoPT3Blbk1pbmluZ1JvdW5kIuEEat4ECk0KSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYgoLCglqBwoFCgMYzgIKEAoOMgwwLjAwNTAwMDAwMDAKCwoJKYNpU2UrQAYACgsKCSmD9dmsK0AGAAoPCg1qCwoJCgcYgKiVxuoFCpsCCpgCapUCChYKFGoSChAKDjIMMC4wMzAwMDAwMDAwChYKFGoSChAKDjIMMC4wMDAwMTkwMjU5CqQBCqEBap4BChAKDjIMMC4wMTAwMDAwMDAwCokBCoYBWoMBCihqJgoSChAyDjEwMC4wMDAwMDAwMDAwChAKDjIMMC4wMDEwMDAwMDAwCilqJwoTChEyDzEwMDAuMDAwMDAwMDAwMAoQCg4yDDAuMDAwMTAwMDAwMAosaioKFgoUMhIxMDAwMDAwLjAwMDAwMDAwMDAKEAoOMgwwLjAwMDAxMDAwMDAKFgoUahIKEAoOMgwwLjAwNTAwMDAwMDAKEAoOMgwxLjAwMDAwMDAwMDAKBQoDGMgBCgUKAxjIAQoECgIYZAqUAQqRAWqOAQoaChgyFjQwMDAwMDAwMDAwLjAwMDAwMDAwMDAKEAoOMgwwLjA1MDAwMDAwMDAKEAoOMgwwLjE1MDAwMDAwMDAKEAoOMgwwLjIwMDAwMDAwMDAKEgoQMg4xMDAuMDAwMDAwMDAwMAoQCg4yDDAuNjAwMDAwMDAwMAoUChJSEAoOMgwyLjg1MDAwMDAwMDAKDgoMagoKCAoGGICYmrwEKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOYMjkEErQAYAQioKJgokCAESIO0fY7ymvrflHXvdmfRaWlT0oGGyenPoJ8ORWgqqLV5EEB460QgKjwUKAzIuMRKKATAwNDU2ZWFlNmFiMjI0OWVmYmZlNzRlOWEzODk4ZGNhNjRlNTQ4NTgwYTMwYzQxZTYyNzJmMjNmNGQ3ZThkOTJhMWNhMTExMjIwOGMwOTk3NTFmMDAyYTg3OGFkNDEzNTQ2NjBmNmNmMWUyYjVlMTUzNzg4MTU0ZjhhZjA1MTQyYzE0M2RhZGIyMxoNc3BsaWNlLWFtdWxldCJ9CkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEh9TcGxpY2UuRXh0ZXJuYWxQYXJ0eUFtdWxldFJ1bGVzGhhFeHRlcm5hbFBhcnR5QW11bGV0UnVsZXMq1gFy0wEKfQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIfU3BsaWNlLkV4dGVybmFsUGFydHlBbXVsZXRSdWxlcxoYRXh0ZXJuYWxQYXJ0eUFtdWxldFJ1bGVzElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiwD6rtIOvoICQA9I+sQMKAzIuMRKpAwpFAEVurmqyJJ77/nTpo4mNymTlSFgKMMQeYnLyP01+jZKhyhESIIwJl1HwAqh4rUE1RmD2zx4rXhU3iBVPivBRQsFD2tsjEg1zcGxpY2UtYW11bGV0Gn4KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSBlNwbGljZRIYRXh0ZXJuYWxQYXJ0eUFtdWxldFJ1bGVzGhhFeHRlcm5hbFBhcnR5QW11bGV0UnVsZXMiUWpPCk0KSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYipJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjkr2uAFAkAGAEIqCiYKJAgBEiDRn/8dILJok5hSCbO/ZG2q8F50JrDts+haNU3y8c6QbxAeOulDCrI0CgMyLjESigEwMGRmZTdlOGU5Nzg3ZTc1NzQ2NzdlNTZkMGY5ZjY3ZDZlZWE5MTEwMzc3ZGQ3NjljNTE5MWE0YzQ4NDVkOWUyYmRjYTExMTIyMGM2ZWQ2NjZiN2JhYWE4N2NiNTZmM2I0MzlkNzZjNWQyNWEzYjRiZTU0Y2NmMGI3ZTE2MmYxZGJmNjJhM2RhZTUaDXNwbGljZS1hbXVsZXQiYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcyqTMXKQMQpjCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaC0FtdWxldFJ1bGVzElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEsQvCg5jb25maWdTY2hlZHVsZRKxL3KuLwpdCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg9TcGxpY2UuU2NoZWR1bGUaCFNjaGVkdWxlErguCgxpbml0aWFsVmFsdWUSpy5ypC4KZQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxITU3BsaWNlLkFtdWxldENvbmZpZxoMQW11bGV0Q29uZmlnEs8JCg50cmFuc2ZlckNvbmZpZxK8CXK5CQpnCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhNTcGxpY2UuQW11bGV0Q29uZmlnGg5UcmFuc2ZlckNvbmZpZxKBAQoJY3JlYXRlRmVlEnRycgpZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgtTcGxpY2UuRmVlcxoIRml4ZWRGZWUSFQoDZmVlEg4yDDAuMDMwMDAwMDAwMBKHAQoKaG9sZGluZ0ZlZRJ5cncKXQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDFJhdGVQZXJSb3VuZBIWCgRyYXRlEg4yDDAuMDAwMDE5MDI1ORLDBAoLdHJhbnNmZXJGZWUSswRysAQKXApANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaC1N0ZXBwZWRSYXRlEh0KC2luaXRpYWxSYXRlEg4yDDAuMDEwMDAwMDAwMBKwAwoFc3RlcHMSpgNaowMKhwFyhAEKVApANWFlZTliMjFiOGU5YTRjNDk3NWI1ZjRjNDE5OGU2ZTZlODQ2OWRmNDllMjAxMDgyMGU3OTJmMzkzZGI4NzBmNBIIREEuVHlwZXMaBlR1cGxlMhIWCgJfMRIQMg4xMDAuMDAwMDAwMDAwMBIUCgJfMhIOMgwwLjAwMTAwMDAwMDAKiAFyhQEKVApANWFlZTliMjFiOGU5YTRjNDk3NWI1ZjRjNDE5OGU2ZTZlODQ2OWRmNDllMjAxMDgyMGU3OTJmMzkzZGI4NzBmNBIIREEuVHlwZXMaBlR1cGxlMhIXCgJfMRIRMg8xMDAwLjAwMDAwMDAwMDASFAoCXzISDjIMMC4wMDAxMDAwMDAwCosBcogBClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISGgoCXzESFDISMTAwMDAwMC4wMDAwMDAwMDAwEhQKAl8yEg4yDDAuMDAwMDEwMDAwMBKFAQoNbG9ja0hvbGRlckZlZRJ0cnIKWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaCEZpeGVkRmVlEhUKA2ZlZRIOMgwwLjAwNTAwMDAwMDASLgocZXh0cmFGZWF0dXJlZEFwcFJld2FyZEFtb3VudBIOMgwxLjAwMDAwMDAwMDASEwoMbWF4TnVtSW5wdXRzEgMYyAESFAoNbWF4TnVtT3V0cHV0cxIDGMgBEhcKEW1heE51bUxvY2tIb2xkZXJzEgIYZBKfGAoNaXNzdWFuY2VDdXJ2ZRKNGHKKGApdCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg9TcGxpY2UuU2NoZWR1bGUaCFNjaGVkdWxlEqYDCgxpbml0aWFsVmFsdWUSlQNykgMKYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIPU3BsaWNlLklzc3VhbmNlGg5Jc3N1YW5jZUNvbmZpZxIwChRhbXVsZXRUb0lzc3VlUGVyWWVhchIYMhY0MDAwMDAwMDAwMC4wMDAwMDAwMDAwEisKGXZhbGlkYXRvclJld2FyZFBlcmNlbnRhZ2USDjIMMC4wNTAwMDAwMDAwEiUKE2FwcFJld2FyZFBlcmNlbnRhZ2USDjIMMC4xNTAwMDAwMDAwEiQKEnZhbGlkYXRvclJld2FyZENhcBIOMgwwLjIwMDAwMDAwMDASKAoUZmVhdHVyZWRBcHBSZXdhcmRDYXASEDIOMTAwLjAwMDAwMDAwMDASKAoWdW5mZWF0dXJlZEFwcFJld2FyZENhcBIOMgwwLjYwMDAwMDAwMDASKwoVb3B0VmFsaWRhdG9yRmF1Y2V0Q2FwEhJSEAoOMgwyLjg1MDAwMDAwMDAS/xMKDGZ1dHVyZVZhbHVlcxLuE1rrEwr4BHL1BApUCkA1YWVlOWIyMWI4ZTlhNGM0OTc1YjVmNGM0MTk4ZTZlNmU4NDY5ZGY0OWUyMDEwODIwZTc5MmYzOTNkYjg3MGY0EghEQS5UeXBlcxoGVHVwbGUyEn4KAl8xEnhydgpaCkBiNzBkYjgzNjllMWM0NjFkNWM3MGYxYzg2ZjUyNmEyOWU5Nzc2YzY1NWU2ZmZjMjU2MGY5NWIwNWNjYjhiOTQ2Eg1EQS5UaW1lLlR5cGVzGgdSZWxUaW1lEhgKDG1pY3Jvc2Vjb25kcxIIGIDAz+DolQcSnAMKAl8yEpUDcpIDCmMKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSD1NwbGljZS5Jc3N1YW5jZRoOSXNzdWFuY2VDb25maWcSMAoUYW11bGV0VG9Jc3N1ZVBlclllYXISGDIWMjAwMDAwMDAwMDAuMDAwMDAwMDAwMBIrChl2YWxpZGF0b3JSZXdhcmRQZXJjZW50YWdlEg4yDDAuMTIwMDAwMDAwMBIlChNhcHBSZXdhcmRQZXJjZW50YWdlEg4yDDAuNDAwMDAwMDAwMBIkChJ2YWxpZGF0b3JSZXdhcmRDYXASDjIMMC4yMDAwMDAwMDAwEigKFGZlYXR1cmVkQXBwUmV3YXJkQ2FwEhAyDjEwMC4wMDAwMDAwMDAwEigKFnVuZmVhdHVyZWRBcHBSZXdhcmRDYXASDjIMMC42MDAwMDAwMDAwEisKFW9wdFZhbGlkYXRvckZhdWNldENhcBISUhAKDjIMMi44NTAwMDAwMDAwCvgEcvUEClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISfgoCXzESeHJ2CloKQGI3MGRiODM2OWUxYzQ2MWQ1YzcwZjFjODZmNTI2YTI5ZTk3NzZjNjU1ZTZmZmMyNTYwZjk1YjA1Y2NiOGI5NDYSDURBLlRpbWUuVHlwZXMaB1JlbFRpbWUSGAoMbWljcm9zZWNvbmRzEggYgMDuobrBFRKcAwoCXzISlQNykgMKYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIPU3BsaWNlLklzc3VhbmNlGg5Jc3N1YW5jZUNvbmZpZxIwChRhbXVsZXRUb0lzc3VlUGVyWWVhchIYMhYxMDAwMDAwMDAwMC4wMDAwMDAwMDAwEisKGXZhbGlkYXRvclJld2FyZFBlcmNlbnRhZ2USDjIMMC4xODAwMDAwMDAwEiUKE2FwcFJld2FyZFBlcmNlbnRhZ2USDjIMMC42MjAwMDAwMDAwEiQKEnZhbGlkYXRvclJld2FyZENhcBIOMgwwLjIwMDAwMDAwMDASKAoUZmVhdHVyZWRBcHBSZXdhcmRDYXASEDIOMTAwLjAwMDAwMDAwMDASKAoWdW5mZWF0dXJlZEFwcFJld2FyZENhcBIOMgwwLjYwMDAwMDAwMDASKwoVb3B0VmFsaWRhdG9yRmF1Y2V0Q2FwEhJSEAoOMgwyLjg1MDAwMDAwMDAK9wRy9AQKVApANWFlZTliMjFiOGU5YTRjNDk3NWI1ZjRjNDE5OGU2ZTZlODQ2OWRmNDllMjAxMDgyMGU3OTJmMzkzZGI4NzBmNBIIREEuVHlwZXMaBlR1cGxlMhJ+CgJfMRJ4cnYKWgpAYjcwZGI4MzY5ZTFjNDYxZDVjNzBmMWM4NmY1MjZhMjllOTc3NmM2NTVlNmZmYzI1NjBmOTViMDVjY2I4Yjk0NhINREEuVGltZS5UeXBlcxoHUmVsVGltZRIYCgxtaWNyb3NlY29uZHMSCBiAgJvGl9pHEpsDCgJfMhKUA3KRAwpjCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg9TcGxpY2UuSXNzdWFuY2UaDklzc3VhbmNlQ29uZmlnEi8KFGFtdWxldFRvSXNzdWVQZXJZZWFyEhcyFTUwMDAwMDAwMDAuMDAwMDAwMDAwMBIrChl2YWxpZGF0b3JSZXdhcmRQZXJjZW50YWdlEg4yDDAuMjEwMDAwMDAwMBIlChNhcHBSZXdhcmRQZXJjZW50YWdlEg4yDDAuNjkwMDAwMDAwMBIkChJ2YWxpZGF0b3JSZXdhcmRDYXASDjIMMC4yMDAwMDAwMDAwEigKFGZlYXR1cmVkQXBwUmV3YXJkQ2FwEhAyDjEwMC4wMDAwMDAwMDAwEigKFnVuZmVhdHVyZWRBcHBSZXdhcmRDYXASDjIMMC42MDAwMDAwMDAwEisKFW9wdFZhbGlkYXRvckZhdWNldENhcBISUhAKDjIMMi44NTAwMDAwMDAwCvgEcvUEClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISfwoCXzESeXJ3CloKQGI3MGRiODM2OWUxYzQ2MWQ1YzcwZjFjODZmNTI2YTI5ZTk3NzZjNjU1ZTZmZmMyNTYwZjk1YjA1Y2NiOGI5NDYSDURBLlRpbWUuVHlwZXMaB1JlbFRpbWUSGQoMbWljcm9zZWNvbmRzEgkYgIC2jK+0jwESmwMKAl8yEpQDcpEDCmMKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSD1NwbGljZS5Jc3N1YW5jZRoOSXNzdWFuY2VDb25maWcSLwoUYW11bGV0VG9Jc3N1ZVBlclllYXISFzIVMjUwMDAwMDAwMC4wMDAwMDAwMDAwEisKGXZhbGlkYXRvclJld2FyZFBlcmNlbnRhZ2USDjIMMC4yMDAwMDAwMDAwEiUKE2FwcFJld2FyZFBlcmNlbnRhZ2USDjIMMC43NTAwMDAwMDAwEiQKEnZhbGlkYXRvclJld2FyZENhcBIOMgwwLjIwMDAwMDAwMDASKAoUZmVhdHVyZWRBcHBSZXdhcmRDYXASEDIOMTAwLjAwMDAwMDAwMDASKAoWdW5mZWF0dXJlZEFwcFJld2FyZENhcBIOMgwwLjYwMDAwMDAwMDASKwoVb3B0VmFsaWRhdG9yRmF1Y2V0Q2FwEhJSEAoOMgwyLjg1MDAwMDAwMDASoAgKGWRlY2VudHJhbGl6ZWRTeW5jaHJvbml6ZXISgghy/wcKiwEKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSIFNwbGljZS5EZWNlbnRyYWxpemVkU3luY2hyb25pemVyGiVBbXVsZXREZWNlbnRyYWxpemVkU3luY2hyb25pemVyQ29uZmlnEtwBChVyZXF1aXJlZFN5bmNocm9uaXplcnMSwgFyvwEKVQpAYzNiYjBjNWQwNDc5OWIzZjExYmFkN2MzYzEwMjk2M2UxMTVjZjUzZGEzZTRhZmNiY2ZkOWYwNmViZDgyYjRmZhIMREEuU2V0LlR5cGVzGgNTZXQSZgoDbWFwEl9qXQpbClVCU2dsb2JhbC1kb21haW46OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEgIKABJrChJhY3RpdmVTeW5jaHJvbml6ZXISVUJTZ2xvYmFsLWRvbWFpbjo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWISogQKBGZlZXMSmQRylgQKfApANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIgU3BsaWNlLkRlY2VudHJhbGl6ZWRTeW5jaHJvbml6ZXIaFlN5bmNocm9uaXplckZlZXNDb25maWcStwIKFWJhc2VSYXRlVHJhZmZpY0xpbWl0cxKdAnKaAgp7CkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEiBTcGxpY2UuRGVjZW50cmFsaXplZFN5bmNocm9uaXplchoVQmFzZVJhdGVUcmFmZmljTGltaXRzEhMKC2J1cnN0QW1vdW50EgQYgOowEoUBCgtidXJzdFdpbmRvdxJ2cnQKWgpAYjcwZGI4MzY5ZTFjNDYxZDVjNzBmMWM4NmY1MjZhMjllOTc3NmM2NTVlNmZmYzI1NjBmOTViMDVjY2I4Yjk0NhINREEuVGltZS5UeXBlcxoHUmVsVGltZRIWCgxtaWNyb3NlY29uZHMSBhiAsLT4CBIkChFleHRyYVRyYWZmaWNQcmljZRIPMg0xNi42NzAwMDAwMDAwEh4KGHJlYWRWc1dyaXRlU2NhbGluZ0ZhY3RvchICGAgSFgoObWluVG9wdXBBbW91bnQSBBiAtRgShgEKDHRpY2tEdXJhdGlvbhJ2cnQKWgpAYjcwZGI4MzY5ZTFjNDYxZDVjNzBmMWM4NmY1MjZhMjllOTc3NmM2NTVlNmZmYzI1NjBmOTViMDVjY2I4Yjk0NhINREEuVGltZS5UeXBlcxoHUmVsVGltZRIWCgxtaWNyb3NlY29uZHMSBhiAmJq8BBKaAgoNcGFja2FnZUNvbmZpZxKIAnKFAgpmCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhNTcGxpY2UuQW11bGV0Q29uZmlnGg1QYWNrYWdlQ29uZmlnEhIKBmFtdWxldBIIQgYwLjEuMTMSHQoRYW11bGV0TmFtZVNlcnZpY2USCEIGMC4xLjEzEhkKDWRzb0dvdmVybmFuY2USCEIGMC4xLjE3Eh0KEnZhbGlkYXRvckxpZmVjeWNsZRIHQgUwLjEuNRISCgZ3YWxsZXQSCEIGMC4xLjEzEhoKDndhbGxldFBheW1lbnRzEghCBjAuMS4xMxISCgxmdXR1cmVWYWx1ZXMSAloAEg4KCGlzRGV2TmV0EgIQATJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYsA+q7SDr6CAkAPSPqYPCgMyLjESng8KRQDf5+jpeH51dGd+VtD59n1u6pEQN33XacUZGkxIRdnivcoREiDG7WZre6qofLVvO0OddsXSWjtL5UzPC34WLx2/YqPa5RINc3BsaWNlLWFtdWxldBpkCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgZTcGxpY2USC0FtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcyLfDGrcDApNCks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIKhAwKgQxq/gsK9QsK8gtq7wsKmwIKmAJqlQIKFgoUahIKEAoOMgwwLjAzMDAwMDAwMDAKFgoUahIKEAoOMgwwLjAwMDAxOTAyNTkKpAEKoQFqngEKEAoOMgwwLjAxMDAwMDAwMDAKiQEKhgFagwEKKGomChIKEDIOMTAwLjAwMDAwMDAwMDAKEAoOMgwwLjAwMTAwMDAwMDAKKWonChMKETIPMTAwMC4wMDAwMDAwMDAwChAKDjIMMC4wMDAxMDAwMDAwCixqKgoWChQyEjEwMDAwMDAuMDAwMDAwMDAwMAoQCg4yDDAuMDAwMDEwMDAwMAoWChRqEgoQCg4yDDAuMDA1MDAwMDAwMAoQCg4yDDEuMDAwMDAwMDAwMAoFCgMYyAEKBQoDGMgBCgQKAhhkCuEGCt4GatsGCpQBCpEBao4BChoKGDIWNDAwMDAwMDAwMDAuMDAwMDAwMDAwMAoQCg4yDDAuMDUwMDAwMDAwMAoQCg4yDDAuMTUwMDAwMDAwMAoQCg4yDDAuMjAwMDAwMDAwMAoSChAyDjEwMC4wMDAwMDAwMDAwChAKDjIMMC42MDAwMDAwMDAwChQKElIQCg4yDDIuODUwMDAwMDAwMArBBQq+BVq7BQqsAWqpAQoQCg5qDAoKCggYgMDP4OiVBwqUAQqRAWqOAQoaChgyFjIwMDAwMDAwMDAwLjAwMDAwMDAwMDAKEAoOMgwwLjEyMDAwMDAwMDAKEAoOMgwwLjQwMDAwMDAwMDAKEAoOMgwwLjIwMDAwMDAwMDAKEgoQMg4xMDAuMDAwMDAwMDAwMAoQCg4yDDAuNjAwMDAwMDAwMAoUChJSEAoOMgwyLjg1MDAwMDAwMDAKrAFqqQEKEAoOagwKCgoIGIDA7qG6wRUKlAEKkQFqjgEKGgoYMhYxMDAwMDAwMDAwMC4wMDAwMDAwMDAwChAKDjIMMC4xODAwMDAwMDAwChAKDjIMMC42MjAwMDAwMDAwChAKDjIMMC4yMDAwMDAwMDAwChIKEDIOMTAwLjAwMDAwMDAwMDAKEAoOMgwwLjYwMDAwMDAwMDAKFAoSUhAKDjIMMi44NTAwMDAwMDAwCqsBaqgBChAKDmoMCgoKCBiAgJvGl9pHCpMBCpABao0BChkKFzIVNTAwMDAwMDAwMC4wMDAwMDAwMDAwChAKDjIMMC4yMTAwMDAwMDAwChAKDjIMMC42OTAwMDAwMDAwChAKDjIMMC4yMDAwMDAwMDAwChIKEDIOMTAwLjAwMDAwMDAwMDAKEAoOMgwwLjYwMDAwMDAwMDAKFAoSUhAKDjIMMi44NTAwMDAwMDAwCqwBaqkBChEKD2oNCgsKCRiAgLaMr7SPAQqTAQqQAWqNAQoZChcyFTI1MDAwMDAwMDAuMDAwMDAwMDAwMAoQCg4yDDAuMjAwMDAwMDAwMAoQCg4yDDAuNzUwMDAwMDAwMAoQCg4yDDAuMjAwMDAwMDAwMAoSChAyDjEwMC4wMDAwMDAwMDAwChAKDjIMMC42MDAwMDAwMDAwChQKElIQCg4yDDIuODUwMDAwMDAwMAqNAgqKAmqHAgpnCmVqYwphCl9iXQpbClVCU2dsb2JhbC1kb21haW46OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEgIKAApXClVCU2dsb2JhbC1kb21haW46OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiCkMKQWo/ChwKGmoYCgYKBBiA6jAKDgoMagoKCAoGGICwtPgIChEKDzINMTYuNjcwMDAwMDAwMAoECgIYCAoGCgQYgLUYCg4KDGoKCggKBhiAmJq8BApLCklqRwoKCghCBjAuMS4xMwoKCghCBjAuMS4xMwoKCghCBjAuMS4xNwoJCgdCBTAuMS41CgoKCEIGMC4xLjEzCgoKCEIGMC4xLjEzCgQKAloACgQKAhABKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOSva4AUCQAYAQioKJgokCAESIPwf2Z0eHc+LrQMkTsQQJNI3227K9Km2y5Mv7o7AX3xQEB5I6O+LxbiFkANQt7nrs/qHkAM=";
2
+ export declare const GenerateTopologyResponse: {
3
+ partyId: string;
4
+ publicKeyFingerprint: string;
5
+ topologyTransactions: string[];
6
+ multiHash: string;
7
+ };
8
+ export declare const InvalidGenerateTopologyResponse: {
9
+ partyId: string;
10
+ publicKeyFingerprint: string;
11
+ topologyTransactions: string[];
12
+ multiHash: string;
13
+ };
14
+ export declare const WalletInitRequestData: {
15
+ synchronizer: string;
16
+ partyHint: string;
17
+ publicKey: string;
18
+ };
2
19
  //# sourceMappingURL=resources.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../test/resources.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qz+CAC6w+C,CAAC"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../test/resources.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qz+CAC6w+C,CAAC;AAErz+C,eAAO,MAAM,wBAAwB;;;;;CASpC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;CAU3C,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;CAIjC,CAAC"}