@bitgo/sdk-coin-tempo 1.6.1 → 1.8.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.
@@ -149,6 +149,59 @@ describe('Tempo Coin', function () {
149
149
  basecoin.isValidMemoId('00').should.equal(false);
150
150
  });
151
151
  });
152
+ describe('isWalletAddress', function () {
153
+ const baseAddress = '0x2476602c78e9a5e0563320c78878faa3952b256f';
154
+ it('should verify a plain address matching the base address', async function () {
155
+ const result = await basecoin.isWalletAddress({
156
+ address: baseAddress,
157
+ baseAddress,
158
+ coinSpecific: {},
159
+ });
160
+ result.should.equal(true);
161
+ });
162
+ it('should verify a memoId address whose base matches the wallet base address', async function () {
163
+ const result = await basecoin.isWalletAddress({
164
+ address: `${baseAddress}?memoId=8`,
165
+ baseAddress,
166
+ coinSpecific: {},
167
+ });
168
+ result.should.equal(true);
169
+ });
170
+ it('should verify using rootAddress when baseAddress is not provided', async function () {
171
+ const result = await basecoin.isWalletAddress({
172
+ address: `${baseAddress}?memoId=42`,
173
+ rootAddress: baseAddress,
174
+ coinSpecific: {},
175
+ });
176
+ result.should.equal(true);
177
+ });
178
+ it('should reject address with mismatched base address', async function () {
179
+ await basecoin
180
+ .isWalletAddress({
181
+ address: '0x0000000000000000000000000000000000000001?memoId=8',
182
+ baseAddress,
183
+ coinSpecific: {},
184
+ })
185
+ .should.be.rejectedWith(sdk_core_1.UnexpectedAddressError);
186
+ });
187
+ it('should reject an invalid address', async function () {
188
+ await basecoin
189
+ .isWalletAddress({
190
+ address: 'not-a-valid-address',
191
+ baseAddress,
192
+ coinSpecific: {},
193
+ })
194
+ .should.be.rejectedWith(sdk_core_1.InvalidAddressError);
195
+ });
196
+ it('should not require forwarderVersion (no forwarder contracts)', async function () {
197
+ const result = await basecoin.isWalletAddress({
198
+ address: `${baseAddress}?memoId=100`,
199
+ baseAddress,
200
+ coinSpecific: { forwarderVersion: undefined },
201
+ });
202
+ result.should.equal(true);
203
+ });
204
+ });
152
205
  describe('Testnet', function () {
153
206
  let testnetBasecoin;
154
207
  before(function () {
@@ -168,4 +221,4 @@ describe('Tempo Coin', function () {
168
221
  });
169
222
  });
170
223
  });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0M7QUFDeEMsNkNBQTBDO0FBQzFDLDRDQUEwQztBQUMxQyw4Q0FBMEQ7QUFDMUQsOENBQXFGO0FBRXJGLCtDQUFpQztBQUVqQyxRQUFRLENBQUMsWUFBWSxFQUFFO0lBQ3JCLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQVEsQ0FBQztJQUViLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLFNBQXVDLEVBQVEsRUFBRTtRQUNuRixLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQWdCLEVBQUUsRUFBRTtZQUM1Qyw2QkFBNkI7WUFDN0IsTUFBTSxlQUFlLEdBQThCO2dCQUNqRCxJQUFJO2dCQUNKLFFBQVEsRUFBRSxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWU7Z0JBQ3RELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUN4QztnQkFDUixRQUFRLEVBQUUsRUFBRTthQUNOLENBQUM7WUFDVCxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDO1FBQ0wsS0FBSyxHQUFHLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxZQUFZLENBQUMsT0FBTyxFQUFFLGFBQUssQ0FBQyxDQUFDO1FBQzdCLEtBQUssQ0FBQyxrQkFBa0IsRUFB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QUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUNsQixJQUFJLGVBQWUsQ0FBQztRQUVwQixNQUFNLENBQUM7WUFDTCxZQUFZLENBQUMsUUFBUSxFQUFFLGVBQU0sQ0FBQyxDQUFDO1lBQy9CLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHFDQUFxQyxFQUFFO1lBQ3hDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBTSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNkNBQTZDLEVBQUU7WUFDaEQsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEQsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDNUQsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsZ0RBQWdELEVBQUU7WUFDbkQsZUFBZSxDQUFDLGNBQWMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0csQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcG8gfSBmcm9tICcuLi8uLi9zcmMvdGVtcG8nO1xuaW1wb3J0IHsgVHRlbXBvIH0gZnJvbSAnLi4vLi4vc3JjL3R0ZW1wbyc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstYXBpJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQmFzZSwgSW52YWxpZEFkZHJlc3NFcnJvciwgSW52YWxpZE1lbW9JZEVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCAqIGFzIHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5kZXNjcmliZSgnVGVtcG8gQ29pbicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBiYXNlY29pbjtcblxuICBjb25zdCByZWdpc3RlckNvaW4gPSAobmFtZTogc3RyaW5nLCBjb2luQ2xhc3M6IHR5cGVvZiBUZW1wbyB8IHR5cGVvZiBUdGVtcG8pOiB2b2lkID0+IHtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIobmFtZSwgKGJpdGdvOiBCaXRHb0Jhc2UpID0+IHtcbiAgICAgIC8vIENyZWF0ZSBhIG1vY2sgc3RhdGljcyBjb2luXG4gICAgICBjb25zdCBtb2NrU3RhdGljc0NvaW46IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4gPSB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGZ1bGxOYW1lOiBuYW1lID09PSAndGVtcG8nID8gJ1RlbXBvJyA6ICdUZXN0bmV0IFRlbXBvJyxcbiAgICAgICAgbmV0d29yazoge1xuICAgICAgICAgIHR5cGU6IG5hbWUgPT09ICd0ZW1wbycgPyAnbWFpbm5ldCcgOiAndGVzdG5ldCcsXG4gICAgICAgIH0gYXMgYW55LFxuICAgICAgICBmZWF0dXJlczogW10sXG4gICAgICB9IGFzIGFueTtcbiAgICAgIHJldHVybiBjb2luQ2xhc3MuY3JlYXRlSW5zdGFuY2UoYml0Z28sIG1vY2tTdGF0aWNzQ29pbik7XG4gICAgfSk7XG4gIH07XG5cbiAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICdtb2NrJyB9KTtcbiAgICByZWdpc3RlckNvaW4oJ3RlbXBvJywgVGVtcG8pO1xuICAgIGJpdGdvLmluaXRpYWxpemVUZXN0VmFycygpO1xuICAgIGJhc2Vjb2luID0gYml0Z28uY29pbigndGVtcG8nKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbnN0YW50aWF0ZSB0aGUgY29pbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBiYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3RlbXBvJyk7XG4gICAgYmFzZWNvaW4uc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoVGVtcG8pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0aGUgY29ycmVjdCBjb2luIG5hbWUnLCBmdW5jdGlvbiAoKSB7XG4gICAgYmFzZWNvaW4uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ3RlbXBvJyk7XG4gICAgYmFzZWNvaW4uZ2V0RnVsbE5hbWUoKS5zaG91bGQuZXF1YWwoJ1RlbXBvJyk7XG4gICAgYmFzZWNvaW4uZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTYpO1xuICB9KTtcblxuICBkZXNjcmliZSgnQWRkcmVzcyBWYWxpZGF0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgcGxhaW4gRVZNIGFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmJykuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYWRkcmVzcyB3aXRoIG1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmY/bWVtb0lkPTgnKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD0wJykuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9MTIzNDUnKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBpbnZhbGlkIGFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCdpbnZhbGlkJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MTIzJykuc2hvdWxkLmVxdWFsKGZhbHNlKTsgLy8gVG9vIHNob3J0XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhZGRyZXNzIHdpdGggaW52YWxpZCBtZW1vSWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD1hYmMnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9LTEnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9MS41Jykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmY/bWVtb0lkPTAxJykuc2hvdWxkLmVxdWFsKGZhbHNlKTsgLy8gTGVhZGluZyB6ZXJvXG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD0nKS5zaG91bGQuZXF1YWwoZmFsc2UpOyAvLyBFbXB0eSBtZW1vSWRcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGFkZHJlc3Mgd2l0aCB1bmtub3duIHF1ZXJ5IHBhcmFtZXRlcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP2ludmFsaWQ9MTIzJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmY/Zm9vPWJhcicpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhZGRyZXNzIHdpdGggbXVsdGlwbGUgbWVtb0lkIHBhcmFtZXRlcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD0xJm1lbW9JZD0yJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGFkZHJlc3Mgd2l0aCBleHRyYSBxdWVyeSBwYXJhbWV0ZXJzIGJlc2lkZXMgbWVtb0lkJywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9MSZmb289YmFyJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldEFkZHJlc3NEZXRhaWxzJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgZ2V0IGFkZHJlc3MgZGV0YWlscyB3aXRob3V0IG1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gYmFzZWNvaW4uZ2V0QWRkcmVzc0RldGFpbHMoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2ZicpO1xuICAgICAgYWRkcmVzc0RldGFpbHMuYWRkcmVzcy5zaG91bGQuZXF1YWwoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2ZicpO1xuICAgICAgYWRkcmVzc0RldGFpbHMuYmFzZUFkZHJlc3Muc2hvdWxkLmVxdWFsKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmYnKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QoYWRkcmVzc0RldGFpbHMubWVtb0lkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IGFkZHJlc3MgZGV0YWlscyB3aXRoIG1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gYmFzZWNvaW4uZ2V0QWRkcmVzc0RldGFpbHMoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9OCcpO1xuICAgICAgYWRkcmVzc0RldGFpbHMuYWRkcmVzcy5zaG91bGQuZXF1YWwoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9OCcpO1xuICAgICAgYWRkcmVzc0RldGFpbHMuYmFzZUFkZHJlc3Muc2hvdWxkLmVxdWFsKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmYnKTtcbiAgICAgIGFkZHJlc3NEZXRhaWxzLm1lbW9JZC5zaG91bGQuZXF1YWwoJzgnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gaW52YWxpZCBtZW1vSWQgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICgoKSA9PiBiYXNlY29pbi5nZXRBZGRyZXNzRGV0YWlscygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD1hYmMnKSkuc2hvdWxkLnRocm93KFxuICAgICAgICBJbnZhbGlkTWVtb0lkRXJyb3JcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IG9uIG11bHRpcGxlIG1lbW9JZCBhZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgICAgKCgpID0+IGJhc2Vjb2luLmdldEFkZHJlc3NEZXRhaWxzKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmY/bWVtb0lkPTEmbWVtb0lkPTInKSkuc2hvdWxkLnRocm93KFxuICAgICAgICBJbnZhbGlkQWRkcmVzc0Vycm9yXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiB1bmtub3duIHF1ZXJ5IHBhcmFtZXRlcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAoKCkgPT4gYmFzZWNvaW4uZ2V0QWRkcmVzc0RldGFpbHMoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9pbnZhbGlkPTgnKSkuc2hvdWxkLnRocm93KFxuICAgICAgICBJbnZhbGlkQWRkcmVzc0Vycm9yXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiBlbXB0eSBtZW1vSWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAoKCkgPT4gYmFzZWNvaW4uZ2V0QWRkcmVzc0RldGFpbHMoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9JykpLnNob3VsZC50aHJvdyhcbiAgICAgICAgSW52YWxpZEFkZHJlc3NFcnJvclxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZXh0cmEgcXVlcnkgcGFyYW1ldGVycyBiZXNpZGVzIG1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICgoKSA9PiBiYXNlY29pbi5nZXRBZGRyZXNzRGV0YWlscygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD0xJmZvbz1iYXInKSkuc2hvdWxkLnRocm93KFxuICAgICAgICBJbnZhbGlkQWRkcmVzc0Vycm9yXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaXNWYWxpZE1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGNvcnJlY3QgbWVtb0lkcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRNZW1vSWQoJzAnKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkTWVtb0lkKCcxJykuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZE1lbW9JZCgnMTIzNDUnKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkTWVtb0lkKCc5OTk5OTk5OTk5OTknKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBpbnZhbGlkIG1lbW9JZHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkTWVtb0lkKCcnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZE1lbW9JZCgnLTEnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZE1lbW9JZCgnMS41Jykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRNZW1vSWQoJ2FiYycpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkTWVtb0lkKCcwMScpLnNob3VsZC5lcXVhbChmYWxzZSk7IC8vIExlYWRpbmcgemVyb1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZE1lbW9JZCgnMDAnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnVGVzdG5ldCcsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgdGVzdG5ldEJhc2Vjb2luO1xuXG4gICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlZ2lzdGVyQ29pbigndHRlbXBvJywgVHRlbXBvKTtcbiAgICAgIHRlc3RuZXRCYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3R0ZW1wbycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBpbnN0YW50aWF0ZSB0aGUgdGVzdG5ldCBjb2luJywgZnVuY3Rpb24gKCkge1xuICAgICAgdGVzdG5ldEJhc2Vjb2luLnNob3VsZC5iZS5hbi5pbnN0YW5jZW9mKFR0ZW1wbyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgY29ycmVjdCB0ZXN0bmV0IGNvaW4gbmFtZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRlc3RuZXRCYXNlY29pbi5nZXRDaGFpbigpLnNob3VsZC5lcXVhbCgndHRlbXBvJyk7XG4gICAgICB0ZXN0bmV0QmFzZWNvaW4uZ2V0RnVsbE5hbWUoKS5zaG91bGQuZXF1YWwoJ1Rlc3RuZXQgVGVtcG8nKTtcbiAgICAgIHRlc3RuZXRCYXNlY29pbi5nZXRCYXNlRmFjdG9yKCkuc2hvdWxkLmVxdWFsKDFlNik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGFkZHJlc3Mgd2l0aCBtZW1vSWQgb24gdGVzdG5ldCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRlc3RuZXRCYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD04Jykuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0M7QUFDeEMsNkNBQTBDO0FBQzFDLDRDQUEwQztBQUMxQyw4Q0FBMEQ7QUFDMUQsOENBQTZHO0FBRTdHLCtDQUFpQztBQUVqQyxRQUFRLENBQUMsWUFBWSxFQUFFO0lBQ3JCLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQVEsQ0FBQztJQUViLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLFNBQXVDLEVBQVEsRUFBRTtRQUNuRixLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQWdCLEVBQUUsRUFBRTtZQUM1Qyw2QkFBNkI7WUFDN0IsTUFBTSxlQUFlLEdBQThCO2dCQUNqRCxJQUFJO2dCQUNKLFFBQVEsRUFBRSxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWU7Z0JBQ3RELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUN4QztnQkFDUixRQUFRLEVBQUUsRUFBRTthQUNOLENBQUM7WUFDVCxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDO1FBQ0wsS0FBSyxHQUFHLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxZQUFZLENBQUMsT0FBTyxFQUFFLGFBQUssQ0FBQyxDQUFDO1FBQzdCLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDZCQUE2QixFQUFFO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRTtRQUN4QyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtRQUM3QixFQUFFLENBQUMsbUNBQW1DLEVBQUU7WUFDdEMsUUFBUSxDQUFDLGNBQWMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekYsUUFBUSxDQUFDLGNBQWMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMscUNBQXFDLEVBQUU7WUFDeEMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEcsUUFBUSxDQUFDLGNBQWMsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEcsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUU7WUFDcEMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRCxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDJDQUEyQyxFQUFFO1lBQzlDLFFBQVEsQ0FBQyxjQUFjLENBQUMsdURBQXVELENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JHLFFBQVEsQ0FBQyxjQUFjLENBQUMsc0RBQXNELENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BHLFFBQVEsQ0FBQyxjQUFjLENBQUMsdURBQXVELENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JHLFFBQVEsQ0FBQyxjQUFjLENBQUMsc0RBQXNELENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZTtZQUNwSCxRQUFRLENBQUMsY0FBYyxDQUFDLG9EQUFvRCxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWU7UUFDcEgsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMscURBQXFELEVBQUU7WUFDeEQsUUFBUSxDQUFDLGNBQWMsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEcsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsdURBQXVELEVBQUU7WUFDMUQsUUFBUSxDQUFDLGNBQWMsQ0FBQyw4REFBOEQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUcsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsa0VBQWtFLEVBQUU7WUFDckUsUUFBUSxDQUFDLGNBQWMsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0csQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtRQUM1QixFQUFFLENBQUMsMkNBQTJDLEVBQUU7WUFDOUMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDaEcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDbEYsY0FBYyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDdEYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHdDQUF3QyxFQUFFO1lBQzNDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1lBQ3pHLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1lBQzNGLGNBQWMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQ3RGLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRTtZQUMzQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyx1REFBdUQsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDdEcsNkJBQWtCLENBQ25CLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRTtZQUM1QyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyw4REFBOEQsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDN0csOEJBQW1CLENBQ3BCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRTtZQUM3QyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxzREFBc0QsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDckcsOEJBQW1CLENBQ3BCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRTtZQUNqQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDbkcsOEJBQW1CLENBQ3BCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx1REFBdUQsRUFBRTtZQUMxRCxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDNUcsOEJBQW1CLENBQ3BCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGVBQWUsRUFBRTtRQUN4QixFQUFFLENBQUMsaUNBQWlDLEVBQUU7WUFDcEMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkQsUUFBUSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLCtCQUErQixFQUFFO1lBQ2xDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRCxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlO1lBQ2pFLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGlCQUFpQixFQUFFO1FBQzFCLE1BQU0sV0FBVyxHQUFHLDRDQUE0QyxDQUFDO1FBRWpFLEVBQUUsQ0FBQyx5REFBeUQsRUFBRSxLQUFLO1lBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLGVBQWUsQ0FBQztnQkFDNUMsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLFdBQVc7Z0JBQ1gsWUFBWSxFQUFFLEVBQUU7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMkVBQTJFLEVBQUUsS0FBSztZQUNuRixNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxlQUFlLENBQUM7Z0JBQzVDLE9BQU8sRUFBRSxHQUFHLFdBQVcsV0FBVztnQkFDbEMsV0FBVztnQkFDWCxZQUFZLEVBQUUsRUFBRTthQUNqQixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxrRUFBa0UsRUFBRSxLQUFLO1lBQzFFLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLGVBQWUsQ0FBQztnQkFDNUMsT0FBTyxFQUFFLEdBQUcsV0FBVyxZQUFZO2dCQUNuQyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsWUFBWSxFQUFFLEVBQUU7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsb0RBQW9ELEVBQUUsS0FBSztZQUM1RCxNQUFNLFFBQVE7aUJBQ1gsZUFBZSxDQUFDO2dCQUNmLE9BQU8sRUFBRSxxREFBcUQ7Z0JBQzlELFdBQVc7Z0JBQ1gsWUFBWSxFQUFFLEVBQUU7YUFDakIsQ0FBQztpQkFDRCxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxpQ0FBc0IsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLEtBQUs7WUFDMUMsTUFBTSxRQUFRO2lCQUNYLGVBQWUsQ0FBQztnQkFDZixPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixXQUFXO2dCQUNYLFlBQVksRUFBRSxFQUFFO2FBQ2pCLENBQUM7aUJBQ0QsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsOEJBQW1CLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw4REFBOEQsRUFBRSxLQUFLO1lBQ3RFLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLGVBQWUsQ0FBQztnQkFDNUMsT0FBTyxFQUFFLEdBQUcsV0FBVyxhQUFhO2dCQUNwQyxXQUFXO2dCQUNYLFlBQVksRUFBRSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRTthQUM5QyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUNsQixJQUFJLGVBQWUsQ0FBQztRQUVwQixNQUFNLENBQUM7WUFDTCxZQUFZLENBQUMsUUFBUSxFQUFFLGVBQU0sQ0FBQyxDQUFDO1lBQy9CLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHFDQUFxQyxFQUFFO1lBQ3hDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBTSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNkNBQTZDLEVBQUU7WUFDaEQsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEQsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDNUQsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsZ0RBQWdELEVBQUU7WUFDbkQsZUFBZSxDQUFDLGNBQWMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0csQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcG8gfSBmcm9tICcuLi8uLi9zcmMvdGVtcG8nO1xuaW1wb3J0IHsgVHRlbXBvIH0gZnJvbSAnLi4vLi4vc3JjL3R0ZW1wbyc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstYXBpJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQmFzZSwgSW52YWxpZEFkZHJlc3NFcnJvciwgSW52YWxpZE1lbW9JZEVycm9yLCBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCAqIGFzIHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5kZXNjcmliZSgnVGVtcG8gQ29pbicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBiYXNlY29pbjtcblxuICBjb25zdCByZWdpc3RlckNvaW4gPSAobmFtZTogc3RyaW5nLCBjb2luQ2xhc3M6IHR5cGVvZiBUZW1wbyB8IHR5cGVvZiBUdGVtcG8pOiB2b2lkID0+IHtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIobmFtZSwgKGJpdGdvOiBCaXRHb0Jhc2UpID0+IHtcbiAgICAgIC8vIENyZWF0ZSBhIG1vY2sgc3RhdGljcyBjb2luXG4gICAgICBjb25zdCBtb2NrU3RhdGljc0NvaW46IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4gPSB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGZ1bGxOYW1lOiBuYW1lID09PSAndGVtcG8nID8gJ1RlbXBvJyA6ICdUZXN0bmV0IFRlbXBvJyxcbiAgICAgICAgbmV0d29yazoge1xuICAgICAgICAgIHR5cGU6IG5hbWUgPT09ICd0ZW1wbycgPyAnbWFpbm5ldCcgOiAndGVzdG5ldCcsXG4gICAgICAgIH0gYXMgYW55LFxuICAgICAgICBmZWF0dXJlczogW10sXG4gICAgICB9IGFzIGFueTtcbiAgICAgIHJldHVybiBjb2luQ2xhc3MuY3JlYXRlSW5zdGFuY2UoYml0Z28sIG1vY2tTdGF0aWNzQ29pbik7XG4gICAgfSk7XG4gIH07XG5cbiAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICdtb2NrJyB9KTtcbiAgICByZWdpc3RlckNvaW4oJ3RlbXBvJywgVGVtcG8pO1xuICAgIGJpdGdvLmluaXRpYWxpemVUZXN0VmFycygpO1xuICAgIGJhc2Vjb2luID0gYml0Z28uY29pbigndGVtcG8nKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbnN0YW50aWF0ZSB0aGUgY29pbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBiYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3RlbXBvJyk7XG4gICAgYmFzZWNvaW4uc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoVGVtcG8pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0aGUgY29ycmVjdCBjb2luIG5hbWUnLCBmdW5jdGlvbiAoKSB7XG4gICAgYmFzZWNvaW4uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ3RlbXBvJyk7XG4gICAgYmFzZWNvaW4uZ2V0RnVsbE5hbWUoKS5zaG91bGQuZXF1YWwoJ1RlbXBvJyk7XG4gICAgYmFzZWNvaW4uZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTYpO1xuICB9KTtcblxuICBkZXNjcmliZSgnQWRkcmVzcyBWYWxpZGF0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgcGxhaW4gRVZNIGFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmJykuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYWRkcmVzcyB3aXRoIG1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmY/bWVtb0lkPTgnKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD0wJykuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9MTIzNDUnKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBpbnZhbGlkIGFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCdpbnZhbGlkJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MTIzJykuc2hvdWxkLmVxdWFsKGZhbHNlKTsgLy8gVG9vIHNob3J0XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhZGRyZXNzIHdpdGggaW52YWxpZCBtZW1vSWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD1hYmMnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9LTEnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9MS41Jykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmY/bWVtb0lkPTAxJykuc2hvdWxkLmVxdWFsKGZhbHNlKTsgLy8gTGVhZGluZyB6ZXJvXG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD0nKS5zaG91bGQuZXF1YWwoZmFsc2UpOyAvLyBFbXB0eSBtZW1vSWRcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGFkZHJlc3Mgd2l0aCB1bmtub3duIHF1ZXJ5IHBhcmFtZXRlcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP2ludmFsaWQ9MTIzJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmY/Zm9vPWJhcicpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhZGRyZXNzIHdpdGggbXVsdGlwbGUgbWVtb0lkIHBhcmFtZXRlcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkQWRkcmVzcygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD0xJm1lbW9JZD0yJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGFkZHJlc3Mgd2l0aCBleHRyYSBxdWVyeSBwYXJhbWV0ZXJzIGJlc2lkZXMgbWVtb0lkJywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9MSZmb289YmFyJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldEFkZHJlc3NEZXRhaWxzJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgZ2V0IGFkZHJlc3MgZGV0YWlscyB3aXRob3V0IG1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gYmFzZWNvaW4uZ2V0QWRkcmVzc0RldGFpbHMoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2ZicpO1xuICAgICAgYWRkcmVzc0RldGFpbHMuYWRkcmVzcy5zaG91bGQuZXF1YWwoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2ZicpO1xuICAgICAgYWRkcmVzc0RldGFpbHMuYmFzZUFkZHJlc3Muc2hvdWxkLmVxdWFsKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmYnKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QoYWRkcmVzc0RldGFpbHMubWVtb0lkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IGFkZHJlc3MgZGV0YWlscyB3aXRoIG1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFkZHJlc3NEZXRhaWxzID0gYmFzZWNvaW4uZ2V0QWRkcmVzc0RldGFpbHMoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9OCcpO1xuICAgICAgYWRkcmVzc0RldGFpbHMuYWRkcmVzcy5zaG91bGQuZXF1YWwoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9OCcpO1xuICAgICAgYWRkcmVzc0RldGFpbHMuYmFzZUFkZHJlc3Muc2hvdWxkLmVxdWFsKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmYnKTtcbiAgICAgIGFkZHJlc3NEZXRhaWxzLm1lbW9JZC5zaG91bGQuZXF1YWwoJzgnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gaW52YWxpZCBtZW1vSWQgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICgoKSA9PiBiYXNlY29pbi5nZXRBZGRyZXNzRGV0YWlscygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD1hYmMnKSkuc2hvdWxkLnRocm93KFxuICAgICAgICBJbnZhbGlkTWVtb0lkRXJyb3JcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IG9uIG11bHRpcGxlIG1lbW9JZCBhZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgICAgKCgpID0+IGJhc2Vjb2luLmdldEFkZHJlc3NEZXRhaWxzKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmY/bWVtb0lkPTEmbWVtb0lkPTInKSkuc2hvdWxkLnRocm93KFxuICAgICAgICBJbnZhbGlkQWRkcmVzc0Vycm9yXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiB1bmtub3duIHF1ZXJ5IHBhcmFtZXRlcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAoKCkgPT4gYmFzZWNvaW4uZ2V0QWRkcmVzc0RldGFpbHMoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9pbnZhbGlkPTgnKSkuc2hvdWxkLnRocm93KFxuICAgICAgICBJbnZhbGlkQWRkcmVzc0Vycm9yXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiBlbXB0eSBtZW1vSWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAoKCkgPT4gYmFzZWNvaW4uZ2V0QWRkcmVzc0RldGFpbHMoJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zj9tZW1vSWQ9JykpLnNob3VsZC50aHJvdyhcbiAgICAgICAgSW52YWxpZEFkZHJlc3NFcnJvclxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gZXh0cmEgcXVlcnkgcGFyYW1ldGVycyBiZXNpZGVzIG1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICgoKSA9PiBiYXNlY29pbi5nZXRBZGRyZXNzRGV0YWlscygnMHgyNDc2NjAyYzc4ZTlhNWUwNTYzMzIwYzc4ODc4ZmFhMzk1MmIyNTZmP21lbW9JZD0xJmZvbz1iYXInKSkuc2hvdWxkLnRocm93KFxuICAgICAgICBJbnZhbGlkQWRkcmVzc0Vycm9yXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaXNWYWxpZE1lbW9JZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGNvcnJlY3QgbWVtb0lkcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRNZW1vSWQoJzAnKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkTWVtb0lkKCcxJykuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZE1lbW9JZCgnMTIzNDUnKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkTWVtb0lkKCc5OTk5OTk5OTk5OTknKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBpbnZhbGlkIG1lbW9JZHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkTWVtb0lkKCcnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZE1lbW9JZCgnLTEnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZE1lbW9JZCgnMS41Jykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRNZW1vSWQoJ2FiYycpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgICBiYXNlY29pbi5pc1ZhbGlkTWVtb0lkKCcwMScpLnNob3VsZC5lcXVhbChmYWxzZSk7IC8vIExlYWRpbmcgemVyb1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZE1lbW9JZCgnMDAnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaXNXYWxsZXRBZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJhc2VBZGRyZXNzID0gJzB4MjQ3NjYwMmM3OGU5YTVlMDU2MzMyMGM3ODg3OGZhYTM5NTJiMjU2Zic7XG5cbiAgICBpdCgnc2hvdWxkIHZlcmlmeSBhIHBsYWluIGFkZHJlc3MgbWF0Y2hpbmcgdGhlIGJhc2UgYWRkcmVzcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJhc2Vjb2luLmlzV2FsbGV0QWRkcmVzcyh7XG4gICAgICAgIGFkZHJlc3M6IGJhc2VBZGRyZXNzLFxuICAgICAgICBiYXNlQWRkcmVzcyxcbiAgICAgICAgY29pblNwZWNpZmljOiB7fSxcbiAgICAgIH0pO1xuICAgICAgcmVzdWx0LnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmVyaWZ5IGEgbWVtb0lkIGFkZHJlc3Mgd2hvc2UgYmFzZSBtYXRjaGVzIHRoZSB3YWxsZXQgYmFzZSBhZGRyZXNzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYmFzZWNvaW4uaXNXYWxsZXRBZGRyZXNzKHtcbiAgICAgICAgYWRkcmVzczogYCR7YmFzZUFkZHJlc3N9P21lbW9JZD04YCxcbiAgICAgICAgYmFzZUFkZHJlc3MsXG4gICAgICAgIGNvaW5TcGVjaWZpYzoge30sXG4gICAgICB9KTtcbiAgICAgIHJlc3VsdC5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHZlcmlmeSB1c2luZyByb290QWRkcmVzcyB3aGVuIGJhc2VBZGRyZXNzIGlzIG5vdCBwcm92aWRlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJhc2Vjb2luLmlzV2FsbGV0QWRkcmVzcyh7XG4gICAgICAgIGFkZHJlc3M6IGAke2Jhc2VBZGRyZXNzfT9tZW1vSWQ9NDJgLFxuICAgICAgICByb290QWRkcmVzczogYmFzZUFkZHJlc3MsXG4gICAgICAgIGNvaW5TcGVjaWZpYzoge30sXG4gICAgICB9KTtcbiAgICAgIHJlc3VsdC5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhZGRyZXNzIHdpdGggbWlzbWF0Y2hlZCBiYXNlIGFkZHJlc3MnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBiYXNlY29pblxuICAgICAgICAuaXNXYWxsZXRBZGRyZXNzKHtcbiAgICAgICAgICBhZGRyZXNzOiAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxP21lbW9JZD04JyxcbiAgICAgICAgICBiYXNlQWRkcmVzcyxcbiAgICAgICAgICBjb2luU3BlY2lmaWM6IHt9LFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aChVbmV4cGVjdGVkQWRkcmVzc0Vycm9yKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgYWRkcmVzcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgIC5pc1dhbGxldEFkZHJlc3Moe1xuICAgICAgICAgIGFkZHJlc3M6ICdub3QtYS12YWxpZC1hZGRyZXNzJyxcbiAgICAgICAgICBiYXNlQWRkcmVzcyxcbiAgICAgICAgICBjb2luU3BlY2lmaWM6IHt9LFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aChJbnZhbGlkQWRkcmVzc0Vycm9yKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHJlcXVpcmUgZm9yd2FyZGVyVmVyc2lvbiAobm8gZm9yd2FyZGVyIGNvbnRyYWN0cyknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBiYXNlY29pbi5pc1dhbGxldEFkZHJlc3Moe1xuICAgICAgICBhZGRyZXNzOiBgJHtiYXNlQWRkcmVzc30/bWVtb0lkPTEwMGAsXG4gICAgICAgIGJhc2VBZGRyZXNzLFxuICAgICAgICBjb2luU3BlY2lmaWM6IHsgZm9yd2FyZGVyVmVyc2lvbjogdW5kZWZpbmVkIH0sXG4gICAgICB9KTtcbiAgICAgIHJlc3VsdC5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdUZXN0bmV0JywgZnVuY3Rpb24gKCkge1xuICAgIGxldCB0ZXN0bmV0QmFzZWNvaW47XG5cbiAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgcmVnaXN0ZXJDb2luKCd0dGVtcG8nLCBUdGVtcG8pO1xuICAgICAgdGVzdG5ldEJhc2Vjb2luID0gYml0Z28uY29pbigndHRlbXBvJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGluc3RhbnRpYXRlIHRoZSB0ZXN0bmV0IGNvaW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgICB0ZXN0bmV0QmFzZWNvaW4uc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoVHRlbXBvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBjb3JyZWN0IHRlc3RuZXQgY29pbiBuYW1lJywgZnVuY3Rpb24gKCkge1xuICAgICAgdGVzdG5ldEJhc2Vjb2luLmdldENoYWluKCkuc2hvdWxkLmVxdWFsKCd0dGVtcG8nKTtcbiAgICAgIHRlc3RuZXRCYXNlY29pbi5nZXRGdWxsTmFtZSgpLnNob3VsZC5lcXVhbCgnVGVzdG5ldCBUZW1wbycpO1xuICAgICAgdGVzdG5ldEJhc2Vjb2luLmdldEJhc2VGYWN0b3IoKS5zaG91bGQuZXF1YWwoMWU2KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYWRkcmVzcyB3aXRoIG1lbW9JZCBvbiB0ZXN0bmV0JywgZnVuY3Rpb24gKCkge1xuICAgICAgdGVzdG5ldEJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcweDI0NzY2MDJjNzhlOWE1ZTA1NjMzMjBjNzg4NzhmYWEzOTUyYjI1NmY/bWVtb0lkPTgnKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=