<commit_before>'use strict';

const { eventTypes, rewardTypes, opts } = require('./resources/trackables.json');

const { Collection } = require('discord.js');

const fissures = ['fissures.t1.excavation', 'fissures.t1.sabotage', 'fissures.t1.mobiledefense', 'fissures.t1.assassination', 'fissures.t1.extermination',
  'fissures.t1.hive', 'fissures.t1.defense', 'fissures.t1.interception', 'fissures.t1.rathuum', 'fissures.t1.conclave', 'fissures.t1.rescue',
  'fissures.t1.spy', 'fissures.t1.survival', 'fissures.t1.capture', 'fissures.t1.darksector', 'fissures.t1.hijack', 'fissures.t1.assault',
  'fissures.t1.evacuation', 'fissures.t2.excavation', 'fissures.t2.sabotage', 'fissures.t2.mobiledefense', 'fissures.t2.assassination',
  'fissures.t2.extermination', 'fissures.t2.hive', 'fissures.t2.defense', 'fissures.t2.interception', 'fissures.t2.rathuum', 'fissures.t2.conclave',
  'fissures.t2.rescue', 'fissures.t2.spy', 'fissures.t2.survival', 'fissures.t2.capture', 'fissures.t2.darksector', 'fissures.t2.hijack',
  'fissures.t2.assault', 'fissures.t2.evacuation', 'fissures.t3.excavation', 'fissures.t3.sabotage', 'fissures.t3.mobiledefense',
  'fissures.t3.assassination', 'fissures.t3.extermination', 'fissures.t3.hive', 'fissures.t3.defense', 'fissures.t3.interception',
  'fissures.t3.rathuum', 'fissures.t3.conclave', 'fissures.t3.rescue', 'fissures.t3.spy', 'fissures.t3.survival', 'fissures.t3.capture',
  'fissures.t3.darksector', 'fissures.t3.hijack', 'fissures.t3.assault', 'fissures.t3.evacuation', 'fissures.t4.excavation', 'fissures.t4.sabotage',
  'fissures.t4.mobiledefense', 'fissures.t4.assassination', 'fissures.t4.extermination', 'fissures.t4.hive', 'fissures.t4.defense',
  'fissures.t4.interception', 'fissures.t4.rathuum', 'fissures.t4.conclave', 'fissures.t4.rescue', 'fissures.t4.spy', 'fissures.t4.survival',
  'fissures.t4.capture', 'fissures.t4.darksector', 'fissures.t4.hijack', 'fissures.t4.assault', 'fissures.t4.evacuation'];

const syndicates = ['syndicate.arbiters', 'syndicate.suda', 'syndicate.loka', 'syndicate.perrin', 'syndicate.veil', 'syndicate.meridian', 'syndicate.ostrons', 'syndicate.assassins'];
const conclave = ['conclave.weeklies', 'conclave.dailies'];
const deals = ['deals.featured', 'deals.popular'];
const clantech = ['mutagen', 'fieldron', 'detonite'];
const resources = ['neuralSensors', 'orokinCell', 'alloyPlate', 'circuits', 'controlModule', 'ferrite', 'gallium', 'morphics', 'nanoSpores', 'oxium', 'rubedo', 'salvage', 'plastids', 'polymerBundle', 'argonCrystal', 'cryotic', 'tellurium'];

const emoji = {
  vazarin: '<:vazarin:319586146269003778>',
  madurai: '<:madurai:319586146499690496>',
  naramon: '<:naramon:319586146478850048>',
  electricity: '<:electricity:321463957212626944>',
  cold: '<:cold:321463957019951105>',
  heat: '<:heat:321463957061763083>',
  toxin: '<:toxin:321463957325873153>',
  radiation: '<:radiation:321463957221277706>',
  viral: '<:viral:321463957292580864>',
  gas: '<:gas:363136257045561344>',
  impact: '<:impact:363136256781189120>',
  puncture: '<:puncture:363136257129185280>',
  slash: '<:slash:363136256755892225>',
  koneski: '<:koneski:319586146483044352>',
  unairu: '<:unairu:319586146453553162>',
  blast: '<:blast:363136256907149312>',
  corrosive: '<:corrosive:363136257288568832>',
  magnetic: '<:magnetic:363136420602445824>',
};

const isVulgarCheck = new RegExp('(n[i!1]gg[e3]r|n[i!1]gg[ua]|h[i!1]tl[e3]r|n[a@]z[i!1]|[©ck]un[t7]|fu[©c]k|[©c]umm?|f[a@4]g|d[i!1]ck|c[o0]ck|boner|sperm|gay|gooch|jizz|pussy|penis|r[i!1]mjob|schlong|slut|wank|whore|sh[i!1]t|sex|fuk|heil|p[o0]rn|pronz|suck|rape|scrotum)', 'ig');

const welcomes = [
  '<:join:349556772412981269> **$username** just joined the server - glhf!',
  '<:join:349556772412981269> **$username** just joined. Everyone, look busy!',
  '<:join:349556772412981269> **$username** just joined. Can I get a heal?',
  '<:join:349556772412981269> **$username** joined your party.',
  '<:join:349556772412981269> **$username** joined. You must construct additional pylons.',
  '<:join:349556772412981269> Ermagherd. **$username** is here.',
  '<:join:349556772412981269> Welcome, **$username**. Stay awhile and listen.',
  '<:join:349556772412981269> Welcome, **$username**. We were expecting you ( ͡° ͜ʖ ͡°)',
  '<:join:349556772412981269> Welcome, **$username**. We hope you brought pizza.',
  '<:join:349556772412981269> Welcome **$username**. Leave your weapons by the door.',
  '<:join:349556772412981269> A wild **$username** appeared.',
  '<:join:349556772412981269> Swoooosh. **$username** just landed.',
  '<:join:349556772412981269> Brace yourselves. **$username** just joined the server.',
  '<:join:349556772412981269> **$username** just joined. Hide your bananas.',
  '<:join:349556772412981269> **$username** just arrived. Seems OP - please nerf.',
  '<:join:349556772412981269> **$username** just slid into the server.',
  '<:join:349556772412981269> A **$username** has spawned in the server.',
  '<:join:349556772412981269> Big **$username** showed up!',
  '<:join:349556772412981269> Where’s **$username**? In the server!',
  '<:join:349556772412981269> **$username** hopped into the server. Kangaroo!!',
  '<:join:349556772412981269> **$username** just showed up. Hold my beer.',
  '<:join:349556772412981269> Relax, **$username**, it\'s a party.',
  '<:join:349556772412981269> Behold before you, the courageous, the charismatic, fashionable...\n**$username**.',
  '<:join:349556772412981269> Oh **$username**, you\'re here! Good to see you weren\'t discouraged by fashion frame.',
  '<:join:349556772412981269> The Tenno **$username** has appeared.',
  '<:join:349556772412981269> **$username** has consigned to the Lotus.',
  '<:join:349556772412981269> **$username** has joined the fight against the Grineer!',
  '<:join:349556772412981269> **$username** has started praising Space Mom.',
  '<:join:349556772412981269> **$username** is ready to save us from Alad V',
  '<:join:349556772412981269> Vay Hek thinks he\'s won, but **$username** has joined',
  '<:join:349556772412981269> **$username** has drunk the Kuva',
  '<:join:349556772412981269> **$username** saved the Ostrons once again!',
  '<:join:349556772412981269> **$username** just arrived at the Community Discord Relay',
  '<:join:349556772412981269> Without **$username** we would\'ve lost the Relays',
  '<:join:349556772412981269> **$username** is a trained ninja at heart',
  '<:join:349556772412981269> **$username** is here, as the prophecy foretold.',
  '<:join:349556772412981269> Swaz-do-lah, **$username**!',
  '<:join:349556772412981269> **$username** has arrived, early lunch for Konzu!',
  '<:join:349556772412981269> **$username**? **$username**?! Ooh, is it my birth interval?',
  '<:join:349556772412981269> I\'m Cephalon Genesis Primary. We have and shall have a long association, **$username**.\nI know this conversation well.',
  '<:join:349556772412981269> Consequence to consequence brings you to us, **$username**',
  '<:join:349556772412981269> **$username**, you were anticipated. Our interaction begins.',
  '<:join:349556772412981269> Drop a stone, a ripple. Drop a grain, nothing of consequence.\nCome to me with stones, **$username**. Instruments of tested power, and I will accept.',
  '<:join:349556772412981269> Oh how I\'ve been looking all over for you, **$username**. Come, come! Let me show you my new venture. I think you\'ll be a perfect fit.',
  '<:join:349556772412981269> It is time. Utter the name, **$username**',
  '<:join:349556772412981269> Yes, the name I have always known, **$username**',
  '<:join:349556772412981269> I\'m detecting a large security force heading your way. It\'s the Gri... No wait, it\'s **$username**. Definitely  **$username**',
  '<:join:349556772412981269> They brought reinforcements... A **$username**',
];

const getRandomWelcome = () => welcomes[Math.floor(Math.random() * welcomes.length)];

function createGroupedArray(arr, chunkSize) {
  const groups = [];
  for (let i = 0; i < arr.length; i += (chunkSize || 10)) {
    groups.push(arr.slice(i, i + (chunkSize || 10)));
  }
  return groups;
}

function trackablesFromParameters(paramString) {
  let items = paramString;
  const cetusCustomTimeRegex = new RegExp('cetus\\.(day|night)\\.[0-1]?[0-9]?[0-9]?', 'ig');

  const trackables = {
    events: [],
    items: [],
  };

  if (items.length > 0) {
    items = items.map(item => item.trim()).filter(item => item.length > 0);
  } else {
    return trackables;
  }

  if (items[0] === 'all') {
    trackables.events = trackables.events.concat(eventTypes);
    trackables.items = trackables.items.concat(rewardTypes);
  } else {
    items.forEach((item) => {
      if (cetusCustomTimeRegex.test(item)) {
        trackables.events.push(item);
      } else if (item === 'items') {
        trackables.items = trackables.items.concat(rewardTypes);
      } else if (item === 'events') {
        trackables.events = trackables.events.concat(eventTypes);
      } else if (item === 'fissures.t1') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('fissures.t1')));
      } else if (item === 'fissures.t2') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('fissures.t2')));
      } else if (item === 'fissures.t3') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('fissures.t3')));
      } else if (item === 'fissures.t4') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('fissures.t4')));
      } else if (item === 'fissures.excavation') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('excavation')));
      } else if (item === 'fissures.sabotage') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('sabotage')));
      } else if (item === 'fissures.mobiledefense') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('mobiledefense')));
      } else if (item === 'fissures.assassination') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('assassination')));
      } else if (item === 'fissures.extermination') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('extermination')));
      } else if (item === 'fissures.hive') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('hive')));
      } else if (item === 'fissures.defense') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('defense')));
      } else if (item === 'fissures.interception') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('interception')));
      } else if (item === 'fissures.rathuum') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('rathuum')));
      } else if (item === 'fissures.conclave') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('conclave')));
      } else if (item === 'fissures.rescue') {
        trackables.events = trackables.events<commit_msg>fix(pencil): extermination -> exterminate<commit_after>'use strict';

const { eventTypes, rewardTypes, opts } = require('./resources/trackables.json');

const { Collection } = require('discord.js');

const fissures = ['fissures.t1.excavation', 'fissures.t1.sabotage', 'fissures.t1.mobiledefense', 'fissures.t1.assassination', 'fissures.t1.exterminate',
  'fissures.t1.hive', 'fissures.t1.defense', 'fissures.t1.interception', 'fissures.t1.rathuum', 'fissures.t1.conclave', 'fissures.t1.rescue',
  'fissures.t1.spy', 'fissures.t1.survival', 'fissures.t1.capture', 'fissures.t1.darksector', 'fissures.t1.hijack', 'fissures.t1.assault',
  'fissures.t1.evacuation', 'fissures.t2.excavation', 'fissures.t2.sabotage', 'fissures.t2.mobiledefense', 'fissures.t2.assassination',
  'fissures.t2.exterminate', 'fissures.t2.hive', 'fissures.t2.defense', 'fissures.t2.interception', 'fissures.t2.rathuum', 'fissures.t2.conclave',
  'fissures.t2.rescue', 'fissures.t2.spy', 'fissures.t2.survival', 'fissures.t2.capture', 'fissures.t2.darksector', 'fissures.t2.hijack',
  'fissures.t2.assault', 'fissures.t2.evacuation', 'fissures.t3.excavation', 'fissures.t3.sabotage', 'fissures.t3.mobiledefense',
  'fissures.t3.assassination', 'fissures.t3.exterminate', 'fissures.t3.hive', 'fissures.t3.defense', 'fissures.t3.interception',
  'fissures.t3.rathuum', 'fissures.t3.conclave', 'fissures.t3.rescue', 'fissures.t3.spy', 'fissures.t3.survival', 'fissures.t3.capture',
  'fissures.t3.darksector', 'fissures.t3.hijack', 'fissures.t3.assault', 'fissures.t3.evacuation', 'fissures.t4.excavation', 'fissures.t4.sabotage',
  'fissures.t4.mobiledefense', 'fissures.t4.assassination', 'fissures.t4.exterminate', 'fissures.t4.hive', 'fissures.t4.defense',
  'fissures.t4.interception', 'fissures.t4.rathuum', 'fissures.t4.conclave', 'fissures.t4.rescue', 'fissures.t4.spy', 'fissures.t4.survival',
  'fissures.t4.capture', 'fissures.t4.darksector', 'fissures.t4.hijack', 'fissures.t4.assault', 'fissures.t4.evacuation'];

const syndicates = ['syndicate.arbiters', 'syndicate.suda', 'syndicate.loka', 'syndicate.perrin', 'syndicate.veil', 'syndicate.meridian', 'syndicate.ostrons', 'syndicate.assassins'];
const conclave = ['conclave.weeklies', 'conclave.dailies'];
const deals = ['deals.featured', 'deals.popular'];
const clantech = ['mutagen', 'fieldron', 'detonite'];
const resources = ['neuralSensors', 'orokinCell', 'alloyPlate', 'circuits', 'controlModule', 'ferrite', 'gallium', 'morphics', 'nanoSpores', 'oxium', 'rubedo', 'salvage', 'plastids', 'polymerBundle', 'argonCrystal', 'cryotic', 'tellurium'];

const emoji = {
  vazarin: '<:vazarin:319586146269003778>',
  madurai: '<:madurai:319586146499690496>',
  naramon: '<:naramon:319586146478850048>',
  electricity: '<:electricity:321463957212626944>',
  cold: '<:cold:321463957019951105>',
  heat: '<:heat:321463957061763083>',
  toxin: '<:toxin:321463957325873153>',
  radiation: '<:radiation:321463957221277706>',
  viral: '<:viral:321463957292580864>',
  gas: '<:gas:363136257045561344>',
  impact: '<:impact:363136256781189120>',
  puncture: '<:puncture:363136257129185280>',
  slash: '<:slash:363136256755892225>',
  koneski: '<:koneski:319586146483044352>',
  unairu: '<:unairu:319586146453553162>',
  blast: '<:blast:363136256907149312>',
  corrosive: '<:corrosive:363136257288568832>',
  magnetic: '<:magnetic:363136420602445824>',
};

const isVulgarCheck = new RegExp('(n[i!1]gg[e3]r|n[i!1]gg[ua]|h[i!1]tl[e3]r|n[a@]z[i!1]|[©ck]un[t7]|fu[©c]k|[©c]umm?|f[a@4]g|d[i!1]ck|c[o0]ck|boner|sperm|gay|gooch|jizz|pussy|penis|r[i!1]mjob|schlong|slut|wank|whore|sh[i!1]t|sex|fuk|heil|p[o0]rn|pronz|suck|rape|scrotum)', 'ig');

const welcomes = [
  '<:join:349556772412981269> **$username** just joined the server - glhf!',
  '<:join:349556772412981269> **$username** just joined. Everyone, look busy!',
  '<:join:349556772412981269> **$username** just joined. Can I get a heal?',
  '<:join:349556772412981269> **$username** joined your party.',
  '<:join:349556772412981269> **$username** joined. You must construct additional pylons.',
  '<:join:349556772412981269> Ermagherd. **$username** is here.',
  '<:join:349556772412981269> Welcome, **$username**. Stay awhile and listen.',
  '<:join:349556772412981269> Welcome, **$username**. We were expecting you ( ͡° ͜ʖ ͡°)',
  '<:join:349556772412981269> Welcome, **$username**. We hope you brought pizza.',
  '<:join:349556772412981269> Welcome **$username**. Leave your weapons by the door.',
  '<:join:349556772412981269> A wild **$username** appeared.',
  '<:join:349556772412981269> Swoooosh. **$username** just landed.',
  '<:join:349556772412981269> Brace yourselves. **$username** just joined the server.',
  '<:join:349556772412981269> **$username** just joined. Hide your bananas.',
  '<:join:349556772412981269> **$username** just arrived. Seems OP - please nerf.',
  '<:join:349556772412981269> **$username** just slid into the server.',
  '<:join:349556772412981269> A **$username** has spawned in the server.',
  '<:join:349556772412981269> Big **$username** showed up!',
  '<:join:349556772412981269> Where’s **$username**? In the server!',
  '<:join:349556772412981269> **$username** hopped into the server. Kangaroo!!',
  '<:join:349556772412981269> **$username** just showed up. Hold my beer.',
  '<:join:349556772412981269> Relax, **$username**, it\'s a party.',
  '<:join:349556772412981269> Behold before you, the courageous, the charismatic, fashionable...\n**$username**.',
  '<:join:349556772412981269> Oh **$username**, you\'re here! Good to see you weren\'t discouraged by fashion frame.',
  '<:join:349556772412981269> The Tenno **$username** has appeared.',
  '<:join:349556772412981269> **$username** has consigned to the Lotus.',
  '<:join:349556772412981269> **$username** has joined the fight against the Grineer!',
  '<:join:349556772412981269> **$username** has started praising Space Mom.',
  '<:join:349556772412981269> **$username** is ready to save us from Alad V',
  '<:join:349556772412981269> <NAME> thinks he\'s won, but **$username** has joined',
  '<:join:349556772412981269> **$username** has drunk the Kuva',
  '<:join:349556772412981269> **$username** saved the Ostrons once again!',
  '<:join:349556772412981269> **$username** just arrived at the Community Discord Relay',
  '<:join:349556772412981269> Without **$username** we would\'ve lost the Relays',
  '<:join:349556772412981269> **$username** is a trained ninja at heart',
  '<:join:349556772412981269> **$username** is here, as the prophecy foretold.',
  '<:join:349556772412981269> Swaz-do-lah, **$username**!',
  '<:join:349556772412981269> **$username** has arrived, early lunch for Konzu!',
  '<:join:349556772412981269> **$username**? **$username**?! Ooh, is it my birth interval?',
  '<:join:349556772412981269> I\'m Cephalon Genesis Primary. We have and shall have a long association, **$username**.\nI know this conversation well.',
  '<:join:349556772412981269> Consequence to consequence brings you to us, **$username**',
  '<:join:349556772412981269> **$username**, you were anticipated. Our interaction begins.',
  '<:join:349556772412981269> Drop a stone, a ripple. Drop a grain, nothing of consequence.\nCome to me with stones, **$username**. Instruments of tested power, and I will accept.',
  '<:join:349556772412981269> Oh how I\'ve been looking all over for you, **$username**. Come, come! Let me show you my new venture. I think you\'ll be a perfect fit.',
  '<:join:349556772412981269> It is time. Utter the name, **$username**',
  '<:join:349556772412981269> Yes, the name I have always known, **$username**',
  '<:join:349556772412981269> I\'m detecting a large security force heading your way. It\'s the Gri... No wait, it\'s **$username**. Definitely  **$username**',
  '<:join:349556772412981269> They brought reinforcements... A **$username**',
];

const getRandomWelcome = () => welcomes[Math.floor(Math.random() * welcomes.length)];

function createGroupedArray(arr, chunkSize) {
  const groups = [];
  for (let i = 0; i < arr.length; i += (chunkSize || 10)) {
    groups.push(arr.slice(i, i + (chunkSize || 10)));
  }
  return groups;
}

function trackablesFromParameters(paramString) {
  let items = paramString;
  const cetusCustomTimeRegex = new RegExp('cetus\\.(day|night)\\.[0-1]?[0-9]?[0-9]?', 'ig');

  const trackables = {
    events: [],
    items: [],
  };

  if (items.length > 0) {
    items = items.map(item => item.trim()).filter(item => item.length > 0);
  } else {
    return trackables;
  }

  if (items[0] === 'all') {
    trackables.events = trackables.events.concat(eventTypes);
    trackables.items = trackables.items.concat(rewardTypes);
  } else {
    items.forEach((item) => {
      if (cetusCustomTimeRegex.test(item)) {
        trackables.events.push(item);
      } else if (item === 'items') {
        trackables.items = trackables.items.concat(rewardTypes);
      } else if (item === 'events') {
        trackables.events = trackables.events.concat(eventTypes);
      } else if (item === 'fissures.t1') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('fissures.t1')));
      } else if (item === 'fissures.t2') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('fissures.t2')));
      } else if (item === 'fissures.t3') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('fissures.t3')));
      } else if (item === 'fissures.t4') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('fissures.t4')));
      } else if (item === 'fissures.excavation') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('excavation')));
      } else if (item === 'fissures.sabotage') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('sabotage')));
      } else if (item === 'fissures.mobiledefense') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('mobiledefense')));
      } else if (item === 'fissures.assassination') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('assassination')));
      } else if (item === 'fissures.exterminate') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('exterminate')));
      } else if (item === 'fissures.hive') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('hive')));
      } else if (item === 'fissures.defense') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('defense')));
      } else if (item === 'fissures.interception') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('interception')));
      } else if (item === 'fissures.rathuum') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('rathuum')));
      } else if (item === 'fissures.conclave') {
        trackables.events = trackables.events
          .concat(fissures.filter(fissure => fissure.includes('conclave')));
      } else if (item === 'fissures.rescue') {
        trackables.events = trackables.events
{'fraction_non_alphanumeric': 0.18125352907961603, 'fraction_numerical': 0.11249619945272119, 'mean_word_length': 5.008350730688935, 'pattern_counts': {'":': 0, '<': 138, '<?xml version=': 0, '>': 177, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3477748', 'n_tokens_mistral': 10065, 'n_tokens_neox': 8713, 'n_words': 1568}