PHP WebShell

Текущая директория: /opt/BitGoJS/modules/abstract-utxo/dist/src

Просмотр файла: names.js

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.utxoCoinsTestnet = exports.utxoCoinsMainnet = void 0;
exports.isUtxoCoinNameMainnet = isUtxoCoinNameMainnet;
exports.isUtxoCoinNameTestnet = isUtxoCoinNameTestnet;
exports.isUtxoCoinName = isUtxoCoinName;
exports.getFamilyFromNetwork = getFamilyFromNetwork;
exports.getChainFromNetwork = getChainFromNetwork;
exports.getNetworkFromChain = getNetworkFromChain;
exports.getFullNameFromNetwork = getFullNameFromNetwork;
const utxolib = __importStar(require("@bitgo/utxo-lib"));
exports.utxoCoinsMainnet = ['btc', 'bch', 'bcha', 'bsv', 'btg', 'dash', 'doge', 'ltc', 'zec'];
exports.utxoCoinsTestnet = [
    'tbtc',
    'tbch',
    'tbsv',
    'tdash',
    'tdoge',
    'tltc',
    'tzec',
    'tbtcsig',
    'tbtc4',
    'tbtcbgsig',
];
function isUtxoCoinNameMainnet(coinName) {
    return exports.utxoCoinsMainnet.includes(coinName);
}
function isUtxoCoinNameTestnet(coinName) {
    return exports.utxoCoinsTestnet.includes(coinName);
}
function isUtxoCoinName(coinName) {
    return isUtxoCoinNameMainnet(coinName) || isUtxoCoinNameTestnet(coinName);
}
function getNetworkName(n) {
    const name = utxolib.getNetworkName(n);
    if (!name) {
        throw new Error('Unknown network');
    }
    return name;
}
/**
 * @param n
 * @returns the family name for a network. Testnets and mainnets of the same coin share the same family name.
 */
function getFamilyFromNetwork(n) {
    switch (getNetworkName(n)) {
        case 'bitcoin':
        case 'testnet':
        case 'bitcoinPublicSignet':
        case 'bitcoinTestnet4':
        case 'bitcoinBitGoSignet':
            return 'btc';
        case 'bitcoincash':
        case 'bitcoincashTestnet':
            return 'bch';
        case 'ecash':
        case 'ecashTest':
            return 'bcha';
        case 'bitcoingold':
        case 'bitcoingoldTestnet':
            return 'btg';
        case 'bitcoinsv':
        case 'bitcoinsvTestnet':
            return 'bsv';
        case 'dash':
        case 'dashTest':
            return 'dash';
        case 'dogecoin':
        case 'dogecoinTest':
            return 'doge';
        case 'litecoin':
        case 'litecoinTest':
            return 'ltc';
        case 'zcash':
        case 'zcashTest':
            return 'zec';
    }
}
/**
 * Get the chain name for a network.
 * The chain is different for every network.
 */
function getChainFromNetwork(n) {
    switch (getNetworkName(n)) {
        case 'bitcoinPublicSignet':
            return 'tbtcsig';
        case 'bitcoinTestnet4':
            return 'tbtc4';
        case 'bitcoinBitGoSignet':
            return 'tbtcbgsig';
        case 'bitcoin':
        case 'testnet':
        case 'bitcoincash':
        case 'bitcoincashTestnet':
        case 'ecash':
        case 'ecashTest':
        case 'bitcoingold':
        case 'bitcoingoldTestnet':
        case 'bitcoinsv':
        case 'bitcoinsvTestnet':
        case 'dash':
        case 'dashTest':
        case 'dogecoin':
        case 'dogecoinTest':
        case 'litecoin':
        case 'litecoinTest':
        case 'zcash':
        case 'zcashTest':
            const mainnetName = getFamilyFromNetwork(n);
            return utxolib.isTestnet(n) ? `t${mainnetName}` : mainnetName;
    }
}
/**
 * @param coinName - the name of the coin (e.g. 'btc', 'bch', 'ltc'). Also called 'chain' in some contexts.
 * @returns the network for a coin. This is the mainnet network for the coin.
 */
function getNetworkFromChain(coinName) {
    for (const network of utxolib.getNetworkList()) {
        if (getChainFromNetwork(network) === coinName) {
            return network;
        }
    }
    throw new Error(`Unknown chain ${coinName}`);
}
function getFullNameFromNetwork(n) {
    const name = getNetworkName(n);
    let prefix;
    switch (name) {
        case 'bitcoinTestnet4':
            prefix = 'Testnet4 ';
            break;
        case 'bitcoinPublicSignet':
            prefix = 'Public Signet ';
            break;
        case 'bitcoinBitGoSignet':
            prefix = 'BitGo Signet ';
            break;
        default:
            if (utxolib.isTestnet(n)) {
                prefix = 'Testnet ';
            }
            else {
                prefix = '';
            }
    }
    switch (name) {
        case 'bitcoin':
        case 'testnet':
        case 'bitcoinTestnet4':
        case 'bitcoinPublicSignet':
        case 'bitcoinBitGoSignet':
            return prefix + 'Bitcoin';
        case 'bitcoincash':
        case 'bitcoincashTestnet':
            return prefix + 'Bitcoin Cash';
        case 'ecash':
        case 'ecashTest':
            return prefix + 'Bitcoin ABC';
        case 'bitcoingold':
        case 'bitcoingoldTestnet':
            return prefix + 'Bitcoin Gold';
        case 'bitcoinsv':
        case 'bitcoinsvTestnet':
            return prefix + 'Bitcoin SV';
        case 'dash':
        case 'dashTest':
            return prefix + 'Dash';
        case 'dogecoin':
        case 'dogecoinTest':
            return prefix + 'Dogecoin';
        case 'litecoin':
        case 'litecoinTest':
            return prefix + 'Litecoin';
        case 'zcash':
        case 'zcashTest':
            return prefix + 'ZCash';
        default:
            throw new Error('Unknown network');
    }
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmFtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLHNEQUVDO0FBRUQsc0RBRUM7QUFFRCx3Q0FFQztBQWNELG9EQWlDQztBQU1ELGtEQTZCQztBQU1ELGtEQU9DO0FBRUQsd0RBd0RDO0FBdkxELHlEQUEyQztBQUU5QixRQUFBLGdCQUFnQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQVUsQ0FBQztBQUMvRixRQUFBLGdCQUFnQixHQUFHO0lBQzlCLE1BQU07SUFDTixNQUFNO0lBQ04sTUFBTTtJQUNOLE9BQU87SUFDUCxPQUFPO0lBQ1AsTUFBTTtJQUNOLE1BQU07SUFDTixTQUFTO0lBQ1QsT0FBTztJQUNQLFdBQVc7Q0FDSCxDQUFDO0FBTVgsU0FBZ0IscUJBQXFCLENBQUMsUUFBZ0I7SUFDcEQsT0FBTyx3QkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBK0IsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFRCxTQUFnQixxQkFBcUIsQ0FBQyxRQUFnQjtJQUNwRCxPQUFPLHdCQUFnQixDQUFDLFFBQVEsQ0FBQyxRQUErQixDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxRQUFnQjtJQUM3QyxPQUFPLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxDQUFrQjtJQUN4QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxL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QUFDO1FBQ2hCLEtBQUssY0FBYztZQUNqQixPQUFPLE1BQU0sR0FBRyxVQUFVLENBQUM7UUFDN0IsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxjQUFjO1lBQ2pCLE9BQU8sTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUM3QixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssV0FBVztZQUNkLE9BQU8sTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUMxQjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuZXhwb3J0IGNvbnN0IHV0eG9Db2luc01haW5uZXQgPSBbJ2J0YycsICdiY2gnLCAnYmNoYScsICdic3YnLCAnYnRnJywgJ2Rhc2gnLCAnZG9nZScsICdsdGMnLCAnemVjJ10gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgdXR4b0NvaW5zVGVzdG5ldCA9IFtcbiAgJ3RidGMnLFxuICAndGJjaCcsXG4gICd0YnN2JyxcbiAgJ3RkYXNoJyxcbiAgJ3Rkb2dlJyxcbiAgJ3RsdGMnLFxuICAndHplYycsXG4gICd0YnRjc2lnJyxcbiAgJ3RidGM0JyxcbiAgJ3RidGNiZ3NpZycsXG5dIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBVdHhvQ29pbk5hbWVNYWlubmV0ID0gKHR5cGVvZiB1dHhvQ29pbnNNYWlubmV0KVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgVXR4b0NvaW5OYW1lVGVzdG5ldCA9ICh0eXBlb2YgdXR4b0NvaW5zVGVzdG5ldClbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIFV0eG9Db2luTmFtZSA9IFV0eG9Db2luTmFtZU1haW5uZXQgfCBVdHhvQ29pbk5hbWVUZXN0bmV0O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNVdHhvQ29pbk5hbWVNYWlubmV0KGNvaW5OYW1lOiBzdHJpbmcpOiBjb2luTmFtZSBpcyBVdHhvQ29pbk5hbWVNYWlubmV0IHtcbiAgcmV0dXJuIHV0eG9Db2luc01haW5uZXQuaW5jbHVkZXMoY29pbk5hbWUgYXMgVXR4b0NvaW5OYW1lTWFpbm5ldCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1V0eG9Db2luTmFtZVRlc3RuZXQoY29pbk5hbWU6IHN0cmluZyk6IGNvaW5OYW1lIGlzIFV0eG9Db2luTmFtZVRlc3RuZXQge1xuICByZXR1cm4gdXR4b0NvaW5zVGVzdG5ldC5pbmNsdWRlcyhjb2luTmFtZSBhcyBVdHhvQ29pbk5hbWVUZXN0bmV0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVXR4b0NvaW5OYW1lKGNvaW5OYW1lOiBzdHJpbmcpOiBjb2luTmFtZSBpcyBVdHhvQ29pbk5hbWUge1xuICByZXR1cm4gaXNVdHhvQ29pbk5hbWVNYWlubmV0KGNvaW5OYW1lKSB8fCBpc1V0eG9Db2luTmFtZVRlc3RuZXQoY29pbk5hbWUpO1xufVxuXG5mdW5jdGlvbiBnZXROZXR3b3JrTmFtZShuOiB1dHhvbGliLk5ldHdvcmspOiB1dHhvbGliLk5ldHdvcmtOYW1lIHtcbiAgY29uc3QgbmFtZSA9IHV0eG9saWIuZ2V0TmV0d29ya05hbWUobik7XG4gIGlmICghbmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBuZXR3b3JrJyk7XG4gIH1cbiAgcmV0dXJuIG5hbWU7XG59XG5cbi8qKlxuICogQHBhcmFtIG5cbiAqIEByZXR1cm5zIHRoZSBmYW1pbHkgbmFtZSBmb3IgYSBuZXR3b3JrLiBUZXN0bmV0cyBhbmQgbWFpbm5ldHMgb2YgdGhlIHNhbWUgY29pbiBzaGFyZSB0aGUgc2FtZSBmYW1pbHkgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZhbWlseUZyb21OZXR3b3JrKG46IHV0eG9saWIuTmV0d29yayk6IFV0eG9Db2luTmFtZU1haW5uZXQge1xuICBzd2l0Y2ggKGdldE5ldHdvcmtOYW1lKG4pKSB7XG4gICAgY2FzZSAnYml0Y29pbic6XG4gICAgY2FzZSAndGVzdG5ldCc6XG4gICAgY2FzZSAnYml0Y29pblB1YmxpY1NpZ25ldCc6XG4gICAgY2FzZSAnYml0Y29pblRlc3RuZXQ0JzpcbiAgICBjYXNlICdiaXRjb2luQml0R29TaWduZXQnOlxuICAgICAgcmV0dXJuICdidGMnO1xuICAgIGNhc2UgJ2JpdGNvaW5jYXNoJzpcbiAgICBjYXNlICdiaXRjb2luY2FzaFRlc3RuZXQnOlxuICAgICAgcmV0dXJuICdiY2gnO1xuICAgIGNhc2UgJ2VjYXNoJzpcbiAgICBjYXNlICdlY2FzaFRlc3QnOlxuICAgICAgcmV0dXJuICdiY2hhJztcbiAgICBjYXNlICdiaXRjb2luZ29sZCc6XG4gICAgY2FzZSAnYml0Y29pbmdvbGRUZXN0bmV0JzpcbiAgICAgIHJldHVybiAnYnRnJztcbiAgICBjYXNlICdiaXRjb2luc3YnOlxuICAgIGNhc2UgJ2JpdGNvaW5zdlRlc3RuZXQnOlxuICAgICAgcmV0dXJuICdic3YnO1xuICAgIGNhc2UgJ2Rhc2gnOlxuICAgIGNhc2UgJ2Rhc2hUZXN0JzpcbiAgICAgIHJldHVybiAnZGFzaCc7XG4gICAgY2FzZSAnZG9nZWNvaW4nOlxuICAgIGNhc2UgJ2RvZ2Vjb2luVGVzdCc6XG4gICAgICByZXR1cm4gJ2RvZ2UnO1xuICAgIGNhc2UgJ2xpdGVjb2luJzpcbiAgICBjYXNlICdsaXRlY29pblRlc3QnOlxuICAgICAgcmV0dXJuICdsdGMnO1xuICAgIGNhc2UgJ3pjYXNoJzpcbiAgICBjYXNlICd6Y2FzaFRlc3QnOlxuICAgICAgcmV0dXJuICd6ZWMnO1xuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBjaGFpbiBuYW1lIGZvciBhIG5ldHdvcmsuXG4gKiBUaGUgY2hhaW4gaXMgZGlmZmVyZW50IGZvciBldmVyeSBuZXR3b3JrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhaW5Gcm9tTmV0d29yayhuOiB1dHhvbGliLk5ldHdvcmspOiBzdHJpbmcge1xuICBzd2l0Y2ggKGdldE5ldHdvcmtOYW1lKG4pKSB7XG4gICAgY2FzZSAnYml0Y29pblB1YmxpY1NpZ25ldCc6XG4gICAgICByZXR1cm4gJ3RidGNzaWcnO1xuICAgIGNhc2UgJ2JpdGNvaW5UZXN0bmV0NCc6XG4gICAgICByZXR1cm4gJ3RidGM0JztcbiAgICBjYXNlICdiaXRjb2luQml0R29TaWduZXQnOlxuICAgICAgcmV0dXJuICd0YnRjYmdzaWcnO1xuICAgIGNhc2UgJ2JpdGNvaW4nOlxuICAgIGNhc2UgJ3Rlc3RuZXQnOlxuICAgIGNhc2UgJ2JpdGNvaW5jYXNoJzpcbiAgICBjYXNlICdiaXRjb2luY2FzaFRlc3RuZXQnOlxuICAgIGNhc2UgJ2VjYXNoJzpcbiAgICBjYXNlICdlY2FzaFRlc3QnOlxuICAgIGNhc2UgJ2JpdGNvaW5nb2xkJzpcbiAgICBjYXNlICdiaXRjb2luZ29sZFRlc3RuZXQnOlxuICAgIGNhc2UgJ2JpdGNvaW5zdic6XG4gICAgY2FzZSAnYml0Y29pbnN2VGVzdG5ldCc6XG4gICAgY2FzZSAnZGFzaCc6XG4gICAgY2FzZSAnZGFzaFRlc3QnOlxuICAgIGNhc2UgJ2RvZ2Vjb2luJzpcbiAgICBjYXNlICdkb2dlY29pblRlc3QnOlxuICAgIGNhc2UgJ2xpdGVjb2luJzpcbiAgICBjYXNlICdsaXRlY29pblRlc3QnOlxuICAgIGNhc2UgJ3pjYXNoJzpcbiAgICBjYXNlICd6Y2FzaFRlc3QnOlxuICAgICAgY29uc3QgbWFpbm5ldE5hbWUgPSBnZXRGYW1pbHlGcm9tTmV0d29yayhuKTtcbiAgICAgIHJldHVybiB1dHhvbGliLmlzVGVzdG5ldChuKSA/IGB0JHttYWlubmV0TmFtZX1gIDogbWFpbm5ldE5hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gY29pbk5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgY29pbiAoZS5nLiAnYnRjJywgJ2JjaCcsICdsdGMnKS4gQWxzbyBjYWxsZWQgJ2NoYWluJyBpbiBzb21lIGNvbnRleHRzLlxuICogQHJldHVybnMgdGhlIG5ldHdvcmsgZm9yIGEgY29pbi4gVGhpcyBpcyB0aGUgbWFpbm5ldCBuZXR3b3JrIGZvciB0aGUgY29pbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5ldHdvcmtGcm9tQ2hhaW4oY29pbk5hbWU6IHN0cmluZyk6IHV0eG9saWIuTmV0d29yayB7XG4gIGZvciAoY29uc3QgbmV0d29yayBvZiB1dHhvbGliLmdldE5ldHdvcmtMaXN0KCkpIHtcbiAgICBpZiAoZ2V0Q2hhaW5Gcm9tTmV0d29yayhuZXR3b3JrKSA9PT0gY29pbk5hbWUpIHtcbiAgICAgIHJldHVybiBuZXR3b3JrO1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY2hhaW4gJHtjb2luTmFtZX1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZ1bGxOYW1lRnJvbU5ldHdvcmsobjogdXR4b2xpYi5OZXR3b3JrKTogc3RyaW5nIHtcbiAgY29uc3QgbmFtZSA9IGdldE5ldHdvcmtOYW1lKG4pO1xuXG4gIGxldCBwcmVmaXg6IHN0cmluZztcbiAgc3dpdGNoIChuYW1lKSB7XG4gICAgY2FzZSAnYml0Y29pblRlc3RuZXQ0JzpcbiAgICAgIHByZWZpeCA9ICdUZXN0bmV0NCAnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYml0Y29pblB1YmxpY1NpZ25ldCc6XG4gICAgICBwcmVmaXggPSAnUHVibGljIFNpZ25ldCAnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYml0Y29pbkJpdEdvU2lnbmV0JzpcbiAgICAgIHByZWZpeCA9ICdCaXRHbyBTaWduZXQgJztcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAodXR4b2xpYi5pc1Rlc3RuZXQobikpIHtcbiAgICAgICAgcHJlZml4ID0gJ1Rlc3RuZXQgJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByZWZpeCA9ICcnO1xuICAgICAgfVxuICB9XG5cbiAgc3dpdGNoIChuYW1lKSB7XG4gICAgY2FzZSAnYml0Y29pbic6XG4gICAgY2FzZSAndGVzdG5ldCc6XG4gICAgY2FzZSAnYml0Y29pblRlc3RuZXQ0JzpcbiAgICBjYXNlICdiaXRjb2luUHVibGljU2lnbmV0JzpcbiAgICBjYXNlICdiaXRjb2luQml0R29TaWduZXQnOlxuICAgICAgcmV0dXJuIHByZWZpeCArICdCaXRjb2luJztcbiAgICBjYXNlICdiaXRjb2luY2FzaCc6XG4gICAgY2FzZSAnYml0Y29pbmNhc2hUZXN0bmV0JzpcbiAgICAgIHJldHVybiBwcmVmaXggKyAnQml0Y29pbiBDYXNoJztcbiAgICBjYXNlICdlY2FzaCc6XG4gICAgY2FzZSAnZWNhc2hUZXN0JzpcbiAgICAgIHJldHVybiBwcmVmaXggKyAnQml0Y29pbiBBQkMnO1xuICAgIGNhc2UgJ2JpdGNvaW5nb2xkJzpcbiAgICBjYXNlICdiaXRjb2luZ29sZFRlc3RuZXQnOlxuICAgICAgcmV0dXJuIHByZWZpeCArICdCaXRjb2luIEdvbGQnO1xuICAgIGNhc2UgJ2JpdGNvaW5zdic6XG4gICAgY2FzZSAnYml0Y29pbnN2VGVzdG5ldCc6XG4gICAgICByZXR1cm4gcHJlZml4ICsgJ0JpdGNvaW4gU1YnO1xuICAgIGNhc2UgJ2Rhc2gnOlxuICAgIGNhc2UgJ2Rhc2hUZXN0JzpcbiAgICAgIHJldHVybiBwcmVmaXggKyAnRGFzaCc7XG4gICAgY2FzZSAnZG9nZWNvaW4nOlxuICAgIGNhc2UgJ2RvZ2Vjb2luVGVzdCc6XG4gICAgICByZXR1cm4gcHJlZml4ICsgJ0RvZ2Vjb2luJztcbiAgICBjYXNlICdsaXRlY29pbic6XG4gICAgY2FzZSAnbGl0ZWNvaW5UZXN0JzpcbiAgICAgIHJldHVybiBwcmVmaXggKyAnTGl0ZWNvaW4nO1xuICAgIGNhc2UgJ3pjYXNoJzpcbiAgICBjYXNlICd6Y2FzaFRlc3QnOlxuICAgICAgcmV0dXJuIHByZWZpeCArICdaQ2FzaCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBuZXR3b3JrJyk7XG4gIH1cbn1cbiJdfQ==

Выполнить команду


Для локальной разработки. Не используйте в интернете!