UNPKG

bitgo

Version:
1,398 lines • 143 kB
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
 * @prettier
 */
const nock = require("nock");
const sdk_core_1 = require("@bitgo/sdk-core");
module.exports.nockXrpRecovery = function nockXrpRecovery() {
    nock('https://s.altnet.rippletest.net:51234', { allowUnmocked: false })
        .post('/', {
        method: 'account_info',
        params: [
            {
                account: 'raGZWRkRBUWdQJsKYEzwXJNbCZMTqX56aA',
                strict: true,
                ledger_index: 'current',
                queue: true,
                signer_lists: true,
            },
        ],
    })
        .reply(200, {
        result: {
            account_data: {
                Account: 'raGZWRkRBUWdQJsKYEzwXJNbCZMTqX56aA',
                Balance: '9944000000',
                Flags: 1179648,
                LedgerEntryType: 'AccountRoot',
                OwnerCount: 5,
                PreviousTxnID: '82460E9FAF24F53388DC9CBA91934B3F82107148CD20BD26E80DF774323545C3',
                PreviousTxnLgrSeq: 396996,
                Sequence: 4,
                index: 'C676D324BA53FEDF601F7EAFBC88DAC5E7440FF491EBC54066ECDB61A2B2D1EC',
                signer_lists: [
                    {
                        Flags: 0,
                        LedgerEntryType: 'SignerList',
                        OwnerNode: '0000000000000000',
                        PreviousTxnID: '0E9BF2DBAA36539FA4CDB3FF8ABF5DC9A43859C33953385C9486AD63E451B2FC',
                        PreviousTxnLgrSeq: 396943,
                        SignerEntries: [
                            {
                                SignerEntry: {
                                    Account: 'raSYaBTfbeARRdacGBbs5tjA7XkyB1RC8x',
                                    SignerWeight: 1,
                                },
                            },
                            {
                                SignerEntry: {
                                    Account: 'rGevN87RpWBbdLxKCF4FAqWgRoSyMJA81f',
                                    SignerWeight: 1,
                                },
                            },
                            {
                                SignerEntry: {
                                    Account: 'rGmQHwvb5SZRbyhp4JBHdpRzSmgqADxPbE',
                                    SignerWeight: 1,
                                },
                            },
                        ],
                        SignerListID: 0,
                        SignerQuorum: 2,
                        index: 'A36A7ED6108FF7F871C0EC3CF573FE23CC9780436D64A2EE069A8F27E8D40471',
                    },
                ],
            },
            ledger_current_index: 397138,
            queue_data: {
                txn_count: 0,
            },
            status: 'success',
            validated: false,
        },
    })
        .post('/', { method: 'fee' })
        .reply(200, {
        result: {
            current_ledger_size: '0',
            current_queue_size: '0',
            drops: {
                base_fee: '10',
                median_fee: '5000',
                minimum_fee: '10',
                open_ledger_fee: '10',
            },
            expected_ledger_size: '51',
            ledger_current_index: 397138,
            levels: {
                median_level: '128000',
                minimum_level: '256',
                open_ledger_level: '256',
                reference_level: '256',
            },
            max_queue_size: '1020',
            status: 'success',
        },
    })
        .post('/', { method: 'server_info' })
        .reply(200, {
        result: {
            info: {
                build_version: '0.70.1',
                complete_ledgers: '386967-397137',
                hostid: 'HI',
                io_latency_ms: 1,
                last_close: {
                    converge_time_s: 1.999,
                    proposers: 4,
                },
                load_factor: 1,
                peers: 4,
                pubkey_node: 'n9KMmZw85d5erkaTv62Vz6SbDJSyeihAEB3jwnb3Bqnr2AydRVep',
                server_state: 'proposing',
                state_accounting: {
                    connected: {
                        duration_us: '4999941',
                        transitions: 1,
                    },
                    disconnected: {
                        duration_us: '1202712',
                        transitions: 1,
                    },
                    full: {
                        duration_us: '94064175867',
                        transitions: 1,
                    },
                    syncing: {
                        duration_us: '6116096',
                        transitions: 1,
                    },
                    tracking: {
                        duration_us: '3',
                        transitions: 1,
                    },
                },
                uptime: 94077,
                validated_ledger: {
                    age: 3,
                    base_fee_xrp: 0.00001,
                    hash: '918D326D224F8F49B07B02CD0A2207B7239BBFA824CF512F8D1D9DBCADC115E5',
                    reserve_base_xrp: 20,
                    reserve_inc_xrp: 5,
                    seq: 397137,
                },
                validation_quorum: 4,
            },
            status: 'success',
        },
    })
        .post('/', {
        method: 'account_lines',
        params: [
            {
                account: 'raGZWRkRBUWdQJsKYEzwXJNbCZMTqX56aA',
                ledger_index: 'validated',
            },
        ],
    })
        .reply(200, {
        result: {
            account: 'rMficzfw4t5iGu9hhB23eKwDjM879vJWTR',
            ledger_hash: 'E6F38D1D7B94153BF7FFC8D8CC1DF57D57151D26FC2EB7647B5631786B955EFF',
            ledger_index: 1848964,
            lines: [],
            validated: true,
        },
    });
};
const nockEthData = [
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
        },
        response: {
            status: '0',
            message: 'No transactions found',
            result: [],
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '100000000000000000',
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0x5df5a96b478bb1808140d87072143e60262e8670',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '2200000000000000000',
        },
    },
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0xba6d9d82cf2920c544b834b72f4c6d11a3ef3de6',
        },
        response: {
            status: '0',
            message: 'No transactions found',
            result: [],
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0xba6d9d82cf2920c544b834b72f4c6d11a3ef3de6',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '0',
        },
    },
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
        },
        response: {
            status: '0',
            message: 'No transactions found',
            result: [],
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '100000000000000000',
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0x5df5a96b478bb1808140d87072143e60262e8670',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '2200000000000000000',
        },
    },
    {
        params: {
            module: 'proxy',
            action: 'eth_call',
            to: '0x5df5a96b478bb1808140d87072143e60262e8670',
            data: 'a0b7967b',
            tag: 'latest',
        },
        response: {
            jsonrpc: '2.0',
            result: '0x0000000000000000000000000000000000000000000000000000000000000001',
            id: 1,
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '20000000000000000',
        },
    },
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
        },
        response: {
            status: '1',
            message: 'OK',
            result: [
                {
                    blockNumber: '26745364',
                    timeStamp: '1628778676',
                    hash: '0x41d589b7b12abfad4975f42e62d3b96de1eb9ca477f62b4d5a49b140c3fb6a21',
                    nonce: '4',
                    blockHash: '0x908c07cc1425e90a0d58e5cc1b109510e14097e04aae741f8de874bfd0f7d87b',
                    transactionIndex: '2',
                    from: '0x1ce43f2185de5734d3004dd0283f58eaec787e4a',
                    to: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
                    value: '20000000000000000',
                    gas: '21000',
                    gasPrice: '1000000000',
                    isError: '0',
                    txreceipt_status: '1',
                    input: '0x',
                    contractAddress: '',
                    cumulativeGasUsed: '357536',
                    gasUsed: '21000',
                    confirmations: '959',
                },
            ],
        },
    },
    {
        params: {
            module: 'account',
            action: 'txlist',
            address: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
        },
        response: {
            status: '1',
            message: 'OK',
            result: [
                {
                    blockNumber: '26745364',
                    timeStamp: '1628778676',
                    hash: '0x41d589b7b12abfad4975f42e62d3b96de1eb9ca477f62b4d5a49b140c3fb6a21',
                    nonce: '4',
                    blockHash: '0x908c07cc1425e90a0d58e5cc1b109510e14097e04aae741f8de874bfd0f7d87b',
                    transactionIndex: '2',
                    from: '0x1ce43f2185de5734d3004dd0283f58eaec787e4a',
                    to: '0xa1a88a502274073b1bc4fe06ea0f5fe77e151b91',
                    value: '20000000000000000',
                    gas: '21000',
                    gasPrice: '1000000000',
                    isError: '0',
                    txreceipt_status: '1',
                    input: '0x',
                    contractAddress: '',
                    cumulativeGasUsed: '357536',
                    gasUsed: '21000',
                    confirmations: '959',
                },
            ],
        },
    },
    {
        params: {
            module: 'account',
            action: 'tokenbalance',
            contractaddress: '0x4f96fe3b7a6cf9725f59d353f723c1bdb64ca6aa',
            address: '0xdf07117705a9f8dc4c2a78de66b7f1797dba9d4e',
            tag: 'latest',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '1000000000000000000',
        },
    },
    {
        params: {
            module: 'proxy',
            action: 'eth_call',
            to: '0xdf07117705a9f8dc4c2a78de66b7f1797dba9d4e',
            data: 'a0b7967b',
            tag: 'latest',
        },
        response: {
            jsonrpc: '2.0',
            result: '0x0000000000000000000000000000000000000000000000000000000000002a7f',
            id: 1,
        },
    },
    {
        params: {
            module: 'account',
            action: 'balance',
            address: '0xdf07117705a9f8dc4c2a78de66b7f1797dba9d4e',
        },
        response: {
            status: '1',
            message: 'OK',
            result: '9999999999999999928',
        },
    },
];
module.exports.nockEthLikeRecovery = function (bitgo, nockData = nockEthData) {
    let apiKey;
    if (sdk_core_1.Environments[bitgo.getEnv()].etherscanApiToken) {
        apiKey = sdk_core_1.Environments[bitgo.getEnv()].etherscanApiToken;
    }
    nockData.forEach((data) => {
        if (apiKey) {
            data.params.apiKey = apiKey;
        }
        data.params[`chainid`] = '560048';
        nock('https://api.etherscan.io/v2').get('/api').query(data.params).reply(200, data.response);
        data.params[`chainid`] = '80002';
        nock('https://api.etherscan.io/v2').get('/api').query(data.params).reply(200, data.response);
        data.params[`chainid`] = '97';
        nock('https://api.etherscan.io/v2').get('/api').query(data.params).reply(200, data.response);
    });
};
module.exports.nockVetRecovery = function (bitgo, baseAddress) {
    // nock for account balance
    const url = sdk_core_1.Environments[bitgo.getEnv()].vetNodeUrl;
    nock(url).get(`/accounts/${baseAddress}`).reply(200, {
        balance: '0x8ac7230489e80000',
        energy: '0x5969b539627800',
        hasCode: false,
    });
    nock(url).get('/blocks/best').reply(200, {
        number: 23107826,
        id: '0x016098f2a6779c3ad2bb52ef0a3f57c770af55a77bfa1b2837266f752118ad8d',
        size: 368,
        parentID: '0x016098f1acffb0125ffeca9b3e2491d31574d14b55a15e912e45e8081e063e0e',
        timestamp: 1761116630,
        gasLimit: 40000000,
        beneficiary: '0xae99cb89767a09d53e589a40cb4016974aba4b94',
        gasUsed: 0,
        totalScore: 218523577,
        txsRoot: '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',
        txsFeatures: 1,
        stateRoot: '0x7a5e7b3b8b89958e7fdd5e14acbc79dbc419672e84d02376a43b3beebe555e33',
        receiptsRoot: '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',
        com: true,
        signer: '0xae99cb89767a09d53e589a40cb4016974aba4b94',
        isTrunk: true,
        isFinalized: false,
        baseFeePerGas: '0x9184e72a000',
        transactions: [],
    });
    nock(url)
        .post('/accounts/*', {
        clauses: [
            {
                to: '0xac05da78464520aa7c9d4c19bd7a440b111b3054',
                value: '10000000000000000000',
                data: '0x',
            },
        ],
        caller: `${baseAddress}`,
    })
        .reply(200, [
        {
            data: '0x',
            events: [],
            transfers: [
                {
                    sender: `${baseAddress}`,
                    recipient: '0xac05da78464520aa7c9d4c19bd7a440b111b3054',
                    amount: '0x8ac7230489e80000',
                },
            ],
            gasUsed: 0,
            reverted: false,
            vmError: '',
        },
    ]);
    // nock for vtho balance for gas
    nock(url)
        .post('/accounts/*', {
        clauses: [
            {
                to: '0x0000000000000000000000000000456E65726779',
                value: '0x0',
                data: `0x70a08231000000000000000000000000${baseAddress.slice(2)}`,
            },
        ],
    })
        .reply(200, [
        {
            data: '0x000000000000000000000000000000000000000000000007e982789f8fe0cf0a',
            events: [],
            transfers: [],
            gasUsed: 870,
            reverted: false,
            vmError: '',
        },
    ]);
    nock(url)
        .post('/transactions', {
        raw: /^0x[0-9a-f]+$/i,
    })
        .reply(200, {
        id: '0x' + 'a'.repeat(64), // A fake transaction ID
        reverted: false,
    });
};
module.exports.nockVetTokenRecovery = function (bitgo, baseAddress) {
    // nock for account balance
    const url = sdk_core_1.Environments[bitgo.getEnv()].vetNodeUrl;
    nock(url)
        .post('/accounts/*', {
        clauses: [
            {
                to: '0x0000000000000000000000000000456E65726779',
                value: '0x0',
                data: `0x70a08231000000000000000000000000${baseAddress.slice(2)}`,
            },
        ],
    })
        .reply(200, [
        {
            data: '0x000000000000000000000000000000000000000000000000416003863bd917f8',
            events: [],
            transfers: [],
            gasUsed: 870,
            reverted: false,
            vmError: '',
        },
    ]);
    nock(url).get('/blocks/best').reply(200, {
        number: 23107826,
        id: '0x016098f2a6779c3ad2bb52ef0a3f57c770af55a77bfa1b2837266f752118ad8d',
        size: 368,
        parentID: '0x016098f1acffb0125ffeca9b3e2491d31574d14b55a15e912e45e8081e063e0e',
        timestamp: 1761116630,
        gasLimit: 40000000,
        beneficiary: '0xae99cb89767a09d53e589a40cb4016974aba4b94',
        gasUsed: 0,
        totalScore: 218523577,
        txsRoot: '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',
        txsFeatures: 1,
        stateRoot: '0x7a5e7b3b8b89958e7fdd5e14acbc79dbc419672e84d02376a43b3beebe555e33',
        receiptsRoot: '0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0',
        com: true,
        signer: '0xae99cb89767a09d53e589a40cb4016974aba4b94',
        isTrunk: true,
        isFinalized: false,
        baseFeePerGas: '0x9184e72a000',
        transactions: [],
    });
    nock(url)
        .post('/accounts/*', {
        clauses: [
            {
                to: '0x0000000000000000000000000000456E65726779',
                value: '0x0',
                data: '0xa9059cbb000000000000000000000000ac05da78464520aa7c9d4c19bd7a440b111b305400000000000000000000000000000000000000000000000036a9d31575bcee8e',
            },
        ],
        caller: `${baseAddress}`,
    })
        .reply(200, [
        {
            data: '0x0000000000000000000000000000000000000000000000000000000000000001',
            events: [
                {
                    address: '0x0000000000000000000000000000456e65726779',
                    topics: [
                        '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
                        '0x000000000000000000000000880ff4718587d678e78fc7803b3634bd12ecf019',
                        '0x000000000000000000000000ac05da78464520aa7c9d4c19bd7a440b111b3054',
                    ],
                    data: '0x00000000000000000000000000000000000000000000000036a9d31575bcee8e',
                },
            ],
            transfers: [],
            gasUsed: 13326,
            reverted: false,
            vmError: '',
        },
    ]);
    // nock for vtho balance for gas
    nock(url)
        .post('/accounts/*', {
        clauses: [
            {
                to: '0x0000000000000000000000000000456E65726779',
                value: '0x0',
                data: `0x70a08231000000000000000000000000${baseAddress.slice(2)}`,
            },
        ],
    })
        .reply(200, [
        {
            data: '0x000000000000000000000000000000000000000000000000416003863bd917f8',
            events: [],
            transfers: [],
            gasUsed: 870,
            reverted: false,
            vmError: '',
        },
    ]);
    nock(url)
        .post('/transactions', {
        raw: /^0x[0-9a-f]+$/i,
    })
        .reply(200, {
        id: '0x' + 'a'.repeat(64), // A fake transaction ID
        reverted: false,
    });
};
module.exports.nockEtherscanRateLimitError = function () {
    const response = {
        status: '0',
        message: 'NOTOK',
        result: 'Max rate limit reached, rate limit of 3/1sec applied"',
    };
    const params = {
        chainid: '560048',
        module: 'account',
        action: 'txlist',
        address: '0x74c2137d54b0fc9f907e13f14e0dd18485fee924',
    };
    nock('https://api.etherscan.io/v2').get('/api').query(params).reply(200, response);
};
module.exports.nockXlmRecovery = function () {
    nock('https://horizon-testnet.stellar.org')
        .get('/accounts/GAGCQLUGMX76XC24JRCRJWOHXK23ONURH4433JOEPU6CH7Z44CCYUCEL')
        .reply(404, {
        status: 404,
    })
        .get('/accounts/GASW277S2ZOE7H7A5EQ5H5AKLP6UA6Z5AKOSWV6ARBEGTSIGMZMC7AIZ')
        .reply(200, {
        balance: '10',
    })
        .get('/accounts/GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB')
        .reply(200, {
        id: 'GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB',
        paging_token: '',
        account_id: 'GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB',
        sequence: '47339455954026497',
        subentry_count: 3,
        thresholds: {
            low_threshold: 1,
            med_threshold: 2,
            high_threshold: 3,
        },
        flags: {
            auth_required: false,
            auth_revocable: false,
        },
        balances: [
            {
                balance: '9.9999600',
                buying_liabilities: '0.0000000',
                selling_liabilities: '0.0000000',
                asset_type: 'native',
            },
        ],
        signers: [
            {
                public_key: 'GBNK4FJO6FDQNBVLUP7MICEJUVINPNJZCDDTTYS3LVFC6J7LKEXLOBKM',
                weight: 1,
                key: 'GBNK4FJO6FDQNBVLUP7MICEJUVINPNJZCDDTTYS3LVFC6J7LKEXLOBKM',
                type: 'ed25519_public_key',
            },
            {
                public_key: 'GCBABJPE3UTZ3JPUEIZEXAQQ5CMNX5UPYKOB7HHXSHBCIGD7VV64H6KU',
                weight: 1,
                key: 'GCBABJPE3UTZ3JPUEIZEXAQQ5CMNX5UPYKOB7HHXSHBCIGD7VV64H6KU',
                type: 'ed25519_public_key',
            },
            {
                public_key: 'GBSKZM7HG4S2W4N4H65XHTGS724HQA7EFMSSCVLPWW53ZFL6SNVFJKJO',
                weight: 1,
                key: 'GBSKZM7HG4S2W4N4H65XHTGS724HQA7EFMSSCVLPWW53ZFL6SNVFJKJO',
                type: 'ed25519_public_key',
            },
            {
                public_key: 'GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB',
                weight: 0,
                key: 'GAUAGTL3NBZ7NP3UIMZCVJYM6O2NKUP6XRTK4E5VZDVIQX3CBYIVMDIB',
                type: 'ed25519_public_key',
            },
        ],
        data: {},
    })
        .get('/ledgers')
        .query(true)
        .times(2)
        .reply(200, {
        _links: {
            self: {
                href: 'https://horizon-testnet.stellar.org/ledgers?c=0.37643100613718006&cursor=&limit=1&order=desc',
            },
            next: {
                href: 'https://horizon-testnet.stellar.org/ledgers?c=0.37643100613718006&cursor=48419653113872384&limit=1&order=desc',
            },
            prev: {
                href: 'https://horizon-testnet.stellar.org/ledgers?c=0.37643100613718006&cursor=48419653113872384&limit=1&order=asc',
            },
        },
        _embedded: {
            records: [
                {
                    _links: {
                        self: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579',
                        },
                        transactions: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579/transactions{?cursor,limit,order}',
                            templated: true,
                        },
                        operations: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579/operations{?cursor,limit,order}',
                            templated: true,
                        },
                        payments: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579/payments{?cursor,limit,order}',
                            templated: true,
                        },
                        effects: {
                            href: 'https://horizon-testnet.stellar.org/ledgers/11273579/effects{?cursor,limit,order}',
                            templated: true,
                        },
                    },
                    id: '5fab170a47afa15cc130790f8c3bcb846fa295b1fa51139437c4d120878e850f',
                    paging_token: '48419653113872384',
                    hash: '5fab170a47afa15cc130790f8c3bcb846fa295b1fa51139437c4d120878e850f',
                    prev_hash: '5efe6f32662af8ab2d8a5f8984c027ad330f181bf5b9e3812d5a08f62e2cb978',
                    sequence: 11273579,
                    transaction_count: 0,
                    operation_count: 0,
                    closed_at: '2018-09-27T22:13:35Z',
                    total_coins: '104284715255.7420028',
                    fee_pool: '1708880873.6769687',
                    base_fee_in_stroops: 100,
                    base_reserve_in_stroops: 5000000,
                    max_tx_set_size: 50,
                    protocol_version: 10,
                    header_xdr: 'AAAACl7+bzJmKvirLYpfiYTAJ60zDxgb9bnjgS1aCPYuLLl4NB4MFpS0jQk8X3Ut93c2Q7cYEEWnhZ3tteMhZnztSM8AAAAAW61WDwAAAAAAAAAALzWviJxVDV+wrzVnS4YoI8xI050aKnAfney+tZxfcY2aFysDFVMF16cqgZjw8yiyzyfc1u0eqpLtLrZyYEam/ACsBWsOeO/1wzZt/AA8ti5WY8aXAAAA3QAAAAAAC4SRAAAAZABMS0AAAAAyuglBsLFyGmBOqJ250fDa76bY5/c1v9TBQl0ALhzx2G6vXcdZSm8aoCBPWHZBrK7GfpHa4DbiDqIav4yzjanIUSJ9CWKlXQXHWff9yKUlpaVJJy4TcELJV3w0nlwaNbRzLf+JwGVYb6BnB2GiZESvf1yEibvlU21ZVeEBsccbkg4AAAAA',
                },
            ],
        },
    });
};
module.exports.nockTronRecovery = function () {
    // full node - sendTrx from tronweb, build transaction call
    nock('https://api.shasta.trongrid.io')
        .post('/wallet/createtransaction')
        .reply(200, {
        visible: false,
        txID: '312c9254667b7dc4823f69e9e20ed55c2fb81f0421f956c5e85680d098e75ac8',
        raw_data: {
            contract: [
                {
                    parameter: {
                        value: {
                            amount: 10000000,
                            owner_address: '41e7e11df2c5704888c3cb63fb43a9498bd1812cb2',
                            to_address: '41f5f414d447aafe70bb9b9d93912cbc4c54f0c014',
                        },
                        type_url: 'type.googleapis.com/protocol.TransferContract',
                    },
                    type: 'TransferContract',
                },
            ],
            ref_block_bytes: 'a762',
            ref_block_hash: '18dfe946fbf7a0ac',
            expiration: 1676660043000,
            timestamp: 1676659983799,
        },
        raw_data_hex: '0a02a762220818dfe946fbf7a0ac40f8d9e785e6305a69080112650a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412340a1541e7e11df2c5704888c3cb63fb43a9498bd1812cb2121541f5f414d447aafe70bb9b9d93912cbc4c54f0c01418c8d19cad0370b78be485e630',
    });
    // full node - retrieve account information call
    nock('https://api.shasta.trongrid.io')
        .get('/v1/accounts/TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE')
        .reply(200, {
        data: [
            {
                latest_opration_time: 1676487672000,
                owner_permission: {
                    keys: [
                        {
                            address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                            weight: 1,
                        },
                        {
                            address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                            weight: 1,
                        },
                        {
                            address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                            weight: 1,
                        },
                    ],
                    threshold: 2,
                    permission_name: 'owner',
                },
                account_resource: {
                    latest_consume_time_for_energy: 1676487672000,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0037e0000000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                                weight: 1,
                            },
                            {
                                address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                                weight: 1,
                            },
                            {
                                address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                                weight: 1,
                            },
                        ],
                        threshold: 2,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active0',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '41e7e11df2c5704888c3cb63fb43a9498bd1812cb2',
                balance: 901147400,
                create_time: 1676487288000,
                trc20: [],
                latest_consume_free_time: 1676487672000,
            },
        ],
        success: true,
        meta: {
            at: 1676655089952,
            page_size: 1,
        },
    });
};
module.exports.nockTronReceiveRecovery = function () {
    // full node - sendTrx from tronweb, build transaction call
    nock('https://api.shasta.trongrid.io')
        .post('/wallet/createtransaction')
        .reply(200, {
        visible: false,
        txID: 'cb9a1b5569e8c09197d1e9bba51357159ffa8b7e6b18306ea615073fc8842b64',
        raw_data: {
            contract: [
                {
                    parameter: {
                        value: {
                            amount: 199000000,
                            owner_address: '418b04ecdc3db7e8da7cd838492f66e424a051e2cd',
                            to_address: '4132c753bf8d3de7358748a75fcf299f146dff6e4e',
                        },
                        type_url: 'type.googleapis.com/protocol.TransferContract',
                    },
                    type: 'TransferContract',
                },
            ],
            ref_block_bytes: '81e0',
            ref_block_hash: '5b1b20e9ebeaa4f8',
            expiration: 1685952282000,
            timestamp: 1685952224483,
        },
        raw_data_hex: '0a0281e022085b1b20e9ebeaa4f84090fbd8d488315a68080112640a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412330a15418b04ecdc3db7e8da7cd838492f66e424a051e2cd12154132c753bf8d3de7358748a75fcf299f146dff6e4e18c0fff15e70e3b9d5d48831',
    });
    // full node - retrieve account information call
    // Zero Balance
    nock('https://api.shasta.trongrid.io')
        .get('/v1/accounts/TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE')
        .reply(200, {
        data: [
            {
                latest_opration_time: 1685950887000,
                owner_permission: {
                    keys: [
                        {
                            address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                            weight: 1,
                        },
                        {
                            address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                            weight: 1,
                        },
                        {
                            address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                            weight: 1,
                        },
                    ],
                    threshold: 2,
                    permission_name: 'owner',
                },
                free_net_usage: 335,
                account_resource: {
                    latest_consume_time_for_energy: 1676487672000,
                    energy_window_size: 28800,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0037e0000000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                                weight: 1,
                            },
                            {
                                address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                                weight: 1,
                            },
                            {
                                address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                                weight: 1,
                            },
                        ],
                        threshold: 2,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active0',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '41e7e11df2c5704888c3cb63fb43a9498bd1812cb2',
                create_time: 1676487288000,
                trc20: [],
                latest_consume_free_time: 1685950887000,
                net_window_size: 28800,
            },
        ],
        success: true,
        meta: {
            at: 1685951137816,
            page_size: 1,
        },
    });
    // receive address with balance
    nock('https://api.shasta.trongrid.io')
        .get('/v1/accounts/TNeGpwAurk7kjQLdcdWhFr8YP8E9Za8w1x')
        .reply(200, {
        data: [
            {
                owner_permission: {
                    keys: [
                        {
                            address: 'TNeGpwAurk7kjQLdcdWhFr8YP8E9Za8w1x',
                            weight: 1,
                        },
                    ],
                    threshold: 1,
                    permission_name: 'owner',
                },
                account_resource: {
                    energy_window_size: 28800,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0033ec307000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TNeGpwAurk7kjQLdcdWhFr8YP8E9Za8w1x',
                                weight: 1,
                            },
                        ],
                        threshold: 1,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '418b04ecdc3db7e8da7cd838492f66e424a051e2cd',
                balance: 200000000,
                create_time: 1685952000000,
                trc20: [],
                net_window_size: 28800,
            },
        ],
        success: true,
        meta: {
            at: 1685952122106,
            page_size: 1,
        },
    });
};
module.exports.nockTronReceiveRecoveryZeroFunds = function () {
    // full node - retrieve account information call
    // Nocking Zero Balance
    nock('https://api.shasta.trongrid.io')
        .persist()
        .get((uri) => uri.includes('/v1/accounts/'))
        .reply(200, {
        data: [
            {
                latest_opration_time: 1685950887000,
                owner_permission: {
                    keys: [
                        {
                            address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                            weight: 1,
                        },
                        {
                            address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                            weight: 1,
                        },
                        {
                            address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                            weight: 1,
                        },
                    ],
                    threshold: 2,
                    permission_name: 'owner',
                },
                free_net_usage: 335,
                account_resource: {
                    latest_consume_time_for_energy: 1676487672000,
                    energy_window_size: 28800,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0037e0000000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TX7GmmrfbgTGYK6a2C8vnBr5TuQbrGmVHE',
                                weight: 1,
                            },
                            {
                                address: 'TDtGJarCHn1HN9APyvh3q2HVk6kW3qnpmF',
                                weight: 1,
                            },
                            {
                                address: 'TGqQdH1jEJwsUTY5Pyfz8GBMio8BgPb6nK',
                                weight: 1,
                            },
                        ],
                        threshold: 2,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active0',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '41e7e11df2c5704888c3cb63fb43a9498bd1812cb2',
                create_time: 1676487288000,
                trc20: [],
                latest_consume_free_time: 1685950887000,
                net_window_size: 28800,
            },
        ],
        success: true,
        meta: {
            at: 1685951137816,
            page_size: 1,
        },
    });
};
module.exports.nockTronTokenRecovery = function () {
    // full node - sendTrx from tronweb, build transaction call
    nock('https://api.shasta.trongrid.io')
        .post('/wallet/triggersmartcontract')
        .reply(200, {
        result: {
            result: true,
        },
        transaction: {
            visible: false,
            txID: '06d51eb1b4bd35d1f323c6edd6d63d7f11b1651b024e548ea2a8872a8fad7f5c',
            raw_data: {
                contract: [
                    {
                        parameter: {
                            value: {
                                data: 'a9059cbb000000000000000000000000f5f414d447aafe70bb9b9d93912cbc4c54f0c0140000000000000000000000000000000000000000000000000000000124101100',
                                owner_address: '416a0a05e098c628f7f3ca63dbb5756e5c0c018521',
                                contract_address: '4142a1e39aefa49290f2b3f9ed688d7cecf86cd6e0',
                            },
                            type_url: 'type.googleapis.com/protocol.TriggerSmartContract',
                        },
                        type: 'TriggerSmartContract',
                    },
                ],
                ref_block_bytes: 'a71c',
                ref_block_hash: 'd0ecb53aa03882a6',
                expiration: 1676659815000,
                fee_limit: 100000000,
                timestamp: 1676659758242,
            },
            raw_data_hex: '0a02a71c2208d0ecb53aa03882a640d8e4d985e6305aae01081f12a9010a31747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e54726967676572536d617274436f6e747261637412740a15416a0a05e098c628f7f3ca63dbb5756e5c0c01852112154142a1e39aefa49290f2b3f9ed688d7cecf86cd6e02244a9059cbb000000000000000000000000f5f414d447aafe70bb9b9d93912cbc4c54f0c014000000000000000000000000000000000000000000000000000000012410110070a2a9d685e630900180c2d72f',
        },
    });
    // full node - retrieve account information call
    nock('https://api.shasta.trongrid.io')
        .get('/v1/accounts/TKdtdoNiqqEyGsMmJyb5pgwSYf7dTCcmKY')
        .reply(200, {
        data: [
            {
                latest_opration_time: 1676487351000,
                owner_permission: {
                    keys: [
                        {
                            address: 'TKdtdoNiqqEyGsMmJyb5pgwSYf7dTCcmKY',
                            weight: 1,
                        },
                        {
                            address: 'TQmVnE97fXeP6wEhzrmSWLbUQGsmgSy1KE',
                            weight: 1,
                        },
                        {
                            address: 'TYdnm79iTh4ZEY83HpjkpKk55htujxYtc9',
                            weight: 1,
                        },
                    ],
                    threshold: 2,
                    permission_name: 'owner',
                },
                account_resource: {
                    latest_consume_time_for_energy: 1676487351000,
                },
                active_permission: [
                    {
                        operations: '7fff1fc0037e0000000000000000000000000000000000000000000000000000',
                        keys: [
                            {
                                address: 'TKdtdoNiqqEyGsMmJyb5pgwSYf7dTCcmKY',
                                weight: 1,
                            },
                            {
                                address: 'TQmVnE97fXeP6wEhzrmSWLbUQGsmgSy1KE',
                                weight: 1,
                            },
                            {
                                address: 'TYdnm79iTh4ZEY83HpjkpKk55htujxYtc9',
                                weight: 1,
                            },
                        ],
                        threshold: 2,
                        id: 2,
                        type: 'Active',
                        permission_name: 'active0',
                    },
                ],
                frozenV2: [
                    {},
                    {
                        type: 'ENERGY',
                    },
                    {
                        type: 'UNKNOWN_ENUM_VALUE_ResourceCode_2',
                    },
                ],
                address: '416a0a05e098c628f7f3ca63dbb5756e5c0c018521',
                balance: 3889047400,
                create_time: 1676486460000,
                trc20: [
                    {
                        TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs: '4900000000',
                    },
                ],
                latest_consume_free_time: 1676487351000,
            },
        ],
        success: true,
        meta: {
            at: 1676654983645,
            page_size: 1,
        },
    });
};
module.exports.nockEosRecovery = function () {
    nock('https://kylin.eosn.io').post('*').reply(502);
    nock('https://kylin.eosn.io')
        .post('/v1/chain/get_info')
        .reply(200, {
        server_version: '14185431',
        chain_id: '2a02a0053e5a8cf73a56ba0fda11e4d92e0238a4a2aa74fccf46d5a910746840',
        head_block_num: 39752030,
        last_irreversible_block_num: 39751705,
        last_irreversible_block_id: '025e90194fbe7ba5773af4b3ed099aaed0fb26b8f7750e414ea0ee975a04cdc1',
        head_block_id: '025e915eff653f4ad408e1b36e40f6b4d842afde81672446f91ca1e615ebf03c',
        head_block_time: '2019-07-18T17:52:49.000',
        head_block_producer: 'eosnationftw',
        virtual_block_cpu_limit: 200000000,
        virtual_block_net_limit: 524288000,
        block_cpu_limit: 199900,
        block_net_limit: 524288,
        server_version_string: 'v1.8.1',
        fork_db_head_block_num: 39752030,
        fork_db_head_block_id: '025e915eff653f4ad408e1b36e40f6b4d842afde81672446f91ca1e615ebf03c',
    })
        .post('/v1/chain/get_block', { block_num_or_id: 39752030 })
        .reply(200, {
        timestamp: '2019-07-18T17:52:49.000',
        producer: 'eosnationftw',
        confirmed: 0,
        previous: '025e915dcf7ce855a5818f17c78f3bedc16bfa505aa8d27b26860fe875112e5e',
        transaction_mroot: '0000000000000000000000000000000000000000000000000000000000000000',
        action_mroot: 'd71fc942fb9fcd337692f037d3fb967d76ddd2b30bae40450d1feef50f56ceec',
        schedule_version: 245,
        new_producers: null,
        header_extensions: [],
        producer_signature: 'SIG_K1_JwDWGq1SxPHw5xTwUzZ1Hf4YCdvzsYvAoh9nNvGXjyXjk57pLb5fc8in3vop9h1mMdZtsRhEYa4bV9P4fMvHXcqiFjw83y',
        transactions: [],
        block_extensions: [],
        id: '025e915eff653f4ad408e1b36e40f6b4d842afde81672446f91ca1e615ebf03c',
        block_num: 39752030,
        ref_block_prefix: 3017869524,
    })
        .post('/v1/chain/get_account', { account_name: 'jzjkpn1bjnti' })
        .reply(200, {
        account_name: 'jzjkpn1bjnti',
        head_block_num: 39739576,
        head_block_time: '2019-07-18T16:08:34.500',
        privileged: false,
        last_code_update: '1970-01-01T00:00:00.000',
        created: '2019-07-18T12:52:10.000',
        core_liquid_balance: '99.0000 EOS',
        ram_quota: 9586,
        net_weight: 0,
        cpu_weight: 0,
        net_limit: {
            used: 161,
            available: 0,
            max: 0,
        },
        cpu_limit: {
            used: 419,
            available: 0,
            max: 0,
        },
        ram_usage: 3324,
        permissions: [
            {
                perm_name: 'active',
                parent: 'owner',
                required_auth: {
                    threshold: 2,
                    keys: [
                        {
                            key: 'EOS5ecwm5UH1b2ggGJTq5r1aqd1cgKsi3NUYPJbLakana57E1anP2',
                            weight: 1,
                        },
                        {
                            key: 'EOS5oyoziJUH2u3KJu9fUFmahrkMC1x86hdBs5768tA9N3R7zENHx',
                            weight: 1,
                        },
                        {
                            key: 'EOS6dZzCHfSVGGjJ9VegMpu9utsNERqrmnwoEntQcgfCUyyuciQm9',
                            weight: 1,
                        },
                    ],
                    accounts: [],
                    waits: [],
                },
            },
            {
                perm_name: 'owner',
                parent: '',
                required_auth: {
                    threshold: 2,
                    keys: [
                        {
                            key: 'EOS5ecwm5UH1b2ggGJTq5r1aqd1cgKsi3NUYPJbLakana57E1anP2',
                            weight: 1,
                        },
                        {
                            key: 'EOS5oyoziJUH2u3KJu9fUFmahrkMC1x86hdBs5768tA9N3R7zENHx',
                            weight: 1,
                        },
                        {
                            key: 'EOS6dZzCHfSVGGjJ9VegMpu9utsNERqrmnwoEntQcgfCUyyuciQm9',
                            weight: 1,
                        },
                    ],
                    accounts: [],
                    waits: [],
                },
            },
        ],
        total_resources: {
            owner: 'jzjkpn1bjnti',
            net_weight: '0.0000 EOS',
            cpu_weight: '0.0000 EOS',
            ram_bytes: 8186,
        },
        self_delegated_bandwidth: null,
        refund_request: null,
        voter_info: null,
    })
        .post('/v1/chain/get_account', { account_name: 'kiyjcn1ixftp' })
        .reply(200, {
        account_name: 'kiyjcn1ixftp',
        head_block_num: 39739505,
        head_block_time: '2019-07-18T16:07:59.000',
        privileged: false,
        last_code_update: '1970-01-01T00:00:00.000',
        created: '2019-07-18T15:57:05.500',
        core_liquid_balance: '100.0000 EOS',
        ram_quota: 9587,
        net_weight: 0,
        cpu_weight: 0,
        net_limit: {
            used: 0,
            available: 0,
            max: 0,
        },
        cpu_limit: {
            used: 0,
            available: 0,
            max: 0,
        },
        ram_usage: 3196,
        permissions: [
            {
                perm_name: 'active',
                parent: 'owner',
                required_auth: {
                    threshold: 2,
                    keys: [
                        {
                            key: 'EOS5sxRZCyaKAowNZBVrAvUHYQioMXf8Qru7XADoJwr53iFDJPsGC',
                            weight: 1,
                        },
                        {
                            key: 'EOS64hsH9DiP1eSQuYKEaFD5SQp4cLRPvTYaCUvV2AfcWBVy7CjjN',
                            weight: 1,
                        },
                        {
                            key: 'EOS741DEx6Gstbi2cdmQyjGrBi8rndGeSBw7hM5uYiKft2ptmKRgd',
                            weight: 1,
                        },
                    ],
                    accounts: [],
                    waits: [],
                },
            },
            {
                perm_name: 'owner',
                parent: '',
                required_auth: {
                    threshold: 2,
                    keys: [
                        {
                            key: 'EOS5sxRZCyaKAowNZBVrAvUHYQioMXf8Qru7XADoJwr53iFDJPsGC',
                            weight: 1,
                        },
                        {
                            key: 'EOS64hsH9DiP1eSQuYKEaFD5SQp4cLRPvTYaCUvV2AfcWBVy7CjjN',
                            weight: 1,
                        },
                        {
                            key: 'EOS741DEx6Gstbi2cdmQyjGrBi8rndGeSBw7hM5uYiKft2ptmKRgd',
                            weight: 1,
                        },
                    ],
                    accounts: [],
                    waits: [],
                },
            },
        ],
        total_resources: {
            owner: 'kiyjcn1ixftp',
            net_weight: '0.0000 EOS',
            cpu_weight: '0.0000 EOS',
            ram_bytes: 8187,
        },
        self_delegated_bandwidth: null,
        refund_request: null,
        voter_info: null,
    });
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3Zlcnktbm9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3YyL2xpYi9yZWNvdmVyeS1ub2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztHQUVHO0FBQ0gsNkJBQThCO0FBQzlCLDhDQUErQztBQUUvQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxTQUFTLGVBQWU7SUFDdkQsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ3BFLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDVCxNQUFNLEVBQUUsY0FBYztRQUN0QixNQUFNLEVBQUU7WUFDTjtnQkFDRSxPQUFPLEVBQUUsb0NBQW9DO2dCQUM3QyxNQUFNLEVBQUUsSUFBSTtnQkFDWixZQUFZLEVBQUUsU0FBUztnQkFDdkIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsWUFBWSxFQUFFLElBQUk7YUFDbkI7U0FDRjtLQUNGLENBQUM7U0FDRCxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQ1YsTUFBTSxFQUFFO1lBQ04sWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxvQ0FBb0M7Z0JBQzdDLE9BQU8sRUFBRSxZQUFZO2dCQUNyQixLQUFLLEVBQUUsT0FBTztnQkFDZCxlQUFlLEVBQUUsYUFBYTtnQkFDOUIsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsYUFBYSxFQUFFLGtFQUFrRTtnQkFDakYsaUJBQWlCLEVBQUUsTUFBTTtnQkFDekIsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsS0FBSyxFQUFFLGtFQUFrRTtnQkFDekUsWUFBWSxFQUFFO29CQUNaO3dCQUNFLEtBQUssRUFBRSxDQUFDO3dCQUNSLGVBQWUsRUFBRSxZQUFZO3dCQUM3QixTQUFTLEVBQUUsa0JBQWtCO3dCQUM3QixhQUFhLEVBQUUsa0VBQWtFO3dCQUNqRixpQkFBaUIsRUFBRSxNQUFNO3dCQUN6QixhQUFhLEVBQUU7NEJBQ2I7Z0NBQ0UsV0FB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O29CQUNiLFNBQVMsRUFBRSxDQUFDO29CQUNaLElBQUksRUFBRTt3QkFDSjs0QkFDRSxHQUFHLEVBQUUsdURBQXVEOzRCQUM1RCxNQUFNLEVBQUUsQ0FBQzt5QkFDVjt3QkFDRDs0QkFDRSxHQUFHLEVBQUUsdURBQXVEOzRCQUM1RCxNQUFNLEVBQUUsQ0FBQzt5QkFDVjt3QkFDRDs0QkFDRSxHQUFHLEVBQUUsdURBQXVEOzRCQUM1RCxNQUFNLEVBQUUsQ0FBQzt5QkFDVjtxQkFDRjtvQkFDRCxRQUFRLEVBQUUsRUFBRTtvQkFDWixLQUFLLEVBQUUsRUFBRTtpQkFDVjthQUNGO1lBQ0Q7Z0JBQ0UsU0FBUyxFQUFFLE9BQU87Z0JBQ2xCLE1BQU0sRUFBRSxFQUFFO2dCQUNWLGFBQWEsRUFBRTtvQkFDYixTQUFTLEVBQUUsQ0FBQztvQkFDWixJQUFJLEVBQUU7d0JBQ0o7NEJBQ0UsR0FBRyxFQUFFLHVEQUF1RDs0QkFDNUQsTUFBTSxFQUFFLENBQUM7eUJBQ1Y7d0JBQ0Q7NEJBQ0UsR0FBRyxFQUFFLHVEQUF1RDs0QkFDNUQsTUFBTSxFQUFFLENBQUM7eUJBQ1Y7d0JBQ0Q7NEJBQ0UsR0FBRyxFQUFFLHVEQUF1RDs0QkFDNUQsTUFBTSxFQUFFLENBQUM7eUJBQ1Y7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osS0FBSyxFQUFFLEVBQUU7aUJBQ1Y7YUFDRjtTQUNGO1FBQ0QsZUFBZSxFQUFFO1lBQ2YsS0FBSyxFQUFFLGNBQWM7WUFDckIsVUFBVSxFQUFFLFlBQVk7WUFDeEIsVUFBVSxFQUFFLFlBQVk7WUFDeEIsU0FBUyxFQUFFLElBQUk7U0FDaEI7UUFDRCx3QkFBd0IsRUFBRSxJQUFJO1FBQzlCLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFVBQVUsRUFBRSxJQUFJO0tBQ2pCLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRzIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxubW9kdWxlLmV4cG9ydHMubm9ja1hycFJlY292ZXJ5ID0gZnVuY3Rpb24gbm9ja1hycFJlY292ZXJ5KCkge1xuICBub2NrKCdodHRwczovL3MuYWx0bmV0LnJpcHBsZXRlc3QubmV0OjUxMjM0JywgeyBhbGxvd1VubW9ja2VkOiBmYWxzZSB9KVxuICAgIC5wb3N0KCcvJywge1xuICAgICAgbWV0aG9kOiAnYWNjb3VudF9pbmZvJyxcbiAgICAgIHBhcmFtczogW1xuICAgICAgICB7XG4gICAgICAgICAgYWNjb3VudDogJ3JhR1pXUmtSQlVXZFFKc0tZRXp3WEpOYkNaTVRxWDU2YUEnLFxuICAgICAgICAgIHN0cmljdDogdHJ1ZSxcbiAgICAgICAgICBsZWRnZXJfaW5kZXg6ICdjdXJyZW50JyxcbiAgICAgICAgICBxdWV1ZTogdHJ1ZSxcbiAgICAgICAgICBzaWduZXJfbGlzdHM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgcmVzdWx0OiB7XG4gICAgICAgIGFjY291bnRfZGF0YToge1xuICAgICAgICAgIEFjY291bnQ6ICdyYUdaV1JrUkJVV2RRSnNLWUV6d1hKTmJDWk1UcVg1NmFBJyxcbiAgICAgICAgICBCYWxhbmNlOiAnOTk0NDAwMDAwMCcsXG4gICAgICAgICAgRmxhZ3M6IDExNzk2NDgsXG4gICAgICAgICAgTGVkZ2VyRW50cnlUeXBlOiAnQWNjb3VudFJvb3QnLFxuICAgICAgICAgIE93bmVyQ291bnQ6IDUsXG4gICAgICAgICAgUHJldmlvdXNUeG5JRDogJzgyNDYwRTlGQUYyNEY1MzM4OERDOUNCQTkxOTM0QjNGODIxMDcxNDhDRDIwQkQyNkU4MERGNzc0MzIzNTQ1QzMnLFxuICAgICAgICAgIFByZXZpb3VzVHhuTGdyU2VxOiAzOTY5OTYsXG4gICAgICAgICAgU2VxdWVuY2U6IDQsXG4gICAgICAgICAgaW5kZXg6ICdDNjc2RDMyNEJBNTNGRURGNjAxRjdFQUZCQzg4REFDNUU3NDQwRkY0OTFFQkM1NDA2NkVDREI2MUEyQjJEMUVDJyxcbiAgICAgICAgICBzaWduZXJfbGlzdHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgRmxhZ3M6IDAsXG4gICAgICAgICAgICAgIExlZGdlckVudHJ5VHlwZTogJ1NpZ25lckxpc3QnLFxuICAgICAgICAgICAgICBPd25lck5vZGU6ICcwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICAgICAgUHJldmlvdXNUeG5JRDogJzBFOUJGMkRCQUEzNjUzOUZBNENEQjNGRjhBQkY1REM5QTQzODU5QzMzOTUzMzg1Qzk0ODZBRDYzRTQ1MUIyRkMnLFxuICAgICAgICAgICAgICBQcmV2aW91c1R4bkxnclNlcTogMzk2OTQzLFxuICAgICAgICAgICAgICBTaWduZXJFbnRyaWVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgU2lnbmVyRW50cnk6IHtcbiAgICAgICAgICAgICAgICAgICAgQWNjb3VudDogJ3JhU1lhQlRmYmVBUlJkYWNHQmJzNXRqQTdYa3lCMVJDOHgnLFxuICAgICAgICAgICAgICAgICAgICBTaWduZXJXZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgU2lnbmVyRW50cnk6IHtcbiAgICAgICAgICAgICAgICAgICAgQWNjb3VudDogJ3JHZXZOODdScFdCYmRMeEtDRjRGQXFXZ1JvU3lNSkE4MWYnLFxuICAgICAgICAgICAgICAgICAgICBTaWduZXJXZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgU2lnbmVyRW50cnk6IHtcbiAgICAgICAgICAgICAgICAgICAgQWNjb3VudDogJ3JHbVFId3ZiNVNaUmJ5aHA0SkJIZHBSelNtZ3FBRHhQYkUnLFxuICAgICAgICAgICAgICAgICAgICBTaWduZXJXZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIFNpZ25lckxpc3RJRDogMCxcbiAgICAgICAgICAgICAgU2lnbmVyUXVvcnVtOiAyLFxuICAgICAgICAgICAgICBpbmRleDogJ0EzNkE3RUQ2MTA4RkY3Rjg3MUMwRUMzQ0Y1NzNGRTIzQ0M5NzgwNDM2RDY0QTJFRTA2OUE4RjI3RThENDA0NzEnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBsZWRnZXJfY3VycmVudF9pbmRleDogMzk3MTM4LFxuICAgICAgICBxdWV1ZV9kYXRhOiB7XG4gICAgICAgICAgdHhuX2NvdW50OiAwLFxuICAgICAgICB9LFxuICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgICAgdmFsaWRhdGVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICAucG9zdCgnLycsIHsgbWV0aG9kOiAnZmVlJyB9KVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIHJlc3VsdDoge1xuICAgICAgICBjdXJyZW50X2xlZGdlcl9zaXplOiAnMCcsXG4gICAgICAgIGN1cnJlbnRfcXVldWVfc2l6ZTogJzAnLFxuICAgICAgICBkcm9wczoge1xuICAgICAgICAgIGJhc2VfZmVlOiAnMTAnLFxuICAgICAgICAgIG1lZGlhbl9mZWU6ICc1MDAwJyxcbiAgICAgICAgICBtaW5pbXVtX2ZlZTogJzEwJyxcbiAgICAgICAgICBvcGVuX2xlZGdlcl9mZWU6ICcxMCcsXG4gICAgICAgIH0sXG4gICAgICAgIGV4cGVjdGVkX2xlZGdlcl9zaXplOiAnNTEnLFxuICAgICAgICBsZWRnZXJfY3VycmVudF9pbmRleDogMzk3MTM4LFxuICAgICAgICBsZXZlbHM6IHtcbiAgICAgICAgICBtZWRpYW5fbGV2ZWw6ICcxMjgwMDAnLFxuICAgICAgICAgIG1pbmltdW1fbGV2ZWw6ICcyNTYnLFxuICAgICAgICAgIG9wZW5fbGVkZ2VyX2xldmVsOiAnMjU2JyxcbiAgICAgICAgICByZWZlcmVuY2VfbGV2ZWw6ICcyNTYnLFxuICAgICAgICB9LFxuICAgICAgICBtYXhfcXVldWVfc2l6ZTogJzEwMjAnLFxuICAgICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgIH0sXG4gICAgfSlcbiAgICAucG9zdCgnLycsIHsgbWV0aG9kOiAnc2VydmVyX2luZm8nIH0pXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgcmVzdWx0OiB7XG4gICAgICAgIGluZm86IHtcbiAgICAgICAgICBidWlsZF92ZXJzaW9uOiAnMC43MC4xJyxcbiAgICAgICAgICBjb21wbGV0ZV9sZWRnZXJzOiAnMzg2OTY3LTM5NzEzNycsXG4gICAgICAgICAgaG9zdGlkOiAnSEknLFxuICAgICAgICAgIGlvX2xhdGVuY3lfbXM6IDEsXG4gICAgICAgICAgbGFzdF9jbG9zZToge1xuICAgICAgICAgICAgY29udmVyZ2VfdGltZV9zOiAxLjk5OSxcbiAgICAgICAgICAgIHByb3Bvc2VyczogNCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvYWRfZmFjdG9yOiAxLFxuICAgICAgICAgIHBlZXJzOiA0LFxuICAgICAgICAgIHB1YmtleV9ub2RlOiAnbjlLTW1adzg1ZDVlcmthVHY2MlZ6NlNiREpTeWVpaEFFQjNqd25iM0JxbnIyQXlkUlZlcCcsXG4gICAgICAgICAgc2VydmVyX3N0YXRlOiAncHJvcG9zaW5nJyxcbiAgICAgICAgICBzdGF0ZV9hY2NvdW50aW5nOiB7XG4gICAgICAgICAgICBjb25uZWN0ZWQ6IHtcbiAgICAgICAgICAgICAgZHVyYXRpb25fdXM6ICc0OTk5OTQxJyxcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbnM6IDEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGlzY29ubmVjdGVkOiB7XG4gICAgICAgICAgICAgIGR1cmF0aW9uX3VzOiAnMTIwMjcxMicsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25zOiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZ1bGw6IHtcbiAgICAgICAgICAgICAgZHVyYXRpb25fdXM6ICc5NDA2NDE3NTg2NycsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25zOiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN5bmNpbmc6IHtcbiAgICAgICAgICAgICAgZHVyYXRpb25fdXM6ICc2MTE2MDk2JyxcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbnM6IDEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJhY2tpbmc6IHtcbiAgICAgICAgICAgICAgZHVyYXRpb25fdXM6ICczJyxcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbnM6IDEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdXB0aW1lOiA5NDA3NyxcbiAgICAgICAgICB2YWxpZGF0ZWRfbGVkZ2VyOiB7XG4gICAgICAgICAgICBhZ2U6IDMsXG4gICAgICAgICAgICBiYXNlX2ZlZV94cnA6IDAuMDAwMDEsXG4gICAgICAgICAgICBoYXNoOiAnOTE4RDMyNkQyMjRGOEY0OUIwN0IwMkNEMEEyMjA3QjcyMzlCQkZBODI0Q0Y1MTJGOEQxRDlEQkNBREMxMTVFNScsXG4gICAgICAgICAgICByZXNlcnZlX2Jhc2VfeHJwOiAyMCxcbiAgICAgICAgICAgIHJlc2VydmVfaW5jX3hycDogNSxcbiAgICAgICAgICAgIHNlcTogMzk3MTM3LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdGlvbl9xdW9ydW06IDQsXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgfSxcbiAgICB9KVxuICAgIC5wb3N0KCcvJywge1xuICAgICAgbWV0aG9kOiAnYWNjb3VudF9saW5lcycsXG4gICAgICBwYXJhbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFjY291bnQ6ICdyYUdaV1JrUkJVV2RRSnNLWUV6d1hKTmJDWk1UcVg1NmFBJyxcbiAgICAgICAgICBsZWRnZXJfaW5kZXg6ICd2YWxpZGF0ZWQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIHJlc3VsdDoge1xuICAgICAgICBhY2NvdW50OiAnck1maWN6Znc0dDVpR3U5aGhCMjNlS3dEak04Nzl2SldUUicsXG4gICAgICAgIGxlZGdlcl9oYXNoOiAnRTZGMzhEMUQ3Qjk0MTUzQkY3RkZDOEQ4Q0MxREY1N0Q1NzE1MUQyNkZDMkVCNzY0N0I1NjMxNzg2Qjk1NUVGRicsXG4gICAgICAgIGxlZGdlcl9pbmRleDogMTg0ODk2NCxcbiAgICAgICAgbGluZXM6IFtdLFxuICAgICAgICB2YWxpZGF0ZWQ6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xufTtcblxuY29uc3Qgbm9ja0V0aERhdGE6IGFueVtdID0gW1xuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ3R4bGlzdCcsXG4gICAgICBhZGRyZXNzOiAnMHg3NGMyMTM3ZDU0YjBmYzlmOTA3ZTEzZjE0ZTBkZDE4NDg1ZmVlOTI0JyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBzdGF0dXM6ICcwJyxcbiAgICAgIG1lc3NhZ2U6ICdObyB0cmFuc2FjdGlvbnMgZm91bmQnLFxuICAgICAgcmVzdWx0OiBbXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ2JhbGFuY2UnLFxuICAgICAgYWRkcmVzczogJzB4NzRjMjEzN2Q1NGIwZmM5ZjkwN2UxM2YxNGUwZGQxODQ4NWZlZTkyNCcsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMScsXG4gICAgICBtZXNzYWdlOiAnT0snLFxuICAgICAgcmVzdWx0OiAnMTAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ2JhbGFuY2UnLFxuICAgICAgYWRkcmVzczogJzB4NWRmNWE5NmI0NzhiYjE4MDgxNDBkODcwNzIxNDNlNjAyNjJlODY3MCcsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMScsXG4gICAgICBtZXNzYWdlOiAnT0snLFxuICAgICAgcmVzdWx0OiAnMjIwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAnYWNjb3VudCcsXG4gICAgICBhY3Rpb246ICd0eGxpc3QnLFxuICAgICAgYWRkcmVzczogJzB4YmE2ZDlkODJjZjI5MjBjNTQ0YjgzNGI3MmY0YzZkMTFhM2VmM2RlNicsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMCcsXG4gICAgICBtZXNzYWdlOiAnTm8gdHJhbnNhY3Rpb25zIGZvdW5kJyxcbiAgICAgIHJlc3VsdDogW10sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAnYWNjb3VudCcsXG4gICAgICBhY3Rpb246ICdiYWxhbmNlJyxcbiAgICAgIGFkZHJlc3M6ICcweGJhNmQ5ZDgyY2YyOTIwYzU0NGI4MzRiNzJmNGM2ZDExYTNlZjNkZTYnLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHN0YXR1czogJzEnLFxuICAgICAgbWVzc2FnZTogJ09LJyxcbiAgICAgIHJlc3VsdDogJzAnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1vZHVsZTogJ2FjY291bnQnLFxuICAgICAgYWN0aW9uOiAndHhsaXN0JyxcbiAgICAgIGFkZHJlc3M6ICcweDc0YzIxMzdkNTRiMGZjOWY5MDdlMTNmMTRlMGRkMTg0ODVmZWU5MjQnLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHN0YXR1czogJzAnLFxuICAgICAgbWVzc2FnZTogJ05vIHRyYW5zYWN0aW9ucyBmb3VuZCcsXG4gICAgICByZXN1bHQ6IFtdLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1vZHVsZTogJ2FjY291bnQnLFxuICAgICAgYWN0aW9uOiAnYmFsYW5jZScsXG4gICAgICBhZGRyZXNzOiAnMHg3NGMyMTM3ZDU0YjBmYzlmOTA3ZTEzZjE0ZTBkZDE4NDg1ZmVlOTI0JyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBzdGF0dXM6ICcxJyxcbiAgICAgIG1lc3NhZ2U6ICdPSycsXG4gICAgICByZXN1bHQ6ICcxMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1vZHVsZTogJ2FjY291bnQnLFxuICAgICAgYWN0aW9uOiAnYmFsYW5jZScsXG4gICAgICBhZGRyZXNzOiAnMHg1ZGY1YTk2YjQ3OGJiMTgwODE0MGQ4NzA3MjE0M2U2MDI2MmU4NjcwJyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBzdGF0dXM6ICcxJyxcbiAgICAgIG1lc3NhZ2U6ICdPSycsXG4gICAgICByZXN1bHQ6ICcyMjAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdwcm94eScsXG4gICAgICBhY3Rpb246ICdldGhfY2FsbCcsXG4gICAgICB0bzogJzB4NWRmNWE5NmI0NzhiYjE4MDgxNDBkODcwNzIxNDNlNjAyNjJlODY3MCcsXG4gICAgICBkYXRhOiAnYTBiNzk2N2InLFxuICAgICAgdGFnOiAnbGF0ZXN0JyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICAgIHJlc3VsdDogJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMScsXG4gICAgICBpZDogMSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ2JhbGFuY2UnLFxuICAgICAgYWRkcmVzczogJzB4YTFhODhhNTAyMjc0MDczYjFiYzRmZTA2ZWEwZjVmZTc3ZTE1MWI5MScsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMScsXG4gICAgICBtZXNzYWdlOiAnT0snLFxuICAgICAgcmVzdWx0OiAnMjAwMDAwMDAwMDAwMDAwMDAnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIG1vZHVsZTogJ2FjY291bnQnLFxuICAgICAgYWN0aW9uOiAndHhsaXN0JyxcbiAgICAgIGFkZHJlc3M6ICcweGExYTg4YTUwMjI3NDA3M2IxYmM0ZmUwNmVhMGY1ZmU3N2UxNTFiOTEnLFxuICAgIH0sXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIHN0YXR1czogJzEnLFxuICAgICAgbWVzc2FnZTogJ09LJyxcbiAgICAgIHJlc3VsdDogW1xuICAgICAgICB7XG4gICAgICAgICAgYmxvY2tOdW1iZXI6ICcyNjc0NTM2NCcsXG4gICAgICAgICAgdGltZVN0YW1wOiAnMTYyODc3ODY3NicsXG4gICAgICAgICAgaGFzaDogJzB4NDFkNTg5YjdiMTJhYmZhZDQ5NzVmNDJlNjJkM2I5NmRlMWViOWNhNDc3ZjYyYjRkNWE0OWIxNDBjM2ZiNmEyMScsXG4gICAgICAgICAgbm9uY2U6ICc0JyxcbiAgICAgICAgICBibG9ja0hhc2g6ICcweDkwOGMwN2NjMTQyNWU5MGEwZDU4ZTVjYzFiMTA5NTEwZTE0MDk3ZTA0YWFlNzQxZjhkZTg3NGJmZDBmN2Q4N2InLFxuICAgICAgICAgIHRyYW5zYWN0aW9uSW5kZXg6ICcyJyxcbiAgICAgICAgICBmcm9tOiAnMHgxY2U0M2YyMTg1ZGU1NzM0ZDMwMDRkZDAyODNmNThlYWVjNzg3ZTRhJyxcbiAgICAgICAgICB0bzogJzB4YTFhODhhNTAyMjc0MDczYjFiYzRmZTA2ZWEwZjVmZTc3ZTE1MWI5MScsXG4gICAgICAgICAgdmFsdWU6ICcyMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgZ2FzOiAnMjEwMDAnLFxuICAgICAgICAgIGdhc1ByaWNlOiAnMTAwMDAwMDAwMCcsXG4gICAgICAgICAgaXNFcnJvcjogJzAnLFxuICAgICAgICAgIHR4cmVjZWlwdF9zdGF0dXM6ICcxJyxcbiAgICAgICAgICBpbnB1dDogJzB4JyxcbiAgICAgICAgICBjb250cmFjdEFkZHJlc3M6ICcnLFxuICAgICAgICAgIGN1bXVsYXRpdmVHYXNVc2VkOiAnMzU3NTM2JyxcbiAgICAgICAgICBnYXNVc2VkOiAnMjEwMDAnLFxuICAgICAgICAgIGNvbmZpcm1hdGlvbnM6ICc5NTknLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ3R4bGlzdCcsXG4gICAgICBhZGRyZXNzOiAnMHhhMWE4OGE1MDIyNzQwNzNiMWJjNGZlMDZlYTBmNWZlNzdlMTUxYjkxJyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBzdGF0dXM6ICcxJyxcbiAgICAgIG1lc3NhZ2U6ICdPSycsXG4gICAgICByZXN1bHQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJsb2NrTnVtYmVyOiAnMjY3NDUzNjQnLFxuICAgICAgICAgIHRpbWVTdGFtcDogJzE2Mjg3Nzg2NzYnLFxuICAgICAgICAgIGhhc2g6ICcweDQxZDU4OWI3YjEyYWJmYWQ0OTc1ZjQyZTYyZDNiOTZkZTFlYjljYTQ3N2Y2MmI0ZDVhNDliMTQwYzNmYjZhMjEnLFxuICAgICAgICAgIG5vbmNlOiAnNCcsXG4gICAgICAgICAgYmxvY2tIYXNoOiAnMHg5MDhjMDdjYzE0MjVlOTBhMGQ1OGU1Y2MxYjEwOTUxMGUxNDA5N2UwNGFhZTc0MWY4ZGU4NzRiZmQwZjdkODdiJyxcbiAgICAgICAgICB0cmFuc2FjdGlvbkluZGV4OiAnMicsXG4gICAgICAgICAgZnJvbTogJzB4MWNlNDNmMjE4NWRlNTczNGQzMDA0ZGQwMjgzZjU4ZWFlYzc4N2U0YScsXG4gICAgICAgICAgdG86ICcweGExYTg4YTUwMjI3NDA3M2IxYmM0ZmUwNmVhMGY1ZmU3N2UxNTFiOTEnLFxuICAgICAgICAgIHZhbHVlOiAnMjAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgIGdhczogJzIxMDAwJyxcbiAgICAgICAgICBnYXNQcmljZTogJzEwMDAwMDAwMDAnLFxuICAgICAgICAgIGlzRXJyb3I6ICcwJyxcbiAgICAgICAgICB0eHJlY2VpcHRfc3RhdHVzOiAnMScsXG4gICAgICAgICAgaW5wdXQ6ICcweCcsXG4gICAgICAgICAgY29udHJhY3RBZGRyZXNzOiAnJyxcbiAgICAgICAgICBjdW11bGF0aXZlR2FzVXNlZDogJzM1NzUzNicsXG4gICAgICAgICAgZ2FzVXNlZDogJzIxMDAwJyxcbiAgICAgICAgICBjb25maXJtYXRpb25zOiAnOTU5JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIHBhcmFtczoge1xuICAgICAgbW9kdWxlOiAnYWNjb3VudCcsXG4gICAgICBhY3Rpb246ICd0b2tlbmJhbGFuY2UnLFxuICAgICAgY29udHJhY3RhZGRyZXNzOiAnMHg0Zjk2ZmUzYjdhNmNmOTcyNWY1OWQzNTNmNzIzYzFiZGI2NGNhNmFhJyxcbiAgICAgIGFkZHJlc3M6ICcweGRmMDcxMTc3MDVhOWY4ZGM0YzJhNzhkZTY2YjdmMTc5N2RiYTlkNGUnLFxuICAgICAgdGFnOiAnbGF0ZXN0JyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBzdGF0dXM6ICcxJyxcbiAgICAgIG1lc3NhZ2U6ICdPSycsXG4gICAgICByZXN1bHQ6ICcxMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdwcm94eScsXG4gICAgICBhY3Rpb246ICdldGhfY2FsbCcsXG4gICAgICB0bzogJzB4ZGYwNzExNzcwNWE5ZjhkYzRjMmE3OGRlNjZiN2YxNzk3ZGJhOWQ0ZScsXG4gICAgICBkYXRhOiAnYTBiNzk2N2InLFxuICAgICAgdGFnOiAnbGF0ZXN0JyxcbiAgICB9LFxuICAgIHJlc3BvbnNlOiB7XG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICAgIHJlc3VsdDogJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMmE3ZicsXG4gICAgICBpZDogMSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgcGFyYW1zOiB7XG4gICAgICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgICAgIGFjdGlvbjogJ2JhbGFuY2UnLFxuICAgICAgYWRkcmVzczogJzB4ZGYwNzExNzcwNWE5ZjhkYzRjMmE3OGRlNjZiN2YxNzk3ZGJhOWQ0ZScsXG4gICAgfSxcbiAgICByZXNwb25zZToge1xuICAgICAgc3RhdHVzOiAnMScsXG4gICAgICBtZXNzYWdlOiAnT0snLFxuICAgICAgcmVzdWx0OiAnOTk5OTk5OTk5OTk5OTk5OTkyOCcsXG4gICAgfSxcbiAgfSxcbl07XG5cbm1vZHVsZS5leHBvcnRzLm5vY2tFdGhMaWtlUmVjb3ZlcnkgPSBmdW5jdGlvbiAoYml0Z28sIG5vY2tEYXRhID0gbm9ja0V0aERhdGEpIHtcbiAgbGV0IGFwaUtleTtcbiAgaWYgKEVudmlyb25tZW50c1tiaXRnby5nZXRFbnYoKV0uZXRoZXJzY2FuQXBpVG9rZW4pIHtcbiAgICBhcGlLZXkgPSBFbnZpcm9ubWVudHNbYml0Z28uZ2V0RW52KCldLmV0aGVyc2NhbkFwaVRva2VuO1xuICB9XG5cbiAgbm9ja0RhdGEuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgIGlmIChhcGlLZXkpIHtcbiAgICAgIGRhdGEucGFyYW1zLmFwaUtleSA9IGFwaUtleTtcbiAgICB9XG4gICAgZGF0YS5wYXJhbXNbYGNoYWluaWRgXSA9ICc1NjAwNDgnO1xuICAgIG5vY2soJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicpLmdldCgnL2FwaScpLnF1ZXJ5KGRhdGEucGFyYW1zKS5yZXBseSgyMDAsIGRhdGEucmVzcG9uc2UpO1xuICAgIGRhdGEucGFyYW1zW2BjaGFpbmlkYF0gPSAnODAwMDInO1xuICAgIG5vY2soJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicpLmdldCgnL2FwaScpLnF1ZXJ5KGRhdGEucGFyYW1zKS5yZXBseSgyMDAsIGRhdGEucmVzcG9uc2UpO1xuICAgIGRhdGEucGFyYW1zW2BjaGFpbmlkYF0gPSAnOTcnO1xuICAgIG5vY2soJ2h0dHBzOi8vYXBpLmV0aGVyc2Nhbi5pby92MicpLmdldCgnL2FwaScpLnF1ZXJ5KGRhdGEucGFyYW1zKS5yZXBseSgyMDAsIGRhdGEucmVzcG9uc2UpO1xuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLm5vY2tWZXRSZWNvdmVyeSA9IGZ1bmN0aW9uIChiaXRnbywgYmFzZUFkZHJlc3MpIHtcbiAgLy8gbm9jayBmb3IgYWNjb3VudCBiYWxhbmNlXG4gIGNvbnN0IHVybCA9IEVudmlyb25tZW50c1tiaXRnby5nZXRFbnYoKV0udmV0Tm9kZVVybDtcbiAgbm9jayh1cmwpLmdldChgL2FjY291bnRzLyR7YmFzZUFkZHJlc3N9YCkucmVwbHkoMjAwLCB7XG4gICAgYmFsYW5jZTogJzB4OGFjNzIzMDQ4OWU4MDAwMCcsXG4gICAgZW5lcmd5OiAnMHg1OTY5YjUzOTYyNzgwMCcsXG4gICAgaGFzQ29kZTogZmFsc2UsXG4gIH0pO1xuXG4gIG5vY2sodXJsKS5nZXQoJy9ibG9ja3MvYmVzdCcpLnJlcGx5KDIwMCwge1xuICAgIG51bWJlcjogMjMxMDc4MjYsXG4gICAgaWQ6ICcweDAxNjA5OGYyYTY3NzljM2FkMmJiNTJlZjBhM2Y1N2M3NzBhZjU1YTc3YmZhMWIyODM3MjY2Zjc1MjExOGFkOGQnLFxuICAgIHNpemU6IDM2OCxcbiAgICBwYXJlbnRJRDogJzB4MDE2MDk4ZjFhY2ZmYjAxMjVmZmVjYTliM2UyNDkxZDMxNTc0ZDE0YjU1YTE1ZTkxMmU0NWU4MDgxZTA2M2UwZScsXG4gICAgdGltZXN0YW1wOiAxNzYxMTE2NjMwLFxuICAgIGdhc0xpbWl0OiA0MDAwMDAwMCxcbiAgICBiZW5lZmljaWFyeTogJzB4YWU5OWNiODk3NjdhMDlkNTNlNTg5YTQwY2I0MDE2OTc0YWJhNGI5NCcsXG4gICAgZ2FzVXNlZDogMCxcbiAgICB0b3RhbFNjb3JlOiAyMTg1MjM1NzcsXG4gICAgdHhzUm9vdDogJzB4NDViMGNmYzIyMGNlZWM1YjdjMWM2MmM0ZDQxOTNkMzhlNGViYTQ4ZTg4MTU3MjljZTc1ZjljMGFiMGU0YzFjMCcsXG4gICAgdHhzRmVhdHVyZXM6IDEsXG4gICAgc3RhdGVSb290OiAnMHg3YTVlN2IzYjhiODk5NThlN2ZkZDVlMTRhY2JjNzlkYmM0MTk2NzJlODRkMDIzNzZhNDNiM2JlZWJlNTU1ZTMzJyxcbiAgICByZWNlaXB0c1Jvb3Q6ICcweDQ1YjBjZmMyMjBjZWVjNWI3YzFjNjJjNGQ0MTkzZDM4ZTRlYmE0OGU4ODE1NzI5Y2U3NWY5YzBhYjBlNGMxYzAnLFxuICAgIGNvbTogdHJ1ZSxcbiAgICBzaWduZXI6ICcweGFlOTljYjg5NzY3YTA5ZDUzZTU4OWE0MGNiNDAxNjk3NGFiYTRiOTQnLFxuICAgIGlzVHJ1bms6IHRydWUsXG4gICAgaXNGaW5hbGl6ZWQ6IGZhbHNlLFxuICAgIGJhc2VGZWVQZXJHYXM6ICcweDkxODRlNzJhMDAwJyxcbiAgICB0cmFuc2FjdGlvbnM6IFtdLFxuICB9KTtcblxuICBub2NrKHVybClcbiAgICAucG9zdCgnL2FjY291bnRzLyonLCB7XG4gICAgICBjbGF1c2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0bzogJzB4YWMwNWRhNzg0NjQ1MjBhYTdjOWQ0YzE5YmQ3YTQ0MGIxMTFiMzA1NCcsXG4gICAgICAgICAgdmFsdWU6ICcxMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgZGF0YTogJzB4JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBjYWxsZXI6IGAke2Jhc2VBZGRyZXNzfWAsXG4gICAgfSlcbiAgICAucmVwbHkoMjAwLCBbXG4gICAgICB7XG4gICAgICAgIGRhdGE6ICcweCcsXG4gICAgICAgIGV2ZW50czogW10sXG4gICAgICAgIHRyYW5zZmVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlbmRlcjogYCR7YmFzZUFkZHJlc3N9YCxcbiAgICAgICAgICAgIHJlY2lwaWVudDogJzB4YWMwNWRhNzg0NjQ1MjBhYTdjOWQ0YzE5YmQ3YTQ0MGIxMTFiMzA1NCcsXG4gICAgICAgICAgICBhbW91bnQ6ICcweDhhYzcyMzA0ODllODAwMDAnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGdhc1VzZWQ6IDAsXG4gICAgICAgIHJldmVydGVkOiBmYWxzZSxcbiAgICAgICAgdm1FcnJvcjogJycsXG4gICAgICB9LFxuICAgIF0pO1xuICAvLyBub2NrIGZvciB2dGhvIGJhbGFuY2UgZm9yIGdhc1xuICBub2NrKHVybClcbiAgICAucG9zdCgnL2FjY291bnRzLyonLCB7XG4gICAgICBjbGF1c2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0bzogJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NkU2NTcyNjc3OScsXG4gICAgICAgICAgdmFsdWU6ICcweDAnLFxuICAgICAgICAgIGRhdGE6IGAweDcwYTA4MjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJHtiYXNlQWRkcmVzcy5zbGljZSgyKX1gLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KVxuICAgIC5yZXBseSgyMDAsIFtcbiAgICAgIHtcbiAgICAgICAgZGF0YTogJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3ZTk4Mjc4OWY4ZmUwY2YwYScsXG4gICAgICAgIGV2ZW50czogW10sXG4gICAgICAgIHRyYW5zZmVyczogW10sXG4gICAgICAgIGdhc1VzZWQ6IDg3MCxcbiAgICAgICAgcmV2ZXJ0ZWQ6IGZhbHNlLFxuICAgICAgICB2bUVycm9yOiAnJyxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgbm9jayh1cmwpXG4gICAgLnBvc3QoJy90cmFuc2FjdGlvbnMnLCB7XG4gICAgICByYXc6IC9eMHhbMC05YS1mXSskL2ksXG4gICAgfSlcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICBpZDogJzB4JyArICdhJy5yZXBlYXQoNjQpLCAvLyBBIGZha2UgdHJhbnNhY3Rpb24gSURcbiAgICAgIHJldmVydGVkOiBmYWxzZSxcbiAgICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLm5vY2tWZXRUb2tlblJlY292ZXJ5ID0gZnVuY3Rpb24gKGJpdGdvLCBiYXNlQWRkcmVzcykge1xuICAvLyBub2NrIGZvciBhY2NvdW50IGJhbGFuY2VcbiAgY29uc3QgdXJsID0gRW52aXJvbm1lbnRzW2JpdGdvLmdldEVudigpXS52ZXROb2RlVXJsO1xuICBub2NrKHVybClcbiAgICAucG9zdCgnL2FjY291bnRzLyonLCB7XG4gICAgICBjbGF1c2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0bzogJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NkU2NTcyNjc3OScsXG4gICAgICAgICAgdmFsdWU6ICcweDAnLFxuICAgICAgICAgIGRhdGE6IGAweDcwYTA4MjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJHtiYXNlQWRkcmVzcy5zbGljZSgyKX1gLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KVxuICAgIC5yZXBseSgyMDAsIFtcbiAgICAgIHtcbiAgICAgICAgZGF0YTogJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDE2MDAzODYzYmQ5MTdmOCcsXG4gICAgICAgIGV2ZW50czogW10sXG4gICAgICAgIHRyYW5zZmVyczogW10sXG4gICAgICAgIGdhc1VzZWQ6IDg3MCxcbiAgICAgICAgcmV2ZXJ0ZWQ6IGZhbHNlLFxuICAgICAgICB2bUVycm9yOiAnJyxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgbm9jayh1cmwpLmdldCgnL2Jsb2Nrcy9iZXN0JykucmVwbHkoMjAwLCB7XG4gICAgbnVtYmVyOiAyMzEwNzgyNixcbiAgICBpZDogJzB4MDE2MDk4ZjJhNjc3OWMzYWQyYmI1MmVmMGEzZjU3Yzc3MGFmNTVhNzdiZmExYjI4MzcyNjZmNzUyMTE4YWQ4ZCcsXG4gICAgc2l6ZTogMzY4LFxuICAgIHBhcmVudElEOiAnMHgwMTYwOThmMWFjZmZiMDEyNWZmZWNhOWIzZTI0OTFkMzE1NzRkMTRiNTVhMTVlOTEyZTQ1ZTgwODFlMDYzZTBlJyxcbiAgICB0aW1lc3RhbXA6IDE3NjExMTY2MzAsXG4gICAgZ2FzTGltaXQ6IDQwMDAwMDAwLFxuICAgIGJlbmVmaWNpYXJ5OiAnMHhhZTk5Y2I4OTc2N2EwOWQ1M2U1ODlhNDBjYjQwMTY5NzRhYmE0Yjk0JyxcbiAgICBnYXNVc2VkOiAwLFxuICAgIHRvdGFsU2NvcmU6IDIxODUyMzU3NyxcbiAgICB0eHNSb290OiAnMHg0NWIwY2ZjMjIwY2VlYzViN2MxYzYyYzRkNDE5M2QzOGU0ZWJhNDhlODgxNTcyOWNlNzVmOWMwYWIwZTRjMWMwJyxcbiAgICB0eHNGZWF0dXJlczogMSxcbiAgICBzdGF0ZVJvb3Q6ICcweDdhNWU3YjNiOGI4OTk1OGU3ZmRkNWUxNGFjYmM3OWRiYzQxOTY3MmU4NGQwMjM3NmE0M2IzYmVlYmU1NTVlMzMnLFxuICAgIHJlY2VpcHRzUm9vdDogJzB4NDViMGNmYzIyMGNlZWM1YjdjMWM2MmM0ZDQxOTNkMzhlNGViYTQ4ZTg4MTU3MjljZTc1ZjljMGFiMGU0YzFjMCcsXG4gICAgY29tOiB0cnVlLFxuICAgIHNpZ25lcjogJzB4YWU5OWNiODk3NjdhMDlkNTNlNTg5YTQwY2I0MDE2OTc0YWJhNGI5NCcsXG4gICAgaXNUcnVuazogdHJ1ZSxcbiAgICBpc0ZpbmFsaXplZDogZmFsc2UsXG4gICAgYmFzZUZlZVBlckdhczogJzB4OTE4NGU3MmEwMDAnLFxuICAgIHRyYW5zYWN0aW9uczogW10sXG4gIH0pO1xuXG4gIG5vY2sodXJsKVxuICAgIC5wb3N0KCcvYWNjb3VudHMvKicsIHtcbiAgICAgIGNsYXVzZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRvOiAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2RTY1NzI2Nzc5JyxcbiAgICAgICAgICB2YWx1ZTogJzB4MCcsXG4gICAgICAgICAgZGF0YTogJzB4YTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhYzA1ZGE3ODQ2NDUyMGFhN2M5ZDRjMTliZDdhNDQwYjExMWIzMDU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzZhOWQzMTU3NWJjZWU4ZScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgY2FsbGVyOiBgJHtiYXNlQWRkcmVzc31gLFxuICAgIH0pXG4gICAgLnJlcGx5KDIwMCwgW1xuICAgICAge1xuICAgICAgICBkYXRhOiAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxJyxcbiAgICAgICAgZXZlbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OScsXG4gICAgICAgICAgICB0b3BpY3M6IFtcbiAgICAgICAgICAgICAgJzB4ZGRmMjUyYWQxYmUyYzg5YjY5YzJiMDY4ZmMzNzhkYWE5NTJiYTdmMTYzYzRhMTE2MjhmNTVhNGRmNTIzYjNlZicsXG4gICAgICAgICAgICAgICcweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg4MGZmNDcxODU4N2Q2NzhlNzhmYzc4MDNiMzYzNGJkMTJlY2YwMTknLFxuICAgICAgICAgICAgICAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBhYzA1ZGE3ODQ2NDUyMGFhN2M5ZDRjMTliZDdhNDQwYjExMWIzMDU0JyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBkYXRhOiAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNmE5ZDMxNTc1YmNlZThlJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0cmFuc2ZlcnM6IFtdLFxuICAgICAgICBnYXNVc2VkOiAxMzMyNixcbiAgICAgICAgcmV2ZXJ0ZWQ6IGZhbHNlLFxuICAgICAgICB2bUVycm9yOiAnJyxcbiAgICAgIH0sXG4gICAgXSk7XG4gIC8vIG5vY2sgZm9yIHZ0aG8gYmFsYW5jZSBmb3IgZ2FzXG4gIG5vY2sodXJsKVxuICAgIC5wb3N0KCcvYWNjb3VudHMvKicsIHtcbiAgICAgIGNsYXVzZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRvOiAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2RTY1NzI2Nzc5JyxcbiAgICAgICAgICB2YWx1ZTogJzB4MCcsXG4gICAgICAgICAgZGF0YTogYDB4NzBhMDgyMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAke2Jhc2VBZGRyZXNzLnNsaWNlKDIpfWAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pXG4gICAgLnJlcGx5KDIwMCwgW1xuICAgICAge1xuICAgICAgICBkYXRhOiAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MTYwMDM4NjNiZDkxN2Y4JyxcbiAgICAgICAgZXZlbnRzOiBbXSxcbiAgICAgICAgdHJhbnNmZXJzOiBbXSxcbiAgICAgICAgZ2FzVXNlZDogODcwLFxuICAgICAgICByZXZlcnRlZDogZmFsc2UsXG4gICAgICAgIHZtRXJyb3I6ICcnLFxuICAgICAgfSxcbiAgICBdKTtcblxuICBub2NrKHVybClcbiAgICAucG9zdCgnL3RyYW5zYWN0aW9ucycsIHtcbiAgICAgIHJhdzogL14weFswLTlhLWZdKyQvaSxcbiAgICB9KVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGlkOiAnMHgnICsgJ2EnLnJlcGVhdCg2NCksIC8vIEEgZmFrZSB0cmFuc2FjdGlvbiBJRFxuICAgICAgcmV2ZXJ0ZWQ6IGZhbHNlLFxuICAgIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMubm9ja0V0aGVyc2NhblJhdGVMaW1pdEVycm9yID0gZnVuY3Rpb24gKCkge1xuICBjb25zdCByZXNwb25zZSA9IHtcbiAgICBzdGF0dXM6ICcwJyxcbiAgICBtZXNzYWdlOiAnTk9UT0snLFxuICAgIHJlc3VsdDogJ01heCByYXRlIGxpbWl0IHJlYWNoZWQsIHJhdGUgbGltaXQgb2YgMy8xc2VjIGFwcGxpZWRcIicsXG4gIH07XG5cbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIGNoYWluaWQ6ICc1NjAwNDgnLFxuICAgIG1vZHVsZTogJ2FjY291bnQnLFxuICAgIGFjdGlvbjogJ3R4bGlzdCcsXG4gICAgYWRkcmVzczogJzB4NzRjMjEzN2Q1NGIwZmM5ZjkwN2UxM2YxNGUwZGQxODQ4NWZlZTkyNCcsXG4gIH07XG5cbiAgbm9jaygnaHR0cHM6Ly9hcGkuZXRoZXJzY2FuLmlvL3YyJykuZ2V0KCcvYXBpJykucXVlcnkocGFyYW1zKS5yZXBseSgyMDAsIHJlc3BvbnNlKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLm5vY2tYbG1SZWNvdmVyeSA9IGZ1bmN0aW9uICgpIHtcbiAgbm9jaygnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcnKVxuICAgIC5nZXQoJy9hY2NvdW50cy9HQUdDUUxVR01YNzZYQzI0SlJDUkpXT0hYSzIzT05VUkg0NDMzSk9FUFU2Q0g3WjQ0Q0NZVUNFTCcpXG4gICAgLnJlcGx5KDQwNCwge1xuICAgICAgc3RhdHVzOiA0MDQsXG4gICAgfSlcbiAgICAuZ2V0KCcvYWNjb3VudHMvR0FTVzI3N1MyWk9FN0g3QTVFUTVINUFLTFA2VUE2WjVBS09TV1Y2QVJCRUdUU0lHTVpNQzdBSVonKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGJhbGFuY2U6ICcxMCcsXG4gICAgfSlcbiAgICAuZ2V0KCcvYWNjb3VudHMvR0FVQUdUTDNOQlo3TlAzVUlNWkNWSllNNk8yTktVUDZYUlRLNEU1VlpEVklRWDNDQllJVk1ESUInKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGlkOiAnR0FVQUdUTDNOQlo3TlAzVUlNWkNWSllNNk8yTktVUDZYUlRLNEU1VlpEVklRWDNDQllJVk1ESUInLFxuICAgICAgcGFnaW5nX3Rva2VuOiAnJyxcbiAgICAgIGFjY291bnRfaWQ6ICdHQVVBR1RMM05CWjdOUDNVSU1aQ1ZKWU02TzJOS1VQNlhSVEs0RTVWWkRWSVFYM0NCWUlWTURJQicsXG4gICAgICBzZXF1ZW5jZTogJzQ3MzM5NDU1OTU0MDI2NDk3JyxcbiAgICAgIHN1YmVudHJ5X2NvdW50OiAzLFxuICAgICAgdGhyZXNob2xkczoge1xuICAgICAgICBsb3dfdGhyZXNob2xkOiAxLFxuICAgICAgICBtZWRfdGhyZXNob2xkOiAyLFxuICAgICAgICBoaWdoX3RocmVzaG9sZDogMyxcbiAgICAgIH0sXG4gICAgICBmbGFnczoge1xuICAgICAgICBhdXRoX3JlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgYXV0aF9yZXZvY2FibGU6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGJhbGFuY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiYWxhbmNlOiAnOS45OTk5NjAwJyxcbiAgICAgICAgICBidXlpbmdfbGlhYmlsaXRpZXM6ICcwLjAwMDAwMDAnLFxuICAgICAgICAgIHNlbGxpbmdfbGlhYmlsaXRpZXM6ICcwLjAwMDAwMDAnLFxuICAgICAgICAgIGFzc2V0X3R5cGU6ICduYXRpdmUnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHNpZ25lcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY19rZXk6ICdHQk5LNEZKTzZGRFFOQlZMVVA3TUlDRUpVVklOUE5KWkNERFRUWVMzTFZGQzZKN0xLRVhMT0JLTScsXG4gICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIGtleTogJ0dCTks0RkpPNkZEUU5CVkxVUDdNSUNFSlVWSU5QTkpaQ0REVFRZUzNMVkZDNko3TEtFWExPQktNJyxcbiAgICAgICAgICB0eXBlOiAnZWQyNTUxOV9wdWJsaWNfa2V5JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY19rZXk6ICdHQ0JBQkpQRTNVVFozSlBVRUlaRVhBUVE1Q01OWDVVUFlLT0I3SEhYU0hCQ0lHRDdWVjY0SDZLVScsXG4gICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIGtleTogJ0dDQkFCSlBFM1VUWjNKUFVFSVpFWEFRUTVDTU5YNVVQWUtPQjdISFhTSEJDSUdEN1ZWNjRINktVJyxcbiAgICAgICAgICB0eXBlOiAnZWQyNTUxOV9wdWJsaWNfa2V5JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY19rZXk6ICdHQlNLWk03SEc0UzJXNE40SDY1WEhUR1M3MjRIUUE3RUZNU1NDVkxQV1c1M1pGTDZTTlZGSktKTycsXG4gICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIGtleTogJ0dCU0taTTdIRzRTMlc0TjRINjVYSFRHUzcyNEhRQTdFRk1TU0NWTFBXVzUzWkZMNlNOVkZKS0pPJyxcbiAgICAgICAgICB0eXBlOiAnZWQyNTUxOV9wdWJsaWNfa2V5JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY19rZXk6ICdHQVVBR1RMM05CWjdOUDNVSU1aQ1ZKWU02TzJOS1VQNlhSVEs0RTVWWkRWSVFYM0NCWUlWTURJQicsXG4gICAgICAgICAgd2VpZ2h0OiAwLFxuICAgICAgICAgIGtleTogJ0dBVUFHVEwzTkJaN05QM1VJTVpDVkpZTTZPMk5LVVA2WFJUSzRFNVZaRFZJUVgzQ0JZSVZNRElCJyxcbiAgICAgICAgICB0eXBlOiAnZWQyNTUxOV9wdWJsaWNfa2V5JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBkYXRhOiB7fSxcbiAgICB9KVxuICAgIC5nZXQoJy9sZWRnZXJzJylcbiAgICAucXVlcnkodHJ1ZSlcbiAgICAudGltZXMoMilcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICBfbGlua3M6IHtcbiAgICAgICAgc2VsZjoge1xuICAgICAgICAgIGhyZWY6ICdodHRwczovL2hvcml6b24tdGVzdG5ldC5zdGVsbGFyLm9yZy9sZWRnZXJzP2M9MC4zNzY0MzEwMDYxMzcxODAwNiZjdXJzb3I9JmxpbWl0PTEmb3JkZXI9ZGVzYycsXG4gICAgICAgIH0sXG4gICAgICAgIG5leHQ6IHtcbiAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcvbGVkZ2Vycz9jPTAuMzc2NDMxMDA2MTM3MTgwMDYmY3Vyc29yPTQ4NDE5NjUzMTEzODcyMzg0JmxpbWl0PTEmb3JkZXI9ZGVzYycsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXY6IHtcbiAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcvbGVkZ2Vycz9jPTAuMzc2NDMxMDA2MTM3MTgwMDYmY3Vyc29yPTQ4NDE5NjUzMTEzODcyMzg0JmxpbWl0PTEmb3JkZXI9YXNjJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBfZW1iZWRkZWQ6IHtcbiAgICAgICAgcmVjb3JkczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIF9saW5rczoge1xuICAgICAgICAgICAgICBzZWxmOiB7XG4gICAgICAgICAgICAgICAgaHJlZjogJ2h0dHBzOi8vaG9yaXpvbi10ZXN0bmV0LnN0ZWxsYXIub3JnL2xlZGdlcnMvMTEyNzM1NzknLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0cmFuc2FjdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcvbGVkZ2Vycy8xMTI3MzU3OS90cmFuc2FjdGlvbnN7P2N1cnNvcixsaW1pdCxvcmRlcn0nLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uczoge1xuICAgICAgICAgICAgICAgIGhyZWY6ICdodHRwczovL2hvcml6b24tdGVzdG5ldC5zdGVsbGFyLm9yZy9sZWRnZXJzLzExMjczNTc5L29wZXJhdGlvbnN7P2N1cnNvcixsaW1pdCxvcmRlcn0nLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcGF5bWVudHM6IHtcbiAgICAgICAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9ob3Jpem9uLXRlc3RuZXQuc3RlbGxhci5vcmcvbGVkZ2Vycy8xMTI3MzU3OS9wYXltZW50c3s/Y3Vyc29yLGxpbWl0LG9yZGVyfScsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVkOiB0cnVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlZmZlY3RzOiB7XG4gICAgICAgICAgICAgICAgaHJlZjogJ2h0dHBzOi8vaG9yaXpvbi10ZXN0bmV0LnN0ZWxsYXIub3JnL2xlZGdlcnMvMTEyNzM1NzkvZWZmZWN0c3s/Y3Vyc29yLGxpbWl0LG9yZGVyfScsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVkOiB0cnVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlkOiAnNWZhYjE3MGE0N2FmYTE1Y2MxMzA3OTBmOGMzYmNiODQ2ZmEyOTViMWZhNTExMzk0MzdjNGQxMjA4NzhlODUwZicsXG4gICAgICAgICAgICBwYWdpbmdfdG9rZW46ICc0ODQxOTY1MzExMzg3MjM4NCcsXG4gICAgICAgICAgICBoYXNoOiAnNWZhYjE3MGE0N2FmYTE1Y2MxMzA3OTBmOGMzYmNiODQ2ZmEyOTViMWZhNTExMzk0MzdjNGQxMjA4NzhlODUwZicsXG4gICAgICAgICAgICBwcmV2X2hhc2g6ICc1ZWZlNmYzMjY2MmFmOGFiMmQ4YTVmODk4NGMwMjdhZDMzMGYxODFiZjViOWUzODEyZDVhMDhmNjJlMmNiOTc4JyxcbiAgICAgICAgICAgIHNlcXVlbmNlOiAxMTI3MzU3OSxcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uX2NvdW50OiAwLFxuICAgICAgICAgICAgb3BlcmF0aW9uX2NvdW50OiAwLFxuICAgICAgICAgICAgY2xvc2VkX2F0OiAnMjAxOC0wOS0yN1QyMjoxMzozNVonLFxuICAgICAgICAgICAgdG90YWxfY29pbnM6ICcxMDQyODQ3MTUyNTUuNzQyMDAyOCcsXG4gICAgICAgICAgICBmZWVfcG9vbDogJzE3MDg4ODA4NzMuNjc2OTY4NycsXG4gICAgICAgICAgICBiYXNlX2ZlZV9pbl9zdHJvb3BzOiAxMDAsXG4gICAgICAgICAgICBiYXNlX3Jlc2VydmVfaW5fc3Ryb29wczogNTAwMDAwMCxcbiAgICAgICAgICAgIG1heF90eF9zZXRfc2l6ZTogNTAsXG4gICAgICAgICAgICBwcm90b2NvbF92ZXJzaW9uOiAxMCxcbiAgICAgICAgICAgIGhlYWRlcl94ZHI6XG4gICAgICAgICAgICAgICdBQUFBQ2w3K2J6Sm1LdmlyTFlwZmlZVEFKNjB6RHhnYjlibmpnUzFhQ1BZdUxMbDROQjRNRnBTMGpRazhYM1V0OTNjMlE3Y1lFRVduaFozdHRlTWhabnp0U004QUFBQUFXNjFXRHdBQUFBQUFBQUFBTHpXdmlKeFZEVit3cnpWblM0WW9JOHhJMDUwYUtuQWZuZXkrdFp4ZmNZMmFGeXNERlZNRjE2Y3FnWmp3OHlpeXp5ZmMxdTBlcXBMdExyWnlZRWFtL0FDc0JXc09lTy8xd3padC9BQTh0aTVXWThhWEFBQUEzUUFBQUFBQUM0U1JBQUFBWkFCTVMwQUFBQUF5dWdsQnNMRnlHbUJPcUoyNTBmRGE3NmJZNS9jMXY5VEJRbDBBTGh6eDJHNnZYY2RaU204YW9DQlBXSFpCcks3R2ZwSGE0RGJpRHFJYXY0eXpqYW5JVVNKOUNXS2xYUVhIV2ZmOXlLVWxwYVZKSnk0VGNFTEpWM3cwbmx3YU5iUnpMZitKd0dWWWI2Qm5CMkdpWkVTdmYxeUVpYnZsVTIxWlZlRUJzY2Nia2c0QUFBQUEnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMubm9ja1Ryb25SZWNvdmVyeSA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gZnVsbCBub2RlIC0gc2VuZFRyeCBmcm9tIHRyb253ZWIsIGJ1aWxkIHRyYW5zYWN0aW9uIGNhbGxcbiAgbm9jaygnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJylcbiAgICAucG9zdCgnL3dhbGxldC9jcmVhdGV0cmFuc2FjdGlvbicpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICB0eElEOiAnMzEyYzkyNTQ2NjdiN2RjNDgyM2Y2OWU5ZTIwZWQ1NWMyZmI4MWYwNDIxZjk1NmM1ZTg1NjgwZDA5OGU3NWFjOCcsXG4gICAgICByYXdfZGF0YToge1xuICAgICAgICBjb250cmFjdDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGFtb3VudDogMTAwMDAwMDAsXG4gICAgICAgICAgICAgICAgb3duZXJfYWRkcmVzczogJzQxZTdlMTFkZjJjNTcwNDg4OGMzY2I2M2ZiNDNhOTQ5OGJkMTgxMmNiMicsXG4gICAgICAgICAgICAgICAgdG9fYWRkcmVzczogJzQxZjVmNDE0ZDQ0N2FhZmU3MGJiOWI5ZDkzOTEyY2JjNGM1NGYwYzAxNCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHR5cGVfdXJsOiAndHlwZS5nb29nbGVhcGlzLmNvbS9wcm90b2NvbC5UcmFuc2ZlckNvbnRyYWN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0eXBlOiAnVHJhbnNmZXJDb250cmFjdCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcmVmX2Jsb2NrX2J5dGVzOiAnYTc2MicsXG4gICAgICAgIHJlZl9ibG9ja19oYXNoOiAnMThkZmU5NDZmYmY3YTBhYycsXG4gICAgICAgIGV4cGlyYXRpb246IDE2NzY2NjAwNDMwMDAsXG4gICAgICAgIHRpbWVzdGFtcDogMTY3NjY1OTk4Mzc5OSxcbiAgICAgIH0sXG4gICAgICByYXdfZGF0YV9oZXg6XG4gICAgICAgICcwYTAyYTc2MjIyMDgxOGRmZTk0NmZiZjdhMGFjNDBmOGQ5ZTc4NWU2MzA1YTY5MDgwMTEyNjUwYTJkNzQ3OTcwNjUyZTY3NmY2ZjY3NmM2NTYxNzA2OTczMmU2MzZmNmQyZjcwNzI2Zjc0NmY2MzZmNmMyZTU0NzI2MTZlNzM2NjY1NzI0MzZmNmU3NDcyNjE2Mzc0MTIzNDBhMTU0MWU3ZTExZGYyYzU3MDQ4ODhjM2NiNjNmYjQzYTk0OThiZDE4MTJjYjIxMjE1NDFmNWY0MTRkNDQ3YWFmZTcwYmI5YjlkOTM5MTJjYmM0YzU0ZjBjMDE0MThjOGQxOWNhZDAzNzBiNzhiZTQ4NWU2MzAnLFxuICAgIH0pO1xuXG4gIC8vIGZ1bGwgbm9kZSAtIHJldHJpZXZlIGFjY291bnQgaW5mb3JtYXRpb24gY2FsbFxuICBub2NrKCdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nKVxuICAgIC5nZXQoJy92MS9hY2NvdW50cy9UWDdHbW1yZmJnVEdZSzZhMkM4dm5CcjVUdVFickdtVkhFJylcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYXRlc3Rfb3ByYXRpb25fdGltZTogMTY3NjQ4NzY3MjAwMCxcbiAgICAgICAgICBvd25lcl9wZXJtaXNzaW9uOiB7XG4gICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFg3R21tcmZiZ1RHWUs2YTJDOHZuQnI1VHVRYnJHbVZIRScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1REdEdKYXJDSG4xSE45QVB5dmgzcTJIVms2a1czcW5wbUYnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUR3FRZEgxakVKd3NVVFk1UHlmejhHQk1pbzhCZ1BiNm5LJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAgcGVybWlzc2lvbl9uYW1lOiAnb3duZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWNjb3VudF9yZXNvdXJjZToge1xuICAgICAgICAgICAgbGF0ZXN0X2NvbnN1bWVfdGltZV9mb3JfZW5lcmd5OiAxNjc2NDg3NjcyMDAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWN0aXZlX3Blcm1pc3Npb246IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uczogJzdmZmYxZmMwMDM3ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1RYN0dtbXJmYmdUR1lLNmEyQzh2bkJyNVR1UWJyR21WSEUnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1REdEdKYXJDSG4xSE45QVB5dmgzcTJIVms2a1czcW5wbUYnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1RHcVFkSDFqRUp3c1VUWTVQeWZ6OEdCTWlvOEJnUGI2bksnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgICAgaWQ6IDIsXG4gICAgICAgICAgICAgIHR5cGU6ICdBY3RpdmUnLFxuICAgICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdhY3RpdmUwJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBmcm96ZW5WMjogW1xuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdFTkVSR1knLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ1VOS05PV05fRU5VTV9WQUxVRV9SZXNvdXJjZUNvZGVfMicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkcmVzczogJzQxZTdlMTFkZjJjNTcwNDg4OGMzY2I2M2ZiNDNhOTQ5OGJkMTgxMmNiMicsXG4gICAgICAgICAgYmFsYW5jZTogOTAxMTQ3NDAwLFxuICAgICAgICAgIGNyZWF0ZV90aW1lOiAxNjc2NDg3Mjg4MDAwLFxuICAgICAgICAgIHRyYzIwOiBbXSxcbiAgICAgICAgICBsYXRlc3RfY29uc3VtZV9mcmVlX3RpbWU6IDE2NzY0ODc2NzIwMDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgYXQ6IDE2NzY2NTUwODk5NTIsXG4gICAgICAgIHBhZ2Vfc2l6ZTogMSxcbiAgICAgIH0sXG4gICAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5ub2NrVHJvblJlY2VpdmVSZWNvdmVyeSA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gZnVsbCBub2RlIC0gc2VuZFRyeCBmcm9tIHRyb253ZWIsIGJ1aWxkIHRyYW5zYWN0aW9uIGNhbGxcbiAgbm9jaygnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJylcbiAgICAucG9zdCgnL3dhbGxldC9jcmVhdGV0cmFuc2FjdGlvbicpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICB0eElEOiAnY2I5YTFiNTU2OWU4YzA5MTk3ZDFlOWJiYTUxMzU3MTU5ZmZhOGI3ZTZiMTgzMDZlYTYxNTA3M2ZjODg0MmI2NCcsXG4gICAgICByYXdfZGF0YToge1xuICAgICAgICBjb250cmFjdDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGFtb3VudDogMTk5MDAwMDAwLFxuICAgICAgICAgICAgICAgIG93bmVyX2FkZHJlc3M6ICc0MThiMDRlY2RjM2RiN2U4ZGE3Y2Q4Mzg0OTJmNjZlNDI0YTA1MWUyY2QnLFxuICAgICAgICAgICAgICAgIHRvX2FkZHJlc3M6ICc0MTMyYzc1M2JmOGQzZGU3MzU4NzQ4YTc1ZmNmMjk5ZjE0NmRmZjZlNGUnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0eXBlX3VybDogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vcHJvdG9jb2wuVHJhbnNmZXJDb250cmFjdCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHlwZTogJ1RyYW5zZmVyQ29udHJhY3QnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHJlZl9ibG9ja19ieXRlczogJzgxZTAnLFxuICAgICAgICByZWZfYmxvY2tfaGFzaDogJzViMWIyMGU5ZWJlYWE0ZjgnLFxuICAgICAgICBleHBpcmF0aW9uOiAxNjg1OTUyMjgyMDAwLFxuICAgICAgICB0aW1lc3RhbXA6IDE2ODU5NTIyMjQ0ODMsXG4gICAgICB9LFxuICAgICAgcmF3X2RhdGFfaGV4OlxuICAgICAgICAnMGEwMjgxZTAyMjA4NWIxYjIwZTllYmVhYTRmODQwOTBmYmQ4ZDQ4ODMxNWE2ODA4MDExMjY0MGEyZDc0Nzk3MDY1MmU2NzZmNmY2NzZjNjU2MTcwNjk3MzJlNjM2ZjZkMmY3MDcyNmY3NDZmNjM2ZjZjMmU1NDcyNjE2ZTczNjY2NTcyNDM2ZjZlNzQ3MjYxNjM3NDEyMzMwYTE1NDE4YjA0ZWNkYzNkYjdlOGRhN2NkODM4NDkyZjY2ZTQyNGEwNTFlMmNkMTIxNTQxMzJjNzUzYmY4ZDNkZTczNTg3NDhhNzVmY2YyOTlmMTQ2ZGZmNmU0ZTE4YzBmZmYxNWU3MGUzYjlkNWQ0ODgzMScsXG4gICAgfSk7XG5cbiAgLy8gZnVsbCBub2RlIC0gcmV0cmlldmUgYWNjb3VudCBpbmZvcm1hdGlvbiBjYWxsXG4gIC8vIFplcm8gQmFsYW5jZVxuICBub2NrKCdodHRwczovL2FwaS5zaGFzdGEudHJvbmdyaWQuaW8nKVxuICAgIC5nZXQoJy92MS9hY2NvdW50cy9UWDdHbW1yZmJnVEdZSzZhMkM4dm5CcjVUdVFickdtVkhFJylcbiAgICAucmVwbHkoMjAwLCB7XG4gICAgICBkYXRhOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYXRlc3Rfb3ByYXRpb25fdGltZTogMTY4NTk1MDg4NzAwMCxcbiAgICAgICAgICBvd25lcl9wZXJtaXNzaW9uOiB7XG4gICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFg3R21tcmZiZ1RHWUs2YTJDOHZuQnI1VHVRYnJHbVZIRScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1REdEdKYXJDSG4xSE45QVB5dmgzcTJIVms2a1czcW5wbUYnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUR3FRZEgxakVKd3NVVFk1UHlmejhHQk1pbzhCZ1BiNm5LJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAgcGVybWlzc2lvbl9uYW1lOiAnb3duZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnJlZV9uZXRfdXNhZ2U6IDMzNSxcbiAgICAgICAgICBhY2NvdW50X3Jlc291cmNlOiB7XG4gICAgICAgICAgICBsYXRlc3RfY29uc3VtZV90aW1lX2Zvcl9lbmVyZ3k6IDE2NzY0ODc2NzIwMDAsXG4gICAgICAgICAgICBlbmVyZ3lfd2luZG93X3NpemU6IDI4ODAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWN0aXZlX3Blcm1pc3Npb246IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uczogJzdmZmYxZmMwMDM3ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1RYN0dtbXJmYmdUR1lLNmEyQzh2bkJyNVR1UWJyR21WSEUnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1REdEdKYXJDSG4xSE45QVB5dmgzcTJIVms2a1czcW5wbUYnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1RHcVFkSDFqRUp3c1VUWTVQeWZ6OEdCTWlvOEJnUGI2bksnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgICAgaWQ6IDIsXG4gICAgICAgICAgICAgIHR5cGU6ICdBY3RpdmUnLFxuICAgICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdhY3RpdmUwJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBmcm96ZW5WMjogW1xuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdFTkVSR1knLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ1VOS05PV05fRU5VTV9WQUxVRV9SZXNvdXJjZUNvZGVfMicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkcmVzczogJzQxZTdlMTFkZjJjNTcwNDg4OGMzY2I2M2ZiNDNhOTQ5OGJkMTgxMmNiMicsXG4gICAgICAgICAgY3JlYXRlX3RpbWU6IDE2NzY0ODcyODgwMDAsXG4gICAgICAgICAgdHJjMjA6IFtdLFxuICAgICAgICAgIGxhdGVzdF9jb25zdW1lX2ZyZWVfdGltZTogMTY4NTk1MDg4NzAwMCxcbiAgICAgICAgICBuZXRfd2luZG93X3NpemU6IDI4ODAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBtZXRhOiB7XG4gICAgICAgIGF0OiAxNjg1OTUxMTM3ODE2LFxuICAgICAgICBwYWdlX3NpemU6IDEsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gIC8vIHJlY2VpdmUgYWRkcmVzcyB3aXRoIGJhbGFuY2VcbiAgbm9jaygnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJylcbiAgICAuZ2V0KCcvdjEvYWNjb3VudHMvVE5lR3B3QXVyazdralFMZGNkV2hGcjhZUDhFOVphOHcxeCcpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgZGF0YTogW1xuICAgICAgICB7XG4gICAgICAgICAgb3duZXJfcGVybWlzc2lvbjoge1xuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1ROZUdwd0F1cms3a2pRTGRjZFdoRnI4WVA4RTlaYTh3MXgnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdvd25lcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhY2NvdW50X3Jlc291cmNlOiB7XG4gICAgICAgICAgICBlbmVyZ3lfd2luZG93X3NpemU6IDI4ODAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWN0aXZlX3Blcm1pc3Npb246IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uczogJzdmZmYxZmMwMDMzZWMzMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgICAgICBrZXlzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWRkcmVzczogJ1ROZUdwd0F1cms3a2pRTGRjZFdoRnI4WVA4RTlaYTh3MXgnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgICAgICAgaWQ6IDIsXG4gICAgICAgICAgICAgIHR5cGU6ICdBY3RpdmUnLFxuICAgICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdhY3RpdmUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGZyb3plblYyOiBbXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ0VORVJHWScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnVU5LTk9XTl9FTlVNX1ZBTFVFX1Jlc291cmNlQ29kZV8yJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBhZGRyZXNzOiAnNDE4YjA0ZWNkYzNkYjdlOGRhN2NkODM4NDkyZjY2ZTQyNGEwNTFlMmNkJyxcbiAgICAgICAgICBiYWxhbmNlOiAyMDAwMDAwMDAsXG4gICAgICAgICAgY3JlYXRlX3RpbWU6IDE2ODU5NTIwMDAwMDAsXG4gICAgICAgICAgdHJjMjA6IFtdLFxuICAgICAgICAgIG5ldF93aW5kb3dfc2l6ZTogMjg4MDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgYXQ6IDE2ODU5NTIxMjIxMDYsXG4gICAgICAgIHBhZ2Vfc2l6ZTogMSxcbiAgICAgIH0sXG4gICAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5ub2NrVHJvblJlY2VpdmVSZWNvdmVyeVplcm9GdW5kcyA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gZnVsbCBub2RlIC0gcmV0cmlldmUgYWNjb3VudCBpbmZvcm1hdGlvbiBjYWxsXG4gIC8vIE5vY2tpbmcgWmVybyBCYWxhbmNlXG4gIG5vY2soJ2h0dHBzOi8vYXBpLnNoYXN0YS50cm9uZ3JpZC5pbycpXG4gICAgLnBlcnNpc3QoKVxuICAgIC5nZXQoKHVyaSkgPT4gdXJpLmluY2x1ZGVzKCcvdjEvYWNjb3VudHMvJykpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgZGF0YTogW1xuICAgICAgICB7XG4gICAgICAgICAgbGF0ZXN0X29wcmF0aW9uX3RpbWU6IDE2ODU5NTA4ODcwMDAsXG4gICAgICAgICAgb3duZXJfcGVybWlzc2lvbjoge1xuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1RYN0dtbXJmYmdUR1lLNmEyQzh2bkJyNVR1UWJyR21WSEUnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdURHRHSmFyQ0huMUhOOUFQeXZoM3EySFZrNmtXM3FucG1GJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVEdxUWRIMWpFSndzVVRZNVB5Zno4R0JNaW84QmdQYjZuSycsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgIHBlcm1pc3Npb25fbmFtZTogJ293bmVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZyZWVfbmV0X3VzYWdlOiAzMzUsXG4gICAgICAgICAgYWNjb3VudF9yZXNvdXJjZToge1xuICAgICAgICAgICAgbGF0ZXN0X2NvbnN1bWVfdGltZV9mb3JfZW5lcmd5OiAxNjc2NDg3NjcyMDAwLFxuICAgICAgICAgICAgZW5lcmd5X3dpbmRvd19zaXplOiAyODgwMCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFjdGl2ZV9wZXJtaXNzaW9uOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbnM6ICc3ZmZmMWZjMDAzN2UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUWDdHbW1yZmJnVEdZSzZhMkM4dm5CcjVUdVFickdtVkhFJyxcbiAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdURHRHSmFyQ0huMUhOOUFQeXZoM3EySFZrNmtXM3FucG1GJyxcbiAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUR3FRZEgxakVKd3NVVFk1UHlmejhHQk1pbzhCZ1BiNm5LJyxcbiAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDIsXG4gICAgICAgICAgICAgIGlkOiAyLFxuICAgICAgICAgICAgICB0eXBlOiAnQWN0aXZlJyxcbiAgICAgICAgICAgICAgcGVybWlzc2lvbl9uYW1lOiAnYWN0aXZlMCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZnJvemVuVjI6IFtcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnRU5FUkdZJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdVTktOT1dOX0VOVU1fVkFMVUVfUmVzb3VyY2VDb2RlXzInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGFkZHJlc3M6ICc0MWU3ZTExZGYyYzU3MDQ4ODhjM2NiNjNmYjQzYTk0OThiZDE4MTJjYjInLFxuICAgICAgICAgIGNyZWF0ZV90aW1lOiAxNjc2NDg3Mjg4MDAwLFxuICAgICAgICAgIHRyYzIwOiBbXSxcbiAgICAgICAgICBsYXRlc3RfY29uc3VtZV9mcmVlX3RpbWU6IDE2ODU5NTA4ODcwMDAsXG4gICAgICAgICAgbmV0X3dpbmRvd19zaXplOiAyODgwMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgbWV0YToge1xuICAgICAgICBhdDogMTY4NTk1MTEzNzgxNixcbiAgICAgICAgcGFnZV9zaXplOiAxLFxuICAgICAgfSxcbiAgICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLm5vY2tUcm9uVG9rZW5SZWNvdmVyeSA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gZnVsbCBub2RlIC0gc2VuZFRyeCBmcm9tIHRyb253ZWIsIGJ1aWxkIHRyYW5zYWN0aW9uIGNhbGxcbiAgbm9jaygnaHR0cHM6Ly9hcGkuc2hhc3RhLnRyb25ncmlkLmlvJylcbiAgICAucG9zdCgnL3dhbGxldC90cmlnZ2Vyc21hcnRjb250cmFjdCcpXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgcmVzdWx0OiB7XG4gICAgICAgIHJlc3VsdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB0cmFuc2FjdGlvbjoge1xuICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgdHhJRDogJzA2ZDUxZWIxYjRiZDM1ZDFmMzIzYzZlZGQ2ZDYzZDdmMTFiMTY1MWIwMjRlNTQ4ZWEyYTg4NzJhOGZhZDdmNWMnLFxuICAgICAgICByYXdfZGF0YToge1xuICAgICAgICAgIGNvbnRyYWN0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhcmFtZXRlcjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiAnYTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNWY0MTRkNDQ3YWFmZTcwYmI5YjlkOTM5MTJjYmM0YzU0ZjBjMDE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyNDEwMTEwMCcsXG4gICAgICAgICAgICAgICAgICBvd25lcl9hZGRyZXNzOiAnNDE2YTBhMDVlMDk4YzYyOGY3ZjNjYTYzZGJiNTc1NmU1YzBjMDE4NTIxJyxcbiAgICAgICAgICAgICAgICAgIGNvbnRyYWN0X2FkZHJlc3M6ICc0MTQyYTFlMzlhZWZhNDkyOTBmMmIzZjllZDY4OGQ3Y2VjZjg2Y2Q2ZTAnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdHlwZV91cmw6ICd0eXBlLmdvb2dsZWFwaXMuY29tL3Byb3RvY29sLlRyaWdnZXJTbWFydENvbnRyYWN0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdHlwZTogJ1RyaWdnZXJTbWFydENvbnRyYWN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZWZfYmxvY2tfYnl0ZXM6ICdhNzFjJyxcbiAgICAgICAgICByZWZfYmxvY2tfaGFzaDogJ2QwZWNiNTNhYTAzODgyYTYnLFxuICAgICAgICAgIGV4cGlyYXRpb246IDE2NzY2NTk4MTUwMDAsXG4gICAgICAgICAgZmVlX2xpbWl0OiAxMDAwMDAwMDAsXG4gICAgICAgICAgdGltZXN0YW1wOiAxNjc2NjU5NzU4MjQyLFxuICAgICAgICB9LFxuICAgICAgICByYXdfZGF0YV9oZXg6XG4gICAgICAgICAgJzBhMDJhNzFjMjIwOGQwZWNiNTNhYTAzODgyYTY0MGQ4ZTRkOTg1ZTYzMDVhYWUwMTA4MWYxMmE5MDEwYTMxNzQ3OTcwNjUyZTY3NmY2ZjY3NmM2NTYxNzA2OTczMmU2MzZmNmQyZjcwNzI2Zjc0NmY2MzZmNmMyZTU0NzI2OTY3Njc2NTcyNTM2ZDYxNzI3NDQzNmY2ZTc0NzI2MTYzNzQxMjc0MGExNTQxNmEwYTA1ZTA5OGM2MjhmN2YzY2E2M2RiYjU3NTZlNWMwYzAxODUyMTEyMTU0MTQyYTFlMzlhZWZhNDkyOTBmMmIzZjllZDY4OGQ3Y2VjZjg2Y2Q2ZTAyMjQ0YTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNWY0MTRkNDQ3YWFmZTcwYmI5YjlkOTM5MTJjYmM0YzU0ZjBjMDE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyNDEwMTEwMDcwYTJhOWQ2ODVlNjMwOTAwMTgwYzJkNzJmJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgLy8gZnVsbCBub2RlIC0gcmV0cmlldmUgYWNjb3VudCBpbmZvcm1hdGlvbiBjYWxsXG4gIG5vY2soJ2h0dHBzOi8vYXBpLnNoYXN0YS50cm9uZ3JpZC5pbycpXG4gICAgLmdldCgnL3YxL2FjY291bnRzL1RLZHRkb05pcXFFeUdzTW1KeWI1cGd3U1lmN2RUQ2NtS1knKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGRhdGE6IFtcbiAgICAgICAge1xuICAgICAgICAgIGxhdGVzdF9vcHJhdGlvbl90aW1lOiAxNjc2NDg3MzUxMDAwLFxuICAgICAgICAgIG93bmVyX3Blcm1pc3Npb246IHtcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFkZHJlc3M6ICdUS2R0ZG9OaXFxRXlHc01tSnliNXBnd1NZZjdkVENjbUtZJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFFtVm5FOTdmWGVQNndFaHpybVNXTGJVUUdzbWdTeTFLRScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWRkcmVzczogJ1RZZG5tNzlpVGg0WkVZODNIcGprcEtrNTVodHVqeFl0YzknLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDIsXG4gICAgICAgICAgICBwZXJtaXNzaW9uX25hbWU6ICdvd25lcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhY2NvdW50X3Jlc291cmNlOiB7XG4gICAgICAgICAgICBsYXRlc3RfY29uc3VtZV90aW1lX2Zvcl9lbmVyZ3k6IDE2NzY0ODczNTEwMDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhY3RpdmVfcGVybWlzc2lvbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvcGVyYXRpb25zOiAnN2ZmZjFmYzAwMzdlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVEtkdGRvTmlxcUV5R3NNbUp5YjVwZ3dTWWY3ZFRDY21LWScsXG4gICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFFtVm5FOTdmWGVQNndFaHpybVNXTGJVUUdzbWdTeTFLRScsXG4gICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhZGRyZXNzOiAnVFlkbm03OWlUaDRaRVk4M0hwamtwS2s1NWh0dWp4WXRjOScsXG4gICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAgICBpZDogMixcbiAgICAgICAgICAgICAgdHlwZTogJ0FjdGl2ZScsXG4gICAgICAgICAgICAgIHBlcm1pc3Npb25fbmFtZTogJ2FjdGl2ZTAnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGZyb3plblYyOiBbXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ0VORVJHWScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnVU5LTk9XTl9FTlVNX1ZBTFVFX1Jlc291cmNlQ29kZV8yJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBhZGRyZXNzOiAnNDE2YTBhMDVlMDk4YzYyOGY3ZjNjYTYzZGJiNTc1NmU1YzBjMDE4NTIxJyxcbiAgICAgICAgICBiYWxhbmNlOiAzODg5MDQ3NDAwLFxuICAgICAgICAgIGNyZWF0ZV90aW1lOiAxNjc2NDg2NDYwMDAwLFxuICAgICAgICAgIHRyYzIwOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFRHM1hYeUV4QmtQcDluemRhakRac296RXU0QmthU0pvenM6ICc0OTAwMDAwMDAwJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBsYXRlc3RfY29uc3VtZV9mcmVlX3RpbWU6IDE2NzY0ODczNTEwMDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgYXQ6IDE2NzY2NTQ5ODM2NDUsXG4gICAgICAgIHBhZ2Vfc2l6ZTogMSxcbiAgICAgIH0sXG4gICAgfSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5ub2NrRW9zUmVjb3ZlcnkgPSBmdW5jdGlvbiAoKSB7XG4gIG5vY2soJ2h0dHBzOi8va3lsaW4uZW9zbi5pbycpLnBvc3QoJyonKS5yZXBseSg1MDIpO1xuICBub2NrKCdodHRwczovL2t5bGluLmVvc24uaW8nKVxuICAgIC5wb3N0KCcvdjEvY2hhaW4vZ2V0X2luZm8nKVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIHNlcnZlcl92ZXJzaW9uOiAnMTQxODU0MzEnLFxuICAgICAgY2hhaW5faWQ6ICcyYTAyYTAwNTNlNWE4Y2Y3M2E1NmJhMGZkYTExZTRkOTJlMDIzOGE0YTJhYTc0ZmNjZjQ2ZDVhOTEwNzQ2ODQwJyxcbiAgICAgIGhlYWRfYmxvY2tfbnVtOiAzOTc1MjAzMCxcbiAgICAgIGxhc3RfaXJyZXZlcnNpYmxlX2Jsb2NrX251bTogMzk3NTE3MDUsXG4gICAgICBsYXN0X2lycmV2ZXJzaWJsZV9ibG9ja19pZDogJzAyNWU5MDE5NGZiZTdiYTU3NzNhZjRiM2VkMDk5YWFlZDBmYjI2YjhmNzc1MGU0MTRlYTBlZTk3NWEwNGNkYzEnLFxuICAgICAgaGVhZF9ibG9ja19pZDogJzAyNWU5MTVlZmY2NTNmNGFkNDA4ZTFiMzZlNDBmNmI0ZDg0MmFmZGU4MTY3MjQ0NmY5MWNhMWU2MTVlYmYwM2MnLFxuICAgICAgaGVhZF9ibG9ja190aW1lOiAnMjAxOS0wNy0xOFQxNzo1Mjo0OS4wMDAnLFxuICAgICAgaGVhZF9ibG9ja19wcm9kdWNlcjogJ2Vvc25hdGlvbmZ0dycsXG4gICAgICB2aXJ0dWFsX2Jsb2NrX2NwdV9saW1pdDogMjAwMDAwMDAwLFxuICAgICAgdmlydHVhbF9ibG9ja19uZXRfbGltaXQ6IDUyNDI4ODAwMCxcbiAgICAgIGJsb2NrX2NwdV9saW1pdDogMTk5OTAwLFxuICAgICAgYmxvY2tfbmV0X2xpbWl0OiA1MjQyODgsXG4gICAgICBzZXJ2ZXJfdmVyc2lvbl9zdHJpbmc6ICd2MS44LjEnLFxuICAgICAgZm9ya19kYl9oZWFkX2Jsb2NrX251bTogMzk3NTIwMzAsXG4gICAgICBmb3JrX2RiX2hlYWRfYmxvY2tfaWQ6ICcwMjVlOTE1ZWZmNjUzZjRhZDQwOGUxYjM2ZTQwZjZiNGQ4NDJhZmRlODE2NzI0NDZmOTFjYTFlNjE1ZWJmMDNjJyxcbiAgICB9KVxuICAgIC5wb3N0KCcvdjEvY2hhaW4vZ2V0X2Jsb2NrJywgeyBibG9ja19udW1fb3JfaWQ6IDM5NzUyMDMwIH0pXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgdGltZXN0YW1wOiAnMjAxOS0wNy0xOFQxNzo1Mjo0OS4wMDAnLFxuICAgICAgcHJvZHVjZXI6ICdlb3NuYXRpb25mdHcnLFxuICAgICAgY29uZmlybWVkOiAwLFxuICAgICAgcHJldmlvdXM6ICcwMjVlOTE1ZGNmN2NlODU1YTU4MThmMTdjNzhmM2JlZGMxNmJmYTUwNWFhOGQyN2IyNjg2MGZlODc1MTEyZTVlJyxcbiAgICAgIHRyYW5zYWN0aW9uX21yb290OiAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgICBhY3Rpb25fbXJvb3Q6ICdkNzFmYzk0MmZiOWZjZDMzNzY5MmYwMzdkM2ZiOTY3ZDc2ZGRkMmIzMGJhZTQwNDUwZDFmZWVmNTBmNTZjZWVjJyxcbiAgICAgIHNjaGVkdWxlX3ZlcnNpb246IDI0NSxcbiAgICAgIG5ld19wcm9kdWNlcnM6IG51bGwsXG4gICAgICBoZWFkZXJfZXh0ZW5zaW9uczogW10sXG4gICAgICBwcm9kdWNlcl9zaWduYXR1cmU6XG4gICAgICAgICdTSUdfSzFfSndEV0dxMVN4UEh3NXhUd1V6WjFIZjRZQ2R2enNZdkFvaDluTnZHWGp5WGprNTdwTGI1ZmM4aW4zdm9wOWgxbU1kWnRzUmhFWWE0YlY5UDRmTXZIWGNxaUZqdzgzeScsXG4gICAgICB0cmFuc2FjdGlvbnM6IFtdLFxuICAgICAgYmxvY2tfZXh0ZW5zaW9uczogW10sXG4gICAgICBpZDogJzAyNWU5MTVlZmY2NTNmNGFkNDA4ZTFiMzZlNDBmNmI0ZDg0MmFmZGU4MTY3MjQ0NmY5MWNhMWU2MTVlYmYwM2MnLFxuICAgICAgYmxvY2tfbnVtOiAzOTc1MjAzMCxcbiAgICAgIHJlZl9ibG9ja19wcmVmaXg6IDMwMTc4Njk1MjQsXG4gICAgfSlcbiAgICAucG9zdCgnL3YxL2NoYWluL2dldF9hY2NvdW50JywgeyBhY2NvdW50X25hbWU6ICdqemprcG4xYmpudGknIH0pXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgYWNjb3VudF9uYW1lOiAnanpqa3BuMWJqbnRpJyxcbiAgICAgIGhlYWRfYmxvY2tfbnVtOiAzOTczOTU3NixcbiAgICAgIGhlYWRfYmxvY2tfdGltZTogJzIwMTktMDctMThUMTY6MDg6MzQuNTAwJyxcbiAgICAgIHByaXZpbGVnZWQ6IGZhbHNlLFxuICAgICAgbGFzdF9jb2RlX3VwZGF0ZTogJzE5NzAtMDEtMDFUMDA6MDA6MDAuMDAwJyxcbiAgICAgIGNyZWF0ZWQ6ICcyMDE5LTA3LTE4VDEyOjUyOjEwLjAwMCcsXG4gICAgICBjb3JlX2xpcXVpZF9iYWxhbmNlOiAnOTkuMDAwMCBFT1MnLFxuICAgICAgcmFtX3F1b3RhOiA5NTg2LFxuICAgICAgbmV0X3dlaWdodDogMCxcbiAgICAgIGNwdV93ZWlnaHQ6IDAsXG4gICAgICBuZXRfbGltaXQ6IHtcbiAgICAgICAgdXNlZDogMTYxLFxuICAgICAgICBhdmFpbGFibGU6IDAsXG4gICAgICAgIG1heDogMCxcbiAgICAgIH0sXG4gICAgICBjcHVfbGltaXQ6IHtcbiAgICAgICAgdXNlZDogNDE5LFxuICAgICAgICBhdmFpbGFibGU6IDAsXG4gICAgICAgIG1heDogMCxcbiAgICAgIH0sXG4gICAgICByYW1fdXNhZ2U6IDMzMjQsXG4gICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgcGVybV9uYW1lOiAnYWN0aXZlJyxcbiAgICAgICAgICBwYXJlbnQ6ICdvd25lcicsXG4gICAgICAgICAgcmVxdWlyZWRfYXV0aDoge1xuICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnRU9TNWVjd201VUgxYjJnZ0dKVHE1cjFhcWQxY2dLc2kzTlVZUEpiTGFrYW5hNTdFMWFuUDInLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ0VPUzVveW96aUpVSDJ1M0tKdTlmVUZtYWhya01DMXg4NmhkQnM1NzY4dEE5TjNSN3pFTkh4JyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdFT1M2ZFp6Q0hmU1ZHR2pKOVZlZ01wdTl1dHNORVJxcm1ud29FbnRRY2dmQ1V5eXVjaVFtOScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFjY291bnRzOiBbXSxcbiAgICAgICAgICAgIHdhaXRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcGVybV9uYW1lOiAnb3duZXInLFxuICAgICAgICAgIHBhcmVudDogJycsXG4gICAgICAgICAgcmVxdWlyZWRfYXV0aDoge1xuICAgICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgICAga2V5czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnRU9TNWVjd201VUgxYjJnZ0dKVHE1cjFhcWQxY2dLc2kzTlVZUEpiTGFrYW5hNTdFMWFuUDInLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ0VPUzVveW96aUpVSDJ1M0tKdTlmVUZtYWhya01DMXg4NmhkQnM1NzY4dEE5TjNSN3pFTkh4JyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdFT1M2ZFp6Q0hmU1ZHR2pKOVZlZ01wdTl1dHNORVJxcm1ud29FbnRRY2dmQ1V5eXVjaVFtOScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGFjY291bnRzOiBbXSxcbiAgICAgICAgICAgIHdhaXRzOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRvdGFsX3Jlc291cmNlczoge1xuICAgICAgICBvd25lcjogJ2p6amtwbjFiam50aScsXG4gICAgICAgIG5ldF93ZWlnaHQ6ICcwLjAwMDAgRU9TJyxcbiAgICAgICAgY3B1X3dlaWdodDogJzAuMDAwMCBFT1MnLFxuICAgICAgICByYW1fYnl0ZXM6IDgxODYsXG4gICAgICB9LFxuICAgICAgc2VsZl9kZWxlZ2F0ZWRfYmFuZHdpZHRoOiBudWxsLFxuICAgICAgcmVmdW5kX3JlcXVlc3Q6IG51bGwsXG4gICAgICB2b3Rlcl9pbmZvOiBudWxsLFxuICAgIH0pXG4gICAgLnBvc3QoJy92MS9jaGFpbi9nZXRfYWNjb3VudCcsIHsgYWNjb3VudF9uYW1lOiAna2l5amNuMWl4ZnRwJyB9KVxuICAgIC5yZXBseSgyMDAsIHtcbiAgICAgIGFjY291bnRfbmFtZTogJ2tpeWpjbjFpeGZ0cCcsXG4gICAgICBoZWFkX2Jsb2NrX251bTogMzk3Mzk1MDUsXG4gICAgICBoZWFkX2Jsb2NrX3RpbWU6ICcyMDE5LTA3LTE4VDE2OjA3OjU5LjAwMCcsXG4gICAgICBwcml2aWxlZ2VkOiBmYWxzZSxcbiAgICAgIGxhc3RfY29kZV91cGRhdGU6ICcxOTcwLTAxLTAxVDAwOjAwOjAwLjAwMCcsXG4gICAgICBjcmVhdGVkOiAnMjAxOS0wNy0xOFQxNTo1NzowNS41MDAnLFxuICAgICAgY29yZV9saXF1aWRfYmFsYW5jZTogJzEwMC4wMDAwIEVPUycsXG4gICAgICByYW1fcXVvdGE6IDk1ODcsXG4gICAgICBuZXRfd2VpZ2h0OiAwLFxuICAgICAgY3B1X3dlaWdodDogMCxcbiAgICAgIG5ldF9saW1pdDoge1xuICAgICAgICB1c2VkOiAwLFxuICAgICAgICBhdmFpbGFibGU6IDAsXG4gICAgICAgIG1heDogMCxcbiAgICAgIH0sXG4gICAgICBjcHVfbGltaXQ6IHtcbiAgICAgICAgdXNlZDogMCxcbiAgICAgICAgYXZhaWxhYmxlOiAwLFxuICAgICAgICBtYXg6IDAsXG4gICAgICB9LFxuICAgICAgcmFtX3VzYWdlOiAzMTk2LFxuICAgICAgcGVybWlzc2lvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHBlcm1fbmFtZTogJ2FjdGl2ZScsXG4gICAgICAgICAgcGFyZW50OiAnb3duZXInLFxuICAgICAgICAgIHJlcXVpcmVkX2F1dGg6IHtcbiAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ0VPUzVzeFJaQ3lhS0Fvd05aQlZyQXZVSFlRaW9NWGY4UXJ1N1hBRG9Kd3I1M2lGREpQc0dDJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdFT1M2NGhzSDlEaVAxZVNRdVlLRWFGRDVTUXA0Y0xSUHZUWWFDVXZWMkFmY1dCVnk3Q2pqTicsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnRU9TNzQxREV4NkdzdGJpMmNkbVF5akdyQmk4cm5kR2VTQnc3aE01dVlpS2Z0MnB0bUtSZ2QnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhY2NvdW50czogW10sXG4gICAgICAgICAgICB3YWl0czogW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHBlcm1fbmFtZTogJ293bmVyJyxcbiAgICAgICAgICBwYXJlbnQ6ICcnLFxuICAgICAgICAgIHJlcXVpcmVkX2F1dGg6IHtcbiAgICAgICAgICAgIHRocmVzaG9sZDogMixcbiAgICAgICAgICAgIGtleXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ0VPUzVzeFJaQ3lhS0Fvd05aQlZyQXZVSFlRaW9NWGY4UXJ1N1hBRG9Kd3I1M2lGREpQc0dDJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdFT1M2NGhzSDlEaVAxZVNRdVlLRWFGRDVTUXA0Y0xSUHZUWWFDVXZWMkFmY1dCVnk3Q2pqTicsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnRU9TNzQxREV4NkdzdGJpMmNkbVF5akdyQmk4cm5kR2VTQnc3aE01dVlpS2Z0MnB0bUtSZ2QnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhY2NvdW50czogW10sXG4gICAgICAgICAgICB3YWl0czogW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0b3RhbF9yZXNvdXJjZXM6IHtcbiAgICAgICAgb3duZXI6ICdraXlqY24xaXhmdHAnLFxuICAgICAgICBuZXRfd2VpZ2h0OiAnMC4wMDAwIEVPUycsXG4gICAgICAgIGNwdV93ZWlnaHQ6ICcwLjAwMDAgRU9TJyxcbiAgICAgICAgcmFtX2J5dGVzOiA4MTg3LFxuICAgICAgfSxcbiAgICAgIHNlbGZfZGVsZWdhdGVkX2JhbmR3aWR0aDogbnVsbCxcbiAgICAgIHJlZnVuZF9yZXF1ZXN0OiBudWxsLFxuICAgICAgdm90ZXJfaW5mbzogbnVsbCxcbiAgICB9KTtcbn07XG4iXX0=