This commit is contained in:
zjamnik committed 2022-10-16 15:22:06 +02:00
1 parent 017f853a03
commit af84e9b05f
10 files changed
+212 -49

No files matched your search

+129
View File
@@ -0,0 +1,129 @@
/** @param {import(".").NS } ns */
/**
* get all servers
* for servers ram > 0 get ram, get money
* home ram substract ram needed for bots
* get available threads for each server for hack/grow/weaken
* sum all money
* run with proportion to the money available
*/
export async function main(ns) {
// ns.disableLog('ALL');
async function writeLog(type, obj) {
let timeNow = new Date();
let year = timeNow.getFullYear().toString().substring(2);
let month = (timeNow.getMonth() < 9 ? '0' : '') + (timeNow.getMonth() + 1);
let day = (timeNow.getDate() < 10 ? '0' : '') + timeNow.getDate();
let hour = (timeNow.getHours() < 10 ? '0' : '') + timeNow.getHours();
let minute = (timeNow.getMinutes() < 10 ? '0' : '') + timeNow.getMinutes();
let second = (timeNow.getSeconds() < 10 ? '0' : '') + timeNow.getSeconds();
let timestamp = `${year}${month}${day}_${hour}${minute}${second}`;
await ns.tryWritePort(2, `t${timestamp}_${type} = ${obj};\n`);
if (['ERROR', 'TERMINAL'].indexOf(type) != -1) ns.tprint(`${timestamp} ${type} = ${obj}`);
}
async function runHack(server) {
let script = 'simple-hack.js';
let serverStatus = analyzeServer(server);
await writeLog('ANALYZE', `{server: "${server}", status: ${JSON.stringify(serverStatus)}}`);
if (!serverStatus.rootAccess) {
if (serverStatus.nukeAvailable) {
await writeLog('NUKE', `"Nuking ${server}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"`);
for (let i = 0; i < maxPortsToHack(); ++i) {
switch (EXPLOITS[i]) {
case 'BruteSSH.exe':
ns.brutessh(server);
break;
case 'FTPCrack.exe':
ns.ftpcrack(server);
break;
case 'relaySMTP.exe':
ns.relaysmtp(server);
break;
case 'HTTPWorm.exe':
ns.httpworm(server);
break;
case 'SQLInject.exe':
ns.sqlinject(server);
break;
}
}
ns.nuke(server);
}
}
serverStatus = analyzeServer(server);
if (serverStatus.rootAccess) {
if (!ns.fileExists(script, 'home')) {
await writeLog('ERROR', `"Script '${script}' doesn't exist!"`);
// return -3;
}
ns.scp(script, server, 'home');
let serverMaxRam = ns.getServerMaxRam(server);
let serverUsedRam = ns.getServerUsedRam(server);
let serverFreeRam = serverMaxRam - serverUsedRam;
let scriptRam = ns.getScriptRam(script, server);
let maxThreads = Math.floor(serverFreeRam / scriptRam);
let a = ns.scriptRunning(script, server);
if (!a) {
if (maxThreads == 0) {
// await writeLog('ERROR', `"Not enough ram to run '${script}' on '${server}', ${scriptRam}/${serverFreeRam}!"`);
return -4;
}
let execExitCode = ns.exec(script, server, maxThreads, server);
if (!execExitCode) {
// await writeLog('ERROR', `"Exec error running script '${script} on '${server}!"`);
return -5;
}
else {
return execExitCode;
}
} else {
// await writeLog('ERROR', `"Hack already running on ${server}"`);
return 0;
}
}
return -6;
}
function scanServer(currentServer, previousServer = currentServer) {
let availableServers = ns.scan(currentServer);
let result = [];
for (let i = 0; i < availableServers.length; ++i) {
let nextServer = availableServers[i];
if (nextServer != currentServer && nextServer != previousServer) {
result.concat(scanServer(nextServer, currentServer));
}
}
return [currentServer].concat(result);
}
while(true){
let network = scanServer('home');
await sleep(100);
}
}
+3 -1
View File
@@ -19,5 +19,7 @@ const COMPLETED_FACTIONS = [
'NiteSec',
'The Black Hand',
'Aevum',
'Sector-12'
'Sector-12',
'Volhaven',
'Tian Di Hui'
];
+7
View File
@@ -0,0 +1,7 @@
/** @param {import(".").NS } ns */
export async function main(ns) {
// ns.disableLog('ALL');
}
+7
View File
@@ -0,0 +1,7 @@
/** @param {import(".").NS } ns */
export async function main(ns) {
// ns.disableLog('ALL');
}
+51 -48
View File
@@ -10,6 +10,7 @@ export async function main(ns) {
const levelCap = 200;
const ramCap = 64;
const coreCap = 16;
const serverRAM = 32;
// const levelCap = 150;
// const ramCap = 64;
// const coreCap = 4;
@@ -69,65 +70,67 @@ export async function main(ns) {
};
while (true) {
let currentMoney = ns.getServerMoneyAvailable("home");
while (true) {
let currentMoney = ns.getServerMoneyAvailable("home");
if (!HACKNET_UPGRADE_PATTERN.complete) {
let nodePurchaseCost = ns.hacknet.getPurchaseNodeCost();
let nodeCount = ns.hacknet.numNodes();
if (!HACKNET_UPGRADE_PATTERN.complete) {
let nodePurchaseCost = ns.hacknet.getPurchaseNodeCost();
let nodeCount = ns.hacknet.numNodes();
if (nodeCount < nodeCap && nodePurchaseCost / Math.abs(currentMoney) < nodeCostThreshold) {
ns.hacknet.purchaseNode();
currentMoney = ns.getServerMoneyAvailable("home");
++nodeCount;
}
for (let index = 0; index < nodeCount; ++index) {
let nodeStats = ns.hacknet.getNodeStats(index);
if (nodeStats.level < levelCap && ns.hacknet.getLevelUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
ns.hacknet.upgradeLevel(index, upgradeCount);
if (nodeCount < nodeCap && nodePurchaseCost / Math.abs(currentMoney) < nodeCostThreshold) {
ns.hacknet.purchaseNode();
currentMoney = ns.getServerMoneyAvailable("home");
++nodeCount;
}
if (nodeStats.ram < ramCap && ns.hacknet.getRamUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
ns.hacknet.upgradeRam(index, upgradeCount);
currentMoney = ns.getServerMoneyAvailable("home");
}
for (let index = 0; index < nodeCount; ++index) {
let nodeStats = ns.hacknet.getNodeStats(index);
if (nodeStats.cores < coreCap && ns.hacknet.getCoreUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
ns.hacknet.upgradeCore(index, upgradeCount);
currentMoney = ns.getServerMoneyAvailable("home");
if (nodeStats.level < levelCap && ns.hacknet.getLevelUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
ns.hacknet.upgradeLevel(index, upgradeCount);
currentMoney = ns.getServerMoneyAvailable("home");
}
if (nodeStats.ram < ramCap && ns.hacknet.getRamUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
ns.hacknet.upgradeRam(index, upgradeCount);
currentMoney = ns.getServerMoneyAvailable("home");
}
if (nodeStats.cores < coreCap && ns.hacknet.getCoreUpgradeCost(index, upgradeCount) / Math.abs(currentMoney) < upgradeCostThreshold) {
ns.hacknet.upgradeCore(index, upgradeCount);
currentMoney = ns.getServerMoneyAvailable("home");
}
}
}
}
let serverCost = ns.getPurchasedServerCost(16);
let serverCost = ns.getPurchasedServerCost(serverRAM);
if (serverCost < currentMoney) {
let newServer = ns.purchaseServer('home', 16);
if (newServer != '') {
ns.tprint(`Bought a server`);
ns.scp('grow-helper.js', newServer);
ns.scp('constants.js', newServer);
let execExitCode = ns.exec('grow-helper.js', newServer, 5, 20);
ns.tprint(`Exec 'grow-helper.js' exit code: ${execExitCode}`);
if (serverCost < currentMoney) {
let newServer = ns.purchaseServer('home', serverRAM);
if (newServer != '') {
ns.tprint(`Bought a server`);
ns.scp('grow-helper.js', newServer);
ns.scp('constants.js', newServer);
let execExitCode = ns.exec('grow-helper.js', newServer, 5, 20);
ns.tprint(`Exec 'grow-helper.js' exit code: ${execExitCode}`);
}
}
// terminalInput.value = backdoorCommand;
// terminalInput[handler].onChange({ target: terminalInput });
// terminalInput[handler].onKeyDown({ key: 'Enter', preventDefault: () => null });
let logFiles = ['hack-log.js', 'nuke-log.js'];
for (let index = 0; index < logFiles.length; index++) {
const logFile = logFiles[index];
let portData = ns.readPort(index + 1);
if (portData != 'NULL PORT DATA') ns.write(logFile, portData, 'a');
}
await ns.sleep(1000);
}
// terminalInput.value = backdoorCommand;
// terminalInput[handler].onChange({ target: terminalInput });
// terminalInput[handler].onKeyDown({ key: 'Enter', preventDefault: () => null });
let logFiles = ['hack-log.js', 'nuke-log.js'];
for (let index = 0; index < logFiles.length; index++) {
const logFile = logFiles[index];
let portData = ns.readPort(index + 1);
if (portData != 'NULL PORT DATA') ns.write(logFile, portData, 'a');
}
await ns.sleep(1000);
}
}
@@ -0,0 +1 @@
eyJjdG9yIjoiQml0YnVybmVyU2F2ZU9iamVjdCIsImRhdGEiOnsiUGxheWVyU2F2ZSI6IntcImN0b3JcIjpcIlBsYXllck9iamVjdFwiLFwiZGF0YVwiOntcImhwXCI6e1wiY3VycmVudFwiOjEwLFwibWF4XCI6MTB9LFwic2tpbGxzXCI6e1wiaGFja2luZ1wiOjY1MixcInN0cmVuZ3RoXCI6MSxcImRlZmVuc2VcIjoxLFwiZGV4dGVyaXR5XCI6MSxcImFnaWxpdHlcIjoxLFwiY2hhcmlzbWFcIjoxLFwiaW50ZWxsaWdlbmNlXCI6MH0sXCJleHBcIjp7XCJoYWNraW5nXCI6OTE3MTc1My44NTM0MDczNTUsXCJzdHJlbmd0aFwiOjAsXCJkZWZlbnNlXCI6MCxcImRleHRlcml0eVwiOjAsXCJhZ2lsaXR5XCI6MCxcImNoYXJpc21hXCI6MCxcImludGVsbGlnZW5jZVwiOjB9LFwibXVsdHNcIjp7XCJoYWNraW5nX2NoYW5jZVwiOjEuMzY2MTYwNDk3MDk0MTA4NixcImhhY2tpbmdfc3BlZWRcIjoxLjM1OTMzNzQ4NzM4NzY3MjcsXCJoYWNraW5nX21vbmV5XCI6Mi4yODI3OTkwNjA1OTU3OTU3LFwiaGFja2luZ19ncm93XCI6MS4zNjcxMDkyNzA5MjgxMzI1LFwiaGFja2luZ1wiOjIuMDg1MTE0MDY4MzkwNzU5NixcInN0cmVuZ3RoXCI6MS4yNTc3NDA1MjkyNTM4ODE3LFwiZGVmZW5zZVwiOjEuMDkzNjg3NDE2NzQyNTA2LFwiZGV4dGVyaXR5XCI6MS43NDMyMjgzNzM1NDU4ODA0LFwiYWdpbGl0eVwiOjEuMTQ4MzcxNzg3NTc5NjMxMyxcImNoYXJpc21hXCI6MS4zMTI0MjQ5MDAwOTEwMDcsXCJoYWNraW5nX2V4cFwiOjIuNzUyODA0NTU5MTgxODY0LFwic3RyZW5ndGhfZXhwXCI6MS4zODM1MTQ1ODIxNzkyNyxcImRlZmVuc2VfZXhwXCI6MS4zODM1MTQ1ODIxNzkyNyxcImRleHRlcml0eV9leHBcIjoxLjM4MzUxNDU4MjE3OTI3LFwiYWdpbGl0eV9leHBcIjoxLjM4MzUxNDU4MjE3OTI3LFwiY2hhcmlzbWFfZXhwXCI6MS4zODM1MTQ1ODIxNzkyNyxcImNvbXBhbnlfcmVwXCI6MS4wOTM2ODc0MTY3NDI1MDYsXCJmYWN0aW9uX3JlcFwiOjEuMDkzNjg3NDE2NzQyNTA2LFwiY3JpbWVfbW9uZXlcIjoxLjA5MzY4NzQxNjc0MjUwNixcImNyaW1lX3N1Y2Nlc3NcIjoxLjA5MzY4NzQxNjc0MjUwNixcImhhY2tuZXRfbm9kZV9tb25leVwiOjIuNzU4MzgyMTk4MjE5OTE5NyxcImhhY2tuZXRfbm9kZV9wdXJjaGFzZV9jb3N0XCI6MC42OTk0Njg1OTQzMDY4NzY1LFwiaGFja25ldF9ub2RlX3JhbV9jb3N0XCI6MC45MTQzMzgwMzE3NzM2OTQ4LFwiaGFja25ldF9ub2RlX2NvcmVfY29zdFwiOjAuOTE0MzM4MDMxNzczNjk0OCxcImhhY2tuZXRfbm9kZV9sZXZlbF9jb3N0XCI6MC43NzcxODczMjcwMDc2NDA1LFwid29ya19tb25leVwiOjEuMDkzNjg3NDE2NzQyNTA2LFwiYmxhZGVidXJuZXJfbWF4X3N0YW1pbmFcIjoxLFwiYmxhZGVidXJuZXJfc3RhbWluYV9nYWluXCI6MSxcImJsYWRlYnVybmVyX2FuYWx5c2lzXCI6MSxcImJsYWRlYnVybmVyX3N1Y2Nlc3NfY2hhbmNlXCI6MX0sXCJtb25leVwiOjk3NDM2NjE0LjEwMTc2NTkzLFwiY2l0eVwiOlwiSXNoaW1hXCIsXCJsb2NhdGlvblwiOlwiU3Rvcm0gVGVjaG5vbG9naWVzXCIsXCJqb2JzXCI6e30sXCJjdXJyZW50U2VydmVyXCI6XCJob21lXCIsXCJwdXJjaGFzZWRTZXJ2ZXJzXCI6W1wiaG9tZS0wXCIsXCJob21lLTFcIixcImhvbWUtMlwiLFwiaG9tZS0zXCIsXCJob21lLTRcIixcImhvbWUtNVwiLFwiaG9tZS02XCIsXCJob21lLTdcIixcImhvbWUtOFwiLFwiaG9tZS05XCIsXCJob21lLTEwXCIsXCJob21lLTExXCIsXCJob21lLTEyXCIsXCJob21lLTEzXCIsXCJob21lLTE0XCIsXCJob21lLTE1XCIsXCJob21lLTE2XCIsXCJob21lLTE3XCIsXCJob21lLTE4XCIsXCJob21lLTE5XCIsXCJob21lLTIwXCIsXCJob21lLTIxXCIsXCJob21lLTIyXCIsXCJob21lLTIzXCIsXCJob21lLTI0XCJdLFwiaGFja25ldE5vZGVzXCI6W3tcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjI1Mjk3Ljk3NjA2NjYwNzE0NSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NzQyNjcuNTk5OTk5ODUwMDMsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoxNDgzOTAyNDYyLjE5ODg4OTcsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtMFwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MjUyOTcuOTc2MDY2NjA3MTQ1LFwib25saW5lVGltZVNlY29uZHNcIjo3NDI2Ni41OTk5OTk4NTAwNSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjE0Nzg2NTM3MjUuOTQwNTQ3NSxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0xXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoyNTI5Ny45NzYwNjY2MDcxNDUsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjc0MjY1LjU5OTk5OTg1MDA2LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTQ3NzAwMzc5My40OTE3MzU3LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTJcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjI1Mjk3Ljk3NjA2NjYwNzE0NSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NzQyNjQuNTk5OTk5ODUwMDgsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoxNDc1MjEyMzg5Ljc2NDY4OTIsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtM1wifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MjUyOTcuOTc2MDY2NjA3MTQ1LFwib25saW5lVGltZVNlY29uZHNcIjo3NDI2My41OTk5OTk4NTAwOSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjE0NzM4NTc4MTUuNjI4MjE3NSxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS00XCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoyNTI5Ny45NzYwNjY2MDcxNDUsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjc0MjYyLjU5OTk5OTg1MDEsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoxNDcyNjMyNjcwLjYxMTY5OTgsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtNVwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MjUyOTcuOTc2MDY2NjA3MTQ1LFwib25saW5lVGltZVNlY29uZHNcIjo3NDI2MS41OTk5OTk4NTAxMixcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjE0NzEwODIxNjcuMTcwMjM4NyxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS02XCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoyNTI5Ny45NzYwNjY2MDcxNDUsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjczNDQyLjk5OTk5OTg2MTU4LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MTQ2OTcxNjYwMy44ODE4NzEyLFwibmFtZVwiOlwLine truncated
@@ -0,0 +1 @@
eyJjdG9yIjoiQml0YnVybmVyU2F2ZU9iamVjdCIsImRhdGEiOnsiUGxheWVyU2F2ZSI6IntcImN0b3JcIjpcIlBsYXllck9iamVjdFwiLFwiZGF0YVwiOntcImhwXCI6e1wiY3VycmVudFwiOjEwLFwibWF4XCI6MTB9LFwic2tpbGxzXCI6e1wiaGFja2luZ1wiOjg0MSxcInN0cmVuZ3RoXCI6MixcImRlZmVuc2VcIjoyLFwiZGV4dGVyaXR5XCI6MixcImFnaWxpdHlcIjoxLFwiY2hhcmlzbWFcIjoxLFwiaW50ZWxsaWdlbmNlXCI6MH0sXCJleHBcIjp7XCJoYWNraW5nXCI6MzM4MDUzNjIuMzUzNDk2MDgsXCJzdHJlbmd0aFwiOjAsXCJkZWZlbnNlXCI6MCxcImRleHRlcml0eVwiOjAsXCJhZ2lsaXR5XCI6MCxcImNoYXJpc21hXCI6MCxcImludGVsbGlnZW5jZVwiOjB9LFwibXVsdHNcIjp7XCJoYWNraW5nX2NoYW5jZVwiOjEuNTU0ODIyNDg0NDk0MTUzOCxcImhhY2tpbmdfc3BlZWRcIjoxLjU0NzA1NzI0MTAwNjI1MixcImhhY2tpbmdfbW9uZXlcIjoyLjU5ODA0NTYyODI3NDM1OTYsXCJoYWNraW5nX2dyb3dcIjoxLjU1NTkwMjI4MDY3Njk0MzEsXCJoYWNraW5nXCI6Mi4zNzMwNjEwMjk5MTkxNzMsXCJzdHJlbmd0aFwiOjIuMTU0MDE2MDExODA1NjUxLFwiZGVmZW5zZVwiOjIuNjIyMjgwMzYyMTk4MTg0LFwiZGV4dGVyaXR5XCI6Mi4xODIzNTgzMjc3NTA0NjIsXCJhZ2lsaXR5XCI6MS4zMDY5NTc5MTU3Njg2MzI0LFwiY2hhcmlzbWFcIjoxLjY0MzAzMjgwODM5NDg1MjIsXCJoYWNraW5nX2V4cFwiOjMuMTMyOTU3MjQyNjc5NzY3LFwic3RyZW5ndGhfZXhwXCI6MS41NzQ1NzMxMDgwNDUwNjYsXCJkZWZlbnNlX2V4cFwiOjEuNTc0NTczMTA4MDQ1MDY2LFwiZGV4dGVyaXR5X2V4cFwiOjEuNTc0NTczMTA4MDQ1MDY2LFwiYWdpbGl0eV9leHBcIjoxLjU3NDU3MzEwODA0NTA2NixcImNoYXJpc21hX2V4cFwiOjEuNTc0NTczMTA4MDQ1MDY2LFwiY29tcGFueV9yZXBcIjoyLjA3ODQzNjUwMjYxOTQ4OCxcImZhY3Rpb25fcmVwXCI6MS41NzQ1NzMxMDgwNDUwNjY0LFwiY3JpbWVfbW9uZXlcIjoxLjM2OTE5NDAwNjk5NTcxLFwiY3JpbWVfc3VjY2Vzc1wiOjEuNTU1OTAyMjgwNjc2OTQzMSxcImhhY2tuZXRfbm9kZV9tb25leVwiOjMuMTM5MzA1MTM0MTY0ODUxLFwiaGFja25ldF9ub2RlX3B1cmNoYXNlX2Nvc3RcIjowLjYxNDU5NTE1Mjg0MjA4ODEsXCJoYWNrbmV0X25vZGVfcmFtX2Nvc3RcIjowLjgwMzM5MjM1NjY1NjMyNDIsXCJoYWNrbmV0X25vZGVfY29yZV9jb3N0XCI6MC44MDMzOTIzNTY2NTYzMjQyLFwiaGFja25ldF9ub2RlX2xldmVsX2Nvc3RcIjowLjY4Mjg4MzUwMzE1Nzg3NTYsXCJ3b3JrX21vbmV5XCI6MS4zNjkxOTQwMDY5OTU3MSxcImJsYWRlYnVybmVyX21heF9zdGFtaW5hXCI6MSxcImJsYWRlYnVybmVyX3N0YW1pbmFfZ2FpblwiOjEsXCJibGFkZWJ1cm5lcl9hbmFseXNpc1wiOjEsXCJibGFkZWJ1cm5lcl9zdWNjZXNzX2NoYW5jZVwiOjF9LFwibW9uZXlcIjozMjUyMjU3MDE0MC40MDcwMTMsXCJjaXR5XCI6XCJTZWN0b3ItMTJcIixcImxvY2F0aW9uXCI6XCJBbHBoYSBFbnRlcnByaXNlc1wiLFwiam9ic1wiOnt9LFwiY3VycmVudFNlcnZlclwiOlwiaG9tZVwiLFwicHVyY2hhc2VkU2VydmVyc1wiOltcImhvbWUtMFwiLFwiaG9tZS0xXCIsXCJob21lLTJcIixcImhvbWUtM1wiLFwiaG9tZS00XCIsXCJob21lLTVcIixcImhvbWUtNlwiLFwiaG9tZS03XCIsXCJob21lLThcIixcImhvbWUtOVwiLFwiaG9tZS0xMFwiLFwiaG9tZS0xMVwiLFwiaG9tZS0xMlwiLFwiaG9tZS0xM1wiLFwiaG9tZS0xNFwiLFwiaG9tZS0xNVwiLFwiaG9tZS0xNlwiLFwiaG9tZS0xN1wiLFwiaG9tZS0xOFwiLFwiaG9tZS0xOVwiLFwiaG9tZS0yMFwiLFwiaG9tZS0yMVwiLFwiaG9tZS0yMlwiLFwiaG9tZS0yM1wiLFwiaG9tZS0yNFwiXSxcImhhY2tuZXROb2Rlc1wiOlt7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoyODc5MS41MzgwOTgzNTcyODcsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjE5OTM5NC4wMDAwMDAyMzI1LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6NTM4Mzk3OTA4Ni41NzcxNSxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0wXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjoyODc5MS41MzgwOTgzNTcyODcsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjE5OTM5My4wMDAwMDAyMzI1LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6NTM4MjQwNDA2Mi42ODg3NzUsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtMVwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6Mjg3OTEuNTM4MDk4MzU3Mjg3LFwib25saW5lVGltZVNlY29uZHNcIjoxOTkzOTIuMDAwMDAwMjMyNSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjUzODA5MzAyMDcuNzc1NzUyLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTJcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjI4NzkxLjUzODA5ODM1NzI4NyxcIm9ubGluZVRpbWVTZWNvbmRzXCI6MTk5MzkxLjAwMDAwMDIzMjUsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjo1Mzc5MjUzNTc4LjcxNTIyLFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTNcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjI4NzkxLjUzODA5ODM1NzI4NyxcIm9ubGluZVRpbWVTZWNvbmRzXCI6MTk5MzkwLjAwMDAwMDIzMjU0LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6NTM3NzgyNzQyMi42Mjc0NDgsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtNFwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6Mjg3OTEuNTM4MDk4MzU3Mjg3LFwib25saW5lVGltZVNlY29uZHNcIjoxOTkzODkuMDAwMDAwMjMyNSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjUzNzY3MjQ1NjQuMzc0MDEsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtNVwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6Mjg3OTEuNTM4MDk4MzU3Mjg3LFwib25saW5lVGltZVNlY29uZHNcIjoxOTkzODguMDAwMDAwMjMyNSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjUzNzUzODI4MTguNDE4MTM0LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTZcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjI4NzkxLjUzODA5ODM1NzI4NyxcIm9ubGluZVRpbWVTZWNvbmRzXCI6MTk5Mzg3LjAwMDAwMDIzMjUsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjo1Mzc0Mzc3NzAxLjIzOTA4NyxcIm5hbWVcIjpcImhhY2tLine truncated
@@ -0,0 +1 @@
eyJjdG9yIjoiQml0YnVybmVyU2F2ZU9iamVjdCIsImRhdGEiOnsiUGxheWVyU2F2ZSI6IntcImN0b3JcIjpcIlBsYXllck9iamVjdFwiLFwiZGF0YVwiOntcImhwXCI6e1wiY3VycmVudFwiOjE1LFwibWF4XCI6MTV9LFwic2tpbGxzXCI6e1wiaGFja2luZ1wiOjE5NzgsXCJzdHJlbmd0aFwiOjQ4LFwiZGVmZW5zZVwiOjU4LFwiZGV4dGVyaXR5XCI6NDksXCJhZ2lsaXR5XCI6MjksXCJjaGFyaXNtYVwiOjIwNixcImludGVsbGlnZW5jZVwiOjB9LFwiZXhwXCI6e1wiaGFja2luZ1wiOjEwNDU2NDEzOS43MTg0ODA1NCxcInN0cmVuZ3RoXCI6NDYyLjU1NTMxMDUzMTQ2Mjc0LFwiZGVmZW5zZVwiOjQ2Mi41NTUzMTA1MzE0NjI3NCxcImRleHRlcml0eVwiOjQ2Mi41NTUzMTA1MzE0NjI3NCxcImFnaWxpdHlcIjo0NjIuNTU1MzEwNTMxNDYyNzQsXCJjaGFyaXNtYVwiOjE5Nzk5LjIyNDI2NDY0NjEzNSxcImludGVsbGlnZW5jZVwiOjB9LFwibXVsdHNcIjp7XCJoYWNraW5nX2NoYW5jZVwiOjEuOTI1MzY1MDExMTIwNDg1MixcImhhY2tpbmdfc3BlZWRcIjoxLjg4MzUyOTc1MDc5MjEzMTQsXCJoYWNraW5nX21vbmV5XCI6Ni4yNDYzOTU4NzAwMDA4MzYsXCJoYWNraW5nX2dyb3dcIjoyLjkxOTI0NTY3MDMxNDExNDUsXCJoYWNraW5nXCI6NS4wNjA5ODI1NzU4NzM5MDEsXCJzdHJlbmd0aFwiOjIuMzA5NDAwMjM2NTIyMDQ4LFwiZGVmZW5zZVwiOjIuODExNDQzNzY2MjAwNzU1LFwiZGV4dGVyaXR5XCI6Mi4zMzk3ODcwODE3Mzk0NDQsXCJhZ2lsaXR5XCI6MS40MDEyMzc5MjE3NTA3NzQ5LFwiY2hhcmlzbWFcIjoxLjc2MTU1NjI0NDQ4NjY4ODYsXCJoYWNraW5nX2V4cFwiOjUuMzMwNjY4NDY5NTU0ODMsXCJzdHJlbmd0aF9leHBcIjoxLjY4ODE1ODA2NzYzMzA3NTIsXCJkZWZlbnNlX2V4cFwiOjEuNjg4MTU4MDY3NjMzMDc1MixcImRleHRlcml0eV9leHBcIjoxLjY4ODE1ODA2NzYzMzA3NTIsXCJhZ2lsaXR5X2V4cFwiOjEuNjg4MTU4MDY3NjMzMDc1MixcImNoYXJpc21hX2V4cFwiOjEuNjg4MTU4MDY3NjMzMDc1MixcImNvbXBhbnlfcmVwXCI6Mi4yMjgzNjg2NDkyNzU2NjEsXCJmYWN0aW9uX3JlcFwiOjEuNjg4MTU4MDY3NjMzMDc2MyxcImNyaW1lX21vbmV5XCI6MS40Njc5NjM1MzcwNzIyNDA0LFwiY3JpbWVfc3VjY2Vzc1wiOjEuNjY4MTQwMzgzMDM2NjM2OCxcImhhY2tuZXRfbm9kZV9tb25leVwiOjMuMzY1NzY1MTQ3MzQzNDQ2LFwiaGFja25ldF9ub2RlX3B1cmNoYXNlX2Nvc3RcIjowLjU3MzI0MzEyMTMzNjg2NzUsXCJoYWNrbmV0X25vZGVfcmFtX2Nvc3RcIjowLjc0OTMzNzQxMzUxMjI0NSxcImhhY2tuZXRfbm9kZV9jb3JlX2Nvc3RcIjowLjc0OTMzNzQxMzUxMjI0NSxcImhhY2tuZXRfbm9kZV9sZXZlbF9jb3N0XCI6MC42MzY5MzY4MDE0ODU0MDgyLFwid29ya19tb25leVwiOjEuNDY3OTYzNTM3MDcyMjQwNCxcImJsYWRlYnVybmVyX21heF9zdGFtaW5hXCI6MSxcImJsYWRlYnVybmVyX3N0YW1pbmFfZ2FpblwiOjEsXCJibGFkZWJ1cm5lcl9hbmFseXNpc1wiOjEsXCJibGFkZWJ1cm5lcl9zdWNjZXNzX2NoYW5jZVwiOjF9LFwibW9uZXlcIjoyMDMyNzcxMTg4OTcuMTk2NDcsXCJjaXR5XCI6XCJTZWN0b3ItMTJcIixcImxvY2F0aW9uXCI6XCJBbHBoYSBFbnRlcnByaXNlc1wiLFwiam9ic1wiOntcIk1lZ2FDb3JwXCI6XCJJVCBJbnRlcm5cIn0sXCJjdXJyZW50U2VydmVyXCI6XCJob21lXCIsXCJwdXJjaGFzZWRTZXJ2ZXJzXCI6W1wiaG9tZS0wXCIsXCJob21lLTFcIixcImhvbWUtMlwiLFwiaG9tZS0zXCIsXCJob21lLTRcIixcImhvbWUtNVwiLFwiaG9tZS02XCIsXCJob21lLTdcIixcImhvbWUtOFwiLFwiaG9tZS05XCIsXCJob21lLTEwXCIsXCJob21lLTExXCIsXCJob21lLTEyXCIsXCJob21lLTEzXCIsXCJob21lLTE0XCIsXCJob21lLTE1XCIsXCJob21lLTE2XCIsXCJob21lLTE3XCIsXCJob21lLTE4XCIsXCJob21lLTE5XCIsXCJob21lLTIwXCIsXCJob21lLTIxXCIsXCJob21lLTIyXCIsXCJob21lLTIzXCIsXCJob21lLTI0XCJdLFwiaGFja25ldE5vZGVzXCI6W3tcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjMwODY4LjQ3MjkwMzUyNDE1LFwib25saW5lVGltZVNlY29uZHNcIjoyMjc3OTEuNjAwMDAxOTc0MTIsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjo2OTE1MzYxMDkwLjQ3Mzk3NixcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0wXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjozMDg2OC40NzI5MDM1MjQxNSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6MjI3NzkwLjYwMDAwMTk3NDEyLFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6NjkxNDEzNTQwNi4yNzg2MixcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0xXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjozMDg2OC40NzI5MDM1MjQxNSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6MjI3Nzg5LjYwMDAwMTk3NDE1LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6NjkxMzY4Njk5OC40NDI5MDUsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtMlwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MzA4NjguNDcyOTAzNTI0MTUsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjIyNzc4OC42MDAwMDE5NzQxNSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjY5MTMxOTIxNzQuNTEwNjY0LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTNcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjMwODY4LjQ3MjkwMzUyNDE1LFwib25saW5lVGltZVNlY29uZHNcIjoyMjc3ODcuNjAwMDAxOTc0MTUsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjo2OTA1ODgzNzM4LjE5MjkxMixcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS00XCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjozMDg2OC40NzI5MDM1MjQxNSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6MjI3Nzg2LjYwMDAwMTk3NDE1LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6NjkwNTMxNDMxNy41NzkzOTksXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtNVwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MzA4NjguNDcyOTAzNTI0MTUsXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjIyNzc4NS42MDAwMDE5NzQxNSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjY5MDQwNjkxNjEuMjkwMDc5LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTZcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjMLine truncated
@@ -0,0 +1 @@
eyJjdG9yIjoiQml0YnVybmVyU2F2ZU9iamVjdCIsImRhdGEiOnsiUGxheWVyU2F2ZSI6IntcImN0b3JcIjpcIlBsYXllck9iamVjdFwiLFwiZGF0YVwiOntcImhwXCI6e1wiY3VycmVudFwiOjEwLFwibWF4XCI6MTB9LFwic2tpbGxzXCI6e1wiaGFja2luZ1wiOjI3MzgsXCJzdHJlbmd0aFwiOjMsXCJkZWZlbnNlXCI6NCxcImRleHRlcml0eVwiOjMsXCJhZ2lsaXR5XCI6MixcImNoYXJpc21hXCI6MSxcImludGVsbGlnZW5jZVwiOjB9LFwiZXhwXCI6e1wiaGFja2luZ1wiOjY1OTc3NDkwOS42Nzg1MTYsXCJzdHJlbmd0aFwiOjAsXCJkZWZlbnNlXCI6MCxcImRleHRlcml0eVwiOjAsXCJhZ2lsaXR5XCI6MCxcImNoYXJpc21hXCI6MCxcImludGVsbGlnZW5jZVwiOjB9LFwibXVsdHNcIjp7XCJoYWNraW5nX2NoYW5jZVwiOjIuNzc5NTg2NjgwNTk0Mzc4LFwiaGFja2luZ19zcGVlZFwiOjIuMzc5MjkxNjY5NTY0MjM1LFwiaGFja2luZ19tb25leVwiOjEzLjM4OTk0NDk0MzUwNDA1OSxcImhhY2tpbmdfZ3Jvd1wiOjMuMTkyNzQyMjU2MDAyNTksXCJoYWNraW5nXCI6Ni4wODg2NDYyNTU1NDQ5OTksXCJzdHJlbmd0aFwiOjMuNDA5Nzc4NjcxNTIzNTQ4NSxcImRlZmVuc2VcIjo0LjE1MTAzNDkwNDQ2MzQ1MSxcImRleHRlcml0eVwiOjMuNDU0NjQ0MTgwMzU5Mzg1MyxcImFnaWxpdHlcIjoyLjA2ODg5Njk4MTg4OTY3ODUsXCJjaGFyaXNtYVwiOjEuOTI2NTkxODk4NDc5Mjc3NCxcImhhY2tpbmdfZXhwXCI6Ny4yODc2MDYyODQ5NzI2ODgsXCJzdHJlbmd0aF9leHBcIjoyLjQ5MjUyODI2ODY1NzU2MyxcImRlZmVuc2VfZXhwXCI6Mi40OTI1MjgyNjg2NTc1NjMsXCJkZXh0ZXJpdHlfZXhwXCI6Mi40OTI1MjgyNjg2NTc1NjMsXCJhZ2lsaXR5X2V4cFwiOjIuNDkyNTI4MjY4NjU3NTYzLFwiY2hhcmlzbWFfZXhwXCI6MS44NDYzMTcyMzYwNDI2MzksXCJjb21wYW55X3JlcFwiOjIuNDM3MTM4NzUxNTc2Mjg1NyxcImZhY3Rpb25fcmVwXCI6MS44NDYzMTcyMzYwNDI2NDA4LFwiY3JpbWVfbW9uZXlcIjoxLjYwNTQ5MzI0ODczMjczMTEsXCJjcmltZV9zdWNjZXNzXCI6MS44MjQ0MjQxNDYyODcxOTQ0LFwiaGFja25ldF9ub2RlX21vbmV5XCI6My42ODEwOTQ5ODkzNjAwMTU2LFwiaGFja25ldF9ub2RlX3B1cmNoYXNlX2Nvc3RcIjowLjUyNDEzNzk4NzI5MDk2MDcsXCJoYWNrbmV0X25vZGVfcmFtX2Nvc3RcIjowLjY4NTE0NzY5NTgwNTE3NzQsXCJoYWNrbmV0X25vZGVfY29yZV9jb3N0XCI6MC42ODUxNDc2OTU4MDUxNzc0LFwiaGFja25ldF9ub2RlX2xldmVsX2Nvc3RcIjowLjU4MjM3NTU0MTQzNDQwMDgsXCJ3b3JrX21vbmV5XCI6MS42MDU0OTMyNDg3MzI3MzExLFwiYmxhZGVidXJuZXJfbWF4X3N0YW1pbmFcIjoxLFwiYmxhZGVidXJuZXJfc3RhbWluYV9nYWluXCI6MSxcImJsYWRlYnVybmVyX2FuYWx5c2lzXCI6MSxcImJsYWRlYnVybmVyX3N1Y2Nlc3NfY2hhbmNlXCI6MX0sXCJtb25leVwiOjEyODcwNjc3MjAwMjkuNjg1LFwiY2l0eVwiOlwiSXNoaW1hXCIsXCJsb2NhdGlvblwiOlwiVHJhdmVsIEFnZW5jeVwiLFwiam9ic1wiOnt9LFwiY3VycmVudFNlcnZlclwiOlwiaG9tZVwiLFwicHVyY2hhc2VkU2VydmVyc1wiOltcImhvbWUtMFwiLFwiaG9tZS0xXCIsXCJob21lLTJcIixcImhvbWUtM1wiLFwiaG9tZS00XCIsXCJob21lLTVcIixcImhvbWUtNlwiLFwiaG9tZS03XCIsXCJob21lLThcIixcImhvbWUtOVwiLFwiaG9tZS0xMFwiLFwiaG9tZS0xMVwiLFwiaG9tZS0xMlwiLFwiaG9tZS0xM1wiLFwiaG9tZS0xNFwiLFwiaG9tZS0xNVwiLFwiaG9tZS0xNlwiLFwiaG9tZS0xN1wiLFwiaG9tZS0xOFwiLFwiaG9tZS0xOVwiLFwiaG9tZS0yMFwiLFwiaG9tZS0yMVwiLFwiaG9tZS0yMlwiLFwiaG9tZS0yM1wiLFwiaG9tZS0yNFwiXSxcImhhY2tuZXROb2Rlc1wiOlt7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjozMzc2MC40NjAzODg2NDEzOSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NjEwNzE3LjE5OTk4OTc3NzIsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoyMDU0MjE1Mzk2My4zNzQzNzQsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtMFwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MzM3NjAuNDYwMzg4NjQxMzksXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjYxMDcxNi4xOTk5ODk3Nzc0LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MjA1NDE1OTc2MjMuNDM5OTg3LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTFcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjMzNzYwLjQ2MDM4ODY0MTM5LFwib25saW5lVGltZVNlY29uZHNcIjo2MTA3MTUuMTk5OTg5Nzc3NCxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjIwNTQwOTY5MzAyLjAzODY1NCxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0yXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjozMzc2MC40NjAzODg2NDEzOSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NjEwNzE0LjE5OTk4OTc3NzUsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoyMDUzODk4MjA1Ni4wNTQ4NyxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS0zXCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjozMzc2MC40NjAzODg2NDEzOSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NjEwNzEzLjE5OTk4OTc3NzUsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoyMDUzODc3MzQzOC4wMTkzMDYsXCJuYW1lXCI6XCJoYWNrbmV0LW5vZGUtNFwifX0se1wiY3RvclwiOlwiSGFja25ldE5vZGVcIixcImRhdGFcIjp7XCJjb3Jlc1wiOjE2LFwibGV2ZWxcIjoyMDAsXCJtb25leUdhaW5SYXRlUGVyU2Vjb25kXCI6MzM3NjAuNDYwMzg4NjQxMzksXCJvbmxpbmVUaW1lU2Vjb25kc1wiOjYxMDcxMi4xOTk5ODk3Nzc1LFwicmFtXCI6NjQsXCJ0b3RhbE1vbmV5R2VuZXJhdGVkXCI6MjA1Mzg2NDAwMzIuODc4NDI2LFwibmFtZVwiOlwiaGFja25ldC1ub2RlLTVcIn19LHtcImN0b3JcIjpcIkhhY2tuZXROb2RlXCIsXCJkYXRhXCI6e1wiY29yZXNcIjoxNixcImxldmVsXCI6MjAwLFwibW9uZXlHYWluUmF0ZVBlclNlY29uZFwiOjMzNzYwLjQ2MDM4ODY0MTM5LFwib25saW5lVGltZVNlY29uZHNcIjo2MTA3MTEuMTk5OTg5Nzc3NSxcInJhbVwiOjY0LFwidG90YWxNb25leUdlbmVyYXRlZFwiOjIwNTM3MjQyNzk4LjQ4NjM5MyxcIm5hbWVcIjpcImhhY2tuZXQtbm9kZS02XCJ9fSx7XCJjdG9yXCI6XCJIYWNrbmV0Tm9kZVwiLFwiZGF0YVwiOntcImNvcmVzXCI6MTYsXCJsZXZlbFwiOjIwMCxcIm1vbmV5R2FpblJhdGVQZXJTZWNvbmRcIjozMzc2MC40NjAzODg2NDEzOSxcIm9ubGluZVRpbWVTZWNvbmRzXCI6NjEwNzEwLjE5OTk4OTc3NzUsXCJyYW1cIjo2NCxcInRvdGFsTW9uZXlHZW5lcmF0ZWRcIjoyMDUzNjYwNzkyOC41OTAyOCxcIm5hbWVcIjpcImhhY2tuZXQLine truncated
+11
View File
@@ -0,0 +1,11 @@
/** @param {import(".").NS } ns */
export async function main(ns) {
// ns.disableLog('ALL');
let target;
if(ns.args.length == 1) {
target = JSON.parse(ns.args[0]);
}
}