bitgo
Version:
BitGo JavaScript SDK
138 lines • 17.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const sinon = require("sinon");
const nock = require("nock");
const sdk_core_1 = require("@bitgo/sdk-core");
const sdk_test_1 = require("@bitgo/sdk-test");
const src_1 = require("../../../src");
nock.disableNetConnect();
describe('PrebuildAndSign', function () {
const bitgo = sdk_test_1.TestBitGo.decorate(src_1.BitGo, { env: 'test' });
const bgUrl = sdk_core_1.Environments[bitgo.getEnv()].uri;
before(async function () {
bitgo.initializeTestVars();
});
afterEach(function () {
sinon.restore();
});
after(async function () {
nock.cleanAll();
});
describe('Account Based MultiSig Hot Wallets', function () {
const coin = 'hteth';
const walletId = '65f060a22df7cd8a42958441d4e90a45';
const wallet = new sdk_core_1.Wallet(bitgo, bitgo.coin(coin), { id: walletId, coin, multisigType: 'on-chain' });
it('should validate build with user params', async function () {
nock(bgUrl)
.post(`/api/v2/${coin}/wallet/${walletId}/tx/build`)
.reply(200, {
feeInfo: {
date: '2025-03-11T16:54:31.174Z',
gasPrice: '2431332',
baseFee: '1431332',
gasUsedRatio: '0.847974014624559',
safeLowMinerTip: '1000000',
normalMinerTip: '1000000',
standardMinerTip: '1000000',
fastestMinerTip: '1000000',
ludicrousMinerTip: '1000000',
},
eip1559: {
maxPriorityFeePerGas: '1150000',
maxFeePerGas: '4012664',
},
recipients: [
{
address: '0xe33e8728f320ccd98af20b19b333857ad2325f07',
amount: '1000000000000000',
},
],
nextContractSequenceId: 21,
gasLimit: 200000,
isBatch: false,
coin: 'hteth',
buildParams: {
recipients: [
{
address: '0xe33e872',
amount: '1000000',
},
],
},
});
sinon.stub(wallet, 'getKeychainsAndValidatePassphrase').resolves([]);
await wallet
.prebuildAndSignTransaction({
recipients: [
{
address: '0xe33e872',
amount: '1000000',
},
],
})
.should.be.rejectedWith(`normal transaction amount in txPrebuild received from BitGo servers does not match txParams supplied by client`);
});
it('should validate that transaction is going to batcher for multiple recepients', async function () {
nock(bgUrl)
.post(`/api/v2/${coin}/wallet/${walletId}/tx/build`)
.reply(200, {
feeInfo: {
date: '2025-03-12T18:38:11.627Z',
gasPrice: '22051229178',
baseFee: '21051229178',
gasUsedRatio: '0.055718833333333335',
safeLowMinerTip: '1000000000',
normalMinerTip: '1250000000',
standardMinerTip: '1250000000',
fastestMinerTip: '1503782862',
ludicrousMinerTip: '1503782862',
},
eip1559: {
maxPriorityFeePerGas: '1437500000',
maxFeePerGas: '43539958356',
},
recipients: [
{
address: '0xc1b7e7cc1ecafbfd0771a5eb5454ab5b0356980d',
amount: '3000000000000000',
data: '0xc00c4e9e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000002669c843ef62adeff9915a36349ce2542f08d9760000000000000000000000003669c843ef62adeff9915a36349ce2542f08d976000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000038d7ea4c68000',
},
],
nextContractSequenceId: 22,
gasLimit: 200000,
isBatch: true,
coin: 'hteth',
buildParams: {
comment: '',
recipients: [
{
address: '0x2669c843ef62AdEFF9915a36349cE2542F08D976',
amount: '2000000000000000',
},
{
address: '0x3669c843ef62AdEFF9915a36349cE2542F08D976',
amount: '1000000000000000',
},
],
},
});
sinon.stub(wallet, 'getKeychainsAndValidatePassphrase').resolves([]);
await wallet
.prebuildAndSignTransaction({
comment: '',
recipients: [
{
address: '0x2669c843ef62AdEFF9915a36349cE2542F08D976',
amount: '1000000000000000',
},
{
address: '0x3669c843ef62AdEFF9915a36349cE2542F08D976',
amount: '1000000000000000',
},
],
})
.should.be.rejectedWith(`batch transaction amount in txPrebuild received from BitGo servers does not match txParams supplied by client`);
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlYnVpbGRBbmRTaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC92Mi91bml0L1ByZWJ1aWxkQW5kU2lnbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtCQUErQjtBQUMvQiw2QkFBOEI7QUFFOUIsOENBQXVEO0FBQ3ZELDhDQUF3RDtBQUV4RCxzQ0FBcUM7QUFFckMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7QUFFekIsUUFBUSxDQUFDLGlCQUFpQixFQUFFO0lBQzFCLE1BQU0sS0FBSyxHQUF1QixvQkFBUyxDQUFDLFFBQVEsQ0FBQyxXQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3RSxNQUFNLEtBQUssR0FBVyx1QkFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUV2RCxNQUFNLENBQUMsS0FBSztRQUNWLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDO1FBQ1IsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsb0NBQW9DLEVBQUU7UUFDN0MsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLGtDQUFrQyxDQUFDO1FBQ3BELE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRXJHLEVBQUUsQ0FBQyx3Q0FBd0MsRUFB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LElBQUksQ0FBQyxNQUFhLEVBQUUsbUNBQW1DLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFNUUsTUFBTSxNQUFNO2lCQUNULDBCQUEwQixDQUFDO2dCQUMxQixPQUFPLEVBQUUsRUFBRTtnQkFDWCxVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsT0FBTyxFQUFFLDRDQUE0Qzt3QkFDckQsTUFBTSxFQUFFLGtCQUFrQjtxQkFDM0I7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLDRDQUE0Qzt3QkFDckQsTUFBTSxFQUFFLGtCQUFrQjtxQkFDM0I7aUJBQ0Y7YUFDRixDQUFDO2lCQUNELE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUNyQiwrR0FBK0csQ0FDaEgsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuXG5pbXBvcnQgeyBFbnZpcm9ubWVudHMsIFdhbGxldCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUZXN0YWJsZUJHLCBUZXN0Qml0R28gfSBmcm9tICdAYml0Z28vc2RrLXRlc3QnO1xuXG5pbXBvcnQgeyBCaXRHbyB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5cbm5vY2suZGlzYWJsZU5ldENvbm5lY3QoKTtcblxuZGVzY3JpYmUoJ1ByZWJ1aWxkQW5kU2lnbicsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgYml0Z286IFRlc3RhYmxlQkcgJiBCaXRHbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHbywgeyBlbnY6ICd0ZXN0JyB9KTtcbiAgY29uc3QgYmdVcmw6IHN0cmluZyA9IEVudmlyb25tZW50c1tiaXRnby5nZXRFbnYoKV0udXJpO1xuXG4gIGJlZm9yZShhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2lub24ucmVzdG9yZSgpO1xuICB9KTtcblxuICBhZnRlcihhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgbm9jay5jbGVhbkFsbCgpO1xuICB9KTtcblxuICBkZXNjcmliZSgnQWNjb3VudCBCYXNlZCBNdWx0aVNpZyBIb3QgV2FsbGV0cycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBjb2luID0gJ2h0ZXRoJztcbiAgICBjb25zdCB3YWxsZXRJZCA9ICc2NWYwNjBhMjJkZjdjZDhhNDI5NTg0NDFkNGU5MGE0NSc7XG4gICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldChiaXRnbywgYml0Z28uY29pbihjb2luKSwgeyBpZDogd2FsbGV0SWQsIGNvaW4sIG11bHRpc2lnVHlwZTogJ29uLWNoYWluJyB9KTtcblxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYnVpbGQgd2l0aCB1c2VyIHBhcmFtcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2soYmdVcmwpXG4gICAgICAgIC5wb3N0KGAvYXBpL3YyLyR7Y29pbn0vd2FsbGV0LyR7d2FsbGV0SWR9L3R4L2J1aWxkYClcbiAgICAgICAgLnJlcGx5KDIwMCwge1xuICAgICAgICAgIGZlZUluZm86IHtcbiAgICAgICAgICAgIGRhdGU6ICcyMDI1LTAzLTExVDE2OjU0OjMxLjE3NFonLFxuICAgICAgICAgICAgZ2FzUHJpY2U6ICcyNDMxMzMyJyxcbiAgICAgICAgICAgIGJhc2VGZWU6ICcxNDMxMzMyJyxcbiAgICAgICAgICAgIGdhc1VzZWRSYXRpbzogJzAuODQ3OTc0MDE0NjI0NTU5JyxcbiAgICAgICAgICAgIHNhZmVMb3dNaW5lclRpcDogJzEwMDAwMDAnLFxuICAgICAgICAgICAgbm9ybWFsTWluZXJUaXA6ICcxMDAwMDAwJyxcbiAgICAgICAgICAgIHN0YW5kYXJkTWluZXJUaXA6ICcxMDAwMDAwJyxcbiAgICAgICAgICAgIGZhc3Rlc3RNaW5lclRpcDogJzEwMDAwMDAnLFxuICAgICAgICAgICAgbHVkaWNyb3VzTWluZXJUaXA6ICcxMDAwMDAwJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVpcDE1NTk6IHtcbiAgICAgICAgICAgIG1heFByaW9yaXR5RmVlUGVyR2FzOiAnMTE1MDAwMCcsXG4gICAgICAgICAgICBtYXhGZWVQZXJHYXM6ICc0MDEyNjY0JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlY2lwaWVudHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYWRkcmVzczogJzB4ZTMzZTg3MjhmMzIwY2NkOThhZjIwYjE5YjMzMzg1N2FkMjMyNWYwNycsXG4gICAgICAgICAgICAgIGFtb3VudDogJzEwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIG5leHRDb250cmFjdFNlcXVlbmNlSWQ6IDIxLFxuICAgICAgICAgIGdhc0xpbWl0OiAyMDAwMDAsXG4gICAgICAgICAgaXNCYXRjaDogZmFsc2UsXG4gICAgICAgICAgY29pbjogJ2h0ZXRoJyxcbiAgICAgICAgICBidWlsZFBhcmFtczoge1xuICAgICAgICAgICAgcmVjaXBpZW50czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJzB4ZTMzZTg3MicsXG4gICAgICAgICAgICAgICAgYW1vdW50OiAnMTAwMDAwMCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgc2lub24uc3R1Yih3YWxsZXQgYXMgYW55LCAnZ2V0S2V5Y2hhaW5zQW5kVmFsaWRhdGVQYXNzcGhyYXNlJykucmVzb2x2ZXMoW10pO1xuXG4gICAgICBhd2FpdCB3YWxsZXRcbiAgICAgICAgLnByZWJ1aWxkQW5kU2lnblRyYW5zYWN0aW9uKHtcbiAgICAgICAgICByZWNpcGllbnRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGFkZHJlc3M6ICcweGUzM2U4NzInLFxuICAgICAgICAgICAgICBhbW91bnQ6ICcxMDAwMDAwJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSlcbiAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoXG4gICAgICAgICAgYG5vcm1hbCB0cmFuc2FjdGlvbiBhbW91bnQgaW4gdHhQcmVidWlsZCByZWNlaXZlZCBmcm9tIEJpdEdvIHNlcnZlcnMgZG9lcyBub3QgbWF0Y2ggdHhQYXJhbXMgc3VwcGxpZWQgYnkgY2xpZW50YFxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSB0aGF0IHRyYW5zYWN0aW9uIGlzIGdvaW5nIHRvIGJhdGNoZXIgZm9yIG11bHRpcGxlIHJlY2VwaWVudHMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBub2NrKGJnVXJsKVxuICAgICAgICAucG9zdChgL2FwaS92Mi8ke2NvaW59L3dhbGxldC8ke3dhbGxldElkfS90eC9idWlsZGApXG4gICAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgICBmZWVJbmZvOiB7XG4gICAgICAgICAgICBkYXRlOiAnMjAyNS0wMy0xMlQxODozODoxMS42MjdaJyxcbiAgICAgICAgICAgIGdhc1ByaWNlOiAnMjIwNTEyMjkxNzgnLFxuICAgICAgICAgICAgYmFzZUZlZTogJzIxMDUxMjI5MTc4JyxcbiAgICAgICAgICAgIGdhc1VzZWRSYXRpbzogJzAuMDU1NzE4ODMzMzMzMzMzMzM1JyxcbiAgICAgICAgICAgIHNhZmVMb3dNaW5lclRpcDogJzEwMDAwMDAwMDAnLFxuICAgICAgICAgICAgbm9ybWFsTWluZXJUaXA6ICcxMjUwMDAwMDAwJyxcbiAgICAgICAgICAgIHN0YW5kYXJkTWluZXJUaXA6ICcxMjUwMDAwMDAwJyxcbiAgICAgICAgICAgIGZhc3Rlc3RNaW5lclRpcDogJzE1MDM3ODI4NjInLFxuICAgICAgICAgICAgbHVkaWNyb3VzTWluZXJUaXA6ICcxNTAzNzgyODYyJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVpcDE1NTk6IHtcbiAgICAgICAgICAgIG1heFByaW9yaXR5RmVlUGVyR2FzOiAnMTQzNzUwMDAwMCcsXG4gICAgICAgICAgICBtYXhGZWVQZXJHYXM6ICc0MzUzOTk1ODM1NicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWNpcGllbnRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGFkZHJlc3M6ICcweGMxYjdlN2NjMWVjYWZiZmQwNzcxYTVlYjU0NTRhYjViMDM1Njk4MGQnLFxuICAgICAgICAgICAgICBhbW91bnQ6ICczMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICAgICAgZGF0YTogJzB4YzAwYzRlOWUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNjY5Yzg0M2VmNjJhZGVmZjk5MTVhMzYzNDljZTI1NDJmMDhkOTc2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzY2OWM4NDNlZjYyYWRlZmY5OTE1YTM2MzQ5Y2UyNTQyZjA4ZDk3NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOGQ3ZWE0YzY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzhkN2VhNGM2ODAwMCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbmV4dENvbnRyYWN0U2VxdWVuY2VJZDogMjIsXG4gICAgICAgICAgZ2FzTGltaXQ6IDIwMDAwMCxcbiAgICAgICAgICBpc0JhdGNoOiB0cnVlLFxuICAgICAgICAgIGNvaW46ICdodGV0aCcsXG4gICAgICAgICAgYnVpbGRQYXJhbXM6IHtcbiAgICAgICAgICAgIGNvbW1lbnQ6ICcnLFxuICAgICAgICAgICAgcmVjaXBpZW50czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJzB4MjY2OWM4NDNlZjYyQWRFRkY5OTE1YTM2MzQ5Y0UyNTQyRjA4RDk3NicsXG4gICAgICAgICAgICAgICAgYW1vdW50OiAnMjAwMDAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiAnMHgzNjY5Yzg0M2VmNjJBZEVGRjk5MTVhMzYzNDljRTI1NDJGMDhEOTc2JyxcbiAgICAgICAgICAgICAgICBhbW91bnQ6ICcxMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICBzaW5vbi5zdHViKHdhbGxldCBhcyBhbnksICdnZXRLZXljaGFpbnNBbmRWYWxpZGF0ZVBhc3NwaHJhc2UnKS5yZXNvbHZlcyhbXSk7XG5cbiAgICAgIGF3YWl0IHdhbGxldFxuICAgICAgICAucHJlYnVpbGRBbmRTaWduVHJhbnNhY3Rpb24oe1xuICAgICAgICAgIGNvbW1lbnQ6ICcnLFxuICAgICAgICAgIHJlY2lwaWVudHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYWRkcmVzczogJzB4MjY2OWM4NDNlZjYyQWRFRkY5OTE1YTM2MzQ5Y0UyNTQyRjA4RDk3NicsXG4gICAgICAgICAgICAgIGFtb3VudDogJzEwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYWRkcmVzczogJzB4MzY2OWM4NDNlZjYyQWRFRkY5OTE1YTM2MzQ5Y0UyNTQyRjA4RDk3NicsXG4gICAgICAgICAgICAgIGFtb3VudDogJzEwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aChcbiAgICAgICAgICBgYmF0Y2ggdHJhbnNhY3Rpb24gYW1vdW50IGluIHR4UHJlYnVpbGQgcmVjZWl2ZWQgZnJvbSBCaXRHbyBzZXJ2ZXJzIGRvZXMgbm90IG1hdGNoIHR4UGFyYW1zIHN1cHBsaWVkIGJ5IGNsaWVudGBcbiAgICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==