diff --git a/.github/ISSUE_TEMPLATE/sweep-bugfix.yml b/.github/ISSUE_TEMPLATE/bugfix.yml
similarity index 90%
rename from .github/ISSUE_TEMPLATE/sweep-bugfix.yml
rename to .github/ISSUE_TEMPLATE/bugfix.yml
index 16dae7ec849ee48880a715365d2f8da9ff33f6ac..bb8c310bae44b3d4fa9b1f4d7e9eecf613b47262 100644
--- a/.github/ISSUE_TEMPLATE/sweep-bugfix.yml
+++ b/.github/ISSUE_TEMPLATE/bugfix.yml
@@ -1,7 +1,6 @@
 name: Bugfix
-title: "Sweep: "
+title: ""
 description: Write something like "We notice ... behavior when ... happens instead of ...""
-labels: sweep
 body:
   - type: textarea
     id: description
diff --git a/.github/ISSUE_TEMPLATE/sweep-feature.yml b/.github/ISSUE_TEMPLATE/feature.yml
similarity index 68%
rename from .github/ISSUE_TEMPLATE/sweep-feature.yml
rename to .github/ISSUE_TEMPLATE/feature.yml
index 2c041b3035a030673a04e2e8cf199852f73f49eb..e40729e93afb3e2c9b07a23da1f2b381fb676f2e 100644
--- a/.github/ISSUE_TEMPLATE/sweep-feature.yml
+++ b/.github/ISSUE_TEMPLATE/feature.yml
@@ -1,11 +1,10 @@
 name: Feature Request
-title: "Sweep: "
-description: Write something like "Write an api endpoint that does "..." in the "..." file"
-labels: sweep
+title: ""
+description: Write something like "Write an api endpoint that does "..." in the "..." file". If you would like to use sweep.dev prefix with "Sweep:"
 body:
   - type: textarea
     id: description
     attributes:
       label: Details
-      description: More details for Sweep
+      description: More details
       placeholder: The new endpoint should use the ... class from ... file because it contains ... logic
diff --git a/.github/ISSUE_TEMPLATE/sweep-refactor.yml b/.github/ISSUE_TEMPLATE/refactor.yml
similarity index 63%
rename from .github/ISSUE_TEMPLATE/sweep-refactor.yml
rename to .github/ISSUE_TEMPLATE/refactor.yml
index 2fac8ffd314280321228651e7c830fbc3f0575d2..2eeaadaca9e6037e68d72517b2adb05ecf719533 100644
--- a/.github/ISSUE_TEMPLATE/sweep-refactor.yml
+++ b/.github/ISSUE_TEMPLATE/refactor.yml
@@ -1,11 +1,10 @@
 name: Refactor
-title: "Sweep: "
-description: Write something like "Modify the ... api endpoint to use ... version and ... framework"
-labels: sweep
+title: ""
+description: Write something like "Modify the ... api endpoint to use ... version and ... framework" If you would like to use sweep.dev prefix with "Sweep:"
 body:
   - type: textarea
     id: description
     attributes:
       label: Details
-      description: More details for Sweep
+      description: More details
       placeholder: We are migrating this function to ... version because ...
diff --git a/.husky/pre-commit b/.husky/pre-commit
index 58993aaeefd1e2be0b83d453941fadbd7b74266d..59261299604c88a63a3b910fccd9175bb0f389c7 100755
--- a/.husky/pre-commit
+++ b/.husky/pre-commit
@@ -2,3 +2,4 @@
 . "$(dirname -- "$0")/_/husky.sh"
 
 pnpm lint
+npx lint-staged
diff --git a/.vscode/settings.json b/.vscode/settings.json
index d3a0c1169495cca3846695377c90c838b83f5b65..9f6017380e7cfe41a6a08e612b92a9226bb26e7a 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -4,5 +4,6 @@
   "editor.defaultFormatter": "esbenp.prettier-vscode",
   "[xml]": {
     "editor.defaultFormatter": "redhat.vscode-xml"
-  }
-}
+  },
+  "jest.rootPath": "./packages/core"
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index c9500c193a6a6a970920fb5ff82e6acea69da4ac..866dfc3f834fecd535a8923bf1656aac73800321 100644
--- a/README.md
+++ b/README.md
@@ -89,7 +89,7 @@ Check out our NextJS playground at https://llama-playground.vercel.app/. The sou
 If you're using NextJS App Router, you'll need to use the NodeJS runtime (default) and add the follow config to your next.config.js to have it use imports/exports in the same way Node does.
 
 ```js
-export const runtime = "nodejs" // default
+export const runtime = "nodejs"; // default
 ```
 
 ```js
diff --git a/apps/docs/docs/end_to_end.md b/apps/docs/docs/end_to_end.md
index 51671a1be8d1cb07f1269dba4110a9fad4ce971f..bd208b5e5229b1e00f8754eb88ed0b5d669cf6c9 100644
--- a/apps/docs/docs/end_to_end.md
+++ b/apps/docs/docs/end_to_end.md
@@ -6,6 +6,8 @@ sidebar_position: 4
 
 We include several end-to-end examples using LlamaIndex.TS in the repository
 
+Check out the examples below or try them out and complete them in minutes with interactive Github Codespace tutorials provided by Dev-Docs [here](https://codespaces.new/team-dev-docs/lits-dev-docs-playground?devcontainer_path=.devcontainer%2Fjavascript_ltsquickstart%2Fdevcontainer.json):
+
 ## [Chat Engine](https://github.com/run-llama/LlamaIndexTS/blob/main/apps/simple/chatEngine.ts)
 
 Read a file and chat about it with the LLM.
diff --git a/apps/docs/docs/environments.md b/apps/docs/docs/environments.md
index afdf304af82d0958c40c119dfa1226ff767046ff..3876ddc731833321c8440131f62d8b0902217626 100644
--- a/apps/docs/docs/environments.md
+++ b/apps/docs/docs/environments.md
@@ -11,7 +11,7 @@ LlamaIndex currently officially supports NodeJS 18 and NodeJS 20.
 If you're using NextJS App Router route handlers/serverless functions, you'll need to use the NodeJS mode:
 
 ```js
-export const runtime = "nodejs" // default
+export const runtime = "nodejs"; // default
 ```
 
 and you'll need to add an exception for pdf-parse in your next.config.js
diff --git a/apps/mongodb/1_import.ts b/apps/mongodb/1_import.ts
new file mode 100644
index 0000000000000000000000000000000000000000..57c9e9bba3f1c4da24ac923c52433279ddc0bd7a
--- /dev/null
+++ b/apps/mongodb/1_import.ts
@@ -0,0 +1,34 @@
+/* eslint-disable turbo/no-undeclared-env-vars */
+import * as dotenv from "dotenv";
+import * as fs from "fs";
+import { MongoClient } from "mongodb";
+
+// Load environment variables from local .env file
+dotenv.config();
+
+const jsonFile = "tinytweets.json";
+const mongoUri = process.env.MONGODB_URI!;
+const databaseName = process.env.MONGODB_DATABASE!;
+const collectionName = process.env.MONGODB_COLLECTION!;
+
+async function importJsonToMongo() {
+  // Load the tweets from a local file
+  const tweets = JSON.parse(fs.readFileSync(jsonFile, "utf-8"));
+
+  // Create a new client and connect to the server
+  const client = new MongoClient(mongoUri);
+
+  const db = client.db(databaseName);
+  const collection = db.collection(collectionName);
+
+  // Insert the tweets into mongo
+  await collection.insertMany(tweets);
+
+  console.log(
+    `Data imported successfully to the MongoDB collection ${collectionName}.`,
+  );
+  await client.close();
+}
+
+// Run the import function
+importJsonToMongo();
diff --git a/apps/mongodb/2_load_and_index.ts b/apps/mongodb/2_load_and_index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0d7a3a23f70c45dffb37b1b1feca03a2f27d48ac
--- /dev/null
+++ b/apps/mongodb/2_load_and_index.ts
@@ -0,0 +1,50 @@
+/* eslint-disable turbo/no-undeclared-env-vars */
+import * as dotenv from "dotenv";
+import {
+  MongoDBAtlasVectorSearch,
+  SimpleMongoReader,
+  storageContextFromDefaults,
+  VectorStoreIndex,
+} from "llamaindex";
+import { MongoClient } from "mongodb";
+
+// Load environment variables from local .env file
+dotenv.config();
+
+const mongoUri = process.env.MONGODB_URI!;
+const databaseName = process.env.MONGODB_DATABASE!;
+const collectionName = process.env.MONGODB_COLLECTION!;
+const vectorCollectionName = process.env.MONGODB_VECTORS!;
+const indexName = process.env.MONGODB_VECTOR_INDEX!;
+
+async function loadAndIndex() {
+  // Create a new client and connect to the server
+  const client = new MongoClient(mongoUri);
+  // load objects from mongo and convert them into LlamaIndex Document objects
+  // llamaindex has a special class that does this for you
+  // it pulls every object in a given collection
+  const reader = new SimpleMongoReader(client);
+  const documents = await reader.loadData(databaseName, collectionName, [
+    "full_text",
+  ]);
+
+  // create Atlas as a vector store
+  const vectorStore = new MongoDBAtlasVectorSearch({
+    mongodbClient: client,
+    dbName: databaseName,
+    collectionName: vectorCollectionName, // this is where your embeddings will be stored
+    indexName: indexName, // this is the name of the index you will need to create
+  });
+
+  // now create an index from all the Documents and store them in Atlas
+  const storageContext = await storageContextFromDefaults({ vectorStore });
+  await VectorStoreIndex.fromDocuments(documents, { storageContext });
+  console.log(
+    `Successfully created embeddings in the MongoDB collection ${vectorCollectionName}.`,
+  );
+  await client.close();
+}
+
+loadAndIndex();
+
+// you can't query your index yet because you need to create a vector search index in mongodb's UI now
diff --git a/apps/mongodb/3_query.ts b/apps/mongodb/3_query.ts
new file mode 100644
index 0000000000000000000000000000000000000000..32a35293942a99230427c2ea19026db6984244dd
--- /dev/null
+++ b/apps/mongodb/3_query.ts
@@ -0,0 +1,34 @@
+/* eslint-disable turbo/no-undeclared-env-vars */
+import * as dotenv from "dotenv";
+import {
+  MongoDBAtlasVectorSearch,
+  serviceContextFromDefaults,
+  VectorStoreIndex,
+} from "llamaindex";
+import { MongoClient } from "mongodb";
+
+// Load environment variables from local .env file
+dotenv.config();
+
+async function query() {
+  const client = new MongoClient(process.env.MONGODB_URI!);
+  const serviceContext = serviceContextFromDefaults();
+  const store = new MongoDBAtlasVectorSearch({
+    mongodbClient: client,
+    dbName: process.env.MONGODB_DATABASE!,
+    collectionName: process.env.MONGODB_VECTORS!,
+    indexName: process.env.MONGODB_VECTOR_INDEX!,
+  });
+
+  const index = await VectorStoreIndex.fromVectorStore(store, serviceContext);
+
+  const retriever = index.asRetriever({ similarityTopK: 20 });
+  const queryEngine = index.asQueryEngine({ retriever });
+  const result = await queryEngine.query(
+    "What does the author think of web frameworks?",
+  );
+  console.log(result.response);
+  await client.close();
+}
+
+query();
diff --git a/apps/mongodb/README.md b/apps/mongodb/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..5448191d6cdd7fa8af88096d8bcbc512d91ccde0
--- /dev/null
+++ b/apps/mongodb/README.md
@@ -0,0 +1,127 @@
+# LlamaIndexTS retrieval augmented generation with MongoDB
+
+### Prepare Environment
+
+Make sure to run `pnpm install` and set your OpenAI environment variable before running these examples.
+
+```
+pnpm install
+export OPENAI_API_KEY="sk-..."
+```
+
+### Sign up for MongoDB Atlas
+
+We'll be using MongoDB's hosted database service, [MongoDB Atlas](https://www.mongodb.com/cloud/atlas/register). You can sign up for free and get a small hosted cluster for free:
+
+![MongoDB Atlas signup](./docs/1_signup.png)
+
+The signup process will walk you through the process of creating your cluster and ensuring it's configured for you to access. Once the cluster is created, choose "Connect" and then "Connect to your application". Choose Python, and you'll be presented with a connection string that looks like this:
+
+![MongoDB Atlas connection string](./docs/2_connection_string.png)
+
+### Set up environment variables
+
+Copy the connection string (make sure you include your password) and put it into a file called `.env` in the root of this repo. It should look like this:
+
+```
+MONGODB_URI=mongodb+srv://seldo:xxxxxxxxxxx@llamaindexdemocluster.xfrdhpz.mongodb.net/?retryWrites=true&w=majority
+```
+
+You will also need to choose a name for your database, and the collection where we will store the tweets, and also include them in .env. They can be any string, but this is what we used:
+
+```
+MONGODB_DATABASE=tiny_tweets_db
+MONGODB_COLLECTION=tiny_tweets_collection
+```
+
+### Import tweets into MongoDB
+
+You are now ready to import our ready-made data set into Mongo. This is the file `tinytweets.json`, a selection of approximately 1000 tweets from @seldo on Twitter in mid-2019. With your environment set up you can do this by running
+
+```
+pnpm ts-node 1_import.ts
+```
+
+If you don't want to use tweets, you can replace `json_file` with any other array of JSON objects, but you will need to modify some code later to make sure the correct field gets indexed. There is no LlamaIndex-specific code here; you can load your data into Mongo any way you want to.
+
+### Load and index your data
+
+Now we're ready to index our data. To do this, LlamaIndex will pull your text out of Mongo, split it into chunks, and then send those chunks to OpenAI to be turned into [vector embeddings](https://docs.llamaindex.ai/en/stable/understanding/indexing/indexing.html#what-is-an-embedding). The embeddings will then be stored in a new collection in Mongo. This will take a while depending how much text you have, but the good news is that once it's done you will be able to query quickly without needing to re-index.
+
+We'll be using OpenAI to do the embedding, so now is when you need to [generate an OpenAI API key](https://platform.openai.com/account/api-keys) if you haven't already and add it to your `.env` file like this:
+
+```
+OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+```
+
+You'll also need to pick a name for the new collection where the embeddings will be stored, and add it to `.env`, along with the name of a vector search index (we'll be creating this in the next step, after you've indexed your data):
+
+```
+MONGODB_VECTORS=tiny_tweets_vectors
+MONGODB_VECTOR_INDEX=tiny_tweets_vector_index
+```
+
+If the data you're indexing is the tweets we gave you, you're ready to go:
+
+```bash
+pnpm ts-node 2_load_and_index.ts
+```
+
+> Note: this script is running a couple of minutes and currently doesn't show any progress.
+
+What you're doing here is creating a Reader which loads the data out of Mongo in the collection and database specified. It looks for text in a set of specific keys in each object. In this case we've given it just one key, "full_text".
+
+Now you're creating a vector search client for Mongo. In addition to a MongoDB client object, you again tell it what database everything is in. This time you give it the name of the collection where you'll store the vector embeddings, and the name of the vector search index you'll create in the next step.
+
+### Create a vector search index
+
+Now if all has gone well you should be able to log in to the Mongo Atlas UI and see two collections in your database: the original data in `tiny_tweets_collection`, and the vector embeddings in `tiny_tweets_vectors`.
+
+![MongoDB Atlas collections](./docs/3_vectors_in_db.png)
+
+Now it's time to create the vector search index so that you can query the data.
+It's not yet possible to programmatically create a vector search index using the [`createIndex`](https://www.mongodb.com/docs/manual/reference/method/db.collection.createIndex/) function, therefore we have to create one manually in the UI.
+To do so, first, click the Search tab, and then click "Create Search Index":
+
+![MongoDB Atlas create search index](./docs/4_search_tab.png)
+
+We have to use the JSON editor, as the Visual Editor does not yet support to create a vector search index:
+
+![MongoDB Atlas JSON editor](./docs/5_json_editor.png)
+
+Now under "database and collection" select `tiny_tweets_db` and within that select `tiny_tweets_vectors`. Then under "Index name" enter `tiny_tweets_vector_index` (or whatever value you put for MONGODB_VECTOR_INDEX in `.env`). Under that, you'll want to enter this JSON object:
+
+```json
+{
+  "mappings": {
+    "dynamic": true,
+    "fields": {
+      "embedding": {
+        "dimensions": 1536,
+        "similarity": "cosine",
+        "type": "knnVector"
+      }
+    }
+  }
+}
+```
+
+This tells Mongo that the `embedding` field in each document (in the `tiny_tweets_vectors` collection) is a vector of 1536 dimensions (this is the size of embeddings used by OpenAI), and that we want to use cosine similarity to compare vectors. You don't need to worry too much about these values unless you want to use a different LLM to OpenAI entirely.
+
+The UI will ask you to review and confirm your choices, then you need to wait a minute or two while it generates the index. If all goes well, you should see something like this screen:
+
+![MongoDB Atlas index created](./docs/7_index_created.png)
+
+Now you're ready to query your data!
+
+### Run a test query
+
+You can do this by running
+
+```bash
+pnpm ts-node 3_query.ts
+```
+
+This sets up a connection to Atlas just like `2_load_and_index.ts` did, then it creates a [query engine](https://docs.llamaindex.ai/en/stable/understanding/querying/querying.html#getting-started) and runs a query against it.
+
+If all is well, you should get a nuanced opinion about web frameworks.
diff --git a/apps/mongodb/docs/1_signup.png b/apps/mongodb/docs/1_signup.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1900a1d41b462997e23a927f1eed2660e62b064
Binary files /dev/null and b/apps/mongodb/docs/1_signup.png differ
diff --git a/apps/mongodb/docs/2_connection_string.png b/apps/mongodb/docs/2_connection_string.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb55817d12de05663e217109206e66e95acb882d
Binary files /dev/null and b/apps/mongodb/docs/2_connection_string.png differ
diff --git a/apps/mongodb/docs/3_vectors_in_db.png b/apps/mongodb/docs/3_vectors_in_db.png
new file mode 100644
index 0000000000000000000000000000000000000000..b099b2ded4858ec87ce8918ca95c0f3fa1033e09
Binary files /dev/null and b/apps/mongodb/docs/3_vectors_in_db.png differ
diff --git a/apps/mongodb/docs/4_search_tab.png b/apps/mongodb/docs/4_search_tab.png
new file mode 100644
index 0000000000000000000000000000000000000000..497ade44d5c89fa59bbfb95f48b80749e0819257
Binary files /dev/null and b/apps/mongodb/docs/4_search_tab.png differ
diff --git a/apps/mongodb/docs/5_json_editor.png b/apps/mongodb/docs/5_json_editor.png
new file mode 100644
index 0000000000000000000000000000000000000000..20ef31a1bb5baabdd01d4cc78403c02ff4872ea5
Binary files /dev/null and b/apps/mongodb/docs/5_json_editor.png differ
diff --git a/apps/mongodb/docs/7_index_created.png b/apps/mongodb/docs/7_index_created.png
new file mode 100644
index 0000000000000000000000000000000000000000..98480efd5255ff22c90adb7dd29ffb4e83620d00
Binary files /dev/null and b/apps/mongodb/docs/7_index_created.png differ
diff --git a/apps/mongodb/package.json b/apps/mongodb/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..5791c3200f5b78bc12819c1444cb8e12a482e6b9
--- /dev/null
+++ b/apps/mongodb/package.json
@@ -0,0 +1,17 @@
+{
+  "version": "0.0.1",
+  "private": true,
+  "name": "mongodb-llamaindexts",
+  "dependencies": {
+    "llamaindex": "workspace:*",
+    "dotenv": "^16.3.1",
+    "mongodb": "^6.2.0"
+  },
+  "devDependencies": {
+    "@types/node": "^18.18.6",
+    "ts-node": "^10.9.1"
+  },
+  "scripts": {
+    "lint": "eslint ."
+  }
+}
\ No newline at end of file
diff --git a/apps/mongodb/tinytweets.json b/apps/mongodb/tinytweets.json
new file mode 100644
index 0000000000000000000000000000000000000000..2e3a8e66d405749eb47f76eb8303bba37612cd38
--- /dev/null
+++ b/apps/mongodb/tinytweets.json
@@ -0,0 +1,57482 @@
+[
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957472328048197634"
+          ],
+          "editableUntil": "2018-01-28T05:36:06.639Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "112"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "957414671979446272",
+      "id_str": "957472328048197634",
+      "in_reply_to_user_id": "44052627",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957472328048197634",
+      "in_reply_to_status_id": "957414671979446272",
+      "created_at": "Sun Jan 28 04:36:06 +0000 2018",
+      "favorited": false,
+      "full_text": "@nebrius Seeing this made me realize I missed the 20th anniversary of my own coming out, which was 2 months ago.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nebrius",
+      "in_reply_to_user_id_str": "44052627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957464449434005504"
+          ],
+          "editableUntil": "2018-01-28T05:04:48.231Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jenn schiffer",
+            "screen_name": "jennschiffer",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "12524622",
+            "id": "12524622"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "50"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "957451774432071680",
+      "id_str": "957464449434005504",
+      "in_reply_to_user_id": "12524622",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957464449434005504",
+      "in_reply_to_status_id": "957451774432071680",
+      "created_at": "Sun Jan 28 04:04:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@jennschiffer Oh no, you're sick too? Feel better!",
+      "lang": "en",
+      "in_reply_to_screen_name": "jennschiffer",
+      "in_reply_to_user_id_str": "12524622"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957463872419520513"
+          ],
+          "editableUntil": "2018-01-28T05:02:30.660Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ran Reichman",
+            "screen_name": "ranreichman",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "220368940",
+            "id": "220368940"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "256"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "957462024337833990",
+      "id_str": "957463872419520513",
+      "in_reply_to_user_id": "220368940",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957463872419520513",
+      "in_reply_to_status_id": "957462024337833990",
+      "created_at": "Sun Jan 28 04:02:30 +0000 2018",
+      "favorited": false,
+      "full_text": "@ranreichman But that's just it, it's myth building. Bezos kept the company cheap on purpose, with the door desks etc., to create a culture of cutting costs. They could have had nice offices but he chose not to because that made him richer in the long run.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ranreichman",
+      "in_reply_to_user_id_str": "220368940"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957460233311236096"
+          ],
+          "editableUntil": "2018-01-28T04:48:03.029Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/Gbp9HRPRrM",
+            "expanded_url": "https://twitter.com/umbyrella/status/957310771989499904",
+            "display_url": "twitter.com/umbyrella/stat…",
+            "indices": [
+              "185",
+              "208"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "208"
+      ],
+      "favorite_count": "357",
+      "id_str": "957460233311236096",
+      "truncated": false,
+      "retweet_count": "94",
+      "id": "957460233311236096",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 28 03:48:03 +0000 2018",
+      "favorited": false,
+      "full_text": "THANK YOU. So tired of this fucking picture. He was already rich when he started. So was Bill Gates. So was Zuck. So was Page (Brin less so). None of these fuckers went rags to riches. https://t.co/Gbp9HRPRrM",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957457999756386304"
+          ],
+          "editableUntil": "2018-01-28T04:39:10.508Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "zacharyorr",
+            "screen_name": "ZacharyOrr",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1108803871109976064",
+            "id": "1108803871109976064"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "56"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "957456917382692864",
+      "id_str": "957457999756386304",
+      "in_reply_to_user_id": "100290468",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957457999756386304",
+      "in_reply_to_status_id": "957456917382692864",
+      "created_at": "Sun Jan 28 03:39:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZacharyOrr This is the year of, uh, z/os on the desktop",
+      "lang": "en",
+      "in_reply_to_user_id_str": "100290468"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957455867867115521"
+          ],
+          "editableUntil": "2018-01-28T04:30:42.226Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "psygnisfive",
+            "screen_name": "psygnisfive",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "995543826801410049",
+            "id": "995543826801410049"
+          },
+          {
+            "name": "@jackie@toot.cat",
+            "screen_name": "jackie_cs_",
+            "indices": [
+              "13",
+              "24"
+            ],
+            "id_str": "241267794",
+            "id": "241267794"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/QqVzpWGt2y",
+            "expanded_url": "http://proporti.onl",
+            "display_url": "proporti.onl",
+            "indices": [
+              "38",
+              "61"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "61"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957455761512185856",
+      "id_str": "957455867867115521",
+      "in_reply_to_user_id": "3393781",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957455867867115521",
+      "in_reply_to_status_id": "957455761512185856",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 28 03:30:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@psygnisfive @jackie_cs_ I think it's https://t.co/QqVzpWGt2y",
+      "lang": "en",
+      "in_reply_to_screen_name": "beka_valentine",
+      "in_reply_to_user_id_str": "3393781"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957454722755051520"
+          ],
+          "editableUntil": "2018-01-28T04:26:09.210Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@jackie@toot.cat",
+            "screen_name": "jackie_cs_",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "241267794",
+            "id": "241267794"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "89"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "957454439861882880",
+      "id_str": "957454722755051520",
+      "in_reply_to_user_id": "241267794",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957454722755051520",
+      "in_reply_to_status_id": "957454439861882880",
+      "created_at": "Sun Jan 28 03:26:09 +0000 2018",
+      "favorited": false,
+      "full_text": "@jackie_cs_ There are hundreds of you, I can't poll continuously, it's just not scalable.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jackie_cs_",
+      "in_reply_to_user_id_str": "241267794"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957454177533243394"
+          ],
+          "editableUntil": "2018-01-28T04:23:59.219Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam Ahmed",
+            "screen_name": "typesthings",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "969169406",
+            "id": "969169406"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "174"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957453417990963200",
+      "id_str": "957454177533243394",
+      "in_reply_to_user_id": "969169406",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957454177533243394",
+      "in_reply_to_status_id": "957453417990963200",
+      "created_at": "Sun Jan 28 03:23:59 +0000 2018",
+      "favorited": false,
+      "full_text": "@typesthings I have specific medical advice on most things but also the unhelpfully vague \"listen to your body, eat more complex things gradually\" which is giving me trouble.",
+      "lang": "en",
+      "in_reply_to_screen_name": "typesthings",
+      "in_reply_to_user_id_str": "969169406"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957453532931616768"
+          ],
+          "editableUntil": "2018-01-28T04:21:25.534Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "23",
+      "id_str": "957453532931616768",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "957453532931616768",
+      "created_at": "Sun Jan 28 03:21:25 +0000 2018",
+      "favorited": false,
+      "full_text": "I need a live, continuously updated feed of the current correct pronouns for my friends. Changes are far more frequent than I ever imagined.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957449092702982145"
+          ],
+          "editableUntil": "2018-01-28T04:03:46.901Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/YQzMajq9nU",
+            "expanded_url": "https://twitter.com/bey_legion/status/957444523856187394",
+            "display_url": "twitter.com/bey_legion/sta…",
+            "indices": [
+              "53",
+              "76"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "76"
+      ],
+      "favorite_count": "5",
+      "id_str": "957449092702982145",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957449092702982145",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 28 03:03:46 +0000 2018",
+      "favorited": false,
+      "full_text": "How do two mortal human bodies contain so much cool? https://t.co/YQzMajq9nU",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957447151658782720"
+          ],
+          "editableUntil": "2018-01-28T03:56:04.120Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@jackie@toot.cat",
+            "screen_name": "jackie_cs_",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "241267794",
+            "id": "241267794"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "84"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957444511478755333",
+      "id_str": "957447151658782720",
+      "in_reply_to_user_id": "241267794",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957447151658782720",
+      "in_reply_to_status_id": "957444511478755333",
+      "created_at": "Sun Jan 28 02:56:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@jackie_cs_ Ah, I didn't understand what you meant. Sean's theory below makes sense.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jackie_cs_",
+      "in_reply_to_user_id_str": "241267794"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957443388252372992"
+          ],
+          "editableUntil": "2018-01-28T03:41:06.854Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@jackie@toot.cat",
+            "screen_name": "jackie_cs_",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "241267794",
+            "id": "241267794"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "87"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957443080201932800",
+      "id_str": "957443388252372992",
+      "in_reply_to_user_id": "241267794",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957443388252372992",
+      "in_reply_to_status_id": "957443080201932800",
+      "created_at": "Sun Jan 28 02:41:06 +0000 2018",
+      "favorited": false,
+      "full_text": "@jackie_cs_ Is it not simply that the extras are cheaper than a rent increase would be?",
+      "lang": "en",
+      "in_reply_to_screen_name": "jackie_cs_",
+      "in_reply_to_user_id_str": "241267794"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957442722989719552"
+          ],
+          "editableUntil": "2018-01-28T03:38:28.243Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John Osborn 🏳️‍🌈",
+            "screen_name": "john_osborn",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "17811991",
+            "id": "17811991"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "94"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "957442426024660992",
+      "id_str": "957442722989719552",
+      "in_reply_to_user_id": "17811991",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957442722989719552",
+      "in_reply_to_status_id": "957442426024660992",
+      "created_at": "Sun Jan 28 02:38:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@john_osborn This movie was so much more fucked up on the re-watch than I remembered it being.",
+      "lang": "en",
+      "in_reply_to_screen_name": "john_osborn",
+      "in_reply_to_user_id_str": "17811991"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957432517803429888"
+          ],
+          "editableUntil": "2018-01-28T02:57:55.137Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "134"
+      ],
+      "favorite_count": "6",
+      "id_str": "957432517803429888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957432517803429888",
+      "created_at": "Sun Jan 28 01:57:55 +0000 2018",
+      "favorited": false,
+      "full_text": "\"What if I eat [x]? Will *that* keep me from dying, or make me want to die?\" has been the only thought I have had for the last 4 days.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957424531311702016"
+          ],
+          "editableUntil": "2018-01-28T02:26:11.009Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@jackie@toot.cat",
+            "screen_name": "jackie_cs_",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "241267794",
+            "id": "241267794"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "146"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957423820981272577",
+      "id_str": "957424531311702016",
+      "in_reply_to_user_id": "241267794",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957424531311702016",
+      "in_reply_to_status_id": "957423820981272577",
+      "created_at": "Sun Jan 28 01:26:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@jackie_cs_ Oh! Well they don't really exist anymore, they got bought by Alaska. For that short a trip it really does not matter who you fly with.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jackie_cs_",
+      "in_reply_to_user_id_str": "241267794"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957424304395755520"
+          ],
+          "editableUntil": "2018-01-28T02:25:16.908Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/Y95y8degbD",
+            "expanded_url": "https://twitter.com/mariafarrell/status/957201613017485312",
+            "display_url": "twitter.com/mariafarrell/s…",
+            "indices": [
+              "158",
+              "181"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "181"
+      ],
+      "favorite_count": "5",
+      "id_str": "957424304395755520",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "957424304395755520",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 28 01:25:16 +0000 2018",
+      "favorited": false,
+      "full_text": "This is an important point: abuse of data is a slippery slope. It's easier to climb out at the early stages than waiting until things are obviously terrible. https://t.co/Y95y8degbD",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957423578315603969"
+          ],
+          "editableUntil": "2018-01-28T02:22:23.797Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@jackie@toot.cat",
+            "screen_name": "jackie_cs_",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "241267794",
+            "id": "241267794"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "70"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957422593660907520",
+      "id_str": "957423578315603969",
+      "in_reply_to_user_id": "241267794",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957423578315603969",
+      "in_reply_to_status_id": "957422593660907520",
+      "created_at": "Sun Jan 28 01:22:23 +0000 2018",
+      "favorited": false,
+      "full_text": "@jackie_cs_ Atlantic? I liked them but Lufthansa was way better value.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jackie_cs_",
+      "in_reply_to_user_id_str": "241267794"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957423354931175425"
+          ],
+          "editableUntil": "2018-01-28T02:21:30.538Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Rey Bango 🇺🇦🌻",
+            "screen_name": "reybango",
+            "indices": [
+              "3",
+              "12"
+            ],
+            "id_str": "1589691",
+            "id": "1589691"
+          },
+          {
+            "name": "Greg Whitworth",
+            "screen_name": "gregwhitworth",
+            "indices": [
+              "43",
+              "57"
+            ],
+            "id_str": "16238495",
+            "id": "16238495"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "957423354931175425",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957423354931175425",
+      "created_at": "Sun Jan 28 01:21:30 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @reybango: SCREW CANCER! My good friend @gregwhitworth  just found out daughter has a cancerous brain tumor. It’ll be a long road to rec…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957389648698916864"
+          ],
+          "editableUntil": "2018-01-28T00:07:34.346Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "77"
+      ],
+      "favorite_count": "13",
+      "id_str": "957389648698916864",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957389648698916864",
+      "created_at": "Sat Jan 27 23:07:34 +0000 2018",
+      "favorited": false,
+      "full_text": "Okay well I sure have caught up on a lot of television can I be not sick now?",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957386529885716481"
+          ],
+          "editableUntil": "2018-01-27T23:55:10.763Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [
+          {
+            "text": "StLouisVigil",
+            "indices": [
+              "115",
+              "128"
+            ]
+          }
+        ],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "St. Louis Manifest",
+            "screen_name": "Stl_Manifest",
+            "indices": [
+              "3",
+              "16"
+            ],
+            "id_str": "824876295607554050",
+            "id": "824876295607554050"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "957386529885716481",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957386529885716481",
+      "created_at": "Sat Jan 27 22:55:10 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @Stl_Manifest: My name is Joachim Hirsch. The US turned me away 78 years ago today. I was murdered in Auschwitz #StLouisVigil #NeverAgai…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957381963404296192"
+          ],
+          "editableUntil": "2018-01-27T23:37:02.029Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Olivia Computer",
+            "screen_name": "oliviacpu",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "861116848686809088",
+            "id": "861116848686809088"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "23"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "957380737816150017",
+      "id_str": "957381963404296192",
+      "in_reply_to_user_id": "861116848686809088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957381963404296192",
+      "in_reply_to_status_id": "957380737816150017",
+      "created_at": "Sat Jan 27 22:37:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@oliviacpu Same to you!",
+      "lang": "en",
+      "in_reply_to_screen_name": "oliviacpu",
+      "in_reply_to_user_id_str": "861116848686809088"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957379195960573952"
+          ],
+          "editableUntil": "2018-01-27T23:26:02.219Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Olivia Computer",
+            "screen_name": "oliviacpu",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "861116848686809088",
+            "id": "861116848686809088"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "26"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "957325807092838402",
+      "id_str": "957379195960573952",
+      "in_reply_to_user_id": "861116848686809088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957379195960573952",
+      "in_reply_to_status_id": "957325807092838402",
+      "created_at": "Sat Jan 27 22:26:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@oliviacpu Same but 3 days",
+      "lang": "en",
+      "in_reply_to_screen_name": "oliviacpu",
+      "in_reply_to_user_id_str": "861116848686809088"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957367889228587008"
+          ],
+          "editableUntil": "2018-01-27T22:41:06.484Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Khatt",
+            "screen_name": "SkeptiKhatt",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "29169958",
+            "id": "29169958"
+          },
+          {
+            "name": "ellen teapot 🇨🇦🇺🇸🏳️‍⚧️",
+            "screen_name": "asmallteapot",
+            "indices": [
+              "13",
+              "26"
+            ],
+            "id_str": "14202167",
+            "id": "14202167"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "120"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "957367594608082944",
+      "id_str": "957367889228587008",
+      "in_reply_to_user_id": "29169958",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957367889228587008",
+      "in_reply_to_status_id": "957367594608082944",
+      "created_at": "Sat Jan 27 21:41:06 +0000 2018",
+      "favorited": false,
+      "full_text": "@SkeptiKhatt @asmallteapot Seconded: if you have enough battery you can join AAA online and you’ll save on the call out.",
+      "lang": "en",
+      "in_reply_to_screen_name": "SkeptiKhatt",
+      "in_reply_to_user_id_str": "29169958"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957366807467192320"
+          ],
+          "editableUntil": "2018-01-27T22:36:48.572Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ellen teapot 🇨🇦🇺🇸🏳️‍⚧️",
+            "screen_name": "asmallteapot",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "14202167",
+            "id": "14202167"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "98"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "957366262476152832",
+      "id_str": "957366807467192320",
+      "in_reply_to_user_id": "14202167",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957366807467192320",
+      "in_reply_to_status_id": "957366262476152832",
+      "created_at": "Sat Jan 27 21:36:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@asmallteapot Do you need any assistance? Clearly you have your phone so you can call... somebody.",
+      "lang": "en",
+      "in_reply_to_screen_name": "asmallteapot",
+      "in_reply_to_user_id_str": "14202167"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957365466984456192"
+          ],
+          "editableUntil": "2018-01-27T22:31:28.976Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "insecurity princess @saraislet@infosec.exchange",
+            "screen_name": "saraislet",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "4838355980",
+            "id": "4838355980"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957365066172477440",
+      "id_str": "957365466984456192",
+      "in_reply_to_user_id": "4838355980",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957365466984456192",
+      "in_reply_to_status_id": "957365066172477440",
+      "created_at": "Sat Jan 27 21:31:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@saraislet Hmm, I forgot about that convenient plot device.",
+      "lang": "en",
+      "in_reply_to_screen_name": "saraislet",
+      "in_reply_to_user_id_str": "4838355980"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957364739746623488"
+          ],
+          "editableUntil": "2018-01-27T22:28:35.589Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "103"
+      ],
+      "favorite_count": "8",
+      "id_str": "957364739746623488",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957364739746623488",
+      "created_at": "Sat Jan 27 21:28:35 +0000 2018",
+      "favorited": false,
+      "full_text": "Marvel's Runaways, aka This Would All Be Over If Anybody Ever Thought To Call The Police Even One Time.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957361939025309696"
+          ],
+          "editableUntil": "2018-01-27T22:17:27.845Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bitchcoin",
+            "screen_name": "SubMedina",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "14514703",
+            "id": "14514703"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "957361208545464321",
+      "id_str": "957361939025309696",
+      "in_reply_to_user_id": "14514703",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "957361939025309696",
+      "in_reply_to_status_id": "957361208545464321",
+      "created_at": "Sat Jan 27 21:17:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@SubMedina This seems like an excellent way to die.",
+      "lang": "en",
+      "in_reply_to_screen_name": "SubMedina",
+      "in_reply_to_user_id_str": "14514703"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957361091788484608"
+          ],
+          "editableUntil": "2018-01-27T22:14:05.848Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "modest proposal",
+            "screen_name": "modestproposal1",
+            "indices": [
+              "3",
+              "19"
+            ],
+            "id_str": "355866075",
+            "id": "355866075"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "957361091788484608",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957361091788484608",
+      "created_at": "Sat Jan 27 21:14:05 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @modestproposal1: The reason capitalism wins is because you can buy bot followers wholesale at $1 and resell them to thirsty thinkfluenc…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957323687010512896"
+          ],
+          "editableUntil": "2018-01-27T19:45:27.854Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "sweatpants cher🔸",
+            "screen_name": "House_Feminist",
+            "indices": [
+              "3",
+              "18"
+            ],
+            "id_str": "51752499",
+            "id": "51752499"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "957323687010512896",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957323687010512896",
+      "created_at": "Sat Jan 27 18:45:27 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @House_Feminist: I secretly hope that twitter keeps extending the character limit as a social experiment, slowly conditioning our attent…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957313037865594880"
+          ],
+          "editableUntil": "2018-01-27T19:03:08.900Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John Osborn 🏳️‍🌈",
+            "screen_name": "john_osborn",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "17811991",
+            "id": "17811991"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "52"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957312044679786496",
+      "id_str": "957313037865594880",
+      "in_reply_to_user_id": "17811991",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957313037865594880",
+      "in_reply_to_status_id": "957312044679786496",
+      "created_at": "Sat Jan 27 18:03:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@john_osborn Very slowly, yes. Thank you for asking.",
+      "lang": "en",
+      "in_reply_to_screen_name": "john_osborn",
+      "in_reply_to_user_id_str": "17811991"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957312864364056576"
+          ],
+          "editableUntil": "2018-01-27T19:02:27.534Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dan",
+            "screen_name": "spinfire",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "14455915",
+            "id": "14455915"
+          },
+          {
+            "name": "Liz Fong-Jones (方禮真)",
+            "screen_name": "lizthegrey",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "14534896",
+            "id": "14534896"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "77"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "957310345827188736",
+      "id_str": "957312864364056576",
+      "in_reply_to_user_id": "14455915",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957312864364056576",
+      "in_reply_to_status_id": "957310345827188736",
+      "created_at": "Sat Jan 27 18:02:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@spinfire @lizthegrey \"Intuitive to emacs users\" is a contradiction in terms.",
+      "lang": "en",
+      "in_reply_to_screen_name": "spinfire",
+      "in_reply_to_user_id_str": "14455915"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957309282550145025"
+          ],
+          "editableUntil": "2018-01-27T18:48:13.563Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Liz Fong-Jones (方禮真)",
+            "screen_name": "lizthegrey",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14534896",
+            "id": "14534896"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "141"
+      ],
+      "favorite_count": "22",
+      "in_reply_to_status_id_str": "957308224092495873",
+      "id_str": "957309282550145025",
+      "in_reply_to_user_id": "14534896",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "957309282550145025",
+      "in_reply_to_status_id": "957308224092495873",
+      "created_at": "Sat Jan 27 17:48:13 +0000 2018",
+      "favorited": false,
+      "full_text": "@lizthegrey If Linux were not user hostile these shortcuts would be mapped to something guessable like, oh, I don't know, fucking arrow keys.",
+      "lang": "en",
+      "in_reply_to_screen_name": "lizthegrey",
+      "in_reply_to_user_id_str": "14534896"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957302484355006465"
+          ],
+          "editableUntil": "2018-01-27T18:21:12.747Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Olivia Computer",
+            "screen_name": "oliviacpu",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "861116848686809088",
+            "id": "861116848686809088"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "15"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "957300990398496768",
+      "id_str": "957302484355006465",
+      "in_reply_to_user_id": "861116848686809088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957302484355006465",
+      "in_reply_to_status_id": "957300990398496768",
+      "created_at": "Sat Jan 27 17:21:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@oliviacpu ☹️❤️",
+      "lang": "qme",
+      "in_reply_to_screen_name": "oliviacpu",
+      "in_reply_to_user_id_str": "861116848686809088"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957295946919849984"
+          ],
+          "editableUntil": "2018-01-27T17:55:14.101Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Jason Isbell",
+            "screen_name": "JasonIsbell",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "27179932",
+            "id": "27179932"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/957295946919849984/photo/1",
+            "indices": [
+              "46",
+              "69"
+            ],
+            "url": "https://t.co/DHOE28izu4",
+            "media_url": "http://pbs.twimg.com/media/DUj_lnUVwAAoeMY.jpg",
+            "id_str": "957295942490767360",
+            "id": "957295942490767360",
+            "media_url_https": "https://pbs.twimg.com/media/DUj_lnUVwAAoeMY.jpg",
+            "sizes": {
+              "small": {
+                "w": "315",
+                "h": "445",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "315",
+                "h": "445",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "315",
+                "h": "445",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/DHOE28izu4"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "69"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956951087646412800",
+      "id_str": "957295946919849984",
+      "in_reply_to_user_id": "27179932",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957295946919849984",
+      "in_reply_to_status_id": "956951087646412800",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 27 16:55:14 +0000 2018",
+      "favorited": false,
+      "full_text": "@JasonIsbell Good news! This was a real show: https://t.co/DHOE28izu4",
+      "lang": "en",
+      "in_reply_to_screen_name": "JasonIsbell",
+      "in_reply_to_user_id_str": "27179932",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/957295946919849984/photo/1",
+            "indices": [
+              "46",
+              "69"
+            ],
+            "url": "https://t.co/DHOE28izu4",
+            "media_url": "http://pbs.twimg.com/media/DUj_lnUVwAAoeMY.jpg",
+            "id_str": "957295942490767360",
+            "id": "957295942490767360",
+            "media_url_https": "https://pbs.twimg.com/media/DUj_lnUVwAAoeMY.jpg",
+            "sizes": {
+              "small": {
+                "w": "315",
+                "h": "445",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "315",
+                "h": "445",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "315",
+                "h": "445",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/DHOE28izu4"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957293933490401280"
+          ],
+          "editableUntil": "2018-01-27T17:47:14.062Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "86"
+      ],
+      "favorite_count": "55",
+      "id_str": "957293933490401280",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "957293933490401280",
+      "created_at": "Sat Jan 27 16:47:14 +0000 2018",
+      "favorited": false,
+      "full_text": "Ah, Saturday! Now instead of feeling guilty for being sick I can feel cheated instead!",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957293618724614144"
+          ],
+          "editableUntil": "2018-01-27T17:45:59.016Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mastodon: @webuiltthiscity@sutrofan.com",
+            "screen_name": "TheRealWBTC",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "255630558",
+            "id": "255630558"
+          },
+          {
+            "name": "Here Comes The Sun",
+            "screen_name": "SunOfSeldo",
+            "indices": [
+              "23",
+              "34"
+            ],
+            "id_str": "456374925",
+            "id": "456374925"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "34"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957272297018155014",
+      "id_str": "957293618724614144",
+      "in_reply_to_user_id": "255630558",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957293618724614144",
+      "in_reply_to_status_id": "957272297018155014",
+      "created_at": "Sat Jan 27 16:45:59 +0000 2018",
+      "favorited": false,
+      "full_text": "@TheRealWBTC See also: @SunOfSeldo",
+      "lang": "en",
+      "in_reply_to_screen_name": "TheRealWBTC",
+      "in_reply_to_user_id_str": "255630558"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957286529029652480"
+          ],
+          "editableUntil": "2018-01-27T17:17:48.701Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Saira Hussain",
+            "screen_name": "sairahussain87",
+            "indices": [
+              "3",
+              "18"
+            ],
+            "id_str": "2803506941",
+            "id": "2803506941"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "957286529029652480",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957286529029652480",
+      "created_at": "Sat Jan 27 16:17:48 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @sairahussain87: FYI \"chain migration\" is not a real term. The actual term, written in the Immigration and Nationality Act, is \"family r…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957136310321389569"
+          ],
+          "editableUntil": "2018-01-27T07:20:53.770Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Scott Holden",
+            "screen_name": "sshconnection",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "5909252",
+            "id": "5909252"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "74"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "957135746481250304",
+      "id_str": "957136310321389569",
+      "in_reply_to_user_id": "5909252",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957136310321389569",
+      "in_reply_to_status_id": "957135746481250304",
+      "created_at": "Sat Jan 27 06:20:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@sshconnection No, they think they're doing good, because they're racists.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sshconnection",
+      "in_reply_to_user_id_str": "5909252"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957134269092003846"
+          ],
+          "editableUntil": "2018-01-27T07:12:47.103Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Emily Lakdawalla",
+            "screen_name": "elakdawalla",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "14807898",
+            "id": "14807898"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "187"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "957129448746205184",
+      "id_str": "957134269092003846",
+      "in_reply_to_user_id": "14807898",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957134269092003846",
+      "in_reply_to_status_id": "957129448746205184",
+      "created_at": "Sat Jan 27 06:12:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@elakdawalla A very thoughtful family friend gave me a copy of Isaac Asimov's \"Foundation\" for Christmas when I was 11. I was already very interested in sci fi themes thanks to TV though.",
+      "lang": "en",
+      "in_reply_to_screen_name": "elakdawalla",
+      "in_reply_to_user_id_str": "14807898"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957126160709664768"
+          ],
+          "editableUntil": "2018-01-27T06:40:33.914Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tom Dale",
+            "screen_name": "tomdale",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "668863",
+            "id": "668863"
+          },
+          {
+            "name": "Paul Irish",
+            "screen_name": "paul_irish",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "1671811",
+            "id": "1671811"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "31"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "957122836899954691",
+      "id_str": "957126160709664768",
+      "in_reply_to_user_id": "668863",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957126160709664768",
+      "in_reply_to_status_id": "957122836899954691",
+      "created_at": "Sat Jan 27 05:40:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@tomdale @paul_irish Very neat!",
+      "lang": "en",
+      "in_reply_to_screen_name": "tomdale",
+      "in_reply_to_user_id_str": "668863"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957117175319293953"
+          ],
+          "editableUntil": "2018-01-27T06:04:51.630Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tom Dale",
+            "screen_name": "tomdale",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "668863",
+            "id": "668863"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "95"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "956986845476343808",
+      "id_str": "957117175319293953",
+      "in_reply_to_user_id": "668863",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957117175319293953",
+      "in_reply_to_status_id": "956986845476343808",
+      "created_at": "Sat Jan 27 05:04:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@tomdale Have any good links describing your workflow for debugging node with chrome dev tools?",
+      "lang": "en",
+      "in_reply_to_screen_name": "tomdale",
+      "in_reply_to_user_id_str": "668863"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957116910985859072"
+          ],
+          "editableUntil": "2018-01-27T06:03:48.608Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/z10OTqTKZU",
+            "expanded_url": "https://twitter.com/lsarsour/status/957053912070139904",
+            "display_url": "twitter.com/lsarsour/statu…",
+            "indices": [
+              "17",
+              "40"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "40"
+      ],
+      "favorite_count": "21",
+      "id_str": "957116910985859072",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "957116910985859072",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 27 05:03:48 +0000 2018",
+      "favorited": false,
+      "full_text": "ICE is terrible. https://t.co/z10OTqTKZU",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957094843137777664"
+          ],
+          "editableUntil": "2018-01-27T04:36:07.223Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "957093653150912512",
+      "id_str": "957094843137777664",
+      "in_reply_to_user_id": "622960227",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957094843137777664",
+      "in_reply_to_status_id": "957093653150912512",
+      "created_at": "Sat Jan 27 03:36:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@bitandbang \"It's a myth\" immediately followed by \"We do it but they do it more\" kind of undermines the claim that it's a myth.",
+      "lang": "en",
+      "in_reply_to_screen_name": "bitandbang",
+      "in_reply_to_user_id_str": "622960227"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957093363366346752"
+          ],
+          "editableUntil": "2018-01-27T04:30:14.418Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "167"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "957092763727810561",
+      "id_str": "957093363366346752",
+      "in_reply_to_user_id": "622960227",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957093363366346752",
+      "in_reply_to_status_id": "957092763727810561",
+      "created_at": "Sat Jan 27 03:30:14 +0000 2018",
+      "favorited": false,
+      "full_text": "@bitandbang I could write a thesis about the economic, social, cultural and historical influences that created this video. I could do a whole PhD about this one video.",
+      "lang": "en",
+      "in_reply_to_screen_name": "bitandbang",
+      "in_reply_to_user_id_str": "622960227"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957087398529085440"
+          ],
+          "editableUntil": "2018-01-27T04:06:32.290Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Gabe Ortíz",
+            "screen_name": "TUSK81",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "14526877",
+            "id": "14526877"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "87"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "957086982911356928",
+      "id_str": "957087398529085440",
+      "in_reply_to_user_id": "14526877",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957087398529085440",
+      "in_reply_to_status_id": "957086982911356928",
+      "created_at": "Sat Jan 27 03:06:32 +0000 2018",
+      "favorited": false,
+      "full_text": "@TUSK81 Everyone should be born to a room full of people singing happy birthday to you.",
+      "lang": "en",
+      "in_reply_to_screen_name": "TUSK81",
+      "in_reply_to_user_id_str": "14526877"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957086872215339008"
+          ],
+          "editableUntil": "2018-01-27T04:04:26.807Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "136"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "957056119599349761",
+      "id_str": "957086872215339008",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957086872215339008",
+      "in_reply_to_status_id": "957056119599349761",
+      "created_at": "Sat Jan 27 03:04:26 +0000 2018",
+      "favorited": false,
+      "full_text": "The people favoriting this tweet mostly seem to live in the same extremely specific cultural intersection that I do and this pleases me.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957068280774012928"
+          ],
+          "editableUntil": "2018-01-27T02:50:34.262Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ashley",
+            "screen_name": "rabcyr",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "26157562",
+            "id": "26157562"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "18"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "957066569292673024",
+      "id_str": "957068280774012928",
+      "in_reply_to_user_id": "26157562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957068280774012928",
+      "in_reply_to_status_id": "957066569292673024",
+      "created_at": "Sat Jan 27 01:50:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@rabcyr Delightful",
+      "lang": "en",
+      "in_reply_to_screen_name": "rabcyr",
+      "in_reply_to_user_id_str": "26157562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957056119599349761"
+          ],
+          "editableUntil": "2018-01-27T02:02:14.812Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/IubY1mdtlt",
+            "expanded_url": "https://twitter.com/thatsmrbio/status/956564321982713857",
+            "display_url": "twitter.com/thatsmrbio/sta…",
+            "indices": [
+              "70",
+              "93"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "93"
+      ],
+      "favorite_count": "23",
+      "id_str": "957056119599349761",
+      "truncated": false,
+      "retweet_count": "8",
+      "id": "957056119599349761",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 27 01:02:14 +0000 2018",
+      "favorited": false,
+      "full_text": "This is a delightfully unexpected combination of cultural influences: https://t.co/IubY1mdtlt",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957026301054894080"
+          ],
+          "editableUntil": "2018-01-27T00:03:45.517Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Olivia Computer",
+            "screen_name": "oliviacpu",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "861116848686809088",
+            "id": "861116848686809088"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956979474599264256",
+      "id_str": "957026301054894080",
+      "in_reply_to_user_id": "861116848686809088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957026301054894080",
+      "in_reply_to_status_id": "956979474599264256",
+      "created_at": "Fri Jan 26 23:03:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@oliviacpu *waves weakly from own sick bed*",
+      "lang": "en",
+      "in_reply_to_screen_name": "oliviacpu",
+      "in_reply_to_user_id_str": "861116848686809088"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "957025783704256513"
+          ],
+          "editableUntil": "2018-01-27T00:01:42.171Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bruce Lawson",
+            "screen_name": "brucel",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "409823",
+            "id": "409823"
+          },
+          {
+            "name": "Jake Archibald",
+            "screen_name": "jaffathecake",
+            "indices": [
+              "8",
+              "21"
+            ],
+            "id_str": "15390783",
+            "id": "15390783"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "55",
+              "64"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "64"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "956980044366151681",
+      "id_str": "957025783704256513",
+      "in_reply_to_user_id": "409823",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "957025783704256513",
+      "in_reply_to_status_id": "956980044366151681",
+      "created_at": "Fri Jan 26 23:01:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@brucel @jaffathecake This is the Pokémon evolution of @samccone",
+      "lang": "de",
+      "in_reply_to_screen_name": "brucel",
+      "in_reply_to_user_id_str": "409823"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956988107429093376"
+          ],
+          "editableUntil": "2018-01-26T21:31:59.447Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "M.G. Siegler",
+            "screen_name": "mgsiegler",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "652193",
+            "id": "652193"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "77"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "956987641068597248",
+      "id_str": "956988107429093376",
+      "in_reply_to_user_id": "652193",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956988107429093376",
+      "in_reply_to_status_id": "956987641068597248",
+      "created_at": "Fri Jan 26 20:31:59 +0000 2018",
+      "favorited": false,
+      "full_text": "@mgsiegler I got the flu shot and got the flu anyway so I recommend option B.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mgsiegler",
+      "in_reply_to_user_id_str": "652193"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956987173139460101"
+          ],
+          "editableUntil": "2018-01-26T21:28:16.695Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "sailor mercury",
+            "screen_name": "sailorhg",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "61705400",
+            "id": "61705400"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "155"
+      ],
+      "favorite_count": "21",
+      "in_reply_to_status_id_str": "956986459608657920",
+      "id_str": "956987173139460101",
+      "in_reply_to_user_id": "61705400",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956987173139460101",
+      "in_reply_to_status_id": "956986459608657920",
+      "created_at": "Fri Jan 26 20:28:16 +0000 2018",
+      "favorited": false,
+      "full_text": "@sailorhg Omg you had such a treat in store for you. Just remember, it’s not a movie about what computers are, it’s a movie about what computers feel like.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sailorhg",
+      "in_reply_to_user_id_str": "61705400"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956986933648834560"
+          ],
+          "editableUntil": "2018-01-26T21:27:19.596Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "22"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956986655319216128",
+      "id_str": "956986933648834560",
+      "in_reply_to_user_id": "40714930",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956986933648834560",
+      "in_reply_to_status_id": "956986655319216128",
+      "created_at": "Fri Jan 26 20:27:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@taskboy3000 Likewise!",
+      "lang": "en",
+      "in_reply_to_user_id_str": "40714930"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956986053788712960"
+          ],
+          "editableUntil": "2018-01-26T21:23:49.821Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "49"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "956978192941662208",
+      "id_str": "956986053788712960",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956986053788712960",
+      "in_reply_to_status_id": "956978192941662208",
+      "created_at": "Fri Jan 26 20:23:49 +0000 2018",
+      "favorited": false,
+      "full_text": "Related: I have not eaten solid food in 48 hours.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956981590336315392"
+          ],
+          "editableUntil": "2018-01-26T21:06:05.651Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "harper 🤯",
+            "screen_name": "harper",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "1497",
+            "id": "1497"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "42"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956744549509943296",
+      "id_str": "956981590336315392",
+      "in_reply_to_user_id": "1497",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956981590336315392",
+      "in_reply_to_status_id": "956744549509943296",
+      "created_at": "Fri Jan 26 20:06:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@harper In b4 somebody complains about npm",
+      "lang": "en",
+      "in_reply_to_screen_name": "harper",
+      "in_reply_to_user_id_str": "1497"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956979425651785728"
+          ],
+          "editableUntil": "2018-01-26T20:57:29.550Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Brady Swenson",
+            "screen_name": "bswen",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "17043927",
+            "id": "17043927"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "23"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956979168016662528",
+      "id_str": "956979425651785728",
+      "in_reply_to_user_id": "17043927",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956979425651785728",
+      "in_reply_to_status_id": "956979168016662528",
+      "created_at": "Fri Jan 26 19:57:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@bswen Doctor's orders!",
+      "lang": "en",
+      "in_reply_to_screen_name": "bswen",
+      "in_reply_to_user_id_str": "17043927"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956979274849726464"
+          ],
+          "editableUntil": "2018-01-26T20:56:53.596Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🇧🇧🇹🇹🏳️‍🌈🌉 🚴🏿Ed says Yes on J, No on I",
+            "screen_name": "eparillon",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "5818162",
+            "id": "5818162"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "27"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956978566713020417",
+      "id_str": "956979274849726464",
+      "in_reply_to_user_id": "5818162",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956979274849726464",
+      "in_reply_to_status_id": "956978566713020417",
+      "created_at": "Fri Jan 26 19:56:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@eparillon Gastroenteritis.",
+      "lang": "lt",
+      "in_reply_to_screen_name": "eparillon",
+      "in_reply_to_user_id_str": "5818162"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956978192941662208"
+          ],
+          "editableUntil": "2018-01-26T20:52:35.649Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "24"
+      ],
+      "favorite_count": "24",
+      "id_str": "956978192941662208",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956978192941662208",
+      "created_at": "Fri Jan 26 19:52:35 +0000 2018",
+      "favorited": false,
+      "full_text": "Pedialyte is my new jam.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956944112011296769"
+          ],
+          "editableUntil": "2018-01-26T18:37:10.122Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@mcc@mastodon.social",
+            "screen_name": "mcclure111",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "312426579",
+            "id": "312426579"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "186"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "956940920884166659",
+      "id_str": "956944112011296769",
+      "in_reply_to_user_id": "312426579",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956944112011296769",
+      "in_reply_to_status_id": "956940920884166659",
+      "created_at": "Fri Jan 26 17:37:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@mcclure111 Also, how good are the rats at taking tactical direction? With 5,000 pounds of rat at my disposal I can just brute force a ton of stuff, but only if they follow instructions.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mcclure111",
+      "in_reply_to_user_id_str": "312426579"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956938105113657344"
+          ],
+          "editableUntil": "2018-01-26T18:13:17.966Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@mcc@mastodon.social",
+            "screen_name": "mcclure111",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "312426579",
+            "id": "312426579"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "184"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956933565337538560",
+      "id_str": "956938105113657344",
+      "in_reply_to_user_id": "312426579",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956938105113657344",
+      "in_reply_to_status_id": "956933565337538560",
+      "created_at": "Fri Jan 26 17:13:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@mcclure111 You have to pick the guy with the rifle, not because he'll be useful but because he's the only one with a ranged weapon. Then the 10,000 rats. That's a lot of fucking rats.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mcclure111",
+      "in_reply_to_user_id_str": "312426579"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494536809224671233"
+          ],
+          "editableUntil": "2022-02-18T05:58:37.127Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John Eddy on the Group W Bench",
+            "screen_name": "jaydeflix",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "14871593",
+            "id": "14871593"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "1494536590181289986",
+      "id_str": "1494536809224671233",
+      "in_reply_to_user_id": "14871593",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494536809224671233",
+      "in_reply_to_status_id": "1494536590181289986",
+      "created_at": "Fri Feb 18 04:58:37 +0000 2022",
+      "favorited": false,
+      "full_text": "@jaydeflix Wait what do Americans call it? A \"turn signal\"?",
+      "lang": "en",
+      "in_reply_to_screen_name": "jaydeflix",
+      "in_reply_to_user_id_str": "14871593"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494536066572767234"
+          ],
+          "editableUntil": "2022-02-18T05:55:40.065Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kylie Robison",
+            "screen_name": "kyliebytes",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "253350725",
+            "id": "253350725"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "1494535179871813632",
+      "id_str": "1494536066572767234",
+      "in_reply_to_user_id": "253350725",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494536066572767234",
+      "in_reply_to_status_id": "1494535179871813632",
+      "created_at": "Fri Feb 18 04:55:40 +0000 2022",
+      "favorited": false,
+      "full_text": "@kyliebytes 120 miles from Sea Ranch to SF.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kyliebytes",
+      "in_reply_to_user_id_str": "253350725"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494535839975559170"
+          ],
+          "editableUntil": "2022-02-18T05:54:46.040Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "150"
+      ],
+      "favorite_count": "38",
+      "in_reply_to_status_id_str": "1494534680636387328",
+      "id_str": "1494535839975559170",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1494535839975559170",
+      "in_reply_to_status_id": "1494534680636387328",
+      "created_at": "Fri Feb 18 04:54:46 +0000 2022",
+      "favorited": false,
+      "full_text": "At least one of you has had the honesty to answer \"what's an indicator\", a solid 50% of the people on the 101 tonight have never heard of this device.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494534680636387328"
+          ],
+          "editableUntil": "2022-02-18T05:50:09.632Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "208"
+      ],
+      "favorite_count": "14",
+      "id_str": "1494534680636387328",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1494534680636387328",
+      "created_at": "Fri Feb 18 04:50:09 +0000 2022",
+      "favorited": false,
+      "full_text": "Okay, genuine question for people who learned to drive in California: were you taught that you are supposed to indicate when you are changing lanes on the highway? Like, did your instructor mention it to you?",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494531339810316289"
+          ],
+          "editableUntil": "2022-02-18T05:36:53.117Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "James Ray",
+            "screen_name": "sidecut",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "30031279",
+            "id": "30031279"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "91"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494511438542557201",
+      "id_str": "1494531339810316289",
+      "in_reply_to_user_id": "30031279",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494531339810316289",
+      "in_reply_to_status_id": "1494511438542557201",
+      "created_at": "Fri Feb 18 04:36:53 +0000 2022",
+      "favorited": false,
+      "full_text": "@sidecut And yet they remain popular, so maybe this is a Let People Enjoy Things situation?",
+      "lang": "en",
+      "in_reply_to_screen_name": "sidecut",
+      "in_reply_to_user_id_str": "30031279"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494479172831354881"
+          ],
+          "editableUntil": "2022-02-18T02:09:35.540Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rachel",
+            "screen_name": "ohhoe",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2141321",
+            "id": "2141321"
+          },
+          {
+            "name": "ale najpierw herbatka",
+            "screen_name": "iamjager",
+            "indices": [
+              "7",
+              "16"
+            ],
+            "id_str": "346164400",
+            "id": "346164400"
+          },
+          {
+            "name": "Campbell",
+            "screen_name": "cambel",
+            "indices": [
+              "17",
+              "24"
+            ],
+            "id_str": "15614459",
+            "id": "15614459"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1494478588917301250",
+      "id_str": "1494479172831354881",
+      "in_reply_to_user_id": "2141321",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494479172831354881",
+      "in_reply_to_status_id": "1494478588917301250",
+      "created_at": "Fri Feb 18 01:09:35 +0000 2022",
+      "favorited": false,
+      "full_text": "@ohhoe @iamjager @cambel DAOs will fix this",
+      "lang": "en",
+      "in_reply_to_screen_name": "ohhoe",
+      "in_reply_to_user_id_str": "2141321"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494444821875867673"
+          ],
+          "editableUntil": "2022-02-17T23:53:05.634Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rachel",
+            "screen_name": "ohhoe",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2141321",
+            "id": "2141321"
+          },
+          {
+            "name": "Ruben Martinez Jr. 💖💜💙",
+            "screen_name": "rubencodes",
+            "indices": [
+              "7",
+              "18"
+            ],
+            "id_str": "105899128",
+            "id": "105899128"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494444725407031297",
+      "id_str": "1494444821875867673",
+      "in_reply_to_user_id": "2141321",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494444821875867673",
+      "in_reply_to_status_id": "1494444725407031297",
+      "created_at": "Thu Feb 17 22:53:05 +0000 2022",
+      "favorited": false,
+      "full_text": "@ohhoe @rubencodes Why can't it be?",
+      "lang": "en",
+      "in_reply_to_screen_name": "ohhoe",
+      "in_reply_to_user_id_str": "2141321"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494442419646971919"
+          ],
+          "editableUntil": "2022-02-17T23:43:32.898Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rachel",
+            "screen_name": "ohhoe",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2141321",
+            "id": "2141321"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "99"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494441256474357761",
+      "id_str": "1494442419646971919",
+      "in_reply_to_user_id": "2141321",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494442419646971919",
+      "in_reply_to_status_id": "1494441256474357761",
+      "created_at": "Thu Feb 17 22:43:32 +0000 2022",
+      "favorited": false,
+      "full_text": "@ohhoe I guess I struggle to understand why a formula that is fine in print would be bad in movies.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ohhoe",
+      "in_reply_to_user_id_str": "2141321"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494440889149636610"
+          ],
+          "editableUntil": "2022-02-17T23:37:27.999Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rachel",
+            "screen_name": "ohhoe",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2141321",
+            "id": "2141321"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "216"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1494438229671612419",
+      "id_str": "1494440889149636610",
+      "in_reply_to_user_id": "2141321",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494440889149636610",
+      "in_reply_to_status_id": "1494438229671612419",
+      "created_at": "Thu Feb 17 22:37:27 +0000 2022",
+      "favorited": false,
+      "full_text": "@ohhoe I mean... that's kind of how comic books work? It's a big universe and you can follow the whole thing or just your favorite character and they all tie together. Like, it's not for everyone, but it's not *bad*.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ohhoe",
+      "in_reply_to_user_id_str": "2141321"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494440568016945153"
+          ],
+          "editableUntil": "2022-02-17T23:36:11.435Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "live, laugh, @lawnsea@mastodon.social",
+            "screen_name": "lawnsea",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14132172",
+            "id": "14132172"
+          },
+          {
+            "name": "Ryan Cavanaugh 👉 searyanc.dev on bsky",
+            "screen_name": "SeaRyanC",
+            "indices": [
+              "9",
+              "18"
+            ],
+            "id_str": "1177182800",
+            "id": "1177182800"
+          },
+          {
+            "name": "rachel",
+            "screen_name": "ohhoe",
+            "indices": [
+              "19",
+              "25"
+            ],
+            "id_str": "2141321",
+            "id": "2141321"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/r3ON66x3CY",
+            "expanded_url": "https://en.wikipedia.org/wiki/Air_Bud_(series)",
+            "display_url": "en.wikipedia.org/wiki/Air_Bud_(…",
+            "indices": [
+              "83",
+              "106"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "106"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494439358685855744",
+      "id_str": "1494440568016945153",
+      "in_reply_to_user_id": "14132172",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494440568016945153",
+      "in_reply_to_status_id": "1494439358685855744",
+      "possibly_sensitive": false,
+      "created_at": "Thu Feb 17 22:36:11 +0000 2022",
+      "favorited": false,
+      "full_text": "@lawnsea @SeaRyanC @ohhoe True story: there are 14 movies in the Air Bud universe: https://t.co/r3ON66x3CY",
+      "lang": "en",
+      "in_reply_to_screen_name": "lawnsea",
+      "in_reply_to_user_id_str": "14132172"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494437882936770578"
+          ],
+          "editableUntil": "2022-02-17T23:25:31.262Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "188"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "1494436304758587410",
+      "id_str": "1494437882936770578",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494437882936770578",
+      "in_reply_to_status_id": "1494436304758587410",
+      "created_at": "Thu Feb 17 22:25:31 +0000 2022",
+      "favorited": false,
+      "full_text": "It's possible that my perception here is skewed by growing up in Trinidad, which is a very small market for movies, so the only movies that ever made it to cinemas there were blockbusters.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494437435664580616"
+          ],
+          "editableUntil": "2022-02-17T23:23:44.624Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rachel",
+            "screen_name": "ohhoe",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2141321",
+            "id": "2141321"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "111"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "1494437066905686023",
+      "id_str": "1494437435664580616",
+      "in_reply_to_user_id": "2141321",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494437435664580616",
+      "in_reply_to_status_id": "1494437066905686023",
+      "created_at": "Thu Feb 17 22:23:44 +0000 2022",
+      "favorited": false,
+      "full_text": "@ohhoe I don't get how a comic book movie is not just another genre of thematical structure, but somehow worse?",
+      "lang": "en",
+      "in_reply_to_screen_name": "ohhoe",
+      "in_reply_to_user_id_str": "2141321"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494436806988730368"
+          ],
+          "editableUntil": "2022-02-17T23:21:14.736Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ale najpierw herbatka",
+            "screen_name": "iamjager",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "346164400",
+            "id": "346164400"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "78"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "1494436541787213825",
+      "id_str": "1494436806988730368",
+      "in_reply_to_user_id": "346164400",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494436806988730368",
+      "in_reply_to_status_id": "1494436541787213825",
+      "created_at": "Thu Feb 17 22:21:14 +0000 2022",
+      "favorited": false,
+      "full_text": "@iamjager It really does not seem any more hegemonic than the 80s and 90s did.",
+      "lang": "en",
+      "in_reply_to_screen_name": "iamjager",
+      "in_reply_to_user_id_str": "346164400"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494436304758587410"
+          ],
+          "editableUntil": "2022-02-17T23:19:14.995Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494436304758587410/photo/1",
+            "indices": [
+              "42",
+              "65"
+            ],
+            "url": "https://t.co/qohDG0yDOd",
+            "media_url": "http://pbs.twimg.com/media/FL1N2B_VQAwuDRd.jpg",
+            "id_str": "1494436241999216652",
+            "id": "1494436241999216652",
+            "media_url_https": "https://pbs.twimg.com/media/FL1N2B_VQAwuDRd.jpg",
+            "sizes": {
+              "small": {
+                "w": "482",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "850",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1063",
+                "h": "1500",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/qohDG0yDOd"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "65"
+      ],
+      "favorite_count": "35",
+      "in_reply_to_status_id_str": "1494434353102802948",
+      "id_str": "1494436304758587410",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494436304758587410",
+      "in_reply_to_status_id": "1494434353102802948",
+      "possibly_sensitive": false,
+      "created_at": "Thu Feb 17 22:19:14 +0000 2022",
+      "favorited": false,
+      "full_text": "The sheer genius creativity of yesteryear https://t.co/qohDG0yDOd",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494436304758587410/photo/1",
+            "indices": [
+              "42",
+              "65"
+            ],
+            "url": "https://t.co/qohDG0yDOd",
+            "media_url": "http://pbs.twimg.com/media/FL1N2B_VQAwuDRd.jpg",
+            "id_str": "1494436241999216652",
+            "id": "1494436241999216652",
+            "media_url_https": "https://pbs.twimg.com/media/FL1N2B_VQAwuDRd.jpg",
+            "sizes": {
+              "small": {
+                "w": "482",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "850",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1063",
+                "h": "1500",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/qohDG0yDOd"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494436146692046858"
+          ],
+          "editableUntil": "2022-02-17T23:18:37.309Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rachel",
+            "screen_name": "ohhoe",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2141321",
+            "id": "2141321"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "169"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "1494435329109016589",
+      "id_str": "1494436146692046858",
+      "in_reply_to_user_id": "2141321",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494436146692046858",
+      "in_reply_to_status_id": "1494435329109016589",
+      "created_at": "Thu Feb 17 22:18:37 +0000 2022",
+      "favorited": false,
+      "full_text": "@ohhoe I'd argue that makes the MCU *more* interesting, because it's a single continuous story rather than every buddy cop movie being just the same story over and over.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ohhoe",
+      "in_reply_to_user_id_str": "2141321"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494434353102802948"
+          ],
+          "editableUntil": "2022-02-17T23:11:29.684Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/AlKt0NTYH2",
+            "expanded_url": "https://twitter.com/screentime/status/1494380639713300480",
+            "display_url": "twitter.com/screentime/sta…",
+            "indices": [
+              "160",
+              "183"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "183"
+      ],
+      "favorite_count": "136",
+      "id_str": "1494434353102802948",
+      "truncated": false,
+      "retweet_count": "12",
+      "id": "1494434353102802948",
+      "possibly_sensitive": false,
+      "created_at": "Thu Feb 17 22:11:29 +0000 2022",
+      "favorited": false,
+      "full_text": "Every action movie in the 80s was the same, every buddy cop movie is the same, every rom com is the same, why is it bad that a comic book movie is a genre now? https://t.co/AlKt0NTYH2",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494419140865445889"
+          ],
+          "editableUntil": "2022-02-17T22:11:02.804Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/Uq84IRfG4g",
+            "expanded_url": "https://www.nytimes.com/2022/02/17/nyregion/trump-investigation-letitia-james.html",
+            "display_url": "nytimes.com/2022/02/17/nyr…",
+            "indices": [
+              "75",
+              "98"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "98"
+      ],
+      "favorite_count": "11",
+      "id_str": "1494419140865445889",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494419140865445889",
+      "possibly_sensitive": false,
+      "created_at": "Thu Feb 17 21:11:02 +0000 2022",
+      "favorited": false,
+      "full_text": "TLDR: unless they appeal or plead the fifth, which they will certainly do. https://t.co/Uq84IRfG4g",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494415679977517066"
+          ],
+          "editableUntil": "2022-02-17T21:57:17.664Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "115",
+      "id_str": "1494415679977517066",
+      "truncated": false,
+      "retweet_count": "13",
+      "id": "1494415679977517066",
+      "created_at": "Thu Feb 17 20:57:17 +0000 2022",
+      "favorited": false,
+      "full_text": "If you are afraid for your kids if they turn out to be gay, remember that your fear will be the hardest part about it for them.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494383219554209792"
+          ],
+          "editableUntil": "2022-02-17T19:48:18.496Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/iVOQ7eGDux",
+            "expanded_url": "https://twitter.com/SilvermanJacob/status/1494142837625081859",
+            "display_url": "twitter.com/SilvermanJacob…",
+            "indices": [
+              "101",
+              "124"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "124"
+      ],
+      "favorite_count": "12",
+      "id_str": "1494383219554209792",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494383219554209792",
+      "possibly_sensitive": false,
+      "created_at": "Thu Feb 17 18:48:18 +0000 2022",
+      "favorited": false,
+      "full_text": "Nothing says \"we are a legitimate art collector group\" like mass-reporting people who criticize you. https://t.co/iVOQ7eGDux",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494378506783838209"
+          ],
+          "editableUntil": "2022-02-17T19:29:34.884Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "akash",
+            "screen_name": "nocashirl",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "497059734",
+            "id": "497059734"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494376446373949440",
+      "id_str": "1494378506783838209",
+      "in_reply_to_user_id": "497059734",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494378506783838209",
+      "in_reply_to_status_id": "1494376446373949440",
+      "created_at": "Thu Feb 17 18:29:34 +0000 2022",
+      "favorited": false,
+      "full_text": "@nocashirl Yes, they're called Venture Capitalists.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nocashirl",
+      "in_reply_to_user_id_str": "497059734"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956926042484088832"
+          ],
+          "editableUntil": "2018-01-26T17:25:22.011Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/ZlRAZTqTdv",
+            "expanded_url": "https://www.wired.com/story/the-dirty-war-over-diversity-inside-google/",
+            "display_url": "wired.com/story/the-dirt…",
+            "indices": [
+              "59",
+              "82"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "82"
+      ],
+      "favorite_count": "24",
+      "id_str": "956926042484088832",
+      "truncated": false,
+      "retweet_count": "10",
+      "id": "956926042484088832",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 26 16:25:22 +0000 2018",
+      "favorited": false,
+      "full_text": "Google's internal fight over diversity is very, very ugly. https://t.co/ZlRAZTqTdv",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956919208641613826"
+          ],
+          "editableUntil": "2018-01-26T16:58:12.696Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          },
+          {
+            "name": "Patrick Stewart",
+            "screen_name": "SirPatStew",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "602317143",
+            "id": "602317143"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "57"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956790843100164096",
+      "id_str": "956919208641613826",
+      "in_reply_to_user_id": "14829286",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956919208641613826",
+      "in_reply_to_status_id": "956790843100164096",
+      "created_at": "Fri Jan 26 15:58:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@terronk @SirPatStew 19th century British naval captains.",
+      "lang": "en",
+      "in_reply_to_screen_name": "terronk",
+      "in_reply_to_user_id_str": "14829286"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956768807963389952"
+          ],
+          "editableUntil": "2018-01-26T07:00:34.380Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "The Asa Who Taits",
+            "screen_name": "AsaTait",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "944670973",
+            "id": "944670973"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "75"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956766568649703424",
+      "id_str": "956768807963389952",
+      "in_reply_to_user_id": "944670973",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956768807963389952",
+      "in_reply_to_status_id": "956766568649703424",
+      "created_at": "Fri Jan 26 06:00:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@AsaTait Exactly. Also very clearly tied into the first three X-Men movies.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AsaTait",
+      "in_reply_to_user_id_str": "944670973"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956768579436687360"
+          ],
+          "editableUntil": "2018-01-26T06:59:39.895Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ben",
+            "screen_name": "sangster",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "312909735",
+            "id": "312909735"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "17"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956765135460122625",
+      "id_str": "956768579436687360",
+      "in_reply_to_user_id": "312909735",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956768579436687360",
+      "in_reply_to_status_id": "956765135460122625",
+      "created_at": "Fri Jan 26 05:59:39 +0000 2018",
+      "favorited": false,
+      "full_text": "@sangster Right??",
+      "lang": "en",
+      "in_reply_to_screen_name": "sangster",
+      "in_reply_to_user_id_str": "312909735"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956747248867540992"
+          ],
+          "editableUntil": "2018-01-26T05:34:54.291Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Olivia Computer",
+            "screen_name": "oliviacpu",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "861116848686809088",
+            "id": "861116848686809088"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "82"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956746421696262147",
+      "id_str": "956747248867540992",
+      "in_reply_to_user_id": "861116848686809088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956747248867540992",
+      "in_reply_to_status_id": "956746421696262147",
+      "created_at": "Fri Jan 26 04:34:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@oliviacpu I still seem to be confined to my bed so it's possible I will find out.",
+      "lang": "en",
+      "in_reply_to_screen_name": "oliviacpu",
+      "in_reply_to_user_id_str": "861116848686809088"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956746098227363840"
+          ],
+          "editableUntil": "2018-01-26T05:30:19.957Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "BenEncodes",
+            "screen_name": "BenEncodes",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1065837607735545857",
+            "id": "1065837607735545857"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "29"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956653672137613312",
+      "id_str": "956746098227363840",
+      "in_reply_to_user_id": "154189594",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956746098227363840",
+      "in_reply_to_status_id": "956653672137613312",
+      "created_at": "Fri Jan 26 04:30:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenEncodes I loved Earthsea.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tandemNuclei",
+      "in_reply_to_user_id_str": "154189594"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956745988080730113"
+          ],
+          "editableUntil": "2018-01-26T05:29:53.696Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "82"
+      ],
+      "favorite_count": "4",
+      "id_str": "956745988080730113",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956745988080730113",
+      "created_at": "Fri Jan 26 04:29:53 +0000 2018",
+      "favorited": false,
+      "full_text": "Caught up on The Gifted and oh my the cuckoos are in this? I am suddenly on board.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956742947050897409"
+          ],
+          "editableUntil": "2018-01-26T05:17:48.658Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kole",
+            "screen_name": "kolsvein",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "15175789",
+            "id": "15175789"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "93"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956742217334444032",
+      "id_str": "956742947050897409",
+      "in_reply_to_user_id": "15175789",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956742947050897409",
+      "in_reply_to_status_id": "956742217334444032",
+      "created_at": "Fri Jan 26 04:17:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@kolsvein That’s extremely specific but not so specific that I would bet against it existing.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kolsvein",
+      "in_reply_to_user_id_str": "15175789"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956741815406743552"
+          ],
+          "editableUntil": "2018-01-26T05:13:18.853Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "acapella foley artist",
+            "screen_name": "ELLIOTTCABLE",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "771681",
+            "id": "771681"
+          },
+          {
+            "name": "Kole",
+            "screen_name": "kolsvein",
+            "indices": [
+              "14",
+              "23"
+            ],
+            "id_str": "15175789",
+            "id": "15175789"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "102"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "956741497902194696",
+      "id_str": "956741815406743552",
+      "in_reply_to_user_id": "771681",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956741815406743552",
+      "in_reply_to_status_id": "956741497902194696",
+      "created_at": "Fri Jan 26 04:13:18 +0000 2018",
+      "favorited": false,
+      "full_text": "@ELLIOTTCABLE @kolsvein We’ve never met! This was a thirst follow who turned out to be interesting tbh",
+      "lang": "en",
+      "in_reply_to_screen_name": "ELLIOTTCABLE",
+      "in_reply_to_user_id_str": "771681"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956741254301155329"
+          ],
+          "editableUntil": "2018-01-26T05:11:05.075Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kole",
+            "screen_name": "kolsvein",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "15175789",
+            "id": "15175789"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "198"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956740076377198592",
+      "id_str": "956741254301155329",
+      "in_reply_to_user_id": "15175789",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956741254301155329",
+      "in_reply_to_status_id": "956740076377198592",
+      "created_at": "Fri Jan 26 04:11:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@kolsvein No, I mean pro trainers all have this kink and they get you to pay them. In the same way that all the people who work in shoe stores are foot fetishists, and all cops are into power trips.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kolsvein",
+      "in_reply_to_user_id_str": "15175789"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956738802088796162"
+          ],
+          "editableUntil": "2018-01-26T05:01:20.422Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kole",
+            "screen_name": "kolsvein",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "15175789",
+            "id": "15175789"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "61"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "956737606817021953",
+      "id_str": "956738802088796162",
+      "in_reply_to_user_id": "15175789",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956738802088796162",
+      "in_reply_to_status_id": "956737606817021953",
+      "created_at": "Fri Jan 26 04:01:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@kolsvein Lots of people have this kink but they monetize it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kolsvein",
+      "in_reply_to_user_id_str": "15175789"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956720411235921920"
+          ],
+          "editableUntil": "2018-01-26T03:48:15.701Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "sailor mercury",
+            "screen_name": "sailorhg",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "61705400",
+            "id": "61705400"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/956720411235921920/photo/1",
+            "indices": [
+              "25",
+              "48"
+            ],
+            "url": "https://t.co/6QU4GB3iC4",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DUb0Ig1U8AATP25.jpg",
+            "id_str": "956720397952544768",
+            "id": "956720397952544768",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DUb0Ig1U8AATP25.jpg",
+            "sizes": {
+              "small": {
+                "w": "500",
+                "h": "500",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "500",
+                "h": "500",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "500",
+                "h": "500",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/6QU4GB3iC4"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "48"
+      ],
+      "favorite_count": "30",
+      "in_reply_to_status_id_str": "956714236767387648",
+      "id_str": "956720411235921920",
+      "in_reply_to_user_id": "61705400",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956720411235921920",
+      "in_reply_to_status_id": "956714236767387648",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 26 02:48:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@sailorhg Kate Libby obv https://t.co/6QU4GB3iC4",
+      "lang": "en",
+      "in_reply_to_screen_name": "sailorhg",
+      "in_reply_to_user_id_str": "61705400",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/956720411235921920/photo/1",
+            "indices": [
+              "25",
+              "48"
+            ],
+            "url": "https://t.co/6QU4GB3iC4",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DUb0Ig1U8AATP25.jpg",
+            "id_str": "956720397952544768",
+            "video_info": {
+              "aspect_ratio": [
+                "1",
+                "1"
+              ],
+              "variants": [
+                {
+                  "bitrate": "0",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/tweet_video/DUb0Ig1U8AATP25.mp4"
+                }
+              ]
+            },
+            "id": "956720397952544768",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DUb0Ig1U8AATP25.jpg",
+            "sizes": {
+              "small": {
+                "w": "500",
+                "h": "500",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "500",
+                "h": "500",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "500",
+                "h": "500",
+                "resize": "fit"
+              }
+            },
+            "type": "animated_gif",
+            "display_url": "pic.twitter.com/6QU4GB3iC4"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956716180785446913"
+          ],
+          "editableUntil": "2018-01-26T03:31:27.083Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Here Comes The Sun",
+            "screen_name": "SunOfSeldo",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "456374925",
+            "id": "456374925"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "956716180785446913",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956716180785446913",
+      "created_at": "Fri Jan 26 02:31:27 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @SunOfSeldo: There’s less than a week left in January, the end of this crappy month is in sight. And today had 1 minute and 45 seconds m…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956683930148589568"
+          ],
+          "editableUntil": "2018-01-26T01:23:17.932Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "deray",
+            "screen_name": "deray",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "29417304",
+            "id": "29417304"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "66",
+      "in_reply_to_status_id_str": "956683664145944576",
+      "id_str": "956683930148589568",
+      "in_reply_to_user_id": "29417304",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956683930148589568",
+      "in_reply_to_status_id": "956683664145944576",
+      "created_at": "Fri Jan 26 00:23:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@deray 120,000 emails??? You are giving me anxiety man.",
+      "lang": "en",
+      "in_reply_to_screen_name": "deray",
+      "in_reply_to_user_id_str": "29417304"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956683654880673792"
+          ],
+          "editableUntil": "2018-01-26T01:22:12.303Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "63"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956682697883209731",
+      "id_str": "956683654880673792",
+      "in_reply_to_user_id": "68567860",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956683654880673792",
+      "in_reply_to_status_id": "956682697883209731",
+      "created_at": "Fri Jan 26 00:22:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@AdamRackis A+ parenting. My brother used to eat limes for fun.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AdamRackis",
+      "in_reply_to_user_id_str": "68567860"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956662866613911552"
+          ],
+          "editableUntil": "2018-01-25T23:59:35.994Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Andrew Betts",
+            "screen_name": "triblondon",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "7311232",
+            "id": "7311232"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "29"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "956658778535063553",
+      "id_str": "956662866613911552",
+      "in_reply_to_user_id": "7311232",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956662866613911552",
+      "in_reply_to_status_id": "956658778535063553",
+      "created_at": "Thu Jan 25 22:59:35 +0000 2018",
+      "favorited": false,
+      "full_text": "@triblondon The system works!",
+      "lang": "en",
+      "in_reply_to_screen_name": "triblondon",
+      "in_reply_to_user_id_str": "7311232"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956622992951328768"
+          ],
+          "editableUntil": "2018-01-25T21:21:09.372Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John Osborn 🏳️‍🌈",
+            "screen_name": "john_osborn",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "17811991",
+            "id": "17811991"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "77"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956619747575070721",
+      "id_str": "956622992951328768",
+      "in_reply_to_user_id": "17811991",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956622992951328768",
+      "in_reply_to_status_id": "956619747575070721",
+      "created_at": "Thu Jan 25 20:21:09 +0000 2018",
+      "favorited": false,
+      "full_text": "@john_osborn I did this morning. It is apparently normal post food poisoning.",
+      "lang": "en",
+      "in_reply_to_screen_name": "john_osborn",
+      "in_reply_to_user_id_str": "17811991"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956617287947075585"
+          ],
+          "editableUntil": "2018-01-25T20:58:29.193Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "coco",
+            "screen_name": "cococoyote",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "954596036",
+            "id": "954596036"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956616909411311617",
+      "id_str": "956617287947075585",
+      "in_reply_to_user_id": "954596036",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956617287947075585",
+      "in_reply_to_status_id": "956616909411311617",
+      "created_at": "Thu Jan 25 19:58:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@cococoyote Always with the world war 2 atrocities.",
+      "lang": "en",
+      "in_reply_to_screen_name": "cococoyote",
+      "in_reply_to_user_id_str": "954596036"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956616632675086336"
+          ],
+          "editableUntil": "2018-01-25T20:55:52.964Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "sigh- o na BLACK LIVES MATTER !!",
+            "screen_name": "Mark_kaosat_dev",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "261787927",
+            "id": "261787927"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "84"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956615986278526977",
+      "id_str": "956616632675086336",
+      "in_reply_to_user_id": "261787927",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956616632675086336",
+      "in_reply_to_status_id": "956615986278526977",
+      "created_at": "Thu Jan 25 19:55:52 +0000 2018",
+      "favorited": false,
+      "full_text": "@Mark_kaosat_dev I went this morning and have been assigned rehydration and rest :-)",
+      "lang": "en",
+      "in_reply_to_screen_name": "Mark_kaosat_dev",
+      "in_reply_to_user_id_str": "261787927"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956613604043759616"
+          ],
+          "editableUntil": "2018-01-25T20:43:50.882Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "148"
+      ],
+      "favorite_count": "9",
+      "id_str": "956613604043759616",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956613604043759616",
+      "created_at": "Thu Jan 25 19:43:50 +0000 2018",
+      "favorited": false,
+      "full_text": "I have been in constant low level abdominal pain for 48 hours and some people have it much worse than me obviously but this is getting olllllllllld.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956607035344175104"
+          ],
+          "editableUntil": "2018-01-25T20:17:44.782Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "BenEncodes",
+            "screen_name": "BenEncodes",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1065837607735545857",
+            "id": "1065837607735545857"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "106"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956606348707287040",
+      "id_str": "956607035344175104",
+      "in_reply_to_user_id": "154189594",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956607035344175104",
+      "in_reply_to_status_id": "956606348707287040",
+      "created_at": "Thu Jan 25 19:17:44 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenEncodes I suspect really stupid and extremely old software is involved. I don't know the exact reason.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tandemNuclei",
+      "in_reply_to_user_id_str": "154189594"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956604471970209792"
+          ],
+          "editableUntil": "2018-01-25T20:07:33.626Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "BenEncodes",
+            "screen_name": "BenEncodes",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1065837607735545857",
+            "id": "1065837607735545857"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/XU42PGhax4",
+            "expanded_url": "https://www.taxact.com/support/1183/2017/form-1099-div-rounding",
+            "display_url": "taxact.com/support/1183/2…",
+            "indices": [
+              "51",
+              "74"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "74"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956603837585924096",
+      "id_str": "956604471970209792",
+      "in_reply_to_user_id": "154189594",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956604471970209792",
+      "in_reply_to_status_id": "956603837585924096",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 25 19:07:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenEncodes That's not a bug, the IRS requires it: https://t.co/XU42PGhax4",
+      "lang": "en",
+      "in_reply_to_screen_name": "tandemNuclei",
+      "in_reply_to_user_id_str": "154189594"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956601954737651713"
+          ],
+          "editableUntil": "2018-01-25T19:57:33.471Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "cara esten",
+            "screen_name": "esten",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "1108462281237520384",
+            "id": "1108462281237520384"
+          },
+          {
+            "name": "Butt Praxis buttpraxis.bsky.social",
+            "screen_name": "buttpraxis",
+            "indices": [
+              "7",
+              "18"
+            ],
+            "id_str": "1270758145",
+            "id": "1270758145"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "49"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "956598774268178433",
+      "id_str": "956601954737651713",
+      "in_reply_to_user_id": "15374401",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956601954737651713",
+      "in_reply_to_status_id": "956598774268178433",
+      "created_at": "Thu Jan 25 18:57:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@esten @buttpraxis I bet you could take Kay Ivey.",
+      "lang": "en",
+      "in_reply_to_screen_name": "caraesten",
+      "in_reply_to_user_id_str": "15374401"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956588812192202753"
+          ],
+          "editableUntil": "2018-01-25T19:05:20.044Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "143"
+      ],
+      "favorite_count": "9",
+      "in_reply_to_status_id_str": "956586762813370368",
+      "id_str": "956588812192202753",
+      "in_reply_to_user_id": "69426451",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956588812192202753",
+      "in_reply_to_status_id": "956586762813370368",
+      "created_at": "Thu Jan 25 18:05:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseyNewton I would pay twitter extra for an ultra-block that not only blocked them but notified them they have been blocked and taunted them.",
+      "lang": "en",
+      "in_reply_to_screen_name": "CaseyNewton",
+      "in_reply_to_user_id_str": "69426451"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956571793120149504"
+          ],
+          "editableUntil": "2018-01-25T17:57:42.381Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "",
+            "screen_name": "shherief",
+            "indices": [
+              "3",
+              "12"
+            ],
+            "id_str": "-1",
+            "id": "-1"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "956571793120149504",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956571793120149504",
+      "created_at": "Thu Jan 25 16:57:42 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @shherief: having curly hair is like playing a really scary guessing game where you dont know what it's going to do until it does it and…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956562776180183040"
+          ],
+          "editableUntil": "2018-01-25T17:21:52.575Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/8a8iicJrgA",
+            "expanded_url": "https://twitter.com/tnewtondunn/status/956561983813414912",
+            "display_url": "twitter.com/tnewtondunn/st…",
+            "indices": [
+              "85",
+              "108"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "108"
+      ],
+      "favorite_count": "4",
+      "id_str": "956562776180183040",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "956562776180183040",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 25 16:21:52 +0000 2018",
+      "favorited": false,
+      "full_text": "I have not eyes enough to roll at these assholes begrudgingly acknowledging reality. https://t.co/8a8iicJrgA",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956545148824952832"
+          ],
+          "editableUntil": "2018-01-25T16:11:49.886Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "erowid coin bot",
+            "screen_name": "icowid",
+            "indices": [
+              "3",
+              "10"
+            ],
+            "id_str": "956405780458045440",
+            "id": "956405780458045440"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "71"
+      ],
+      "favorite_count": "0",
+      "id_str": "956545148824952832",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956545148824952832",
+      "created_at": "Thu Jan 25 15:11:49 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @icowid: I slowly drifted back into the traditional financial system",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956544972987105280"
+          ],
+          "editableUntil": "2018-01-25T16:11:07.963Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "yan",
+            "screen_name": "bcrypt",
+            "indices": [
+              "3",
+              "10"
+            ],
+            "id_str": "968881477",
+            "id": "968881477"
+          },
+          {
+            "name": "erowid coin bot",
+            "screen_name": "icowid",
+            "indices": [
+              "24",
+              "31"
+            ],
+            "id_str": "956405780458045440",
+            "id": "956405780458045440"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "119"
+      ],
+      "favorite_count": "0",
+      "id_str": "956544972987105280",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956544972987105280",
+      "created_at": "Thu Jan 25 15:11:07 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @bcrypt: introducing @icowid, an account that tweets markov chain mashups of ICO whitepapers and erowid trip reports",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956377168044371968"
+          ],
+          "editableUntil": "2018-01-25T05:04:20.147Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Laura Klein",
+            "screen_name": "lauraklein",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14804195",
+            "id": "14804195"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "52"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "956375882297323521",
+      "id_str": "956377168044371968",
+      "in_reply_to_user_id": "14804195",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956377168044371968",
+      "in_reply_to_status_id": "956375882297323521",
+      "created_at": "Thu Jan 25 04:04:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@lauraklein I've been on this train for a long time.",
+      "lang": "en",
+      "in_reply_to_screen_name": "lauraklein",
+      "in_reply_to_user_id_str": "14804195"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956339981546545152"
+          ],
+          "editableUntil": "2018-01-25T02:36:34.195Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jess Zimmerman",
+            "screen_name": "j_zimms",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14714760",
+            "id": "14714760"
+          },
+          {
+            "name": "bela lugosi's dad",
+            "screen_name": "markpopham",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "66288602",
+            "id": "66288602"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "30"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956265793968377856",
+      "id_str": "956339981546545152",
+      "in_reply_to_user_id": "14714760",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956339981546545152",
+      "in_reply_to_status_id": "956265793968377856",
+      "created_at": "Thu Jan 25 01:36:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@j_zimms @markpopham For real.",
+      "lang": "en",
+      "in_reply_to_screen_name": "j_zimms",
+      "in_reply_to_user_id_str": "14714760"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956339622816067584"
+          ],
+          "editableUntil": "2018-01-25T02:35:08.667Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/jEd0CqM1I6",
+            "expanded_url": "https://www.nytimes.com/2018/01/24/us/politics/trump-immigration-daca-dreamers-path-to-citizenship.html",
+            "display_url": "nytimes.com/2018/01/24/us/…",
+            "indices": [
+              "191",
+              "214"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "214"
+      ],
+      "favorite_count": "19",
+      "id_str": "956339622816067584",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "956339622816067584",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 25 01:35:08 +0000 2018",
+      "favorited": false,
+      "full_text": "Trump dropped in unannounced to a briefing on his administration's immigration policy and, in unscripted remarks, reversed that policy. But don't get excited, nothing he says means anything. https://t.co/jEd0CqM1I6",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956335179785629696"
+          ],
+          "editableUntil": "2018-01-25T02:17:29.366Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "React",
+            "screen_name": "reactjs",
+            "indices": [
+              "9",
+              "17"
+            ],
+            "id_str": "1566463268",
+            "id": "1566463268"
+          },
+          {
+            "name": "Vue.js",
+            "screen_name": "vuejs",
+            "indices": [
+              "18",
+              "24"
+            ],
+            "id_str": "2292889800",
+            "id": "2292889800"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "104"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956300385915932672",
+      "id_str": "956335179785629696",
+      "in_reply_to_user_id": "119589307",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956335179785629696",
+      "in_reply_to_status_id": "956300385915932672",
+      "created_at": "Thu Jan 25 01:17:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@kessir_ @reactjs @vuejs I find Vue templating less ergonomic than JSX, but I'm really a newbie at both.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kessrr",
+      "in_reply_to_user_id_str": "119589307"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956317078021070848"
+          ],
+          "editableUntil": "2018-01-25T01:05:33.569Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@mcc@mastodon.social",
+            "screen_name": "mcclure111",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "312426579",
+            "id": "312426579"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "29"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956316704317026304",
+      "id_str": "956317078021070848",
+      "in_reply_to_user_id": "312426579",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956317078021070848",
+      "in_reply_to_status_id": "956316704317026304",
+      "created_at": "Thu Jan 25 00:05:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@mcclure111 Hodiernae haedos.",
+      "lang": "es",
+      "in_reply_to_screen_name": "mcclure111",
+      "in_reply_to_user_id_str": "312426579"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956315836423192576"
+          ],
+          "editableUntil": "2018-01-25T01:00:37.549Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "126"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "956135578377994240",
+      "id_str": "956315836423192576",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956315836423192576",
+      "in_reply_to_status_id": "956135578377994240",
+      "created_at": "Thu Jan 25 00:00:37 +0000 2018",
+      "favorited": false,
+      "full_text": "Did you know food poisoning could give you a fever? I, under this pile of blankets with the thermostat cranked to 80, did not.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956315532759715840"
+          ],
+          "editableUntil": "2018-01-25T00:59:25.150Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/SVbPH5nObp",
+            "expanded_url": "https://twitter.com/jamilsmith/status/956289295383330817",
+            "display_url": "twitter.com/jamilsmith/sta…",
+            "indices": [
+              "40",
+              "63"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "63"
+      ],
+      "favorite_count": "27",
+      "id_str": "956315532759715840",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "956315532759715840",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 24 23:59:25 +0000 2018",
+      "favorited": false,
+      "full_text": "Oh we *could*? I have bad news for you. https://t.co/SVbPH5nObp",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956311434857558016"
+          ],
+          "editableUntil": "2018-01-25T00:43:08.134Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Olivia Computer",
+            "screen_name": "oliviacpu",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "861116848686809088",
+            "id": "861116848686809088"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "17"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "956304543058354179",
+      "id_str": "956311434857558016",
+      "in_reply_to_user_id": "861116848686809088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956311434857558016",
+      "in_reply_to_status_id": "956304543058354179",
+      "created_at": "Wed Jan 24 23:43:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@oliviacpu Close.",
+      "lang": "en",
+      "in_reply_to_screen_name": "oliviacpu",
+      "in_reply_to_user_id_str": "861116848686809088"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956294671822503936"
+          ],
+          "editableUntil": "2018-01-24T23:36:31.515Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "956294461981626368",
+      "id_str": "956294671822503936",
+      "in_reply_to_user_id": "68567860",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956294671822503936",
+      "in_reply_to_status_id": "956294461981626368",
+      "created_at": "Wed Jan 24 22:36:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@AdamRackis They're not broken, just missing from cache. Will fix.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AdamRackis",
+      "in_reply_to_user_id_str": "68567860"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956285752953851913"
+          ],
+          "editableUntil": "2018-01-24T23:01:05.091Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "TashasEv",
+            "screen_name": "TashasEv",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "86327261",
+            "id": "86327261"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "60"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956283479976640513",
+      "id_str": "956285752953851913",
+      "in_reply_to_user_id": "86327261",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956285752953851913",
+      "in_reply_to_status_id": "956283479976640513",
+      "created_at": "Wed Jan 24 22:01:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@TashasEv But if a dog wore these pants, how would it do so?",
+      "lang": "en",
+      "in_reply_to_screen_name": "TashasEv",
+      "in_reply_to_user_id_str": "86327261"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956272045624508416"
+          ],
+          "editableUntil": "2018-01-24T22:06:37.009Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "zacharyorr",
+            "screen_name": "ZacharyOrr",
+            "indices": [
+              "15",
+              "26"
+            ],
+            "id_str": "1108803871109976064",
+            "id": "1108803871109976064"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "74"
+      ],
+      "favorite_count": "7",
+      "id_str": "956272045624508416",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "956272045624508416",
+      "created_at": "Wed Jan 24 21:06:37 +0000 2018",
+      "favorited": false,
+      "full_text": "TIL talking to @ZacharyOrr in person is like listening to a podcast at 2x.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956248408137777152"
+          ],
+          "editableUntil": "2018-01-24T20:32:41.393Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "69"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956236870165434368",
+      "id_str": "956248408137777152",
+      "in_reply_to_user_id": "1261726454",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956248408137777152",
+      "in_reply_to_status_id": "956236870165434368",
+      "created_at": "Wed Jan 24 19:32:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@incogellen Mysteriously Well Paid Freelance Magazine Feature Writer.",
+      "lang": "en",
+      "in_reply_to_screen_name": "flounge_girl",
+      "in_reply_to_user_id_str": "1261726454"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956247127037952001"
+          ],
+          "editableUntil": "2018-01-24T20:27:35.955Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "alex norris",
+            "screen_name": "dorrismccomics",
+            "indices": [
+              "3",
+              "18"
+            ],
+            "id_str": "522519631",
+            "id": "522519631"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/dorrismccomics/status/956244207487930368/photo/1",
+            "source_status_id": "956244207487930368",
+            "indices": [
+              "20",
+              "43"
+            ],
+            "url": "https://t.co/ionnCUhH5H",
+            "media_url": "http://pbs.twimg.com/media/DUVC-9SWAAEyznv.jpg",
+            "id_str": "956244145256923137",
+            "source_user_id": "522519631",
+            "id": "956244145256923137",
+            "media_url_https": "https://pbs.twimg.com/media/DUVC-9SWAAEyznv.jpg",
+            "source_user_id_str": "522519631",
+            "sizes": {
+              "large": {
+                "w": "2048",
+                "h": "878",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "514",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "291",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "956244207487930368",
+            "display_url": "pic.twitter.com/ionnCUhH5H"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "0",
+      "id_str": "956247127037952001",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956247127037952001",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 24 19:27:35 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @dorrismccomics: https://t.co/ionnCUhH5H",
+      "lang": "zxx",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/dorrismccomics/status/956244207487930368/photo/1",
+            "source_status_id": "956244207487930368",
+            "indices": [
+              "20",
+              "43"
+            ],
+            "url": "https://t.co/ionnCUhH5H",
+            "media_url": "http://pbs.twimg.com/media/DUVC-9SWAAEyznv.jpg",
+            "id_str": "956244145256923137",
+            "source_user_id": "522519631",
+            "id": "956244145256923137",
+            "media_url_https": "https://pbs.twimg.com/media/DUVC-9SWAAEyznv.jpg",
+            "source_user_id_str": "522519631",
+            "sizes": {
+              "large": {
+                "w": "2048",
+                "h": "878",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "514",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "291",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "956244207487930368",
+            "display_url": "pic.twitter.com/ionnCUhH5H"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956162311432974336"
+          ],
+          "editableUntil": "2018-01-24T14:50:34.339Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "mattie",
+            "screen_name": "thotxcouture",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "276322412",
+            "id": "276322412"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "65"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "956161619838619650",
+      "id_str": "956162311432974336",
+      "in_reply_to_user_id": "276322412",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956162311432974336",
+      "in_reply_to_status_id": "956161619838619650",
+      "created_at": "Wed Jan 24 13:50:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@thotxcouture This was also how gay dating was when I was a teen.",
+      "lang": "en",
+      "in_reply_to_screen_name": "thotxcouture",
+      "in_reply_to_user_id_str": "276322412"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956159154913034240"
+          ],
+          "editableUntil": "2018-01-24T14:38:01.766Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@mwdelaney@mastodon.social",
+            "screen_name": "MichaelWDelaney",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "114543786",
+            "id": "114543786"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "17",
+              "27"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "91"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956042911161909250",
+      "id_str": "956159154913034240",
+      "in_reply_to_user_id": "114543786",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956159154913034240",
+      "in_reply_to_status_id": "956042911161909250",
+      "created_at": "Wed Jan 24 13:38:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@MichaelWDelaney @aredridel I live that story and use it all the time to explain inflation.",
+      "lang": "en",
+      "in_reply_to_screen_name": "MichaelWDelaney",
+      "in_reply_to_user_id_str": "114543786"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956151280430325760"
+          ],
+          "editableUntil": "2018-01-24T14:06:44.343Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Stewart Butterfield",
+            "screen_name": "stewart",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5699",
+            "id": "5699"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956148350474248192",
+      "id_str": "956151280430325760",
+      "in_reply_to_user_id": "5699",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956151280430325760",
+      "in_reply_to_status_id": "956148350474248192",
+      "created_at": "Wed Jan 24 13:06:44 +0000 2018",
+      "favorited": false,
+      "full_text": "@stewart My word, why are you awake at 5am?",
+      "lang": "en",
+      "in_reply_to_screen_name": "stewart",
+      "in_reply_to_user_id_str": "5699"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956135578377994240"
+          ],
+          "editableUntil": "2018-01-24T13:04:20.682Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "105"
+      ],
+      "favorite_count": "57",
+      "id_str": "956135578377994240",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956135578377994240",
+      "created_at": "Wed Jan 24 12:04:20 +0000 2018",
+      "favorited": false,
+      "full_text": "I got some bad news yesterday so I treated myself to comfort food and it gave me food poisoning. Awesome.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956042067368710145"
+          ],
+          "editableUntil": "2018-01-24T06:52:45.920Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@mwdelaney@mastodon.social",
+            "screen_name": "MichaelWDelaney",
+            "indices": [
+              "3",
+              "19"
+            ],
+            "id_str": "114543786",
+            "id": "114543786"
+          },
+          {
+            "name": "Laurie Voss moved to @seldo@alpaca.gold",
+            "screen_name": "seldo",
+            "indices": [
+              "21",
+              "27"
+            ],
+            "id_str": "15453",
+            "id": "15453"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "28",
+              "38"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "956042067368710145",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956042067368710145",
+      "created_at": "Wed Jan 24 05:52:45 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @MichaelWDelaney: @seldo @aredridel It’s almost like there isn’t a central authority dedicated to the currency remaining useful to its u…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956042018932871169"
+          ],
+          "editableUntil": "2018-01-24T06:52:34.372Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@mwdelaney@mastodon.social",
+            "screen_name": "MichaelWDelaney",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "114543786",
+            "id": "114543786"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "17",
+              "27"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "62"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "956041274552995840",
+      "id_str": "956042018932871169",
+      "in_reply_to_user_id": "114543786",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956042018932871169",
+      "in_reply_to_status_id": "956041274552995840",
+      "created_at": "Wed Jan 24 05:52:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@MichaelWDelaney @aredridel ding ding ding ding ding ding ding",
+      "lang": "en",
+      "in_reply_to_screen_name": "MichaelWDelaney",
+      "in_reply_to_user_id_str": "114543786"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956029923084423169"
+          ],
+          "editableUntil": "2018-01-24T06:04:30.497Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "180"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "956024007182176256",
+      "id_str": "956029923084423169",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "956029923084423169",
+      "in_reply_to_status_id": "956024007182176256",
+      "created_at": "Wed Jan 24 05:04:30 +0000 2018",
+      "favorited": false,
+      "full_text": "Next episode, Chakotay attempts to revive an unconscious Janeway by reciting a series of clichés:\n\"Breathe dammit, breathe!\"\n\"Don't you die on me now!\"\n\"Breathe! C'mon!\"\n(It works)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956024007182176256"
+          ],
+          "editableUntil": "2018-01-24T05:41:00.036Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "148"
+      ],
+      "favorite_count": "19",
+      "id_str": "956024007182176256",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956024007182176256",
+      "created_at": "Wed Jan 24 04:41:00 +0000 2018",
+      "favorited": false,
+      "full_text": "In tonight's episode of me screaming \"WHO WROTE THIS SHIT?!\" at my screen, a holodeck malfunction takes control of the Enterprise... I mean Voyager.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956012249553911808"
+          ],
+          "editableUntil": "2018-01-24T04:54:16.799Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lev Grossman",
+            "screen_name": "leverus",
+            "indices": [
+              "3",
+              "11"
+            ],
+            "id_str": "30980778",
+            "id": "30980778"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "956012249553911808",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956012249553911808",
+      "created_at": "Wed Jan 24 03:54:16 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @leverus: Interviewer: Which would you rather have, a National Book Award or a Hugo?\nLe Guin: Oh, a Nobel, of course\nInterviewer: They d…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956008138737516544"
+          ],
+          "editableUntil": "2018-01-24T04:37:56.704Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "11"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955965097607745536",
+      "id_str": "956008138737516544",
+      "in_reply_to_user_id": "78663",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956008138737516544",
+      "in_reply_to_status_id": "955965097607745536",
+      "created_at": "Wed Jan 24 03:37:56 +0000 2018",
+      "favorited": false,
+      "full_text": "@ceejbot ❤️",
+      "lang": "qme",
+      "in_reply_to_screen_name": "ceejbot",
+      "in_reply_to_user_id_str": "78663"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956005021245571072"
+          ],
+          "editableUntil": "2018-01-24T04:25:33.436Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nicole Sanchez",
+            "screen_name": "nmsanchez",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "15813127",
+            "id": "15813127"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "135"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "956004852328415232",
+      "id_str": "956005021245571072",
+      "in_reply_to_user_id": "15813127",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956005021245571072",
+      "in_reply_to_status_id": "956004852328415232",
+      "created_at": "Wed Jan 24 03:25:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@nmsanchez I am seeing commentary on this thing but not the actual thing. Is there a live stream? Somebody I should follow for updates?",
+      "lang": "en",
+      "in_reply_to_screen_name": "nmsanchez",
+      "in_reply_to_user_id_str": "15813127"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "956004296335634432"
+          ],
+          "editableUntil": "2018-01-24T04:22:40.604Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dan Primack",
+            "screen_name": "danprimack",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16246929",
+            "id": "16246929"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955902481304825856",
+      "id_str": "956004296335634432",
+      "in_reply_to_user_id": "16246929",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "956004296335634432",
+      "in_reply_to_status_id": "955902481304825856",
+      "created_at": "Wed Jan 24 03:22:40 +0000 2018",
+      "favorited": false,
+      "full_text": "@danprimack \"old conventional wisdom\" from, like, 12 months ago...",
+      "lang": "en",
+      "in_reply_to_screen_name": "danprimack",
+      "in_reply_to_user_id_str": "16246929"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955997430981410816"
+          ],
+          "editableUntil": "2018-01-24T03:55:23.776Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matthew Green",
+            "screen_name": "matthew_d_green",
+            "indices": [
+              "3",
+              "19"
+            ],
+            "id_str": "106234268",
+            "id": "106234268"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "955997430981410816",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955997430981410816",
+      "created_at": "Wed Jan 24 02:55:23 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @matthew_d_green: I feel like “Tom Karlo” deserves a place in the dictionary. Like “oh no, are you Tom Karloing me?” It means ‘to pour d…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955997414007058432"
+          ],
+          "editableUntil": "2018-01-24T03:55:19.729Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matthew Green",
+            "screen_name": "matthew_d_green",
+            "indices": [
+              "3",
+              "19"
+            ],
+            "id_str": "106234268",
+            "id": "106234268"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "955997414007058432",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955997414007058432",
+      "created_at": "Wed Jan 24 02:55:19 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @matthew_d_green: I’m going to hire Tom Karlo if I ever need to fire someone and want it to be really, really gentle. https://t.co/ivE7v…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955971892707442688"
+          ],
+          "editableUntil": "2018-01-24T02:13:54.977Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Derek Braid",
+            "screen_name": "Royal_Arse",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "246360228",
+            "id": "246360228"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955963245587726341",
+      "id_str": "955971892707442688",
+      "in_reply_to_user_id": "246360228",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955971892707442688",
+      "in_reply_to_status_id": "955963245587726341",
+      "created_at": "Wed Jan 24 01:13:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@Royal_Arse So even though they don't like non-fiat currencies they supported them because it was fashionable and then stopped because it cost too much?",
+      "lang": "en",
+      "in_reply_to_screen_name": "Royal_Arse",
+      "in_reply_to_user_id_str": "246360228"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955962619138994177"
+          ],
+          "editableUntil": "2018-01-24T01:37:03.986Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "65"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955962449345343490",
+      "id_str": "955962619138994177",
+      "in_reply_to_user_id": "594182089",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955962619138994177",
+      "in_reply_to_status_id": "955962449345343490",
+      "created_at": "Wed Jan 24 00:37:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@whozzawuzza Disagree, Tuvix was WAY less irritating than Neelix.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "594182089"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955962417753673728"
+          ],
+          "editableUntil": "2018-01-24T01:36:15.972Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Derek Braid",
+            "screen_name": "Royal_Arse",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "246360228",
+            "id": "246360228"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "110"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955959552771526657",
+      "id_str": "955962417753673728",
+      "in_reply_to_user_id": "246360228",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955962417753673728",
+      "in_reply_to_status_id": "955959552771526657",
+      "created_at": "Wed Jan 24 00:36:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@Royal_Arse Why would they have bothered to support it in the first place if they don't like cryptocurrencies?",
+      "lang": "en",
+      "in_reply_to_screen_name": "Royal_Arse",
+      "in_reply_to_user_id_str": "246360228"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955956817988694021"
+          ],
+          "editableUntil": "2018-01-24T01:14:00.884Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Amy Crimmens",
+            "screen_name": "AmyCrimmens",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "206228797",
+            "id": "206228797"
+          },
+          {
+            "name": "React London",
+            "screen_name": "ReactLondon_",
+            "indices": [
+              "13",
+              "26"
+            ],
+            "id_str": "3115053970",
+            "id": "3115053970"
+          },
+          {
+            "name": "Marcel Cutts",
+            "screen_name": "marcelcutts",
+            "indices": [
+              "27",
+              "39"
+            ],
+            "id_str": "1615587182",
+            "id": "1615587182"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "75"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "955888135363325953",
+      "id_str": "955956817988694021",
+      "in_reply_to_user_id": "206228797",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955956817988694021",
+      "in_reply_to_status_id": "955888135363325953",
+      "created_at": "Wed Jan 24 00:14:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@AmyCrimmens @ReactLondon_ @marcelcutts Instant follow just for the tights.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AmyCrimmens",
+      "in_reply_to_user_id_str": "206228797"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955955479141756928"
+          ],
+          "editableUntil": "2018-01-24T01:08:41.678Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/kQbmr8OHbE",
+            "expanded_url": "https://www.nbcnews.com/business/travel/tourism-u-s-down-trump-took-office-costing-4-6-n840326?cid=sm_npd_nn_tw_ma",
+            "display_url": "nbcnews.com/business/trave…",
+            "indices": [
+              "105",
+              "128"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "15",
+      "id_str": "955955479141756928",
+      "truncated": false,
+      "retweet_count": "14",
+      "id": "955955479141756928",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 24 00:08:41 +0000 2018",
+      "favorited": false,
+      "full_text": "Trump's xenophobic administration has hit US tourism to the tune of 4.6 billion dollars and 40,000 jobs: https://t.co/kQbmr8OHbE",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955953284023443456"
+          ],
+          "editableUntil": "2018-01-24T00:59:58.321Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@cowperthwait@sfba.social",
+            "screen_name": "cowperthwait",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15583257",
+            "id": "15583257"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "27"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955953006121443333",
+      "id_str": "955953284023443456",
+      "in_reply_to_user_id": "15583257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955953284023443456",
+      "in_reply_to_status_id": "955953006121443333",
+      "created_at": "Tue Jan 23 23:59:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@cowperthwait B I T C O I N",
+      "lang": "en",
+      "in_reply_to_screen_name": "cowperthwait",
+      "in_reply_to_user_id_str": "15583257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955936044435697665"
+          ],
+          "editableUntil": "2018-01-23T23:51:28.083Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/UVhx86rvxz",
+            "expanded_url": "http://www.apple.com/newsroom/2018/01/homepod-arrives-february-9-available-to-order-this-friday/",
+            "display_url": "apple.com/newsroom/2018/…",
+            "indices": [
+              "112",
+              "135"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "135"
+      ],
+      "favorite_count": "17",
+      "id_str": "955936044435697665",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955936044435697665",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 22:51:28 +0000 2018",
+      "favorited": false,
+      "full_text": "If you've always wanted to buy a giant loud speaker that misunderstands everything you say, now is your chance: https://t.co/UVhx86rvxz",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955933899837734912"
+          ],
+          "editableUntil": "2018-01-23T23:42:56.771Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/955933899837734912/photo/1",
+            "indices": [
+              "65",
+              "88"
+            ],
+            "url": "https://t.co/TaKelfsRD4",
+            "media_url": "http://pbs.twimg.com/media/DUQo0CUU0AEKU7p.jpg",
+            "id_str": "955933895349817345",
+            "id": "955933895349817345",
+            "media_url_https": "https://pbs.twimg.com/media/DUQo0CUU0AEKU7p.jpg",
+            "sizes": {
+              "small": {
+                "w": "511",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "901",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1538",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/TaKelfsRD4"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "88"
+      ],
+      "favorite_count": "47",
+      "id_str": "955933899837734912",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955933899837734912",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 22:42:56 +0000 2018",
+      "favorited": false,
+      "full_text": "I describe my look today as \"business alpaca\". Haircut tomorrow. https://t.co/TaKelfsRD4",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/955933899837734912/photo/1",
+            "indices": [
+              "65",
+              "88"
+            ],
+            "url": "https://t.co/TaKelfsRD4",
+            "media_url": "http://pbs.twimg.com/media/DUQo0CUU0AEKU7p.jpg",
+            "id_str": "955933895349817345",
+            "id": "955933895349817345",
+            "media_url_https": "https://pbs.twimg.com/media/DUQo0CUU0AEKU7p.jpg",
+            "sizes": {
+              "small": {
+                "w": "511",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "901",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1538",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/TaKelfsRD4"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955932299446464512"
+          ],
+          "editableUntil": "2018-01-23T23:36:35.208Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955931653649518592",
+      "id_str": "955932299446464512",
+      "in_reply_to_user_id": "44052627",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955932299446464512",
+      "in_reply_to_status_id": "955931653649518592",
+      "created_at": "Tue Jan 23 22:36:35 +0000 2018",
+      "favorited": false,
+      "full_text": "@nebrius I promise you it's neither.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nebrius",
+      "in_reply_to_user_id_str": "44052627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955930305927376896"
+          ],
+          "editableUntil": "2018-01-23T23:28:39.916Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/Mrnwtn5eqZ",
+            "expanded_url": "https://stripe.com/blog/ending-bitcoin-support",
+            "display_url": "stripe.com/blog/ending-bi…",
+            "indices": [
+              "119",
+              "142"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "142"
+      ],
+      "favorite_count": "184",
+      "id_str": "955930305927376896",
+      "truncated": false,
+      "retweet_count": "97",
+      "id": "955930305927376896",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 22:28:39 +0000 2018",
+      "favorited": false,
+      "full_text": "Nobody uses Bitcoin to buy anything anymore because transaction fees are too high, so Stripe is ending support for it: https://t.co/Mrnwtn5eqZ",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955915895594893312"
+          ],
+          "editableUntil": "2018-01-23T22:31:24.225Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@cowperthwait@sfba.social",
+            "screen_name": "cowperthwait",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15583257",
+            "id": "15583257"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955876130019397632",
+      "id_str": "955915895594893312",
+      "in_reply_to_user_id": "15583257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955915895594893312",
+      "in_reply_to_status_id": "955876130019397632",
+      "created_at": "Tue Jan 23 21:31:24 +0000 2018",
+      "favorited": false,
+      "full_text": "@cowperthwait \"And mirrors\" according to some googling.",
+      "lang": "en",
+      "in_reply_to_screen_name": "cowperthwait",
+      "in_reply_to_user_id_str": "15583257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955869410081718272"
+          ],
+          "editableUntil": "2018-01-23T19:26:41.215Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@jackie@toot.cat",
+            "screen_name": "jackie_cs_",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "241267794",
+            "id": "241267794"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "121"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "955869063741431808",
+      "id_str": "955869410081718272",
+      "in_reply_to_user_id": "241267794",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955869410081718272",
+      "in_reply_to_status_id": "955869063741431808",
+      "created_at": "Tue Jan 23 18:26:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@jackie_cs_ I mean, if you are a medical company and gender is relevant to the type of medical service you are providing.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jackie_cs_",
+      "in_reply_to_user_id_str": "241267794"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955869071202897920"
+          ],
+          "editableUntil": "2018-01-23T19:25:20.420Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "78"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955863399849648129",
+      "id_str": "955869071202897920",
+      "in_reply_to_user_id": "4254951",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955869071202897920",
+      "in_reply_to_status_id": "955863399849648129",
+      "created_at": "Tue Jan 23 18:25:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@jef_poskanzer He was none of those things. A tall skinny white dude, on foot.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jefposk",
+      "in_reply_to_user_id_str": "4254951"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955868865254146048"
+          ],
+          "editableUntil": "2018-01-23T19:24:31.318Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/50gGBrNeWi",
+            "expanded_url": "https://twitter.com/esten/status/955863343503298560",
+            "display_url": "twitter.com/esten/status/9…",
+            "indices": [
+              "34",
+              "57"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "57"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "954596651439566853",
+      "id_str": "955868865254146048",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955868865254146048",
+      "in_reply_to_status_id": "954596651439566853",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 18:24:31 +0000 2018",
+      "favorited": false,
+      "full_text": "This can't just be a coincidence: https://t.co/50gGBrNeWi",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955868752137957376"
+          ],
+          "editableUntil": "2018-01-23T19:24:04.349Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "cara esten",
+            "screen_name": "esten",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "1108462281237520384",
+            "id": "1108462281237520384"
+          },
+          {
+            "name": "ellen teapot 🇨🇦🇺🇸🏳️‍⚧️",
+            "screen_name": "asmallteapot",
+            "indices": [
+              "7",
+              "20"
+            ],
+            "id_str": "14202167",
+            "id": "14202167"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/bWrfbo6CuK",
+            "expanded_url": "https://twitter.com/seldo/status/954592937702125568",
+            "display_url": "twitter.com/seldo/status/9…",
+            "indices": [
+              "61",
+              "84"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "84"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955864431887450112",
+      "id_str": "955868752137957376",
+      "in_reply_to_user_id": "15374401",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955868752137957376",
+      "in_reply_to_status_id": "955864431887450112",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 18:24:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@esten @asmallteapot I got so angry about it I tweetstormed: https://t.co/bWrfbo6CuK",
+      "lang": "en",
+      "in_reply_to_screen_name": "caraesten",
+      "in_reply_to_user_id_str": "15374401"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955868634781401088"
+          ],
+          "editableUntil": "2018-01-23T19:23:36.369Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/CJg8Mp65Tl",
+            "expanded_url": "https://twitter.com/mspowahs/status/955851780411109376",
+            "display_url": "twitter.com/mspowahs/statu…",
+            "indices": [
+              "157",
+              "180"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "180"
+      ],
+      "favorite_count": "72",
+      "id_str": "955868634781401088",
+      "truncated": false,
+      "retweet_count": "13",
+      "id": "955868634781401088",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 18:23:36 +0000 2018",
+      "favorited": false,
+      "full_text": "I cannot emphasize enough how extremely useless it is to collect gender unless you are literally a medical company. All it will let you do is bad marketing. https://t.co/CJg8Mp65Tl",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955868184669638656"
+          ],
+          "editableUntil": "2018-01-23T19:21:49.054Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "84"
+      ],
+      "favorite_count": "13",
+      "id_str": "955868184669638656",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "955868184669638656",
+      "created_at": "Tue Jan 23 18:21:49 +0000 2018",
+      "favorited": false,
+      "full_text": "I have absolutely no idea how I would run my life without Slack's \"/remind\" command.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955860517746196480"
+          ],
+          "editableUntil": "2018-01-23T18:51:21.117Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "134"
+      ],
+      "favorite_count": "44",
+      "id_str": "955860517746196480",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "955860517746196480",
+      "created_at": "Tue Jan 23 17:51:21 +0000 2018",
+      "favorited": false,
+      "full_text": "There is a whole bottle of milk spilled all over the floor of this BART car, and a man happily eating a bowl of cereal. J'accuse, sir.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955857849686441984"
+          ],
+          "editableUntil": "2018-01-23T18:40:45.002Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ellen K. Pao",
+            "screen_name": "ekp",
+            "indices": [
+              "3",
+              "7"
+            ],
+            "id_str": "6655612",
+            "id": "6655612"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/cG0s6SNhWr",
+            "expanded_url": "https://twitter.com/mims/status/955484555041038337",
+            "display_url": "twitter.com/mims/status/95…",
+            "indices": [
+              "77",
+              "100"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "100"
+      ],
+      "favorite_count": "0",
+      "id_str": "955857849686441984",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955857849686441984",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 17:40:45 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @ekp: Yet another report showing diversity improves financial performance https://t.co/cG0s6SNhWr",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955677057857478657"
+          ],
+          "editableUntil": "2018-01-23T06:42:20.871Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Born SQL",
+            "screen_name": "BornSQL",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "4043034494",
+            "id": "4043034494"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "68"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955675885717393408",
+      "id_str": "955677057857478657",
+      "in_reply_to_user_id": "625912772",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955677057857478657",
+      "in_reply_to_status_id": "955675885717393408",
+      "created_at": "Tue Jan 23 05:42:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@BornSQL That's just lazy writing, but then that's Voyager all over.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "625912772"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955675708507922432"
+          ],
+          "editableUntil": "2018-01-23T06:36:59.161Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John Osborn 🏳️‍🌈",
+            "screen_name": "john_osborn",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "17811991",
+            "id": "17811991"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "84"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "955674705058516999",
+      "id_str": "955675708507922432",
+      "in_reply_to_user_id": "17811991",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955675708507922432",
+      "in_reply_to_status_id": "955674705058516999",
+      "created_at": "Tue Jan 23 05:36:59 +0000 2018",
+      "favorited": false,
+      "full_text": "@john_osborn I am 3 years into the show and she is still here. It's not fast enough.",
+      "lang": "en",
+      "in_reply_to_screen_name": "john_osborn",
+      "in_reply_to_user_id_str": "17811991"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955675546406477824"
+          ],
+          "editableUntil": "2018-01-23T06:36:20.513Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Born SQL",
+            "screen_name": "BornSQL",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "4043034494",
+            "id": "4043034494"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955673238985695237",
+      "id_str": "955675546406477824",
+      "in_reply_to_user_id": "625912772",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955675546406477824",
+      "in_reply_to_status_id": "955673238985695237",
+      "created_at": "Tue Jan 23 05:36:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@BornSQL Being annoying on purpose doesn't make them less annoying. Also, why do they write annoying characters into their show?",
+      "lang": "en",
+      "in_reply_to_user_id_str": "625912772"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955672622485794816"
+          ],
+          "editableUntil": "2018-01-23T06:24:43.396Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "103"
+      ],
+      "favorite_count": "25",
+      "id_str": "955672622485794816",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955672622485794816",
+      "created_at": "Tue Jan 23 05:24:43 +0000 2018",
+      "favorited": false,
+      "full_text": "I can't decide which Voyager character I hate more: Kes, Neelix, or Harry Kim? They're all so terrible.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955672108960440322"
+          ],
+          "editableUntil": "2018-01-23T06:22:40.962Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "165"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955671693292285952",
+      "id_str": "955672108960440322",
+      "in_reply_to_user_id": "823484",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955672108960440322",
+      "in_reply_to_status_id": "955671693292285952",
+      "created_at": "Tue Jan 23 05:22:40 +0000 2018",
+      "favorited": false,
+      "full_text": "@abritinthebay They have got a lot of great engineers and identified a huge market. I don't fault them for going after it. It's not nearly as scammy as the ICO boom.",
+      "lang": "en",
+      "in_reply_to_screen_name": "GregWildSmith",
+      "in_reply_to_user_id_str": "823484"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955671055892271104"
+          ],
+          "editableUntil": "2018-01-23T06:18:29.891Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/8Fy1tREgTD",
+            "expanded_url": "http://www.looptt.com/content/its-official-tt-elects-first-female-president",
+            "display_url": "looptt.com/content/its-of…",
+            "indices": [
+              "83",
+              "106"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "155"
+      ],
+      "favorite_count": "3",
+      "id_str": "955671055892271104",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955671055892271104",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 05:18:29 +0000 2018",
+      "favorited": false,
+      "full_text": "Trinidad has already had a woman as prime minister, now we have a woman president: https://t.co/8Fy1tREgTD (a largely ceremonial position, but still: neat)",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955665491929919490"
+          ],
+          "editableUntil": "2018-01-23T05:56:23.339Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/yySbccJonK",
+            "expanded_url": "https://www.recode.net/2018/1/22/16911692/cryptocurrency-bitcoin-trading-coinbase-revenue-secondary",
+            "display_url": "recode.net/2018/1/22/1691…",
+            "indices": [
+              "59",
+              "82"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "82"
+      ],
+      "favorite_count": "1",
+      "id_str": "955665491929919490",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "955665491929919490",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 04:56:23 +0000 2018",
+      "favorited": false,
+      "full_text": "Coinbase did $1 billion -- with a B -- of revenue in 2017: https://t.co/yySbccJonK",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955664077791019010"
+          ],
+          "editableUntil": "2018-01-23T05:50:46.182Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Chris DeLauder",
+            "screen_name": "beaglebets",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "2297251502",
+            "id": "2297251502"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "58"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955663905321246720",
+      "id_str": "955664077791019010",
+      "in_reply_to_user_id": "2297251502",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955664077791019010",
+      "in_reply_to_status_id": "955663905321246720",
+      "created_at": "Tue Jan 23 04:50:46 +0000 2018",
+      "favorited": false,
+      "full_text": "@beaglebets Computers are over, man. Time to become a vet.",
+      "lang": "en",
+      "in_reply_to_screen_name": "beaglebets",
+      "in_reply_to_user_id_str": "2297251502"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955662521649655808"
+          ],
+          "editableUntil": "2018-01-23T05:44:35.169Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/i3DKQUw1WN",
+            "expanded_url": "http://www.zdnet.com/article/spectre-and-meltdown-linux-creator-linus-torvalds-criticises-intels-garbage-patches/",
+            "display_url": "zdnet.com/article/spectr…",
+            "indices": [
+              "88",
+              "111"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "111"
+      ],
+      "favorite_count": "41",
+      "in_reply_to_status_id_str": "955662285199962112",
+      "id_str": "955662521649655808",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "955662521649655808",
+      "in_reply_to_status_id": "955662285199962112",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 04:44:35 +0000 2018",
+      "favorited": false,
+      "full_text": "Linus remains his calm, adult, helpful self, calling the patches \"garbage\" and \"insane\" https://t.co/i3DKQUw1WN",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955662285199962112"
+          ],
+          "editableUntil": "2018-01-23T05:43:38.795Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/nPkuFIZp2Q",
+            "expanded_url": "https://www.theverge.com/2018/1/22/16919426/intel-advises-pause-deployment-of-spectre-patch",
+            "display_url": "theverge.com/2018/1/22/1691…",
+            "indices": [
+              "154",
+              "177"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "177"
+      ],
+      "favorite_count": "19",
+      "id_str": "955662285199962112",
+      "truncated": false,
+      "retweet_count": "11",
+      "id": "955662285199962112",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 23 04:43:38 +0000 2018",
+      "favorited": false,
+      "full_text": "Today in \"all computers are still broken\" news, the Spectre and Meltdown patches released trash your machine and Intel recommends you don't install them: https://t.co/nPkuFIZp2Q",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955619064482742272"
+          ],
+          "editableUntil": "2018-01-23T02:51:54.173Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "sarah✨",
+            "screen_name": "meyerini",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "576601748",
+            "id": "576601748"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "62"
+      ],
+      "favorite_count": "22",
+      "in_reply_to_status_id_str": "955618955359608832",
+      "id_str": "955619064482742272",
+      "in_reply_to_user_id": "576601748",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955619064482742272",
+      "in_reply_to_status_id": "955618955359608832",
+      "created_at": "Tue Jan 23 01:51:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@meyerini If this was true literally nobody would work at npm.",
+      "lang": "en",
+      "in_reply_to_screen_name": "meyerini",
+      "in_reply_to_user_id_str": "576601748"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955609979880333312"
+          ],
+          "editableUntil": "2018-01-23T02:15:48.235Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🇧🇧🇹🇹🏳️‍🌈🌉 🚴🏿Ed says Yes on J, No on I",
+            "screen_name": "eparillon",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "5818162",
+            "id": "5818162"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "54"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955608388682919936",
+      "id_str": "955609979880333312",
+      "in_reply_to_user_id": "5818162",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955609979880333312",
+      "in_reply_to_status_id": "955608388682919936",
+      "created_at": "Tue Jan 23 01:15:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@eparillon I don't understand why not, it was awesome.",
+      "lang": "en",
+      "in_reply_to_screen_name": "eparillon",
+      "in_reply_to_user_id_str": "5818162"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955607668562866176"
+          ],
+          "editableUntil": "2018-01-23T02:06:37.174Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🇧🇧🇹🇹🏳️‍🌈🌉 🚴🏿Ed says Yes on J, No on I",
+            "screen_name": "eparillon",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "5818162",
+            "id": "5818162"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "15"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955605912718213120",
+      "id_str": "955607668562866176",
+      "in_reply_to_user_id": "5818162",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955607668562866176",
+      "in_reply_to_status_id": "955605912718213120",
+      "created_at": "Tue Jan 23 01:06:37 +0000 2018",
+      "favorited": false,
+      "full_text": "@eparillon Shh.",
+      "lang": "und",
+      "in_reply_to_screen_name": "eparillon",
+      "in_reply_to_user_id_str": "5818162"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955605608740225024"
+          ],
+          "editableUntil": "2018-01-23T01:58:26.074Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "92"
+      ],
+      "favorite_count": "20",
+      "id_str": "955605608740225024",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955605608740225024",
+      "created_at": "Tue Jan 23 00:58:26 +0000 2018",
+      "favorited": false,
+      "full_text": "OH: \"I'm hoping the three of you will combine into a glorious Captain Planet of competence.\"",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955583901342187520"
+          ],
+          "editableUntil": "2018-01-23T00:32:10.627Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "sarah✨",
+            "screen_name": "meyerini",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "576601748",
+            "id": "576601748"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "26"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "955581609490747393",
+      "id_str": "955583901342187520",
+      "in_reply_to_user_id": "576601748",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955583901342187520",
+      "in_reply_to_status_id": "955581609490747393",
+      "created_at": "Mon Jan 22 23:32:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@meyerini Evergreen tweet.",
+      "lang": "en",
+      "in_reply_to_screen_name": "meyerini",
+      "in_reply_to_user_id_str": "576601748"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955549394362757120"
+          ],
+          "editableUntil": "2018-01-22T22:15:03.522Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nick Hurley",
+            "screen_name": "nickhurley",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "23445717",
+            "id": "23445717"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "38"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955518161851383809",
+      "id_str": "955549394362757120",
+      "in_reply_to_user_id": "23445717",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955549394362757120",
+      "in_reply_to_status_id": "955518161851383809",
+      "created_at": "Mon Jan 22 21:15:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@nickhurley Of the Devonshire Likelys?",
+      "lang": "en",
+      "in_reply_to_screen_name": "nickhurley",
+      "in_reply_to_user_id_str": "23445717"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955490345113944064"
+          ],
+          "editableUntil": "2018-01-22T18:20:25.084Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [
+          {
+            "text": "dangerous",
+            "indices": [
+              "75",
+              "85"
+            ]
+          },
+          {
+            "text": "wild",
+            "indices": [
+              "86",
+              "91"
+            ]
+          },
+          {
+            "text": "rebel",
+            "indices": [
+              "92",
+              "98"
+            ]
+          }
+        ],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "98"
+      ],
+      "favorite_count": "34",
+      "id_str": "955490345113944064",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955490345113944064",
+      "created_at": "Mon Jan 22 17:20:25 +0000 2018",
+      "favorited": false,
+      "full_text": "Today I dressed myself sock-shoe-sock-shoe instead of sock-sock-shoe-shoe. #dangerous #wild #rebel",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955479513852387328"
+          ],
+          "editableUntil": "2018-01-22T17:37:22.710Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sarah Lacy",
+            "screen_name": "sarahcuda",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "5668942",
+            "id": "5668942"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "111"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "955478679160631297",
+      "id_str": "955479513852387328",
+      "in_reply_to_user_id": "5668942",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955479513852387328",
+      "in_reply_to_status_id": "955478679160631297",
+      "created_at": "Mon Jan 22 16:37:22 +0000 2018",
+      "favorited": false,
+      "full_text": "@sarahcuda Alternative headline: \"Uber CEO is already signing paperwork to have the flying cars team laid off.\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "sarahcuda",
+      "in_reply_to_user_id_str": "5668942"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955460026956525568"
+          ],
+          "editableUntil": "2018-01-22T16:19:56.672Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/b9ieIANMo0",
+            "expanded_url": "https://washingtonpost.com/powerpost/trump-slams-democrats-as-third-day-of-government-shutdown-begins/2018/01/22/3a3eecf0-ff25-11e7-9d31-d72cf78dbeee_story.html",
+            "display_url": "washingtonpost.com/powerpost/trum…",
+            "indices": [
+              "234",
+              "257"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "257"
+      ],
+      "favorite_count": "10",
+      "id_str": "955460026956525568",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955460026956525568",
+      "possibly_sensitive": false,
+      "created_at": "Mon Jan 22 15:19:56 +0000 2018",
+      "favorited": false,
+      "full_text": "Day 3: Prevented from hurting the economy by slowing immigration, the republicans have decided to hurt the economy by shutting down the government. Some GOP moderates have suggested not hurting the economy but are being shouted down. https://t.co/b9ieIANMo0",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955308214257532928"
+          ],
+          "editableUntil": "2018-01-22T06:16:41.704Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Born SQL",
+            "screen_name": "BornSQL",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "4043034494",
+            "id": "4043034494"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "81"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "955306611618312192",
+      "id_str": "955308214257532928",
+      "in_reply_to_user_id": "625912772",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955308214257532928",
+      "in_reply_to_status_id": "955306611618312192",
+      "created_at": "Mon Jan 22 05:16:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@BornSQL \"Orson Card did it\" is not a recommendation of a plot device in my book.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "625912772"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955305629911928832"
+          ],
+          "editableUntil": "2018-01-22T06:06:25.548Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Born SQL",
+            "screen_name": "BornSQL",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "4043034494",
+            "id": "4043034494"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "93"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955302693437878272",
+      "id_str": "955305629911928832",
+      "in_reply_to_user_id": "625912772",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955305629911928832",
+      "in_reply_to_status_id": "955302693437878272",
+      "created_at": "Mon Jan 22 05:06:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@BornSQL The arc is pretty clear already; I wonder how they make it last past 2 or 3 seasons.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "625912772"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955302217820422144"
+          ],
+          "editableUntil": "2018-01-22T05:52:52.042Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Born SQL",
+            "screen_name": "BornSQL",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "4043034494",
+            "id": "4043034494"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "132"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955301806665543681",
+      "id_str": "955302217820422144",
+      "in_reply_to_user_id": "625912772",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955302217820422144",
+      "in_reply_to_status_id": "955301806665543681",
+      "created_at": "Mon Jan 22 04:52:52 +0000 2018",
+      "favorited": false,
+      "full_text": "@BornSQL It's been leaning really heavily on its absurd production budget up until now, but the plot is really beginning to pay off.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "625912772"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955301431795318784"
+          ],
+          "editableUntil": "2018-01-22T05:49:44.639Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "34",
+      "id_str": "955301431795318784",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "955301431795318784",
+      "created_at": "Mon Jan 22 04:49:44 +0000 2018",
+      "favorited": false,
+      "full_text": "Star Trek Discovery has jumped in 3 episodes from \"not terrible\" to \"doing interesting new stuff\" to \"wow, okay, I'm on board\".",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955289950966054912"
+          ],
+          "editableUntil": "2018-01-22T05:04:07.396Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/7x3LiTdM9X",
+            "expanded_url": "https://twitter.com/millenpolitics/status/954842240303628288",
+            "display_url": "twitter.com/millenpolitics…",
+            "indices": [
+              "97",
+              "120"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "120"
+      ],
+      "favorite_count": "26",
+      "id_str": "955289950966054912",
+      "truncated": false,
+      "retweet_count": "11",
+      "id": "955289950966054912",
+      "possibly_sensitive": false,
+      "created_at": "Mon Jan 22 04:04:07 +0000 2018",
+      "favorited": false,
+      "full_text": "Maybe the republicans only think government is useless because they're so very bad at governing? https://t.co/7x3LiTdM9X",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955287434836627457"
+          ],
+          "editableUntil": "2018-01-22T04:54:07.504Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "JP",
+            "screen_name": "jpbrammer",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "74087670",
+            "id": "74087670"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955286899337433090",
+      "id_str": "955287434836627457",
+      "in_reply_to_user_id": "74087670",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955287434836627457",
+      "in_reply_to_status_id": "955286899337433090",
+      "created_at": "Mon Jan 22 03:54:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@jpbrammer Is it possible to be more wrong?",
+      "lang": "en",
+      "in_reply_to_screen_name": "jpbrammer",
+      "in_reply_to_user_id_str": "74087670"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955282881357668352"
+          ],
+          "editableUntil": "2018-01-22T04:36:01.870Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "82"
+      ],
+      "favorite_count": "21",
+      "id_str": "955282881357668352",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "955282881357668352",
+      "created_at": "Mon Jan 22 03:36:01 +0000 2018",
+      "favorited": false,
+      "full_text": "Petition for a government shutdown that affects only the White House and Congress.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955278839470465025"
+          ],
+          "editableUntil": "2018-01-22T04:19:58.209Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jennifer Davis",
+            "screen_name": "sigje",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "17527655",
+            "id": "17527655"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "9",
+      "in_reply_to_status_id_str": "955278460414341121",
+      "id_str": "955278839470465025",
+      "in_reply_to_user_id": "17527655",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "955278839470465025",
+      "in_reply_to_status_id": "955278460414341121",
+      "created_at": "Mon Jan 22 03:19:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@sigje Honestly, anybody calling me on the phone is likely a scam.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sigje",
+      "in_reply_to_user_id_str": "17527655"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955274631060979712"
+          ],
+          "editableUntil": "2018-01-22T04:03:14.846Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/sTGeph8YUe",
+            "expanded_url": "http://clark.com/technology/why-you-may-be-receiving-calls-someone-named-scam-likely/",
+            "display_url": "clark.com/technology/why…",
+            "indices": [
+              "160",
+              "183"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "183"
+      ],
+      "favorite_count": "39",
+      "id_str": "955274631060979712",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "955274631060979712",
+      "possibly_sensitive": false,
+      "created_at": "Mon Jan 22 03:03:14 +0000 2018",
+      "favorited": false,
+      "full_text": "I thought \"Scam Likely\" was an iOS feature but it turns out it's T-mobile! And you can set it so it just automatically blocks scams and your phone never rings: https://t.co/sTGeph8YUe",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955252719362621440"
+          ],
+          "editableUntil": "2018-01-22T02:36:10.690Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Will Johansson",
+            "screen_name": "willjohansson",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "52934331",
+            "id": "52934331"
+          },
+          {
+            "name": "Tyler",
+            "screen_name": "tbreisacher",
+            "indices": [
+              "15",
+              "27"
+            ],
+            "id_str": "72212594",
+            "id": "72212594"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "53"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955252456484519937",
+      "id_str": "955252719362621440",
+      "in_reply_to_user_id": "52934331",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955252719362621440",
+      "in_reply_to_status_id": "955252456484519937",
+      "created_at": "Mon Jan 22 01:36:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@willjohansson @tbreisacher Galaxy brain: don't drive",
+      "lang": "en",
+      "in_reply_to_screen_name": "willjohansson",
+      "in_reply_to_user_id_str": "52934331"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955249425164599296"
+          ],
+          "editableUntil": "2018-01-22T02:23:05.292Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Here Comes The Sun",
+            "screen_name": "SunOfSeldo",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "456374925",
+            "id": "456374925"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "955249425164599296",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955249425164599296",
+      "created_at": "Mon Jan 22 01:23:05 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @SunOfSeldo: Woo! Today was 10 hours long! The last 10 hour day wasn’t since November 19th. Sunset moved back by a minute to 5.21pm, too.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955209720674988033"
+          ],
+          "editableUntil": "2018-01-21T23:45:19.004Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Curt 🏳️‍🌈",
+            "screen_name": "curtytate",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "837971126567383041",
+            "id": "837971126567383041"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "28"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955209651456327680",
+      "id_str": "955209720674988033",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955209720674988033",
+      "in_reply_to_status_id": "955209651456327680",
+      "created_at": "Sun Jan 21 22:45:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@curtytate (Not counting CI)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955209651456327680"
+          ],
+          "editableUntil": "2018-01-21T23:45:02.501Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Curt 🏳️‍🌈",
+            "screen_name": "curtytate",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "837971126567383041",
+            "id": "837971126567383041"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "96"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "955207331276468225",
+      "id_str": "955209651456327680",
+      "in_reply_to_user_id": "837971126567383041",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955209651456327680",
+      "in_reply_to_status_id": "955207331276468225",
+      "created_at": "Sun Jan 21 22:45:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@curtytate About 500 every time a new package is published or updated. 50-100 per day otherwise.",
+      "lang": "en",
+      "in_reply_to_screen_name": "curtytate",
+      "in_reply_to_user_id_str": "837971126567383041"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955142269572595712"
+          ],
+          "editableUntil": "2018-01-21T19:17:17.408Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🇧🇧🇹🇹🏳️‍🌈🌉 🚴🏿Ed says Yes on J, No on I",
+            "screen_name": "eparillon",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "5818162",
+            "id": "5818162"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/DVNFYUMt3z",
+            "expanded_url": "https://twitter.com/bodegabot/status/955110554988892160",
+            "display_url": "twitter.com/bodegabot/stat…",
+            "indices": [
+              "11",
+              "34"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "34"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "955141598370709504",
+      "id_str": "955142269572595712",
+      "in_reply_to_user_id": "5818162",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955142269572595712",
+      "in_reply_to_status_id": "955141598370709504",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 21 18:17:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@eparillon https://t.co/DVNFYUMt3z",
+      "lang": "qme",
+      "in_reply_to_screen_name": "eparillon",
+      "in_reply_to_user_id_str": "5818162"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955138564869648384"
+          ],
+          "editableUntil": "2018-01-21T19:02:34.138Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/jv7PbAfKIs",
+            "expanded_url": "https://www.recode.net/2018/1/21/16914188/amazon-go-grocery-convenience-store-opening-seattle-dilip-kumar",
+            "display_url": "recode.net/2018/1/21/1691…",
+            "indices": [
+              "82",
+              "105"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "105"
+      ],
+      "favorite_count": "6",
+      "id_str": "955138564869648384",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "955138564869648384",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 21 18:02:34 +0000 2018",
+      "favorited": false,
+      "full_text": "This Princeton university graduate thinks he can use tech to reinvent the bodega: https://t.co/jv7PbAfKIs",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955137181382672384"
+          ],
+          "editableUntil": "2018-01-21T18:57:04.289Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "tef's locked account",
+            "screen_name": "tef",
+            "indices": [
+              "0",
+              "4"
+            ],
+            "id_str": "16681276",
+            "id": "16681276"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "24"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955136567743537152",
+      "id_str": "955137181382672384",
+      "in_reply_to_user_id": "16681276",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955137181382672384",
+      "in_reply_to_status_id": "955136567743537152",
+      "created_at": "Sun Jan 21 17:57:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@tef yaml considered bad",
+      "lang": "en",
+      "in_reply_to_screen_name": "tef",
+      "in_reply_to_user_id_str": "16681276"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955128197166673920"
+          ],
+          "editableUntil": "2018-01-21T18:21:22.285Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jessica Tollkuhn",
+            "screen_name": "tollkuhn",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "194456924",
+            "id": "194456924"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "955127436773134337",
+      "id_str": "955128197166673920",
+      "in_reply_to_user_id": "194456924",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955128197166673920",
+      "in_reply_to_status_id": "955127436773134337",
+      "created_at": "Sun Jan 21 17:21:22 +0000 2018",
+      "favorited": false,
+      "full_text": "@tollkuhn ☹️ Sorry to make light of your situation.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tollkuhn",
+      "in_reply_to_user_id_str": "194456924"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955128023367364608"
+          ],
+          "editableUntil": "2018-01-21T18:20:40.848Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "124"
+      ],
+      "favorite_count": "24",
+      "in_reply_to_status_id_str": "955124795158376448",
+      "id_str": "955128023367364608",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "955128023367364608",
+      "in_reply_to_status_id": "955124795158376448",
+      "created_at": "Sun Jan 21 17:20:40 +0000 2018",
+      "favorited": false,
+      "full_text": "Oh never mind, I found out that congress still gets paid to work during the shutdown. That's the only part I want shut down.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955125182426787840"
+          ],
+          "editableUntil": "2018-01-21T18:09:23.515Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "eevee 💨",
+            "screen_name": "eevee",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "14412937",
+            "id": "14412937"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "955125182426787840",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955125182426787840",
+      "created_at": "Sun Jan 21 17:09:23 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @eevee: ah, it's almost tax season, that time of the year where you have to copy numbers from forms the IRS already has onto forms the I…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955124795158376448"
+          ],
+          "editableUntil": "2018-01-21T18:07:51.183Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "155"
+      ],
+      "favorite_count": "38",
+      "id_str": "955124795158376448",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "955124795158376448",
+      "created_at": "Sun Jan 21 17:07:51 +0000 2018",
+      "favorited": false,
+      "full_text": "Am I alone in thinking that maybe shut down is the safest thing for the government to be right now? When they're not shut down they're making things worse.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955118330561536001"
+          ],
+          "editableUntil": "2018-01-21T17:42:09.903Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@mcc@mastodon.social",
+            "screen_name": "mcclure111",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "312426579",
+            "id": "312426579"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/SAnVCm5YZp",
+            "expanded_url": "https://twitter.com/seldo/status/844062907751047169",
+            "display_url": "twitter.com/seldo/status/8…",
+            "indices": [
+              "12",
+              "35"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "955115878974218240",
+      "id_str": "955118330561536001",
+      "in_reply_to_user_id": "312426579",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955118330561536001",
+      "in_reply_to_status_id": "955115878974218240",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 21 16:42:09 +0000 2018",
+      "favorited": false,
+      "full_text": "@mcclure111 https://t.co/SAnVCm5YZp",
+      "lang": "qme",
+      "in_reply_to_screen_name": "mcclure111",
+      "in_reply_to_user_id_str": "312426579"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955117597380374529"
+          ],
+          "editableUntil": "2018-01-21T17:39:15.099Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "nicole",
+            "screen_name": "sodevious",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "9555772",
+            "id": "9555772"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "165"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955116489333444614",
+      "id_str": "955117597380374529",
+      "in_reply_to_user_id": "9555772",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955117597380374529",
+      "in_reply_to_status_id": "955116489333444614",
+      "created_at": "Sun Jan 21 16:39:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@sodevious FYI: I learned recently that many vendors have a way of automatically billing your new credit card even if the old one expires or is reported lost/stolen.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sodevious",
+      "in_reply_to_user_id_str": "9555772"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955117326067580928"
+          ],
+          "editableUntil": "2018-01-21T17:38:10.413Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "955116723971215361",
+      "id_str": "955117326067580928",
+      "in_reply_to_user_id": "3170785565",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "955117326067580928",
+      "in_reply_to_status_id": "955116723971215361",
+      "created_at": "Sun Jan 21 16:38:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@SebFreitag Dax was great, but it's like the only way they could think of to write a good female character was to tell themselves she was actually male.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "3170785565"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "955116293375406080"
+          ],
+          "editableUntil": "2018-01-21T17:34:04.200Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/ZoPWwqrsT9",
+            "expanded_url": "https://twitter.com/jessesingal/status/955088992130695169",
+            "display_url": "twitter.com/jessesingal/st…",
+            "indices": [
+              "13",
+              "36"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "36",
+      "id_str": "955116293375406080",
+      "truncated": false,
+      "retweet_count": "13",
+      "id": "955116293375406080",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 21 16:34:04 +0000 2018",
+      "favorited": false,
+      "full_text": "ICE is evil. https://t.co/ZoPWwqrsT9",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954908471916285953"
+          ],
+          "editableUntil": "2018-01-21T03:48:15.703Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "stacy-marie ishmael",
+            "screen_name": "s_m_i",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "14173930",
+            "id": "14173930"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "108"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954908264847654912",
+      "id_str": "954908471916285953",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954908471916285953",
+      "in_reply_to_status_id": "954908264847654912",
+      "created_at": "Sun Jan 21 02:48:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@s_m_i The next time somebody expresses a conservative belief I'm going to accuse them of \"evil signalling\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954908264847654912"
+          ],
+          "editableUntil": "2018-01-21T03:47:26.334Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "stacy-marie ishmael",
+            "screen_name": "s_m_i",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "14173930",
+            "id": "14173930"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "193"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "954900417833443329",
+      "id_str": "954908264847654912",
+      "in_reply_to_user_id": "14173930",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954908264847654912",
+      "in_reply_to_status_id": "954900417833443329",
+      "created_at": "Sun Jan 21 02:47:26 +0000 2018",
+      "favorited": false,
+      "full_text": "@s_m_i Much like using \"social justice warrior\" as a pejorative: yes, I fight for social justice. What part of this is insulting? Yes, I like to indicate that I believe in things that are good.",
+      "lang": "en",
+      "in_reply_to_screen_name": "s_m_i",
+      "in_reply_to_user_id_str": "14173930"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954903014761840640"
+          ],
+          "editableUntil": "2018-01-21T03:26:34.616Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Courtney Enlow",
+            "screen_name": "courtenlow",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "15138822",
+            "id": "15138822"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "90"
+      ],
+      "favorite_count": "0",
+      "id_str": "954903014761840640",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954903014761840640",
+      "created_at": "Sun Jan 21 02:26:34 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @courtenlow: I scream.\nYou scream.\nWe all scream.\nThis is a support group for banshees.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954900064710750208"
+          ],
+          "editableUntil": "2018-01-21T03:14:51.269Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mel",
+            "screen_name": "_melanie",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "14695621",
+            "id": "14695621"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "39"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "954892156103155712",
+      "id_str": "954900064710750208",
+      "in_reply_to_user_id": "14695621",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954900064710750208",
+      "in_reply_to_status_id": "954892156103155712",
+      "created_at": "Sun Jan 21 02:14:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@_melanie Or some kind of plasma storm.",
+      "lang": "en",
+      "in_reply_to_screen_name": "_melanie",
+      "in_reply_to_user_id_str": "14695621"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954885174457647105"
+          ],
+          "editableUntil": "2018-01-21T02:15:41.156Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "35",
+      "in_reply_to_status_id_str": "954884410406461440",
+      "id_str": "954885174457647105",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954885174457647105",
+      "in_reply_to_status_id": "954884410406461440",
+      "created_at": "Sun Jan 21 01:15:41 +0000 2018",
+      "favorited": false,
+      "full_text": "e.g. \"If we depolarize the protease inhibitor we might be able to cure the plague!\"\n\"Like dissolving a tooth in a can of soda!\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954884410406461440"
+          ],
+          "editableUntil": "2018-01-21T02:12:38.992Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "253"
+      ],
+      "favorite_count": "59",
+      "id_str": "954884410406461440",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "954884410406461440",
+      "created_at": "Sun Jan 21 01:12:38 +0000 2018",
+      "favorited": false,
+      "full_text": "Every episode of Voyager:\n\"If we can &lt;random college physics verb&gt; the &lt;unrelated college chemistry noun&gt; we might be able to &lt;achieve goal&gt;.\"\n\"Like &lt;elementary school science project&gt;!\"\n\"It's crazy but it just... might... work.\"",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954880636631728130"
+          ],
+          "editableUntil": "2018-01-21T01:57:39.254Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tommy Collison",
+            "screen_name": "tommycollison",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "13220072",
+            "id": "13220072"
+          },
+          {
+            "name": ".",
+            "screen_name": "freialobo",
+            "indices": [
+              "15",
+              "25"
+            ],
+            "id_str": "278450525",
+            "id": "278450525"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "28"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954879683748798464",
+      "id_str": "954880636631728130",
+      "in_reply_to_user_id": "13220072",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954880636631728130",
+      "in_reply_to_status_id": "954879683748798464",
+      "created_at": "Sun Jan 21 00:57:39 +0000 2018",
+      "favorited": false,
+      "full_text": "@tommycollison @freialobo 👌🏻",
+      "lang": "qme",
+      "in_reply_to_screen_name": "tommycollison",
+      "in_reply_to_user_id_str": "13220072"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954867186278965248"
+          ],
+          "editableUntil": "2018-01-21T01:04:12.440Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ava Ex Machina",
+            "screen_name": "silicondomme",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "726197352264949760",
+            "id": "726197352264949760"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "215"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954764364703195136",
+      "id_str": "954867186278965248",
+      "in_reply_to_user_id": "726197352264949760",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954867186278965248",
+      "in_reply_to_status_id": "954764364703195136",
+      "created_at": "Sun Jan 21 00:04:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@silicondomme I second this and submit and amendment that whenever we see tourists walking through the Mission district we instruct them to avoid Mission between 16th and 17th and tell them where Taqueria Cancun is.",
+      "lang": "en",
+      "in_reply_to_screen_name": "silicondomme",
+      "in_reply_to_user_id_str": "726197352264949760"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954866913418428416"
+          ],
+          "editableUntil": "2018-01-21T01:03:07.385Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ava Ex Machina",
+            "screen_name": "silicondomme",
+            "indices": [
+              "3",
+              "16"
+            ],
+            "id_str": "726197352264949760",
+            "id": "726197352264949760"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "954866913418428416",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954866913418428416",
+      "created_at": "Sun Jan 21 00:03:07 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @silicondomme: I feel there should be a SF citywide pact when anytime you see a fellow Millennial out with anxious visiting parents that…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954861912377798656"
+          ],
+          "editableUntil": "2018-01-21T00:43:15.044Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954861912377798656/photo/1",
+            "indices": [
+              "18",
+              "41"
+            ],
+            "url": "https://t.co/lNv5clCGfY",
+            "media_url": "http://pbs.twimg.com/media/DUBZ0QBX4AAvq0s.jpg",
+            "id_str": "954861875191341056",
+            "id": "954861875191341056",
+            "media_url_https": "https://pbs.twimg.com/media/DUBZ0QBX4AAvq0s.jpg",
+            "sizes": {
+              "medium": {
+                "w": "1024",
+                "h": "768",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1024",
+                "h": "768",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "510",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/lNv5clCGfY"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "41"
+      ],
+      "favorite_count": "22",
+      "id_str": "954861912377798656",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954861912377798656",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 23:43:15 +0000 2018",
+      "favorited": false,
+      "full_text": "California today. https://t.co/lNv5clCGfY",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954861912377798656/photo/1",
+            "indices": [
+              "18",
+              "41"
+            ],
+            "url": "https://t.co/lNv5clCGfY",
+            "media_url": "http://pbs.twimg.com/media/DUBZ0QBX4AAvq0s.jpg",
+            "id_str": "954861875191341056",
+            "id": "954861875191341056",
+            "media_url_https": "https://pbs.twimg.com/media/DUBZ0QBX4AAvq0s.jpg",
+            "sizes": {
+              "medium": {
+                "w": "1024",
+                "h": "768",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1024",
+                "h": "768",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "510",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/lNv5clCGfY"
+          },
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954861912377798656/photo/1",
+            "indices": [
+              "18",
+              "41"
+            ],
+            "url": "https://t.co/lNv5clCGfY",
+            "media_url": "http://pbs.twimg.com/media/DUBZ0QMVMAA-0os.jpg",
+            "id_str": "954861875237302272",
+            "id": "954861875237302272",
+            "media_url_https": "https://pbs.twimg.com/media/DUBZ0QMVMAA-0os.jpg",
+            "sizes": {
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "768",
+                "h": "1024",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "768",
+                "h": "1024",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/lNv5clCGfY"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954858289430343680"
+          ],
+          "editableUntil": "2018-01-21T00:28:51.266Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Christmas (in November) Kennedy",
+            "screen_name": "onebrightlight",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "755485",
+            "id": "755485"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "60"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954839143560880128",
+      "id_str": "954858289430343680",
+      "in_reply_to_user_id": "755485",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954858289430343680",
+      "in_reply_to_status_id": "954839143560880128",
+      "created_at": "Sat Jan 20 23:28:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@onebrightlight Disagree, but it's a very long conversation.",
+      "lang": "en",
+      "in_reply_to_screen_name": "onebrightlight",
+      "in_reply_to_user_id_str": "755485"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954855049284370433"
+          ],
+          "editableUntil": "2018-01-21T00:15:58.755Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🇧🇧🇹🇹🏳️‍🌈🌉 🚴🏿Ed says Yes on J, No on I",
+            "screen_name": "eparillon",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "5818162",
+            "id": "5818162"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "47"
+      ],
+      "favorite_count": "13",
+      "in_reply_to_status_id_str": "954854745151234048",
+      "id_str": "954855049284370433",
+      "in_reply_to_user_id": "5818162",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954855049284370433",
+      "in_reply_to_status_id": "954854745151234048",
+      "created_at": "Sat Jan 20 23:15:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@eparillon Still tho. This shit is inescapable.",
+      "lang": "en",
+      "in_reply_to_screen_name": "eparillon",
+      "in_reply_to_user_id_str": "5818162"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954854355202535426"
+          ],
+          "editableUntil": "2018-01-21T00:13:13.273Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "101"
+      ],
+      "favorite_count": "280",
+      "id_str": "954854355202535426",
+      "truncated": false,
+      "retweet_count": "17",
+      "id": "954854355202535426",
+      "created_at": "Sat Jan 20 23:13:13 +0000 2018",
+      "favorited": false,
+      "full_text": "I went to a birthday party for a 3 year old this morning and the conversation was still about crypto.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954824172579913728"
+          ],
+          "editableUntil": "2018-01-20T22:13:17.175Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/tm4zRUCtxX",
+            "expanded_url": "https://twitter.com/ValaAfshar/status/954790675136045056",
+            "display_url": "twitter.com/ValaAfshar/sta…",
+            "indices": [
+              "105",
+              "128"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "40",
+      "id_str": "954824172579913728",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "954824172579913728",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 21:13:17 +0000 2018",
+      "favorited": false,
+      "full_text": "(Also npm which is obviously as big and important a technology company as all of these, yes, definitely) https://t.co/tm4zRUCtxX",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954823767275941888"
+          ],
+          "editableUntil": "2018-01-20T22:11:40.543Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Barbara Malmet",
+            "screen_name": "B52Malmet",
+            "indices": [
+              "3",
+              "13"
+            ],
+            "id_str": "2876041031",
+            "id": "2876041031"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/B52Malmet/status/954753187130609666/photo/1",
+            "source_status_id": "954753187130609666",
+            "indices": [
+              "68",
+              "91"
+            ],
+            "url": "https://t.co/dtI09ksxNg",
+            "media_url": "http://pbs.twimg.com/media/DT_280fX0AAPMH6.jpg",
+            "id_str": "954753170768646144",
+            "source_user_id": "2876041031",
+            "id": "954753170768646144",
+            "media_url_https": "https://pbs.twimg.com/media/DT_280fX0AAPMH6.jpg",
+            "source_user_id_str": "2876041031",
+            "sizes": {
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "954753187130609666",
+            "display_url": "pic.twitter.com/dtI09ksxNg"
+          }
+        ],
+        "hashtags": [
+          {
+            "text": "WomensMarch2018",
+            "indices": [
+              "51",
+              "67"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "91"
+      ],
+      "favorite_count": "0",
+      "id_str": "954823767275941888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954823767275941888",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 21:11:40 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @B52Malmet: 7 year old with next level signage. #WomensMarch2018 https://t.co/dtI09ksxNg",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/B52Malmet/status/954753187130609666/photo/1",
+            "source_status_id": "954753187130609666",
+            "indices": [
+              "68",
+              "91"
+            ],
+            "url": "https://t.co/dtI09ksxNg",
+            "media_url": "http://pbs.twimg.com/media/DT_280fX0AAPMH6.jpg",
+            "id_str": "954753170768646144",
+            "source_user_id": "2876041031",
+            "id": "954753170768646144",
+            "media_url_https": "https://pbs.twimg.com/media/DT_280fX0AAPMH6.jpg",
+            "source_user_id_str": "2876041031",
+            "sizes": {
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "954753187130609666",
+            "display_url": "pic.twitter.com/dtI09ksxNg"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954821698716549120"
+          ],
+          "editableUntil": "2018-01-20T22:03:27.360Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Yoel Roth",
+            "screen_name": "yoyoel",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "14893345",
+            "id": "14893345"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "42"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "954820793824821248",
+      "id_str": "954821698716549120",
+      "in_reply_to_user_id": "14893345",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954821698716549120",
+      "in_reply_to_status_id": "954820793824821248",
+      "created_at": "Sat Jan 20 21:03:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@yoyoel Today in unsurprising revelations.",
+      "lang": "en",
+      "in_reply_to_screen_name": "yoyoel",
+      "in_reply_to_user_id_str": "14893345"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954817226070155264"
+          ],
+          "editableUntil": "2018-01-20T21:45:40.998Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Susan Rigetti",
+            "screen_name": "susanthesquark",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "4625037762",
+            "id": "4625037762"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "19"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "954789806378139648",
+      "id_str": "954817226070155264",
+      "in_reply_to_user_id": "4625037762",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954817226070155264",
+      "in_reply_to_status_id": "954789806378139648",
+      "created_at": "Sat Jan 20 20:45:40 +0000 2018",
+      "favorited": false,
+      "full_text": "@susanthesquark 🎉🎉🎉",
+      "lang": "qme",
+      "in_reply_to_screen_name": "susanthesquark",
+      "in_reply_to_user_id_str": "4625037762"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954817069278613504"
+          ],
+          "editableUntil": "2018-01-20T21:45:03.616Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jen Dziura",
+            "screen_name": "jendziura",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "18006802",
+            "id": "18006802"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "18"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954806596844052480",
+      "id_str": "954817069278613504",
+      "in_reply_to_user_id": "18006802",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954817069278613504",
+      "in_reply_to_status_id": "954806596844052480",
+      "created_at": "Sat Jan 20 20:45:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@jendziura Agreed.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jendziura",
+      "in_reply_to_user_id_str": "18006802"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954803050576662528"
+          ],
+          "editableUntil": "2018-01-20T20:49:21.297Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jen Dziura",
+            "screen_name": "jendziura",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "18006802",
+            "id": "18006802"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "31"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954800435487035394",
+      "id_str": "954803050576662528",
+      "in_reply_to_user_id": "18006802",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954803050576662528",
+      "in_reply_to_status_id": "954800435487035394",
+      "created_at": "Sat Jan 20 19:49:21 +0000 2018",
+      "favorited": false,
+      "full_text": "@jendziura Kes is terrible tho.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jendziura",
+      "in_reply_to_user_id_str": "18006802"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954786515145523200"
+          ],
+          "editableUntil": "2018-01-20T19:43:38.943Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "159"
+      ],
+      "favorite_count": "50",
+      "id_str": "954786515145523200",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954786515145523200",
+      "created_at": "Sat Jan 20 18:43:38 +0000 2018",
+      "favorited": false,
+      "full_text": "You'd think 23 years post-puberty I would be over the disgust and inconvenience of hair constantly sprouting out of my face but that is very much not the case.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954769351764160512"
+          ],
+          "editableUntil": "2018-01-20T18:35:26.874Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jasper 🌈",
+            "screen_name": "DaleJStephens",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "84245958",
+            "id": "84245958"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954767863444733953",
+      "id_str": "954769351764160512",
+      "in_reply_to_user_id": "84245958",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954769351764160512",
+      "in_reply_to_status_id": "954767863444733953",
+      "created_at": "Sat Jan 20 17:35:26 +0000 2018",
+      "favorited": false,
+      "full_text": "@DaleJStephens My whole life is spreadsheets and stats.",
+      "lang": "en",
+      "in_reply_to_screen_name": "DaleJStephens",
+      "in_reply_to_user_id_str": "84245958"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954767625904467968"
+          ],
+          "editableUntil": "2018-01-20T18:28:35.397Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jasper 🌈",
+            "screen_name": "DaleJStephens",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "84245958",
+            "id": "84245958"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954767224773926912",
+      "id_str": "954767625904467968",
+      "in_reply_to_user_id": "84245958",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954767625904467968",
+      "in_reply_to_status_id": "954767224773926912",
+      "created_at": "Sat Jan 20 17:28:35 +0000 2018",
+      "favorited": false,
+      "full_text": "@DaleJStephens This is so strange. I use algebra every day.",
+      "lang": "en",
+      "in_reply_to_screen_name": "DaleJStephens",
+      "in_reply_to_user_id_str": "84245958"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954621647654330368"
+          ],
+          "editableUntil": "2018-01-20T08:48:31.470Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jamar Parris",
+            "screen_name": "JamarParris",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "171878775",
+            "id": "171878775"
+          },
+          {
+            "name": "Jovan from Peak Shift",
+            "screen_name": "johnsBeharry",
+            "indices": [
+              "13",
+              "26"
+            ],
+            "id_str": "15802846",
+            "id": "15802846"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/bTsFEnIwTq",
+            "expanded_url": "https://twitter.com/seldo/status/954617366779912192",
+            "display_url": "twitter.com/seldo/status/9…",
+            "indices": [
+              "64",
+              "87"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "87"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954620449173815296",
+      "id_str": "954621647654330368",
+      "in_reply_to_user_id": "171878775",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954621647654330368",
+      "in_reply_to_status_id": "954620449173815296",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 07:48:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@JamarParris @johnsbeharry Exactly what I was saying elsewhere: https://t.co/bTsFEnIwTq",
+      "lang": "en",
+      "in_reply_to_screen_name": "JamarParris",
+      "in_reply_to_user_id_str": "171878775"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954617798528872448"
+          ],
+          "editableUntil": "2018-01-20T08:33:13.767Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Olivia Computer",
+            "screen_name": "oliviacpu",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "861116848686809088",
+            "id": "861116848686809088"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "25"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954613435517485056",
+      "id_str": "954617798528872448",
+      "in_reply_to_user_id": "861116848686809088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954617798528872448",
+      "in_reply_to_status_id": "954613435517485056",
+      "created_at": "Sat Jan 20 07:33:13 +0000 2018",
+      "favorited": false,
+      "full_text": "@oliviacpu Good callback.",
+      "lang": "en",
+      "in_reply_to_screen_name": "oliviacpu",
+      "in_reply_to_user_id_str": "861116848686809088"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954617366779912192"
+          ],
+          "editableUntil": "2018-01-20T08:31:30.830Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jovan from Peak Shift",
+            "screen_name": "johnsBeharry",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15802846",
+            "id": "15802846"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954609088717049857",
+      "id_str": "954617366779912192",
+      "in_reply_to_user_id": "15802846",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954617366779912192",
+      "in_reply_to_status_id": "954609088717049857",
+      "created_at": "Sat Jan 20 07:31:30 +0000 2018",
+      "favorited": false,
+      "full_text": "@johnsbeharry Being exploited is better than starving. I wish we had better options. The federation, R.I.P., might have helped.",
+      "lang": "en",
+      "in_reply_to_screen_name": "johnsBeharry",
+      "in_reply_to_user_id_str": "15802846"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954616998155055104"
+          ],
+          "editableUntil": "2018-01-20T08:30:02.943Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jamar Parris",
+            "screen_name": "JamarParris",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "171878775",
+            "id": "171878775"
+          },
+          {
+            "name": "Jovan from Peak Shift",
+            "screen_name": "johnsBeharry",
+            "indices": [
+              "13",
+              "26"
+            ],
+            "id_str": "15802846",
+            "id": "15802846"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "167"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954608025309868033",
+      "id_str": "954616998155055104",
+      "in_reply_to_user_id": "171878775",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954616998155055104",
+      "in_reply_to_status_id": "954608025309868033",
+      "created_at": "Sat Jan 20 07:30:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@JamarParris @johnsbeharry That's a fair point, but even in their current state they are barely sustainable. After hurricanes they cannot recover without external aid.",
+      "lang": "en",
+      "in_reply_to_screen_name": "JamarParris",
+      "in_reply_to_user_id_str": "171878775"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954603574570377217"
+          ],
+          "editableUntil": "2018-01-20T07:36:42.511Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jovan from Peak Shift",
+            "screen_name": "johnsBeharry",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15802846",
+            "id": "15802846"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "121"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954603274505629696",
+      "id_str": "954603574570377217",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954603574570377217",
+      "in_reply_to_status_id": "954603274505629696",
+      "created_at": "Sat Jan 20 06:36:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@johnsbeharry Trinidad only works because of the oil. Jamaica doesn't work. All the smaller islands scrape by on tourism.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954603274505629696"
+          ],
+          "editableUntil": "2018-01-20T07:35:30.970Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jovan from Peak Shift",
+            "screen_name": "johnsBeharry",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15802846",
+            "id": "15802846"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954602833235599360",
+      "id_str": "954603274505629696",
+      "in_reply_to_user_id": "15802846",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954603274505629696",
+      "in_reply_to_status_id": "954602833235599360",
+      "created_at": "Sat Jan 20 06:35:30 +0000 2018",
+      "favorited": false,
+      "full_text": "@johnsbeharry No offense intended, but the small islands are economically pretty fucked no matter what they try. Not enough space, not enough resources.",
+      "lang": "en",
+      "in_reply_to_screen_name": "johnsBeharry",
+      "in_reply_to_user_id_str": "15802846"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954602301498388480"
+          ],
+          "editableUntil": "2018-01-20T07:31:38.987Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "KING KORTNEY😷",
+            "screen_name": "fakerapper",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14256353",
+            "id": "14256353"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954427669537370112",
+      "id_str": "954602301498388480",
+      "in_reply_to_user_id": "14256353",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954602301498388480",
+      "in_reply_to_status_id": "954427669537370112",
+      "created_at": "Sat Jan 20 06:31:38 +0000 2018",
+      "favorited": false,
+      "full_text": "@fakerapper How did I not know you have an adorable dog until now?",
+      "lang": "en",
+      "in_reply_to_screen_name": "fakerapper",
+      "in_reply_to_user_id_str": "14256353"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954600170104107008"
+          ],
+          "editableUntil": "2018-01-20T07:23:10.823Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nathan Fritz 🌯🤔",
+            "screen_name": "fritzy",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "14498374",
+            "id": "14498374"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "46"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954598885292322816",
+      "id_str": "954600170104107008",
+      "in_reply_to_user_id": "14498374",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954600170104107008",
+      "in_reply_to_status_id": "954598885292322816",
+      "created_at": "Sat Jan 20 06:23:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@fritzy Nope. Still grinding through season 2.",
+      "lang": "en",
+      "in_reply_to_screen_name": "fritzy",
+      "in_reply_to_user_id_str": "14498374"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954597393923624962"
+          ],
+          "editableUntil": "2018-01-20T07:12:08.930Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "theg",
+            "screen_name": "thegareth",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "37883",
+            "id": "37883"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "70"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954597187249418242",
+      "id_str": "954597393923624962",
+      "in_reply_to_user_id": "37883",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954597393923624962",
+      "in_reply_to_status_id": "954597187249418242",
+      "created_at": "Sat Jan 20 06:12:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@thegareth That's what I did the rest of this week but I'm sick today.",
+      "lang": "en",
+      "in_reply_to_screen_name": "thegareth",
+      "in_reply_to_user_id_str": "37883"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954597281281449984"
+          ],
+          "editableUntil": "2018-01-20T07:11:42.074Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Chris Anderson",
+            "screen_name": "crandycodes",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "1355546107",
+            "id": "1355546107"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954597049093169160",
+      "id_str": "954597281281449984",
+      "in_reply_to_user_id": "1355546107",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954597281281449984",
+      "in_reply_to_status_id": "954597049093169160",
+      "created_at": "Sat Jan 20 06:11:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@crandycodes But would that be a bad thing?",
+      "lang": "en",
+      "in_reply_to_screen_name": "crandycodes",
+      "in_reply_to_user_id_str": "1355546107"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954597097474371585"
+          ],
+          "editableUntil": "2018-01-20T07:10:58.251Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "⭐@mollymorphic@mastodon.social✨",
+            "screen_name": "mollymorphic",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "1616354534",
+            "id": "1616354534"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "189"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954596610117423104",
+      "id_str": "954597097474371585",
+      "in_reply_to_user_id": "1616354534",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954597097474371585",
+      "in_reply_to_status_id": "954596610117423104",
+      "created_at": "Sat Jan 20 06:10:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@mollymorphic If he tells one more story about an ancient legend of his people that turns out to be key to unraveling that episode's mystery I am going to throw something through my screen.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mollymorphic",
+      "in_reply_to_user_id_str": "1616354534"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954596651439566853"
+          ],
+          "editableUntil": "2018-01-20T07:09:11.908Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "209"
+      ],
+      "favorite_count": "92",
+      "in_reply_to_status_id_str": "954596327861624834",
+      "id_str": "954596651439566853",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "7",
+      "id": "954596651439566853",
+      "in_reply_to_status_id": "954596327861624834",
+      "created_at": "Sat Jan 20 06:09:11 +0000 2018",
+      "favorited": false,
+      "full_text": "Why am I spending my Friday night explaining to an uncaring internet why people should not invest in banana futures via a startup blockchain nonsense scam? I need to find better things to do with my damn time.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954596327861624834"
+          ],
+          "editableUntil": "2018-01-20T07:07:54.761Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "200"
+      ],
+      "favorite_count": "63",
+      "in_reply_to_status_id_str": "954596084046733312",
+      "id_str": "954596327861624834",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "954596327861624834",
+      "in_reply_to_status_id": "954596084046733312",
+      "created_at": "Sat Jan 20 06:07:54 +0000 2018",
+      "favorited": false,
+      "full_text": "(p.s. it is SUPER PROBLEMATIC that there is a brand of clothing popular with rich white people named after a cruel system that locks nations into poverty against their will but I will pick my battles)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954596084046733312"
+          ],
+          "editableUntil": "2018-01-20T07:06:56.631Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/naYG4GMzHC",
+            "expanded_url": "https://en.wikipedia.org/wiki/Banana_republic",
+            "display_url": "en.wikipedia.org/wiki/Banana_re…",
+            "indices": [
+              "248",
+              "271"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "271"
+      ],
+      "favorite_count": "57",
+      "in_reply_to_status_id_str": "954592937702125568",
+      "id_str": "954596084046733312",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "13",
+      "id": "954596084046733312",
+      "in_reply_to_status_id": "954592937702125568",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 06:06:56 +0000 2018",
+      "favorited": false,
+      "full_text": "Bananas are such a terrible business that the only way you can make money with them is to viciously exploit labor to keep costs low, which requires controlling the entire political structure of a country. That's where \"banana republic\" comes from: https://t.co/naYG4GMzHC",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954593005767241730"
+          ],
+          "editableUntil": "2018-01-20T06:54:42.712Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "suldrew 🚲☕️🏳️‍🌈 now at suldrew@xoxo.zone",
+            "screen_name": "suldrew",
+            "indices": [
+              "3",
+              "11"
+            ],
+            "id_str": "15742043",
+            "id": "15742043"
+          },
+          {
+            "name": "Laurie Voss moved to @seldo@alpaca.gold",
+            "screen_name": "seldo",
+            "indices": [
+              "13",
+              "19"
+            ],
+            "id_str": "15453",
+            "id": "15453"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "0",
+      "id_str": "954593005767241730",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954593005767241730",
+      "created_at": "Sat Jan 20 05:54:42 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @suldrew: @seldo There’s always money in the banana coin",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954592937702125568"
+          ],
+          "editableUntil": "2018-01-20T06:54:26.484Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "207"
+      ],
+      "favorite_count": "37",
+      "in_reply_to_status_id_str": "954591087984701440",
+      "id_str": "954592937702125568",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "954592937702125568",
+      "in_reply_to_status_id": "954591087984701440",
+      "created_at": "Sat Jan 20 05:54:26 +0000 2018",
+      "favorited": false,
+      "full_text": "Look folks, I grew up in the Caribbean, learning a little bit about bananas is inevitable. And one of the most obvious things about bananas is that they are a terrible investment. They barely make any money.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954591653976719360"
+          ],
+          "editableUntil": "2018-01-20T06:49:20.420Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Sven Haster",
+            "screen_name": "BuurmanSven",
+            "indices": [
+              "11",
+              "23"
+            ],
+            "id_str": "352956496",
+            "id": "352956496"
+          },
+          {
+            "name": "Travis CI",
+            "screen_name": "travisci",
+            "indices": [
+              "24",
+              "33"
+            ],
+            "id_str": "252481460",
+            "id": "252481460"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "141"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954585072471953408",
+      "id_str": "954591653976719360",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954591653976719360",
+      "in_reply_to_status_id": "954585072471953408",
+      "created_at": "Sat Jan 20 05:49:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @BuurmanSven @travisci They recognize the problem, it’s just not their #1 issue right now. I understand their position completely.",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954591288996712449"
+          ],
+          "editableUntil": "2018-01-20T06:47:53.402Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matt Hargett",
+            "screen_name": "syke",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "14270895",
+            "id": "14270895"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "65"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954583329637941248",
+      "id_str": "954591288996712449",
+      "in_reply_to_user_id": "14270895",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954591288996712449",
+      "in_reply_to_status_id": "954583329637941248",
+      "created_at": "Sat Jan 20 05:47:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@syke Starbuck is kind of an avatar but the president is awesome.",
+      "lang": "en",
+      "in_reply_to_screen_name": "syke",
+      "in_reply_to_user_id_str": "14270895"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954591087984701440"
+          ],
+          "editableUntil": "2018-01-20T06:47:05.477Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/lzOiA8qJAq",
+            "expanded_url": "https://twitter.com/thegrugq/status/954543461817970688",
+            "display_url": "twitter.com/thegrugq/statu…",
+            "indices": [
+              "17",
+              "40"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "40"
+      ],
+      "favorite_count": "77",
+      "id_str": "954591087984701440",
+      "truncated": false,
+      "retweet_count": "18",
+      "id": "954591087984701440",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 05:47:05 +0000 2018",
+      "favorited": false,
+      "full_text": "HOW IS THIS REAL https://t.co/lzOiA8qJAq",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954581392687448064"
+          ],
+          "editableUntil": "2018-01-20T06:08:33.938Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matt Hargett",
+            "screen_name": "syke",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "14270895",
+            "id": "14270895"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "151"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954580263425662979",
+      "id_str": "954581392687448064",
+      "in_reply_to_user_id": "14270895",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954581392687448064",
+      "in_reply_to_status_id": "954580263425662979",
+      "created_at": "Sat Jan 20 05:08:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@syke Every Star Trek series I've seen (except, refreshingly, Discovery) writes women this way. I don't think it's a specific problem with this series.",
+      "lang": "en",
+      "in_reply_to_screen_name": "syke",
+      "in_reply_to_user_id_str": "14270895"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954580852087799808"
+          ],
+          "editableUntil": "2018-01-20T06:06:25.049Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Sven Haster",
+            "screen_name": "BuurmanSven",
+            "indices": [
+              "11",
+              "23"
+            ],
+            "id_str": "352956496",
+            "id": "352956496"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "206"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954579970369536000",
+      "id_str": "954580852087799808",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954580852087799808",
+      "in_reply_to_status_id": "954579970369536000",
+      "created_at": "Sat Jan 20 05:06:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @BuurmanSven Travis CI is all by itself responsible for 10% of downloads from npm. We've offered to supply them with a caching proxy but they, like us, are a small company with limited resources.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954580357029900290"
+          ],
+          "editableUntil": "2018-01-20T06:04:27.018Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nick Maietta",
+            "screen_name": "maietta",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "17108257",
+            "id": "17108257"
+          },
+          {
+            "name": "📦🛠👷🏻‍♂️Sean Larkin",
+            "screen_name": "TheLarkInn",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "17607249",
+            "id": "17607249"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "124"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954579859862298626",
+      "id_str": "954580357029900290",
+      "in_reply_to_user_id": "17108257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954580357029900290",
+      "in_reply_to_status_id": "954579859862298626",
+      "created_at": "Sat Jan 20 05:04:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@maietta @TheLarkInn Have you tried --prefer-offline in npm 5? It works very well in situations with slow or flaky internet.",
+      "lang": "en",
+      "in_reply_to_screen_name": "maietta",
+      "in_reply_to_user_id_str": "17108257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954580113923829763"
+          ],
+          "editableUntil": "2018-01-20T06:03:29.057Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Revin Guillen",
+            "screen_name": "revin",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "14496796",
+            "id": "14496796"
+          },
+          {
+            "name": "Laurie Voss moved to @seldo@alpaca.gold",
+            "screen_name": "seldo",
+            "indices": [
+              "11",
+              "17"
+            ],
+            "id_str": "15453",
+            "id": "15453"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "954580113923829763",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954580113923829763",
+      "created_at": "Sat Jan 20 05:03:29 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @revin: @seldo And the Vulcans gave the same generation the false sense that they could just adopt logic and become superior to lesser/e…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954579970369536000"
+          ],
+          "editableUntil": "2018-01-20T06:02:54.831Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Sven Haster",
+            "screen_name": "BuurmanSven",
+            "indices": [
+              "11",
+              "23"
+            ],
+            "id_str": "352956496",
+            "id": "352956496"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "218"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "954578318052872192",
+      "id_str": "954579970369536000",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954579970369536000",
+      "in_reply_to_status_id": "954578318052872192",
+      "created_at": "Sat Jan 20 05:02:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @BuurmanSven It's not a problem with npm's caching, it's a symptom of CI workflows -- most CI sets up a fresh VM on every build, with no cache. So, yes, an enormous number of uncached builds are responsible.",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954576965482106880"
+          ],
+          "editableUntil": "2018-01-20T05:50:58.410Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ben",
+            "screen_name": "sangster",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "312909735",
+            "id": "312909735"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "85"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954576778122571776",
+      "id_str": "954576965482106880",
+      "in_reply_to_user_id": "312909735",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954576965482106880",
+      "in_reply_to_status_id": "954576778122571776",
+      "created_at": "Sat Jan 20 04:50:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@sangster Yessssss. And also why Star Trek fans are having trouble getting behind it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sangster",
+      "in_reply_to_user_id_str": "312909735"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954576196745904128"
+          ],
+          "editableUntil": "2018-01-20T05:47:55.129Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "183"
+      ],
+      "favorite_count": "9",
+      "in_reply_to_status_id_str": "954575666376204289",
+      "id_str": "954576196745904128",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954576196745904128",
+      "in_reply_to_status_id": "954575666376204289",
+      "created_at": "Sat Jan 20 04:47:55 +0000 2018",
+      "favorited": false,
+      "full_text": "I genuinely believe the absurdly written women of Star Trek created a generation of men with warped expectations of how relationships are supposed to work, resulting in entitled MRAs.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954575666376204289"
+          ],
+          "editableUntil": "2018-01-20T05:45:48.679Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "194"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "954574261296902146",
+      "id_str": "954575666376204289",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954575666376204289",
+      "in_reply_to_status_id": "954574261296902146",
+      "created_at": "Sat Jan 20 04:45:48 +0000 2018",
+      "favorited": false,
+      "full_text": "And do not get me started on how every member of the crew is emotionally stunted. Women are written more like feral cats, to be tricked or bribed into doing what men want, with no agency at all.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954574261296902146"
+          ],
+          "editableUntil": "2018-01-20T05:40:13.682Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "168"
+      ],
+      "favorite_count": "20",
+      "in_reply_to_status_id_str": "954573019086639104",
+      "id_str": "954574261296902146",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954574261296902146",
+      "in_reply_to_status_id": "954573019086639104",
+      "created_at": "Sat Jan 20 04:40:13 +0000 2018",
+      "favorited": false,
+      "full_text": "In S3E24, the crew have to wait to travel down to a planet because of bad weather at night. They are on a fucking spaceship. They can go to the side where it's daytime.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954573019086639104"
+          ],
+          "editableUntil": "2018-01-20T05:35:17.516Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "45",
+      "id_str": "954573019086639104",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954573019086639104",
+      "created_at": "Sat Jan 20 04:35:17 +0000 2018",
+      "favorited": false,
+      "full_text": "My completist hate-watching of Voyager continues. It consists of me repeatedly screaming \"WHO WROTE THIS SHIT?!\" at the screen.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954538476354994177"
+          ],
+          "editableUntil": "2018-01-20T03:18:01.887Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "212"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "954537797536436224",
+      "id_str": "954538476354994177",
+      "in_reply_to_user_id": "5447362",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954538476354994177",
+      "in_reply_to_status_id": "954537797536436224",
+      "created_at": "Sat Jan 20 02:18:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi I really AM done, but: you can believe if you wish that the free market resists corruption better than other systems, but the evidence does not support that conclusion. Again, I appreciate your civility.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sintaxi",
+      "in_reply_to_user_id_str": "5447362"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954536034280161281"
+          ],
+          "editableUntil": "2018-01-20T03:08:19.651Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "103"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "954535409584824320",
+      "id_str": "954536034280161281",
+      "in_reply_to_user_id": "5447362",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954536034280161281",
+      "in_reply_to_status_id": "954535409584824320",
+      "created_at": "Sat Jan 20 02:08:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi The solution to corruption and inefficiency is not to abandon the attempt to run a government.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sintaxi",
+      "in_reply_to_user_id_str": "5447362"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954535657124196352"
+          ],
+          "editableUntil": "2018-01-20T03:06:49.730Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "248"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954533820090339329",
+      "id_str": "954535657124196352",
+      "in_reply_to_user_id": "5447362",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954535657124196352",
+      "in_reply_to_status_id": "954533820090339329",
+      "created_at": "Sat Jan 20 02:06:49 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi Much as I would love to present you with facts counter to your statements indefinitely, only to have you ignore them and present some new statement for me to disprove yet again, I'm done doing research for you tonight. Have a good evening!",
+      "lang": "en",
+      "in_reply_to_screen_name": "sintaxi",
+      "in_reply_to_user_id_str": "5447362"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954531239934943232"
+          ],
+          "editableUntil": "2018-01-20T02:49:16.590Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/452OvveIJr",
+            "expanded_url": "http://www.chicagotribune.com/business/columnists/ct-harris-chicago-junk-0621-biz-20150619-column.html",
+            "display_url": "chicagotribune.com/business/colum…",
+            "indices": [
+              "140",
+              "163"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "163"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954529992901246976",
+      "id_str": "954531239934943232",
+      "in_reply_to_user_id": "5447362",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954531239934943232",
+      "in_reply_to_status_id": "954529992901246976",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 01:49:16 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi Detroit's auto industry collapsed. I'm not sure that can be blamed on the democrats. Chicago is not insolvent or even close to it: https://t.co/452OvveIJr",
+      "lang": "en",
+      "in_reply_to_screen_name": "sintaxi",
+      "in_reply_to_user_id_str": "5447362"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954530776338464768"
+          ],
+          "editableUntil": "2018-01-20T02:47:26.060Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954530776338464768/photo/1",
+            "indices": [
+              "69",
+              "92"
+            ],
+            "url": "https://t.co/3XviZ1VCpC",
+            "media_url": "http://pbs.twimg.com/media/DT8sfW8VwAANU9c.jpg",
+            "id_str": "954530563272065024",
+            "id": "954530563272065024",
+            "media_url_https": "https://pbs.twimg.com/media/DT8sfW8VwAANU9c.jpg",
+            "sizes": {
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "409",
+                "h": "765",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "409",
+                "h": "765",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "364",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/3XviZ1VCpC"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "92"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954530207888678912",
+      "id_str": "954530776338464768",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954530776338464768",
+      "in_reply_to_status_id": "954530207888678912",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 01:47:26 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi States by unemployment rate is a mixed bag, no clear trend. https://t.co/3XviZ1VCpC",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954530776338464768/photo/1",
+            "indices": [
+              "69",
+              "92"
+            ],
+            "url": "https://t.co/3XviZ1VCpC",
+            "media_url": "http://pbs.twimg.com/media/DT8sfW8VwAANU9c.jpg",
+            "id_str": "954530563272065024",
+            "id": "954530563272065024",
+            "media_url_https": "https://pbs.twimg.com/media/DT8sfW8VwAANU9c.jpg",
+            "sizes": {
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "409",
+                "h": "765",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "409",
+                "h": "765",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "364",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/3XviZ1VCpC"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954530207888678912"
+          ],
+          "editableUntil": "2018-01-20T02:45:10.531Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954530207888678912/photo/1",
+            "indices": [
+              "124",
+              "147"
+            ],
+            "url": "https://t.co/4s6gt8B7io",
+            "media_url": "http://pbs.twimg.com/media/DT8sAf9VAAAml3_.jpg",
+            "id_str": "954530033116184576",
+            "id": "954530033116184576",
+            "media_url_https": "https://pbs.twimg.com/media/DT8sAf9VAAAml3_.jpg",
+            "sizes": {
+              "small": {
+                "w": "216",
+                "h": "680",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "266",
+                "h": "836",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "266",
+                "h": "836",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/4s6gt8B7io"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "147"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954529662453006337",
+      "id_str": "954530207888678912",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954530207888678912",
+      "in_reply_to_status_id": "954529662453006337",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 01:45:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi Here is a list of US states by GDP per capita (lowest first) [source: wikipedia]. Another long list of red states. https://t.co/4s6gt8B7io",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954530207888678912/photo/1",
+            "indices": [
+              "124",
+              "147"
+            ],
+            "url": "https://t.co/4s6gt8B7io",
+            "media_url": "http://pbs.twimg.com/media/DT8sAf9VAAAml3_.jpg",
+            "id_str": "954530033116184576",
+            "id": "954530033116184576",
+            "media_url_https": "https://pbs.twimg.com/media/DT8sAf9VAAAml3_.jpg",
+            "sizes": {
+              "small": {
+                "w": "216",
+                "h": "680",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "266",
+                "h": "836",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "266",
+                "h": "836",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/4s6gt8B7io"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954529662453006337"
+          ],
+          "editableUntil": "2018-01-20T02:43:00.489Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/RMLYqGXCEe",
+            "expanded_url": "https://www.statista.com/statistics/252064/us-infant-mortality-rate-by-ethnicity-2011/",
+            "display_url": "statista.com/statistics/252…",
+            "indices": [
+              "58",
+              "81"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "126"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954528770571948032",
+      "id_str": "954529662453006337",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954529662453006337",
+      "in_reply_to_status_id": "954528770571948032",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 01:43:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi Here is a list of US states by infant mortality: https://t.co/RMLYqGXCEe The bottom end is overwhelmingly red states.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954529051766505472"
+          ],
+          "editableUntil": "2018-01-20T02:40:34.890Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "99"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954528710429876224",
+      "id_str": "954529051766505472",
+      "in_reply_to_user_id": "5447362",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954529051766505472",
+      "in_reply_to_status_id": "954528710429876224",
+      "created_at": "Sat Jan 20 01:40:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi The preamble to the list does not mention opinions of the residents being a factor at all.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sintaxi",
+      "in_reply_to_user_id_str": "5447362"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954528770571948032"
+          ],
+          "editableUntil": "2018-01-20T02:39:27.848Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "227"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954528293868388352",
+      "id_str": "954528770571948032",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954528770571948032",
+      "in_reply_to_status_id": "954528293868388352",
+      "created_at": "Sat Jan 20 01:39:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi Any list that puts North Dakota at the top of \"well run\" is pretty suspect anyway -- North Dakota is in the middle of a gigantic fracking-driven energy boom. They are swimming in money. That doesn't make them well run.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954528293868388352"
+          ],
+          "editableUntil": "2018-01-20T02:37:34.193Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954527965525651456",
+      "id_str": "954528293868388352",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954528293868388352",
+      "in_reply_to_status_id": "954527965525651456",
+      "created_at": "Sat Jan 20 01:37:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi And I'm afraid, without being disingenuous, that I don't know what you mean by \"what happened in Detroit and Chicago\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954527965525651456"
+          ],
+          "editableUntil": "2018-01-20T02:36:15.910Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "286"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954525164376436736",
+      "id_str": "954527965525651456",
+      "in_reply_to_user_id": "5447362",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954527965525651456",
+      "in_reply_to_status_id": "954525164376436736",
+      "created_at": "Sat Jan 20 01:36:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi In what order are the states in this list being ranked? It's not poverty, nor unemployment, nor debt, nor budget deficit, nor household income, nor as far as I can tell any combination of these. They do not explain their methodology, making it opaque at best, suspect at worst.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sintaxi",
+      "in_reply_to_user_id_str": "5447362"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954524582014144512"
+          ],
+          "editableUntil": "2018-01-20T02:22:49.218Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "JC Grubbs",
+            "screen_name": "thegrubbsian",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "12521122",
+            "id": "12521122"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "116"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954524392641396737",
+      "id_str": "954524582014144512",
+      "in_reply_to_user_id": "12521122",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954524582014144512",
+      "in_reply_to_status_id": "954524392641396737",
+      "created_at": "Sat Jan 20 01:22:49 +0000 2018",
+      "favorited": false,
+      "full_text": "@thegrubbsian I believe he substituted the word \"born\" for the word \"torn\" in his text, but even then it's not true.",
+      "lang": "en",
+      "in_reply_to_screen_name": "thegrubbsian",
+      "in_reply_to_user_id_str": "12521122"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954524327331872768"
+          ],
+          "editableUntil": "2018-01-20T02:21:48.497Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "56"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954523964440592384",
+      "id_str": "954524327331872768",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954524327331872768",
+      "in_reply_to_status_id": "954523964440592384",
+      "created_at": "Sat Jan 20 01:21:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi So let me know what metric you're referring to.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954523964440592384"
+          ],
+          "editableUntil": "2018-01-20T02:20:21.977Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954523964440592384/photo/1",
+            "indices": [
+              "139",
+              "162"
+            ],
+            "url": "https://t.co/xTZaR7Dsew",
+            "media_url": "http://pbs.twimg.com/media/DT8mX_fVAAACP96.jpg",
+            "id_str": "954523839647514624",
+            "id": "954523839647514624",
+            "media_url_https": "https://pbs.twimg.com/media/DT8mX_fVAAACP96.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "487",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "783",
+                "h": "561",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "783",
+                "h": "561",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/xTZaR7Dsew"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "162"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954522985259417600",
+      "id_str": "954523964440592384",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954523964440592384",
+      "in_reply_to_status_id": "954522985259417600",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 01:20:21 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi This map of states with revenue shortfalls this year (as a proxy for \"fiscally responsible\") doesn't show a clear red/blue trend: https://t.co/xTZaR7Dsew",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954523964440592384/photo/1",
+            "indices": [
+              "139",
+              "162"
+            ],
+            "url": "https://t.co/xTZaR7Dsew",
+            "media_url": "http://pbs.twimg.com/media/DT8mX_fVAAACP96.jpg",
+            "id_str": "954523839647514624",
+            "id": "954523839647514624",
+            "media_url_https": "https://pbs.twimg.com/media/DT8mX_fVAAACP96.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "487",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "783",
+                "h": "561",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "783",
+                "h": "561",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/xTZaR7Dsew"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954522985259417600"
+          ],
+          "editableUntil": "2018-01-20T02:16:28.522Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "◢ Brøck Whitten",
+            "screen_name": "sintaxi",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "5447362",
+            "id": "5447362"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954522985259417600/photo/1",
+            "indices": [
+              "153",
+              "176"
+            ],
+            "url": "https://t.co/4eICrMWHFM",
+            "media_url": "http://pbs.twimg.com/media/DT8llK6XkAArcNE.jpg",
+            "id_str": "954522966540390400",
+            "id": "954522966540390400",
+            "media_url_https": "https://pbs.twimg.com/media/DT8llK6XkAArcNE.jpg",
+            "sizes": {
+              "medium": {
+                "w": "355",
+                "h": "837",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "288",
+                "h": "680",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "355",
+                "h": "837",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/4eICrMWHFM"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "176"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954521405223153670",
+      "id_str": "954522985259417600",
+      "in_reply_to_user_id": "5447362",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954522985259417600",
+      "in_reply_to_status_id": "954521405223153670",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 20 01:16:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@sintaxi Not sure how you draw that conclusion from the report you just linked to. Here's the top 20 states are territories by poverty (from wikipedia): https://t.co/4eICrMWHFM",
+      "lang": "en",
+      "in_reply_to_screen_name": "sintaxi",
+      "in_reply_to_user_id_str": "5447362",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/954522985259417600/photo/1",
+            "indices": [
+              "153",
+              "176"
+            ],
+            "url": "https://t.co/4eICrMWHFM",
+            "media_url": "http://pbs.twimg.com/media/DT8llK6XkAArcNE.jpg",
+            "id_str": "954522966540390400",
+            "id": "954522966540390400",
+            "media_url_https": "https://pbs.twimg.com/media/DT8llK6XkAArcNE.jpg",
+            "sizes": {
+              "medium": {
+                "w": "355",
+                "h": "837",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "288",
+                "h": "680",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "355",
+                "h": "837",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/4eICrMWHFM"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954515501488603136"
+          ],
+          "editableUntil": "2018-01-20T01:46:44.252Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "153"
+      ],
+      "favorite_count": "32",
+      "in_reply_to_status_id_str": "954507284415070208",
+      "id_str": "954515501488603136",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "10",
+      "id": "954515501488603136",
+      "in_reply_to_status_id": "954507284415070208",
+      "created_at": "Sat Jan 20 00:46:44 +0000 2018",
+      "favorited": false,
+      "full_text": "Compassion and fiscal responsibility are not at odds. Being kind is cheaper than being cruel. Those who say otherwise are not in possession of the facts.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954509400432984064"
+          ],
+          "editableUntil": "2018-01-20T01:22:29.647Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Aaron P Blohowiak",
+            "screen_name": "aaronblohowiak",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "7142142",
+            "id": "7142142"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "173"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954508946584215552",
+      "id_str": "954509400432984064",
+      "in_reply_to_user_id": "7142142",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954509400432984064",
+      "in_reply_to_status_id": "954508946584215552",
+      "created_at": "Sat Jan 20 00:22:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@aaronblohowiak GOP supporters either:\nA: understand that cutting healthcare increases costs (cruel)\nB: do not understand this (ignorant)\nThere's not some other option here.",
+      "lang": "en",
+      "in_reply_to_screen_name": "aaronblohowiak",
+      "in_reply_to_user_id_str": "7142142"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954508592781996033"
+          ],
+          "editableUntil": "2018-01-20T01:19:17.088Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Waylon is god Amen 🎶🤠",
+            "screen_name": "livemusic4me",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "151766733",
+            "id": "151766733"
+          },
+          {
+            "name": "Rudra",
+            "screen_name": "rudrayogini",
+            "indices": [
+              "14",
+              "26"
+            ],
+            "id_str": "767512100621082624",
+            "id": "767512100621082624"
+          },
+          {
+            "name": "💖💜💙 Kaylara's Queer Rage Hour 🌈",
+            "screen_name": "KaylaraOwl",
+            "indices": [
+              "27",
+              "38"
+            ],
+            "id_str": "119166897",
+            "id": "119166897"
+          },
+          {
+            "name": "🇨🇦 Captain Snark 🌹",
+            "screen_name": "KermitHigby",
+            "indices": [
+              "51",
+              "63"
+            ],
+            "id_str": "901288458748080128",
+            "id": "901288458748080128"
+          },
+          {
+            "name": "Taylor Jones 🌹",
+            "screen_name": "Tay_J_Jones",
+            "indices": [
+              "64",
+              "76"
+            ],
+            "id_str": "93746094",
+            "id": "93746094"
+          },
+          {
+            "name": "CitizensFedUp",
+            "screen_name": "CitizensFedUp",
+            "indices": [
+              "77",
+              "91"
+            ],
+            "id_str": "2732944034",
+            "id": "2732944034"
+          },
+          {
+            "name": "Dems Find Solution To Bernie Sanders Problem",
+            "screen_name": "AntiSocialstPAC",
+            "indices": [
+              "92",
+              "108"
+            ],
+            "id_str": "941512655961055235",
+            "id": "941512655961055235"
+          },
+          {
+            "name": "Puesto Locoâ„¢",
+            "screen_name": "PuestoLoco",
+            "indices": [
+              "109",
+              "120"
+            ],
+            "id_str": "157099071",
+            "id": "157099071"
+          },
+          {
+            "name": "Emanuel Zbeda",
+            "screen_name": "therealezway",
+            "indices": [
+              "121",
+              "134"
+            ],
+            "id_str": "2784089552",
+            "id": "2784089552"
+          },
+          {
+            "name": "Sally Albright",
+            "screen_name": "SallyAlbright",
+            "indices": [
+              "135",
+              "149"
+            ],
+            "id_str": "11395432",
+            "id": "11395432"
+          },
+          {
+            "name": "Queen of Shade🇺🇸",
+            "screen_name": "Gravityisback1",
+            "indices": [
+              "167",
+              "182"
+            ],
+            "id_str": "847110247843938304",
+            "id": "847110247843938304"
+          },
+          {
+            "name": "I was too busy ratfucking a lady to notice sexism",
+            "screen_name": "BravenakBlog",
+            "indices": [
+              "183",
+              "196"
+            ],
+            "id_str": "913983698013274112",
+            "id": "913983698013274112"
+          },
+          {
+            "name": "Candypants Moiston",
+            "screen_name": "CandiceAiston",
+            "indices": [
+              "197",
+              "211"
+            ],
+            "id_str": "18337740",
+            "id": "18337740"
+          },
+          {
+            "name": "Mr. Weeks 🤴🏾",
+            "screen_name": "MrDane1982",
+            "indices": [
+              "212",
+              "223"
+            ],
+            "id_str": "543780273",
+            "id": "543780273"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "297"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952343380406734848",
+      "id_str": "954508592781996033",
+      "in_reply_to_user_id": "151766733",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954508592781996033",
+      "in_reply_to_status_id": "952343380406734848",
+      "created_at": "Sat Jan 20 00:19:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@livemusic4me @rudrayogini @KaylaraOwl @Phaedrus08 @KermitHigby @Tay_J_Jones @CitizensFedUp @AntiSocialstPAC @PuestoLoco @therealezway @SallyAlbright @Chrisnotmypotus @Gravityisback1 @BravenakBlog @CandiceAiston @MrDane1982 This is an argument for paying teachers more, not for paying clerks less.",
+      "lang": "en",
+      "in_reply_to_screen_name": "livemusic4me",
+      "in_reply_to_user_id_str": "151766733"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954507643783069696"
+          ],
+          "editableUntil": "2018-01-20T01:15:30.829Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dan \"Quietly Quit\" Hon",
+            "screen_name": "hondanhon",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "32124032",
+            "id": "32124032"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "147"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954507481610305536",
+      "id_str": "954507643783069696",
+      "in_reply_to_user_id": "32124032",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954507643783069696",
+      "in_reply_to_status_id": "954507481610305536",
+      "created_at": "Sat Jan 20 00:15:30 +0000 2018",
+      "favorited": false,
+      "full_text": "@hondanhon With the exception of unborn children, who must be protected at all costs. Once they're born, fuck 'em. Let 'em starve and get diseases.",
+      "lang": "en",
+      "in_reply_to_screen_name": "hondanhon",
+      "in_reply_to_user_id_str": "32124032"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954507284415070208"
+          ],
+          "editableUntil": "2018-01-20T01:14:05.149Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "240"
+      ],
+      "favorite_count": "112",
+      "in_reply_to_status_id_str": "954506543927447552",
+      "id_str": "954507284415070208",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "42",
+      "id": "954507284415070208",
+      "in_reply_to_status_id": "954506543927447552",
+      "created_at": "Sat Jan 20 00:14:05 +0000 2018",
+      "favorited": false,
+      "full_text": "Paying for firefighters is cheaper than letting buildings burn down. Providing housing is cheaper than letting people be homeless. Paying teachers is cheaper than having an uneducated work force. Governments have a function, and this is it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954506543927447552"
+          ],
+          "editableUntil": "2018-01-20T01:11:08.603Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "167"
+      ],
+      "favorite_count": "31",
+      "in_reply_to_status_id_str": "954506332370948096",
+      "id_str": "954506543927447552",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "9",
+      "id": "954506543927447552",
+      "in_reply_to_status_id": "954506332370948096",
+      "created_at": "Sat Jan 20 00:11:08 +0000 2018",
+      "favorited": false,
+      "full_text": "The GOP is not the party of fiscal responsibility, they are the party of high spending plus pointless and unnecessary cruelty, because that plays well with their base.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954506332370948096"
+          ],
+          "editableUntil": "2018-01-20T01:10:18.164Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "173"
+      ],
+      "favorite_count": "100",
+      "id_str": "954506332370948096",
+      "truncated": false,
+      "retweet_count": "33",
+      "id": "954506332370948096",
+      "created_at": "Sat Jan 20 00:10:18 +0000 2018",
+      "favorited": false,
+      "full_text": "Always remember: providing healthcare is always cheaper than not providing it. Any time the GOP talks about cutting healthcare, they are increasing spending, not cutting it.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954492398725296128"
+          ],
+          "editableUntil": "2018-01-20T00:14:56.124Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/xOlJl89mNu",
+            "expanded_url": "https://twitter.com/SenateMajLdr/status/954409393507876864",
+            "display_url": "twitter.com/SenateMajLdr/s…",
+            "indices": [
+              "169",
+              "192"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "192"
+      ],
+      "favorite_count": "43",
+      "id_str": "954492398725296128",
+      "truncated": false,
+      "retweet_count": "20",
+      "id": "954492398725296128",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 19 23:14:56 +0000 2018",
+      "favorited": false,
+      "full_text": "This is not an either-or choice. This country can do both. It won't cost anything. Both programs generate more money than they cost. You're just being mindlessly cruel. https://t.co/xOlJl89mNu",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954491547914924032"
+          ],
+          "editableUntil": "2018-01-20T00:11:33.275Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sthupa Shakur",
+            "screen_name": "vinnehvincent",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "25178913",
+            "id": "25178913"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "64"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954490706684465153",
+      "id_str": "954491547914924032",
+      "in_reply_to_user_id": "25178913",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954491547914924032",
+      "in_reply_to_status_id": "954490706684465153",
+      "created_at": "Fri Jan 19 23:11:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@vinnehvincent Not sure if this is a compliment or an insult tbh",
+      "lang": "en",
+      "in_reply_to_screen_name": "vinnehvincent",
+      "in_reply_to_user_id_str": "25178913"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954465715343343616"
+          ],
+          "editableUntil": "2018-01-19T22:28:54.310Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matt",
+            "screen_name": "mattsiegel",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14904769",
+            "id": "14904769"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "41"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "954465137104007168",
+      "id_str": "954465715343343616",
+      "in_reply_to_user_id": "14904769",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954465715343343616",
+      "in_reply_to_status_id": "954465137104007168",
+      "created_at": "Fri Jan 19 21:28:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@mattsiegel Well as a Virgo I'm outraged.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mattsiegel",
+      "in_reply_to_user_id_str": "14904769"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954465496895700992"
+          ],
+          "editableUntil": "2018-01-19T22:28:02.228Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ee",
+            "screen_name": "EWDurbin",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "14590010",
+            "id": "14590010"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/bqzuV5WDXz",
+            "expanded_url": "http://package.community",
+            "display_url": "package.community",
+            "indices": [
+              "44",
+              "67"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "68"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954464637218631680",
+      "id_str": "954465496895700992",
+      "in_reply_to_user_id": "14590010",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954465496895700992",
+      "in_reply_to_status_id": "954464637218631680",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 19 21:28:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@EWDurbin Would love to! Also have you seen https://t.co/bqzuV5WDXz?",
+      "lang": "en",
+      "in_reply_to_screen_name": "EWDurbin",
+      "in_reply_to_user_id_str": "14590010"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954463760730607616"
+          ],
+          "editableUntil": "2018-01-19T22:21:08.294Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/XPRwSypkQy",
+            "expanded_url": "https://twitter.com/ms_bianca_bisa/status/954432446300393473",
+            "display_url": "twitter.com/ms_bianca_bisa…",
+            "indices": [
+              "130",
+              "153"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "153"
+      ],
+      "favorite_count": "23",
+      "id_str": "954463760730607616",
+      "truncated": false,
+      "retweet_count": "7",
+      "id": "954463760730607616",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 19 21:21:08 +0000 2018",
+      "favorited": false,
+      "full_text": "Trump's bold new political position is that he is against any babies being born whatsoever. Let's see how it plays with his base. https://t.co/XPRwSypkQy",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583490085458042881"
+          ],
+          "editableUntil": "2022-10-21T16:37:10.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "205"
+      ],
+      "favorite_count": "31",
+      "id_str": "1583490085458042881",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583490085458042881",
+      "created_at": "Fri Oct 21 16:07:10 +0000 2022",
+      "favorited": false,
+      "full_text": "Gotta say my schooling led me to believe that the pre-colombian history and politics of the Yucatan Peninsula would be a lot more important and relevant to modern life than it has in fact turned out to be.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583460820930899968"
+          ],
+          "editableUntil": "2022-10-21T14:40:53.646Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Brodsky",
+            "screen_name": "a_drewsky",
+            "indices": [
+              "3",
+              "13"
+            ],
+            "id_str": "364634154",
+            "id": "364634154"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/a_drewsky/status/1583082040932474880/photo/1",
+            "source_status_id": "1583082040932474880",
+            "indices": [
+              "34",
+              "57"
+            ],
+            "url": "https://t.co/8IQRpVF7gN",
+            "media_url": "http://pbs.twimg.com/media/Ffg8YSLUoAIFNNG.png",
+            "id_str": "1583081656914583554",
+            "source_user_id": "364634154",
+            "id": "1583081656914583554",
+            "media_url_https": "https://pbs.twimg.com/media/Ffg8YSLUoAIFNNG.png",
+            "source_user_id_str": "364634154",
+            "sizes": {
+              "large": {
+                "w": "1274",
+                "h": "752",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "401",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "708",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "1583082040932474880",
+            "display_url": "pic.twitter.com/8IQRpVF7gN"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "57"
+      ],
+      "favorite_count": "0",
+      "id_str": "1583460820930899968",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583460820930899968",
+      "possibly_sensitive": false,
+      "created_at": "Fri Oct 21 14:10:53 +0000 2022",
+      "favorited": false,
+      "full_text": "RT @a_drewsky: data is my passion https://t.co/8IQRpVF7gN",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/a_drewsky/status/1583082040932474880/photo/1",
+            "source_status_id": "1583082040932474880",
+            "indices": [
+              "34",
+              "57"
+            ],
+            "url": "https://t.co/8IQRpVF7gN",
+            "media_url": "http://pbs.twimg.com/media/Ffg8YSLUoAIFNNG.png",
+            "id_str": "1583081656914583554",
+            "source_user_id": "364634154",
+            "id": "1583081656914583554",
+            "media_url_https": "https://pbs.twimg.com/media/Ffg8YSLUoAIFNNG.png",
+            "source_user_id_str": "364634154",
+            "sizes": {
+              "large": {
+                "w": "1274",
+                "h": "752",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "401",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "708",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "1583082040932474880",
+            "display_url": "pic.twitter.com/8IQRpVF7gN"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583447431370272769"
+          ],
+          "editableUntil": "2022-10-21T13:47:41.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Phil Dennis-Jordan 😷",
+            "screen_name": "pmjordan",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "14133059",
+            "id": "14133059"
+          },
+          {
+            "name": "John Bull",
+            "screen_name": "garius",
+            "indices": [
+              "10",
+              "17"
+            ],
+            "id_str": "7709782",
+            "id": "7709782"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "116"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "1583446715948204032",
+      "id_str": "1583447431370272769",
+      "in_reply_to_user_id": "14133059",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583447431370272769",
+      "in_reply_to_status_id": "1583446715948204032",
+      "created_at": "Fri Oct 21 13:17:41 +0000 2022",
+      "favorited": false,
+      "full_text": "@pmjordan @garius He is unbelievably arrogant, he genuinely believes he was doing a good job and can fix everything.",
+      "lang": "en",
+      "in_reply_to_screen_name": "pmjordan",
+      "in_reply_to_user_id_str": "14133059"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583446476058828801"
+          ],
+          "editableUntil": "2022-10-21T13:43:53.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Phil Dennis-Jordan 😷",
+            "screen_name": "pmjordan",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "14133059",
+            "id": "14133059"
+          },
+          {
+            "name": "John Bull",
+            "screen_name": "garius",
+            "indices": [
+              "10",
+              "17"
+            ],
+            "id_str": "7709782",
+            "id": "7709782"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "169"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1583446090736553985",
+      "id_str": "1583446476058828801",
+      "in_reply_to_user_id": "14133059",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583446476058828801",
+      "in_reply_to_status_id": "1583446090736553985",
+      "created_at": "Fri Oct 21 13:13:53 +0000 2022",
+      "favorited": false,
+      "full_text": "@pmjordan @garius Are you kidding the man believes he is the second Churchill, there is nothing in life he wants more than to be PM again, it is the only thing he wants.",
+      "lang": "en",
+      "in_reply_to_screen_name": "pmjordan",
+      "in_reply_to_user_id_str": "14133059"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583445015979708416"
+          ],
+          "editableUntil": "2022-10-21T13:38:05.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "182"
+      ],
+      "favorite_count": "27",
+      "in_reply_to_status_id_str": "1583444761859436544",
+      "id_str": "1583445015979708416",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1583445015979708416",
+      "in_reply_to_status_id": "1583444761859436544",
+      "created_at": "Fri Oct 21 13:08:05 +0000 2022",
+      "favorited": false,
+      "full_text": "I cannot stress enough that re-appointing Johnson as PM 3 months after kicking him out would destroy the Tory party inside and out and take the UK's international reputation with it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583444761859436544"
+          ],
+          "editableUntil": "2022-10-21T13:37:04.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "155"
+      ],
+      "favorite_count": "14",
+      "in_reply_to_status_id_str": "1583444013025091584",
+      "id_str": "1583444761859436544",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1583444761859436544",
+      "in_reply_to_status_id": "1583444013025091584",
+      "created_at": "Fri Oct 21 13:07:04 +0000 2022",
+      "favorited": false,
+      "full_text": "MPs have until Monday to find 100 others to nominate them for leadership of the party; Rishi Sunak currently has about 45 and Boris fucking Johnson has 24.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583444013025091584"
+          ],
+          "editableUntil": "2022-10-21T13:34:06.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/P3fU604zhG",
+            "expanded_url": "https://twitter.com/Jacob_Rees_Mogg/status/1583372255496896512",
+            "display_url": "twitter.com/Jacob_Rees_Mog…",
+            "indices": [
+              "12",
+              "35"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "39",
+      "id_str": "1583444013025091584",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1583444013025091584",
+      "possibly_sensitive": false,
+      "created_at": "Fri Oct 21 13:04:06 +0000 2022",
+      "favorited": false,
+      "full_text": "Bust it is. https://t.co/P3fU604zhG",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583301576969441281"
+          ],
+          "editableUntil": "2022-10-21T04:08:06.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/oxTTVsHzGa",
+            "expanded_url": "https://twitter.com/CaseyNewton/status/1583186623239290881",
+            "display_url": "twitter.com/CaseyNewton/st…",
+            "indices": [
+              "59",
+              "82"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "82"
+      ],
+      "favorite_count": "28",
+      "id_str": "1583301576969441281",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "1583301576969441281",
+      "possibly_sensitive": false,
+      "created_at": "Fri Oct 21 03:38:06 +0000 2022",
+      "favorited": false,
+      "full_text": "Remember kids, using pronouns is the same as being a nazi. https://t.co/oxTTVsHzGa",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583284504830963713"
+          ],
+          "editableUntil": "2022-10-21T03:00:16.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Christopher Neugebauer (@chrisjrn@social.coop)",
+            "screen_name": "chrisjrn",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "40449158",
+            "id": "40449158"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "120"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "1583284273590607872",
+      "id_str": "1583284504830963713",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583284504830963713",
+      "in_reply_to_status_id": "1583284273590607872",
+      "created_at": "Fri Oct 21 02:30:16 +0000 2022",
+      "favorited": false,
+      "full_text": "@chrisjrn But nobody called themselves \"prime minister\" at all until the mid 1800s so lots of them don't pass that test.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583284273590607872"
+          ],
+          "editableUntil": "2022-10-21T02:59:21.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Christopher Neugebauer (@chrisjrn@social.coop)",
+            "screen_name": "chrisjrn",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "40449158",
+            "id": "40449158"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "48"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "1583283311421448192",
+      "id_str": "1583284273590607872",
+      "in_reply_to_user_id": "40449158",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583284273590607872",
+      "in_reply_to_status_id": "1583283311421448192",
+      "created_at": "Fri Oct 21 02:29:21 +0000 2022",
+      "favorited": false,
+      "full_text": "@chrisjrn He did not. Interesting qualification.",
+      "lang": "en",
+      "in_reply_to_screen_name": "chrisjrn",
+      "in_reply_to_user_id_str": "40449158"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583279816672886784"
+          ],
+          "editableUntil": "2022-10-21T02:41:38.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Glockymolo Enjoyer",
+            "screen_name": "ysaw",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "8340382",
+            "id": "8340382"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "96"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1583278923059560448",
+      "id_str": "1583279816672886784",
+      "in_reply_to_user_id": "8340382",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583279816672886784",
+      "in_reply_to_status_id": "1583278923059560448",
+      "created_at": "Fri Oct 21 02:11:38 +0000 2022",
+      "favorited": false,
+      "full_text": "@ysaw The stats are hard to find because immigration stats are googlebombed by right wing jerks.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ysaw",
+      "in_reply_to_user_id_str": "8340382"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583279115334844416"
+          ],
+          "editableUntil": "2022-10-21T02:38:51.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "58"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1583278885831004161",
+      "id_str": "1583279115334844416",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583279115334844416",
+      "in_reply_to_status_id": "1583278885831004161",
+      "created_at": "Fri Oct 21 02:08:51 +0000 2022",
+      "favorited": false,
+      "full_text": "If you don't last 2 weeks, were you PM? What about 7 days?",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583278885831004161"
+          ],
+          "editableUntil": "2022-10-21T02:37:56.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "220"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "1583137448707489793",
+      "id_str": "1583278885831004161",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583278885831004161",
+      "in_reply_to_status_id": "1583137448707489793",
+      "created_at": "Fri Oct 21 02:07:56 +0000 2022",
+      "favorited": false,
+      "full_text": "Fun thought experiment: how brief would a prime minister's tenure need to be before you'd say \"they were never really PM\"? Lower bound is 4 days (Waldegrave is not considered a PM) and upper bound is Truss at 44, who is.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583274152584040448"
+          ],
+          "editableUntil": "2022-10-21T02:19:08.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kaydubs 🦖🦕🐀",
+            "screen_name": "KWiersoAgain",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "1475145564782166019",
+            "id": "1475145564782166019"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "155"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1583273790821535745",
+      "id_str": "1583274152584040448",
+      "in_reply_to_user_id": "1475145564782166019",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583274152584040448",
+      "in_reply_to_status_id": "1583273790821535745",
+      "created_at": "Fri Oct 21 01:49:08 +0000 2022",
+      "favorited": false,
+      "full_text": "@KWiersoAgain Right, because we were never paying people enough to stay home, people knocked out of in-person industries flooded into delivery restaurants.",
+      "lang": "en",
+      "in_reply_to_screen_name": "KWiersoAgain",
+      "in_reply_to_user_id_str": "1475145564782166019"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583273349727150081"
+          ],
+          "editableUntil": "2022-10-21T02:15:57.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mike Morton",
+            "screen_name": "theycallmemorty",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "69927304",
+            "id": "69927304"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "197"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "1583273095388835841",
+      "id_str": "1583273349727150081",
+      "in_reply_to_user_id": "69927304",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583273349727150081",
+      "in_reply_to_status_id": "1583273095388835841",
+      "created_at": "Fri Oct 21 01:45:57 +0000 2022",
+      "favorited": false,
+      "full_text": "@theycallmemorty I haven't done the math but at first glance it would be surprising if boomers were disproportionately employed in low-wage manual jobs, especially towards the end of their careers.",
+      "lang": "en",
+      "in_reply_to_screen_name": "theycallmemorty",
+      "in_reply_to_user_id_str": "69927304"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583272837292302336"
+          ],
+          "editableUntil": "2022-10-21T02:13:54.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "226"
+      ],
+      "favorite_count": "35",
+      "in_reply_to_status_id_str": "1583272545020583937",
+      "id_str": "1583272837292302336",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "1583272837292302336",
+      "in_reply_to_status_id": "1583272545020583937",
+      "created_at": "Fri Oct 21 01:43:54 +0000 2022",
+      "favorited": false,
+      "full_text": "Certainly killing shit-tons of people was terrible and probably affected the labor market as well, but it wasn't nearly a big enough effect to account for the labor market changes. 500,000 working-age people switching jobs is.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583272545020583937"
+          ],
+          "editableUntil": "2022-10-21T02:12:45.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "280"
+      ],
+      "favorite_count": "30",
+      "in_reply_to_status_id_str": "1583257066126249984",
+      "id_str": "1583272545020583937",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "1583272545020583937",
+      "in_reply_to_status_id": "1583257066126249984",
+      "created_at": "Fri Oct 21 01:42:45 +0000 2022",
+      "favorited": false,
+      "full_text": "For those suggesting covid also caused this: warehouses employ 1.8m people, up 37% since 2020, so roughly 500,000 people have moved into the warehouse industry. Of the 1m dead of covid more than 750,000 of them were already past retirement age. So warehouses &gt; 2x covid effect.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583272338367254529"
+          ],
+          "editableUntil": "2022-10-21T02:11:55.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Harry Hawk",
+            "screen_name": "hhawk",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2223531",
+            "id": "2223531"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "287"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1583270764387540992",
+      "id_str": "1583272338367254529",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1583272338367254529",
+      "in_reply_to_status_id": "1583270764387540992",
+      "created_at": "Fri Oct 21 01:41:55 +0000 2022",
+      "favorited": false,
+      "full_text": "@hhawk It's not even particularly complicated math: warehouses employ 1.8m people, up 37% since 2020, so roughly 500,000 people have moved into the warehouse industry. Of the 1m dead of covid more than 750,000 of them were already past retirement age. So warehouses &gt; 2x covid effect.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583271239866494978"
+          ],
+          "editableUntil": "2022-10-21T02:07:33.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Corey Quinn",
+            "screen_name": "QuinnyPig",
+            "indices": [
+              "123",
+              "133"
+            ],
+            "id_str": "97114171",
+            "id": "97114171"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "195"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "1583261049796452353",
+      "id_str": "1583271239866494978",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1583271239866494978",
+      "in_reply_to_status_id": "1583261049796452353",
+      "created_at": "Fri Oct 21 01:37:33 +0000 2022",
+      "favorited": false,
+      "full_text": "This is the closest I've seen a respected* source come to actively calling out Microsoft for dishonesty here.\n\n* Obviously @QuinnyPig calls them out all the time, but is he really *respected*? /s",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1583270764387540992"
+          ],
+          "editableUntil": "2022-10-21T02:05:40.000Z",
+          "editsRemaining": "5",
+          "isEditEligible": false
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Harry Hawk",
+            "screen_name": "hhawk",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2223531",
+            "id": "2223531"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "150"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1583269739618455552",
+      "id_str": "1583270764387540992",
+      "in_reply_to_user_id": "2223531",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1583270764387540992",
+      "in_reply_to_status_id": "1583269739618455552",
+      "created_at": "Fri Oct 21 01:35:40 +0000 2022",
+      "favorited": false,
+      "full_text": "@hhawk It's probably a contributing factor to be sure, but having done some math on this it's nowhere near enough to steer the market where it's gone.",
+      "lang": "en",
+      "in_reply_to_screen_name": "hhawk",
+      "in_reply_to_user_id_str": "2223531"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494372909615251456"
+          ],
+          "editableUntil": "2022-02-17T19:07:20.415Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/hXaZpJange",
+            "expanded_url": "https://twitter.com/kefimochi/status/1494064252482555907",
+            "display_url": "twitter.com/kefimochi/stat…",
+            "indices": [
+              "9",
+              "32"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "32"
+      ],
+      "favorite_count": "97",
+      "id_str": "1494372909615251456",
+      "truncated": false,
+      "retweet_count": "11",
+      "id": "1494372909615251456",
+      "possibly_sensitive": false,
+      "created_at": "Thu Feb 17 18:07:20 +0000 2022",
+      "favorited": false,
+      "full_text": "Startups https://t.co/hXaZpJange",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494340454040551428"
+          ],
+          "editableUntil": "2022-02-17T16:58:22.403Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sean Barry Parsons®",
+            "screen_name": "SeanBParsons",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "1240630370934173697",
+            "id": "1240630370934173697"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "19"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494339945028145155",
+      "id_str": "1494340454040551428",
+      "in_reply_to_user_id": "1240630370934173697",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494340454040551428",
+      "in_reply_to_status_id": "1494339945028145155",
+      "created_at": "Thu Feb 17 15:58:22 +0000 2022",
+      "favorited": false,
+      "full_text": "@SeanBParsons Sean.",
+      "lang": "eu",
+      "in_reply_to_screen_name": "SeanBParsons",
+      "in_reply_to_user_id_str": "1240630370934173697"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494339796801519617"
+          ],
+          "editableUntil": "2022-02-17T16:55:45.705Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "50"
+      ],
+      "favorite_count": "11",
+      "id_str": "1494339796801519617",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494339796801519617",
+      "created_at": "Thu Feb 17 15:55:45 +0000 2022",
+      "favorited": false,
+      "full_text": "Consider this\nConsider this the tip of the century",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494336909283192839"
+          ],
+          "editableUntil": "2022-02-17T16:44:17.267Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "anildash.com",
+            "screen_name": "anildash",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "36823",
+            "id": "36823"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "89"
+      ],
+      "favorite_count": "13",
+      "in_reply_to_status_id_str": "1494336598120415241",
+      "id_str": "1494336909283192839",
+      "in_reply_to_user_id": "36823",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494336909283192839",
+      "in_reply_to_status_id": "1494336598120415241",
+      "created_at": "Thu Feb 17 15:44:17 +0000 2022",
+      "favorited": false,
+      "full_text": "@anildash \"Why don't we just GIVE everyone FREE HOUSES??\"\n\"That'd be great. Let's do it.\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "anildash",
+      "in_reply_to_user_id_str": "36823"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494336156648890371"
+          ],
+          "editableUntil": "2022-02-17T16:41:17.825Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "anildash.com",
+            "screen_name": "anildash",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "36823",
+            "id": "36823"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "60"
+      ],
+      "favorite_count": "17",
+      "in_reply_to_status_id_str": "1494335443608899584",
+      "id_str": "1494336156648890371",
+      "in_reply_to_user_id": "36823",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494336156648890371",
+      "in_reply_to_status_id": "1494335443608899584",
+      "created_at": "Thu Feb 17 15:41:17 +0000 2022",
+      "favorited": false,
+      "full_text": "@anildash Good to know all my recruiting hasn't been in vain",
+      "lang": "en",
+      "in_reply_to_screen_name": "anildash",
+      "in_reply_to_user_id_str": "36823"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494334451102273545"
+          ],
+          "editableUntil": "2022-02-17T16:34:31.191Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/xZiYWYI6D0",
+            "expanded_url": "https://news.gallup.com/poll/389792/lgbt-identification-ticks-up.aspx",
+            "display_url": "news.gallup.com/poll/389792/lg…",
+            "indices": [
+              "63",
+              "86"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "86"
+      ],
+      "favorite_count": "103",
+      "id_str": "1494334451102273545",
+      "truncated": false,
+      "retweet_count": "18",
+      "id": "1494334451102273545",
+      "possibly_sensitive": false,
+      "created_at": "Thu Feb 17 15:34:31 +0000 2022",
+      "favorited": false,
+      "full_text": "21% of Americans born between 1997 and 2003 identify as LGBTQ: https://t.co/xZiYWYI6D0",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494185357553799168"
+          ],
+          "editableUntil": "2022-02-17T06:42:04.519Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sacha Greif @sachagreif@hachyderm.io",
+            "screen_name": "SachaGreif",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14261086",
+            "id": "14261086"
+          },
+          {
+            "name": "Evan You",
+            "screen_name": "youyuxi",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "182821975",
+            "id": "182821975"
+          },
+          {
+            "name": "Rich Harris",
+            "screen_name": "Rich_Harris",
+            "indices": [
+              "21",
+              "33"
+            ],
+            "id_str": "19487837",
+            "id": "19487837"
+          },
+          {
+            "name": "Matteo Collina",
+            "screen_name": "matteocollina",
+            "indices": [
+              "34",
+              "48"
+            ],
+            "id_str": "15979784",
+            "id": "15979784"
+          },
+          {
+            "name": "Ryan Carniato",
+            "screen_name": "RyanCarniato",
+            "indices": [
+              "49",
+              "62"
+            ],
+            "id_str": "1200926075733176320",
+            "id": "1200926075733176320"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "167"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494171661972967424",
+      "id_str": "1494185357553799168",
+      "in_reply_to_user_id": "14261086",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494185357553799168",
+      "in_reply_to_status_id": "1494171661972967424",
+      "created_at": "Thu Feb 17 05:42:04 +0000 2022",
+      "favorited": false,
+      "full_text": "@SachaGreif @youyuxi @Rich_Harris @matteocollina @RyanCarniato Lol at the Hacker News coverage. \"As usual, this was just people being mindlessly angry. Here's a link!\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "SachaGreif",
+      "in_reply_to_user_id_str": "14261086"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494156808973217793"
+          ],
+          "editableUntil": "2022-02-17T04:48:38.007Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "amro",
+            "screen_name": "amdev",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "14335093",
+            "id": "14335093"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "31"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494155346948018176",
+      "id_str": "1494156808973217793",
+      "in_reply_to_user_id": "14335093",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494156808973217793",
+      "in_reply_to_status_id": "1494155346948018176",
+      "created_at": "Thu Feb 17 03:48:38 +0000 2022",
+      "favorited": false,
+      "full_text": "@amdev *blinking white guy gif*",
+      "lang": "en",
+      "in_reply_to_screen_name": "amdev",
+      "in_reply_to_user_id_str": "14335093"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494142746201755650"
+          ],
+          "editableUntil": "2022-02-17T03:52:45.181Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Michael Donohoe",
+            "screen_name": "donohoe",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "8067002",
+            "id": "8067002"
+          },
+          {
+            "name": "Sacha Greif @sachagreif@hachyderm.io",
+            "screen_name": "SachaGreif",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "14261086",
+            "id": "14261086"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "272"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1494142412825890817",
+      "id_str": "1494142746201755650",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494142746201755650",
+      "in_reply_to_status_id": "1494142412825890817",
+      "created_at": "Thu Feb 17 02:52:45 +0000 2022",
+      "favorited": false,
+      "full_text": "@donohoe @SachaGreif And one of the *signs* that it's changing is trend data like this one -- State of JS, Netlify's Jamstack survey and GitHub's Octoverse are three recent surveys all of which showed the same trend to greater diversity by experience. I believe it's real.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494142412825890817"
+          ],
+          "editableUntil": "2022-02-17T03:51:25.698Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Michael Donohoe",
+            "screen_name": "donohoe",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "8067002",
+            "id": "8067002"
+          },
+          {
+            "name": "Sacha Greif @sachagreif@hachyderm.io",
+            "screen_name": "SachaGreif",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "14261086",
+            "id": "14261086"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "290"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494136821239926784",
+      "id_str": "1494142412825890817",
+      "in_reply_to_user_id": "8067002",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494142412825890817",
+      "in_reply_to_status_id": "1494136821239926784",
+      "created_at": "Thu Feb 17 02:51:25 +0000 2022",
+      "favorited": false,
+      "full_text": "@donohoe @SachaGreif As I alluded to earlier, regardless of the bias in *this* survey, I haven't seen any survey of the developer population that doesn't come up with roughly the same demographics. That can change, it is changing, but my current reading of the data is that it is a reality.",
+      "lang": "en",
+      "in_reply_to_screen_name": "donohoe",
+      "in_reply_to_user_id_str": "8067002"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494141925032546309"
+          ],
+          "editableUntil": "2022-02-17T03:49:29.399Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matt Hackett 📙",
+            "screen_name": "richtaur",
+            "indices": [
+              "23",
+              "32"
+            ],
+            "id_str": "14965072",
+            "id": "14965072"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/x4Tfw5Wtms",
+            "expanded_url": "https://www.valadria.com/how-to-make-a-video-game-all-by-yourself/",
+            "display_url": "valadria.com/how-to-make-a-…",
+            "indices": [
+              "162",
+              "185"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "185"
+      ],
+      "favorite_count": "35",
+      "id_str": "1494141925032546309",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "1494141925032546309",
+      "possibly_sensitive": false,
+      "created_at": "Thu Feb 17 02:49:29 +0000 2022",
+      "favorited": false,
+      "full_text": "The supremely talented @richtaur has written a book called \"How To Make A Video Game All By Yourself\" (you'll never guess what it's about). So great to see this! https://t.co/x4Tfw5Wtms",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494134957945413634"
+          ],
+          "editableUntil": "2022-02-17T03:21:48.316Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Michael Donohoe",
+            "screen_name": "donohoe",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "8067002",
+            "id": "8067002"
+          },
+          {
+            "name": "Sacha Greif @sachagreif@hachyderm.io",
+            "screen_name": "SachaGreif",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "14261086",
+            "id": "14261086"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "237"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "1494130481578840064",
+      "id_str": "1494134957945413634",
+      "in_reply_to_user_id": "8067002",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494134957945413634",
+      "in_reply_to_status_id": "1494130481578840064",
+      "created_at": "Thu Feb 17 02:21:48 +0000 2022",
+      "favorited": false,
+      "full_text": "@donohoe @SachaGreif I mean, every study of the programmer population I have seen suggests that it is, in fact, full of white dudes, and that began to change relatively recently. The bias isn't in the survey, the bias is in the industry.",
+      "lang": "en",
+      "in_reply_to_screen_name": "donohoe",
+      "in_reply_to_user_id_str": "8067002"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494128736853053440"
+          ],
+          "editableUntil": "2022-02-17T02:57:05.092Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/8u4m2DZWM9",
+            "expanded_url": "https://twitter.com/itamarst/status/1494111599493357574",
+            "display_url": "twitter.com/itamarst/statu…",
+            "indices": [
+              "125",
+              "148"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "148"
+      ],
+      "favorite_count": "22",
+      "id_str": "1494128736853053440",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "1494128736853053440",
+      "possibly_sensitive": false,
+      "created_at": "Thu Feb 17 01:57:05 +0000 2022",
+      "favorited": false,
+      "full_text": "What weird brain poison was it made people be able to say \"convenient parking is more important than the lives of children\"? https://t.co/8u4m2DZWM9",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494119066973327361"
+          ],
+          "editableUntil": "2022-02-17T02:18:39.613Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "manakin guywalker",
+            "screen_name": "destroyeroftroy",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "476011586",
+            "id": "476011586"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "25"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494118490076332032",
+      "id_str": "1494119066973327361",
+      "in_reply_to_user_id": "476011586",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494119066973327361",
+      "in_reply_to_status_id": "1494118490076332032",
+      "created_at": "Thu Feb 17 01:18:39 +0000 2022",
+      "favorited": false,
+      "full_text": "@destroyeroftroy Amazing.",
+      "lang": "en",
+      "in_reply_to_screen_name": "destroyeroftroy",
+      "in_reply_to_user_id_str": "476011586"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494117993151823882"
+          ],
+          "editableUntil": "2022-02-17T02:14:23.594Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "manakin guywalker",
+            "screen_name": "destroyeroftroy",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "476011586",
+            "id": "476011586"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494117450731954179",
+      "id_str": "1494117993151823882",
+      "in_reply_to_user_id": "476011586",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494117993151823882",
+      "in_reply_to_status_id": "1494117450731954179",
+      "created_at": "Thu Feb 17 01:14:23 +0000 2022",
+      "favorited": false,
+      "full_text": "@destroyeroftroy Okay but since when?",
+      "lang": "en",
+      "in_reply_to_screen_name": "destroyeroftroy",
+      "in_reply_to_user_id_str": "476011586"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494117185467207680"
+          ],
+          "editableUntil": "2022-02-17T02:11:11.027Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "manakin guywalker",
+            "screen_name": "destroyeroftroy",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "476011586",
+            "id": "476011586"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "60"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494117047995080704",
+      "id_str": "1494117185467207680",
+      "in_reply_to_user_id": "476011586",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494117185467207680",
+      "in_reply_to_status_id": "1494117047995080704",
+      "created_at": "Thu Feb 17 01:11:11 +0000 2022",
+      "favorited": false,
+      "full_text": "@destroyeroftroy Lololololol how long have you believed this",
+      "lang": "en",
+      "in_reply_to_screen_name": "destroyeroftroy",
+      "in_reply_to_user_id_str": "476011586"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494105968057016321"
+          ],
+          "editableUntil": "2022-02-17T01:26:36.588Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sacha Greif @sachagreif@hachyderm.io",
+            "screen_name": "SachaGreif",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14261086",
+            "id": "14261086"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "1494105279411425282",
+      "id_str": "1494105968057016321",
+      "in_reply_to_user_id": "14261086",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494105968057016321",
+      "in_reply_to_status_id": "1494105279411425282",
+      "created_at": "Thu Feb 17 00:26:36 +0000 2022",
+      "favorited": false,
+      "full_text": "@SachaGreif That would be truly delightful!",
+      "lang": "en",
+      "in_reply_to_screen_name": "SachaGreif",
+      "in_reply_to_user_id_str": "14261086"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954463314511249408"
+          ],
+          "editableUntil": "2018-01-19T22:19:21.907Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mike Hogan",
+            "screen_name": "mike_hogan",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14863800",
+            "id": "14863800"
+          },
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "12",
+              "24"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "82"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954462222239006721",
+      "id_str": "954463314511249408",
+      "in_reply_to_user_id": "14863800",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954463314511249408",
+      "in_reply_to_status_id": "954462222239006721",
+      "created_at": "Fri Jan 19 21:19:21 +0000 2018",
+      "favorited": false,
+      "full_text": "@mike_hogan @CaseyNewton Yeah, a 20% cut does seem like it would hurt some people.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mike_hogan",
+      "in_reply_to_user_id_str": "14863800"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954462902085328896"
+          ],
+          "editableUntil": "2018-01-19T22:17:43.577Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Malthe Sigurdsson",
+            "screen_name": "malthe",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "496223",
+            "id": "496223"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "81"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954461155371581440",
+      "id_str": "954462902085328896",
+      "in_reply_to_user_id": "496223",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954462902085328896",
+      "in_reply_to_status_id": "954461155371581440",
+      "created_at": "Fri Jan 19 21:17:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@malthe School-organized dances are such an alien part of American culture to me.",
+      "lang": "en",
+      "in_reply_to_screen_name": "malthe",
+      "in_reply_to_user_id_str": "496223"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954460207756722177"
+          ],
+          "editableUntil": "2018-01-19T22:07:01.199Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "111"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954119753240629250",
+      "id_str": "954460207756722177",
+      "in_reply_to_user_id": "37441336",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954460207756722177",
+      "in_reply_to_status_id": "954119753240629250",
+      "created_at": "Fri Jan 19 21:07:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@jose_pedro_dias It's actually quite hard to tell! We're hoping to improve our metrics on that front this year.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "37441336"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954456150212198400"
+          ],
+          "editableUntil": "2018-01-19T21:50:53.805Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Sven Haster",
+            "screen_name": "BuurmanSven",
+            "indices": [
+              "11",
+              "23"
+            ],
+            "id_str": "352956496",
+            "id": "352956496"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "163"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954455509603512320",
+      "id_str": "954456150212198400",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954456150212198400",
+      "in_reply_to_status_id": "954455509603512320",
+      "created_at": "Fri Jan 19 20:50:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @BuurmanSven Thank you! For comparison to this post, registered users are currently just over 600,000. Most of the other numbers have similarly tripled.",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954422729280647168"
+          ],
+          "editableUntil": "2018-01-19T19:38:05.634Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "113"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954421598400008193",
+      "id_str": "954422729280647168",
+      "in_reply_to_user_id": "3948913527",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954422729280647168",
+      "in_reply_to_status_id": "954421598400008193",
+      "created_at": "Fri Jan 19 18:38:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@ventutech I'm not prepared to concede that merely having a lot of dependencies is bad per se. What harm is done?",
+      "lang": "en",
+      "in_reply_to_user_id_str": "3948913527"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954421137122865153"
+          ],
+          "editableUntil": "2018-01-19T19:31:46.034Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954421039303405568",
+      "id_str": "954421137122865153",
+      "in_reply_to_user_id": "3948913527",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954421137122865153",
+      "in_reply_to_status_id": "954421039303405568",
+      "created_at": "Fri Jan 19 18:31:46 +0000 2018",
+      "favorited": false,
+      "full_text": "@ventutech What's hellish about it?",
+      "lang": "en",
+      "in_reply_to_user_id_str": "3948913527"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954411586134851584"
+          ],
+          "editableUntil": "2018-01-19T18:53:48.901Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "The Great and Terrible Meateater 🦖",
+            "screen_name": "MeateaterT",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "2660701336",
+            "id": "2660701336"
+          },
+          {
+            "name": "Brent Ozar",
+            "screen_name": "BrentO",
+            "indices": [
+              "12",
+              "19"
+            ],
+            "id_str": "495643",
+            "id": "495643"
+          },
+          {
+            "name": "Baron Robert Verell",
+            "screen_name": "SQLCowbell",
+            "indices": [
+              "20",
+              "31"
+            ],
+            "id_str": "721686517",
+            "id": "721686517"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/BjXrYh5h58",
+            "expanded_url": "https://twitter.com/seldo/status/954405350051991552",
+            "display_url": "twitter.com/seldo/status/9…",
+            "indices": [
+              "32",
+              "55"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954411025595592706",
+      "id_str": "954411586134851584",
+      "in_reply_to_user_id": "2660701336",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954411586134851584",
+      "in_reply_to_status_id": "954411025595592706",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 19 17:53:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@MeateaterT @BrentO @SQLCowbell https://t.co/BjXrYh5h58",
+      "lang": "qme",
+      "in_reply_to_screen_name": "MeateaterT",
+      "in_reply_to_user_id_str": "2660701336"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954405350051991552"
+          ],
+          "editableUntil": "2018-01-19T18:29:02.103Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Baron Robert Verell",
+            "screen_name": "SQLCowbell",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "721686517",
+            "id": "721686517"
+          },
+          {
+            "name": "Born SQL",
+            "screen_name": "BornSQL",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "4043034494",
+            "id": "4043034494"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "98"
+      ],
+      "favorite_count": "51",
+      "in_reply_to_status_id_str": "954405113191370752",
+      "id_str": "954405350051991552",
+      "in_reply_to_user_id": "721686517",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954405350051991552",
+      "in_reply_to_status_id": "954405113191370752",
+      "created_at": "Fri Jan 19 17:29:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@SQLCowbell @BornSQL If you don't have a verifiable restore, you don't have a backup. So we agree.",
+      "lang": "en",
+      "in_reply_to_screen_name": "SQLCowbell",
+      "in_reply_to_user_id_str": "721686517"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954403721290514432"
+          ],
+          "editableUntil": "2018-01-19T18:22:33.776Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "99"
+      ],
+      "favorite_count": "1969",
+      "id_str": "954403721290514432",
+      "truncated": false,
+      "retweet_count": "725",
+      "id": "954403721290514432",
+      "created_at": "Fri Jan 19 17:22:33 +0000 2018",
+      "favorited": false,
+      "full_text": "Until you have backups, you don't have a database. What you have is a prolonged period of optimism.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954400222829936640"
+          ],
+          "editableUntil": "2018-01-19T18:08:39.678Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "enantiomer",
+            "screen_name": "bonkydog",
+            "indices": [
+              "3",
+              "12"
+            ],
+            "id_str": "45216044",
+            "id": "45216044"
+          },
+          {
+            "name": "Laurie Voss moved to @seldo@alpaca.gold",
+            "screen_name": "seldo",
+            "indices": [
+              "14",
+              "20"
+            ],
+            "id_str": "15453",
+            "id": "15453"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "954400222829936640",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954400222829936640",
+      "created_at": "Fri Jan 19 17:08:39 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @bonkydog: @seldo There is only one scarf, gradually changing in color, material, and texture. Where it intersects 3D space, we wrap our…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954398610250121216"
+          ],
+          "editableUntil": "2018-01-19T18:02:15.209Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Laurie Voss moved to @seldo@alpaca.gold",
+            "screen_name": "seldo",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "15453",
+            "id": "15453"
+          },
+          {
+            "name": "cara esten",
+            "screen_name": "esten",
+            "indices": [
+              "11",
+              "17"
+            ],
+            "id_str": "1108462281237520384",
+            "id": "1108462281237520384"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "25"
+      ],
+      "favorite_count": "0",
+      "id_str": "954398610250121216",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954398610250121216",
+      "created_at": "Fri Jan 19 17:02:15 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @seldo: @esten Scarfae",
+      "lang": "und"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954398591107215360"
+          ],
+          "editableUntil": "2018-01-19T18:02:10.645Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "cara esten",
+            "screen_name": "esten",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "1108462281237520384",
+            "id": "1108462281237520384"
+          },
+          {
+            "name": "Laurie Voss moved to @seldo@alpaca.gold",
+            "screen_name": "seldo",
+            "indices": [
+              "11",
+              "17"
+            ],
+            "id_str": "15453",
+            "id": "15453"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "25"
+      ],
+      "favorite_count": "0",
+      "id_str": "954398591107215360",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954398591107215360",
+      "created_at": "Fri Jan 19 17:02:10 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @esten: @seldo Scarfii",
+      "lang": "ro"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954398577379262464"
+          ],
+          "editableUntil": "2018-01-19T18:02:07.372Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@aaronfriel@hachyderm.io",
+            "screen_name": "AaronFriel",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "184674078",
+            "id": "184674078"
+          },
+          {
+            "name": "Laurie Voss moved to @seldo@alpaca.gold",
+            "screen_name": "seldo",
+            "indices": [
+              "16",
+              "22"
+            ],
+            "id_str": "15453",
+            "id": "15453"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "34"
+      ],
+      "favorite_count": "0",
+      "id_str": "954398577379262464",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954398577379262464",
+      "created_at": "Fri Jan 19 17:02:07 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @AaronFriel: @seldo Scarfipodes",
+      "lang": "es"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954398413046493185"
+          ],
+          "editableUntil": "2018-01-19T18:01:28.192Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "cara esten",
+            "screen_name": "esten",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "1108462281237520384",
+            "id": "1108462281237520384"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "14"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "954397786748813312",
+      "id_str": "954398413046493185",
+      "in_reply_to_user_id": "15374401",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954398413046493185",
+      "in_reply_to_status_id": "954397786748813312",
+      "created_at": "Fri Jan 19 17:01:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@esten Scarfae",
+      "lang": "und",
+      "in_reply_to_screen_name": "caraesten",
+      "in_reply_to_user_id_str": "15374401"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954396881374687232"
+          ],
+          "editableUntil": "2018-01-19T17:55:23.013Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "25"
+      ],
+      "favorite_count": "2",
+      "id_str": "954396881374687232",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954396881374687232",
+      "created_at": "Fri Jan 19 16:55:23 +0000 2018",
+      "favorited": false,
+      "full_text": "The plural of \"scarf\" is:",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954394916255252480"
+          ],
+          "editableUntil": "2018-01-19T17:47:34.492Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Scott 🐗 Trinh",
+            "screen_name": "scotttrinh",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "2438625889",
+            "id": "2438625889"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "12",
+              "19"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "118"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954393992204115968",
+      "id_str": "954394916255252480",
+      "in_reply_to_user_id": "2438625889",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954394916255252480",
+      "in_reply_to_status_id": "954393992204115968",
+      "created_at": "Fri Jan 19 16:47:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@scotttrinh @sebmck I've tried them but last I checked they share cookies across containers, which defeats my purpose.",
+      "lang": "en",
+      "in_reply_to_screen_name": "scotttrinh",
+      "in_reply_to_user_id_str": "2438625889"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954390934715691008"
+          ],
+          "editableUntil": "2018-01-19T17:31:45.219Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sven Haster",
+            "screen_name": "BuurmanSven",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "352956496",
+            "id": "352956496"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "13",
+              "23"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/EltC4V8fVT",
+            "expanded_url": "http://blog.npmjs.org/post/143451680695/how-many-npm-users-are-there",
+            "display_url": "blog.npmjs.org/post/143451680…",
+            "indices": [
+              "80",
+              "103"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "103"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954390625163665411",
+      "id_str": "954390934715691008",
+      "in_reply_to_user_id": "352956496",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954390934715691008",
+      "in_reply_to_status_id": "954390625163665411",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 19 16:31:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@BuurmanSven @IgorMinar Ugh, did I fail to paste the link? I'm home sick today. https://t.co/EltC4V8fVT",
+      "lang": "en",
+      "in_reply_to_screen_name": "BuurmanSven",
+      "in_reply_to_user_id_str": "352956496"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954372505468207104"
+          ],
+          "editableUntil": "2018-01-19T16:18:31.344Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "J. A. Guerrero-Saade",
+            "screen_name": "juanandres_gs",
+            "indices": [
+              "3",
+              "17"
+            ],
+            "id_str": "187027710",
+            "id": "187027710"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "131"
+      ],
+      "favorite_count": "0",
+      "id_str": "954372505468207104",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954372505468207104",
+      "created_at": "Fri Jan 19 15:18:31 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @juanandres_gs: The most unrealistic part of the 1995 movie Hackers is that they noticed the intrusion the day it was happening.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954368162522214401"
+          ],
+          "editableUntil": "2018-01-19T16:01:15.905Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "116"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954367783076208640",
+      "id_str": "954368162522214401",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954368162522214401",
+      "in_reply_to_status_id": "954367783076208640",
+      "created_at": "Fri Jan 19 15:01:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar Here's a post about how we arrived at that number (when it was lower) and why the error bars are so high.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954367783076208640"
+          ],
+          "editableUntil": "2018-01-19T15:59:45.438Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "254"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954365883056504832",
+      "id_str": "954367783076208640",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954367783076208640",
+      "in_reply_to_status_id": "954365883056504832",
+      "created_at": "Fri Jan 19 14:59:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar It's in the region of 10-12 million users, and it's roughly doubled in the last year. It's very very tricky to estimate how many users npm has because most users aren't logged in when they download, and IPs and users don't entirely correspond.",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954367333690044416"
+          ],
+          "editableUntil": "2018-01-19T15:57:58.296Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Benedykt Dryl",
+            "screen_name": "benedyktdryl",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "13665822",
+            "id": "13665822"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "144"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954283111180840960",
+      "id_str": "954367333690044416",
+      "in_reply_to_user_id": "13665822",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954367333690044416",
+      "in_reply_to_status_id": "954283111180840960",
+      "created_at": "Fri Jan 19 14:57:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@benedyktdryl I'm not saying we couldn't do better, but we do have a mechanism by which people can and do successfully contribute PRs and fixes.",
+      "lang": "en",
+      "in_reply_to_screen_name": "benedyktdryl",
+      "in_reply_to_user_id_str": "13665822"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954364295931838465"
+          ],
+          "editableUntil": "2018-01-19T15:45:54.038Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "82"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "954197347151433728",
+      "id_str": "954364295931838465",
+      "in_reply_to_user_id": "290549888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954364295931838465",
+      "in_reply_to_status_id": "954197347151433728",
+      "created_at": "Fri Jan 19 14:45:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@sebmck I did. I miss having multiple profiles, but the speed is keeping me on FF.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sebmck",
+      "in_reply_to_user_id_str": "290549888"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954362082010349569"
+          ],
+          "editableUntil": "2018-01-19T15:37:06.198Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "𝕃𝕚𝕡𝕚𝕤",
+            "screen_name": "Lipis",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "14112788",
+            "id": "14112788"
+          },
+          {
+            "name": "Sindre Sorhus",
+            "screen_name": "sindresorhus",
+            "indices": [
+              "7",
+              "20"
+            ],
+            "id_str": "170686450",
+            "id": "170686450"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "954361917396738048",
+      "id_str": "954362082010349569",
+      "in_reply_to_user_id": "14112788",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954362082010349569",
+      "in_reply_to_status_id": "954361917396738048",
+      "created_at": "Fri Jan 19 14:37:06 +0000 2018",
+      "favorited": false,
+      "full_text": "@Lipis @sindresorhus Lots and lots.",
+      "lang": "en",
+      "in_reply_to_screen_name": "Lipis",
+      "in_reply_to_user_id_str": "14112788"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954184834481471488"
+          ],
+          "editableUntil": "2018-01-19T03:52:47.094Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Not Important",
+            "screen_name": "mlafleur",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "16152516",
+            "id": "16152516"
+          },
+          {
+            "name": "VJ",
+            "screen_name": "andrewvijay",
+            "indices": [
+              "10",
+              "22"
+            ],
+            "id_str": "88160292",
+            "id": "88160292"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "214"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954175402632728576",
+      "id_str": "954184834481471488",
+      "in_reply_to_user_id": "16152516",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954184834481471488",
+      "in_reply_to_status_id": "954175402632728576",
+      "created_at": "Fri Jan 19 02:52:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@mlafleur @andrewvijay Plugin models were a pretty established pattern; I don't think jQuery's was particularly influential. I'm told Dojo's module pattern influenced early design thinking on JavaScript modularity.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mlafleur",
+      "in_reply_to_user_id_str": "16152516"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954133302927024128"
+          ],
+          "editableUntil": "2018-01-19T00:28:01.014Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Andrew Betts",
+            "screen_name": "triblondon",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "7311232",
+            "id": "7311232"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "115"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954132536053125120",
+      "id_str": "954133302927024128",
+      "in_reply_to_user_id": "7311232",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954133302927024128",
+      "in_reply_to_status_id": "954132536053125120",
+      "created_at": "Thu Jan 18 23:28:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@triblondon I think demolition companies are still construction companies in a \"-1 is also an integer\" kind of way.",
+      "lang": "en",
+      "in_reply_to_screen_name": "triblondon",
+      "in_reply_to_user_id_str": "7311232"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954133011590598656"
+          ],
+          "editableUntil": "2018-01-19T00:26:51.554Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "case",
+            "screen_name": "CaseSandberg",
+            "indices": [
+              "3",
+              "16"
+            ],
+            "id_str": "20654202",
+            "id": "20654202"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/CaseSandberg/status/954121572071104512/photo/1",
+            "source_status_id": "954121572071104512",
+            "indices": [
+              "52",
+              "75"
+            ],
+            "url": "https://t.co/HvWIc7QnwH",
+            "media_url": "http://pbs.twimg.com/media/DT24fslVAAAttMi.jpg",
+            "id_str": "954121550755594240",
+            "source_user_id": "20654202",
+            "id": "954121550755594240",
+            "media_url_https": "https://pbs.twimg.com/media/DT24fslVAAAttMi.jpg",
+            "source_user_id_str": "20654202",
+            "sizes": {
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "954121572071104512",
+            "display_url": "pic.twitter.com/HvWIc7QnwH"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "75"
+      ],
+      "favorite_count": "0",
+      "id_str": "954133011590598656",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954133011590598656",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 18 23:26:51 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @CaseSandberg: EVERYONE MEET HAZEL, MY NEW DOG 🐕 https://t.co/HvWIc7QnwH",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/CaseSandberg/status/954121572071104512/photo/1",
+            "source_status_id": "954121572071104512",
+            "indices": [
+              "52",
+              "75"
+            ],
+            "url": "https://t.co/HvWIc7QnwH",
+            "media_url": "http://pbs.twimg.com/media/DT24fslVAAAttMi.jpg",
+            "id_str": "954121550755594240",
+            "source_user_id": "20654202",
+            "id": "954121550755594240",
+            "media_url_https": "https://pbs.twimg.com/media/DT24fslVAAAttMi.jpg",
+            "source_user_id_str": "20654202",
+            "sizes": {
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "954121572071104512",
+            "display_url": "pic.twitter.com/HvWIc7QnwH"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954132827854880768"
+          ],
+          "editableUntil": "2018-01-19T00:26:07.748Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "case",
+            "screen_name": "CaseSandberg",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "20654202",
+            "id": "20654202"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "34"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954121934806986752",
+      "id_str": "954132827854880768",
+      "in_reply_to_user_id": "20654202",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954132827854880768",
+      "in_reply_to_status_id": "954121934806986752",
+      "created_at": "Thu Jan 18 23:26:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseSandberg EEEEEEEEEEEEEEEEEEEE",
+      "lang": "und",
+      "in_reply_to_screen_name": "CaseSandberg",
+      "in_reply_to_user_id_str": "20654202"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954113422894903296"
+          ],
+          "editableUntil": "2018-01-18T23:09:01.245Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "case",
+            "screen_name": "CaseSandberg",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "20654202",
+            "id": "20654202"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "31"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954112282782449665",
+      "id_str": "954113422894903296",
+      "in_reply_to_user_id": "20654202",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954113422894903296",
+      "in_reply_to_status_id": "954112282782449665",
+      "created_at": "Thu Jan 18 22:09:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseSandberg MOAR DOG PICTURES",
+      "lang": "en",
+      "in_reply_to_screen_name": "CaseSandberg",
+      "in_reply_to_user_id_str": "20654202"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954112951329280000"
+          ],
+          "editableUntil": "2018-01-18T23:07:08.815Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "VJ",
+            "screen_name": "andrewvijay",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "88160292",
+            "id": "88160292"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "216"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "954084701169360896",
+      "id_str": "954112951329280000",
+      "in_reply_to_user_id": "88160292",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954112951329280000",
+      "in_reply_to_status_id": "954084701169360896",
+      "created_at": "Thu Jan 18 22:07:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@andrewvijay In JavaScript? It wasn't. npm and several other package managers were all invented around the same time (2008/2009) and npm became the most popular. Prior to that modular JavaScript was not very popular.",
+      "lang": "en",
+      "in_reply_to_screen_name": "andrewvijay",
+      "in_reply_to_user_id_str": "88160292"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954112628028096513"
+          ],
+          "editableUntil": "2018-01-18T23:05:51.734Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "kat",
+            "screen_name": "maybekatz",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "1199492153832902658",
+            "id": "1199492153832902658"
+          },
+          {
+            "name": "Thomas Jensen 🇪🇺🇩🇰",
+            "screen_name": "tjconceptdk",
+            "indices": [
+              "11",
+              "23"
+            ],
+            "id_str": "33298151",
+            "id": "33298151"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "24",
+              "30"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "233"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954106010456608768",
+      "id_str": "954112628028096513",
+      "in_reply_to_user_id": "2978661890",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954112628028096513",
+      "in_reply_to_status_id": "954106010456608768",
+      "created_at": "Thu Jan 18 22:05:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@maybekatz @tjconceptdk @npmjs It hasn't affected download counts very much because the same number of actual packages are downloaded (mostly by CI, mostly not cached). But request volume (bandwidth from us) has definitely gone down.",
+      "lang": "en",
+      "in_reply_to_screen_name": "zkat__",
+      "in_reply_to_user_id_str": "2978661890"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954112393277091841"
+          ],
+          "editableUntil": "2018-01-18T23:04:55.765Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sam",
+            "screen_name": "sjransom",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "2187247891",
+            "id": "2187247891"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "954100725826707458",
+      "id_str": "954112393277091841",
+      "in_reply_to_user_id": "2187247891",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "954112393277091841",
+      "in_reply_to_status_id": "954100725826707458",
+      "created_at": "Thu Jan 18 22:04:55 +0000 2018",
+      "favorited": false,
+      "full_text": "@sjransom npm started in 2008; npm Inc. not until 2014.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sjransom",
+      "in_reply_to_user_id_str": "2187247891"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954081838279966720"
+          ],
+          "editableUntil": "2018-01-18T21:03:30.886Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Aaron P Blohowiak",
+            "screen_name": "aaronblohowiak",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "7142142",
+            "id": "7142142"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954081534415269888",
+      "id_str": "954081838279966720",
+      "in_reply_to_user_id": "7142142",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954081838279966720",
+      "in_reply_to_status_id": "954081534415269888",
+      "created_at": "Thu Jan 18 20:03:30 +0000 2018",
+      "favorited": false,
+      "full_text": "@aaronblohowiak Is it? It's just robots doing what robots do best.",
+      "lang": "en",
+      "in_reply_to_screen_name": "aaronblohowiak",
+      "in_reply_to_user_id_str": "7142142"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954080825817030656"
+          ],
+          "editableUntil": "2018-01-18T20:59:29.496Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Aaron P Blohowiak",
+            "screen_name": "aaronblohowiak",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "7142142",
+            "id": "7142142"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "186"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "954079051609600000",
+      "id_str": "954080825817030656",
+      "in_reply_to_user_id": "7142142",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954080825817030656",
+      "in_reply_to_status_id": "954079051609600000",
+      "created_at": "Thu Jan 18 19:59:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@aaronblohowiak The average project has 1000 packages, and lots of companies do CI, so every commit generates a full (uncached, because fresh VM) project download, dozens of times a day.",
+      "lang": "en",
+      "in_reply_to_screen_name": "aaronblohowiak",
+      "in_reply_to_user_id_str": "7142142"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954077076524490752"
+          ],
+          "editableUntil": "2018-01-18T20:44:35.595Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/cWfnwzvQBg",
+            "expanded_url": "https://www.seldemo.com",
+            "display_url": "seldemo.com",
+            "indices": [
+              "78",
+              "101"
+            ]
+          },
+          {
+            "url": "https://t.co/dTGXWIDkxt",
+            "expanded_url": "http://seldo.com",
+            "display_url": "seldo.com",
+            "indices": [
+              "107",
+              "130"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "132"
+      ],
+      "favorite_count": "15",
+      "in_reply_to_status_id_str": "953694432934576128",
+      "id_str": "954077076524490752",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954077076524490752",
+      "in_reply_to_status_id": "953694432934576128",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 18 19:44:35 +0000 2018",
+      "favorited": false,
+      "full_text": "MYSTERY SOLVED: the company's name is \"Selective Demolition\", their domain is https://t.co/cWfnwzvQBg (not https://t.co/dTGXWIDkxt).",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954076294383153152"
+          ],
+          "editableUntil": "2018-01-18T20:41:29.118Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Aaron P Blohowiak",
+            "screen_name": "aaronblohowiak",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "7142142",
+            "id": "7142142"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "92"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954075544349323264",
+      "id_str": "954076294383153152",
+      "in_reply_to_user_id": "7142142",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954076294383153152",
+      "in_reply_to_status_id": "954075544349323264",
+      "created_at": "Thu Jan 18 19:41:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@aaronblohowiak On a per-user basis it's only 60 packages. We just have a shit-ton of users.",
+      "lang": "en",
+      "in_reply_to_screen_name": "aaronblohowiak",
+      "in_reply_to_user_id_str": "7142142"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954074605672587264"
+          ],
+          "editableUntil": "2018-01-18T20:34:46.498Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ꓕꓤꓱꓭꓳꓠ",
+            "screen_name": "nobert",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "917368036746825728",
+            "id": "917368036746825728"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "33"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954074267993325569",
+      "id_str": "954074605672587264",
+      "in_reply_to_user_id": "14861000",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954074605672587264",
+      "in_reply_to_status_id": "954074267993325569",
+      "created_at": "Thu Jan 18 19:34:46 +0000 2018",
+      "favorited": false,
+      "full_text": "@nobert Definitely release order.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "14861000"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954073631646130176"
+          ],
+          "editableUntil": "2018-01-18T20:30:54.272Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "122"
+      ],
+      "favorite_count": "83",
+      "in_reply_to_status_id_str": "954068787187171328",
+      "id_str": "954073631646130176",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "11",
+      "id": "954073631646130176",
+      "in_reply_to_status_id": "954068787187171328",
+      "created_at": "Thu Jan 18 19:30:54 +0000 2018",
+      "favorited": false,
+      "full_text": "If you're wondering what npm's engineers do all day, it's \"constantly rebuild the rocket ship while it remains in flight\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954068787187171328"
+          ],
+          "editableUntil": "2018-01-18T20:11:39.263Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "163"
+      ],
+      "favorite_count": "330",
+      "id_str": "954068787187171328",
+      "truncated": false,
+      "retweet_count": "112",
+      "id": "954068787187171328",
+      "created_at": "Thu Jan 18 19:11:39 +0000 2018",
+      "favorited": false,
+      "full_text": "npm users downloaded 7 hundred million packages yesterday, a new record. When npm Inc. started in 2014, that was how many packages were downloaded in a whole year.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954048495073222658"
+          ],
+          "editableUntil": "2018-01-18T18:51:01.246Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@wraithan@mastodon.art",
+            "screen_name": "Wraithan",
+            "indices": [
+              "3",
+              "12"
+            ],
+            "id_str": "14220560",
+            "id": "14220560"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "19",
+              "25"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "139"
+      ],
+      "favorite_count": "0",
+      "id_str": "954048495073222658",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954048495073222658",
+      "created_at": "Thu Jan 18 17:51:01 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @Wraithan: Ugh, @npmjs finished installing all my deps before I could finish taking a drink of coffee. What happen to the good old days…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954032911824576512"
+          ],
+          "editableUntil": "2018-01-18T17:49:05.910Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "webinista dot com",
+            "screen_name": "webinista",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "14197043",
+            "id": "14197043"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "136"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "954032247761285120",
+      "id_str": "954032911824576512",
+      "in_reply_to_user_id": "14197043",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954032911824576512",
+      "in_reply_to_status_id": "954032247761285120",
+      "created_at": "Thu Jan 18 16:49:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@webinista I am beyond understanding how any women voted for him in the first place, so I can't imagine what would lose him their votes.",
+      "lang": "en",
+      "in_reply_to_screen_name": "webinista",
+      "in_reply_to_user_id_str": "14197043"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954031049855574016"
+          ],
+          "editableUntil": "2018-01-18T17:41:41.982Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "169"
+      ],
+      "favorite_count": "76",
+      "id_str": "954031049855574016",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "954031049855574016",
+      "created_at": "Thu Jan 18 16:41:41 +0000 2018",
+      "favorited": false,
+      "full_text": "Does anyone really think people who voted for Trump after he bragged about assaulting women will be anything less than actively impressed that he slept with a porn star?",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954011438309232640"
+          ],
+          "editableUntil": "2018-01-18T16:23:46.225Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sean McLellan",
+            "screen_name": "Oceanswave",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "192434012",
+            "id": "192434012"
+          },
+          {
+            "name": "Apple",
+            "screen_name": "Apple",
+            "indices": [
+              "12",
+              "18"
+            ],
+            "id_str": "380749300",
+            "id": "380749300"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "220"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "954009737984606210",
+      "id_str": "954011438309232640",
+      "in_reply_to_user_id": "192434012",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954011438309232640",
+      "in_reply_to_status_id": "954009737984606210",
+      "created_at": "Thu Jan 18 15:23:46 +0000 2018",
+      "favorited": false,
+      "full_text": "@Oceanswave @Apple The reason it was so large was because they (and others) parked the money overseas for years until the tax rate was reduced. If they'd paid every year instead of waiting they'd have paid twice as much.",
+      "lang": "en",
+      "in_reply_to_screen_name": "Oceanswave",
+      "in_reply_to_user_id_str": "192434012"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "954007275882004480"
+          ],
+          "editableUntil": "2018-01-18T16:07:13.825Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tom Rowan (MW0KKR)",
+            "screen_name": "tomrowan",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "14177212",
+            "id": "14177212"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "65"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "953931984031625216",
+      "id_str": "954007275882004480",
+      "in_reply_to_user_id": "14177212",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "954007275882004480",
+      "in_reply_to_status_id": "953931984031625216",
+      "created_at": "Thu Jan 18 15:07:13 +0000 2018",
+      "favorited": false,
+      "full_text": "@tomrowan They are jpegs, so my phone email client displays them.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tomrowan",
+      "in_reply_to_user_id_str": "14177212"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953885675119566848"
+          ],
+          "editableUntil": "2018-01-18T08:04:01.944Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jan Lehnardt is on Mastodon: @janl@narrativ.es",
+            "screen_name": "janl",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "819606",
+            "id": "819606"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "115"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953883121669361664",
+      "id_str": "953885675119566848",
+      "in_reply_to_user_id": "819606",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953885675119566848",
+      "in_reply_to_status_id": "953883121669361664",
+      "created_at": "Thu Jan 18 07:04:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@janl They've been sitting on it for 8 years. It would have been twice as much if they'd brought it in under Obama.",
+      "lang": "en",
+      "in_reply_to_screen_name": "janl",
+      "in_reply_to_user_id_str": "819606"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953885396143767552"
+          ],
+          "editableUntil": "2018-01-18T08:02:55.431Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Justin Wolfers",
+            "screen_name": "JustinWolfers",
+            "indices": [
+              "3",
+              "17"
+            ],
+            "id_str": "327577091",
+            "id": "327577091"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "953885396143767552",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953885396143767552",
+      "created_at": "Thu Jan 18 07:02:55 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @JustinWolfers: Hard to know who to blame: The Republican House, the Republican Senate, or the Republican White House. https://t.co/NZpK…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953882534554648576"
+          ],
+          "editableUntil": "2018-01-18T07:51:33.175Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lachlan Campbell",
+            "screen_name": "lachlanjc",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "2464774904",
+            "id": "2464774904"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "11",
+              "17"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "131"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953881538848002048",
+      "id_str": "953882534554648576",
+      "in_reply_to_user_id": "2464774904",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953882534554648576",
+      "in_reply_to_status_id": "953881538848002048",
+      "created_at": "Thu Jan 18 06:51:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@lachlanjc @npmjs Hmm. It's probably not that big by the standards of these things, but I'm not sure how to calculate such a thing.",
+      "lang": "en",
+      "in_reply_to_screen_name": "lachlanjc",
+      "in_reply_to_user_id_str": "2464774904"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953867747540140033"
+          ],
+          "editableUntil": "2018-01-18T06:52:47.676Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Apple",
+            "screen_name": "Apple",
+            "indices": [
+              "23",
+              "29"
+            ],
+            "id_str": "380749300",
+            "id": "380749300"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/953867747540140033/photo/1",
+            "indices": [
+              "110",
+              "133"
+            ],
+            "url": "https://t.co/WK7tOE7PMq",
+            "media_url": "http://pbs.twimg.com/media/DTzRiVhUMAAOYFE.jpg",
+            "id_str": "953867608918339584",
+            "id": "953867608918339584",
+            "media_url_https": "https://pbs.twimg.com/media/DTzRiVhUMAAOYFE.jpg",
+            "sizes": {
+              "medium": {
+                "w": "585",
+                "h": "209",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "585",
+                "h": "209",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "585",
+                "h": "209",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/WK7tOE7PMq"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "133"
+      ],
+      "favorite_count": "147",
+      "id_str": "953867747540140033",
+      "truncated": false,
+      "retweet_count": "33",
+      "id": "953867747540140033",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 18 05:52:47 +0000 2018",
+      "favorited": false,
+      "full_text": "Of course, another way @Apple could make a \"direct contribution to the US economy\" would be to pay its taxes. https://t.co/WK7tOE7PMq",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/953867747540140033/photo/1",
+            "indices": [
+              "110",
+              "133"
+            ],
+            "url": "https://t.co/WK7tOE7PMq",
+            "media_url": "http://pbs.twimg.com/media/DTzRiVhUMAAOYFE.jpg",
+            "id_str": "953867608918339584",
+            "id": "953867608918339584",
+            "media_url_https": "https://pbs.twimg.com/media/DTzRiVhUMAAOYFE.jpg",
+            "sizes": {
+              "medium": {
+                "w": "585",
+                "h": "209",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "585",
+                "h": "209",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "585",
+                "h": "209",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/WK7tOE7PMq"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953865760434143232"
+          ],
+          "editableUntil": "2018-01-18T06:44:53.913Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "kimberlybryant.eth",
+            "screen_name": "6Gems",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "79365337",
+            "id": "79365337"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "110"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "953842762624983040",
+      "id_str": "953865760434143232",
+      "in_reply_to_user_id": "79365337",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953865760434143232",
+      "in_reply_to_status_id": "953842762624983040",
+      "created_at": "Thu Jan 18 05:44:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@6Gems This is like, as late as it is possible to be and there still even BE a train. But happy you joined us!",
+      "lang": "en",
+      "in_reply_to_screen_name": "6Gems",
+      "in_reply_to_user_id_str": "79365337"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953862396208078848"
+          ],
+          "editableUntil": "2018-01-18T06:31:31.819Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Walt",
+            "screen_name": "TheLastWalt",
+            "indices": [
+              "3",
+              "15"
+            ],
+            "id_str": "1323666865227505664",
+            "id": "1323666865227505664"
+          },
+          {
+            "name": "samcorb",
+            "screen_name": "samcorb",
+            "indices": [
+              "17",
+              "25"
+            ],
+            "id_str": "20244991",
+            "id": "20244991"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/thelastwalt/status/952735521117151232/photo/1",
+            "source_status_id": "952735521117151232",
+            "indices": [
+              "54",
+              "77"
+            ],
+            "url": "https://t.co/0U7z6MqiST",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DTjL5Z7VwAA8lq0.jpg",
+            "id_str": "952735508261617664",
+            "source_user_id": "115837697",
+            "id": "952735508261617664",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DTjL5Z7VwAA8lq0.jpg",
+            "source_user_id_str": "115837697",
+            "sizes": {
+              "large": {
+                "w": "498",
+                "h": "242",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "498",
+                "h": "242",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "498",
+                "h": "242",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "952735521117151232",
+            "display_url": "pic.twitter.com/0U7z6MqiST"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "77"
+      ],
+      "favorite_count": "0",
+      "id_str": "953862396208078848",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953862396208078848",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 18 05:31:31 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @thelastwalt: @samcorb CALL ME BY YOUR NAME (2017) https://t.co/0U7z6MqiST",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/thelastwalt/status/952735521117151232/photo/1",
+            "source_status_id": "952735521117151232",
+            "indices": [
+              "54",
+              "77"
+            ],
+            "url": "https://t.co/0U7z6MqiST",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DTjL5Z7VwAA8lq0.jpg",
+            "id_str": "952735508261617664",
+            "video_info": {
+              "aspect_ratio": [
+                "249",
+                "121"
+              ],
+              "variants": [
+                {
+                  "bitrate": "0",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/tweet_video/DTjL5Z7VwAA8lq0.mp4"
+                }
+              ]
+            },
+            "source_user_id": "115837697",
+            "id": "952735508261617664",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DTjL5Z7VwAA8lq0.jpg",
+            "source_user_id_str": "115837697",
+            "sizes": {
+              "large": {
+                "w": "498",
+                "h": "242",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "498",
+                "h": "242",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "498",
+                "h": "242",
+                "resize": "fit"
+              }
+            },
+            "type": "animated_gif",
+            "source_status_id_str": "952735521117151232",
+            "display_url": "pic.twitter.com/0U7z6MqiST"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953829524436762625"
+          ],
+          "editableUntil": "2018-01-18T04:20:54.578Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": ".",
+            "screen_name": "freialobo",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "278450525",
+            "id": "278450525"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "63"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "944816903976919040",
+      "id_str": "953829524436762625",
+      "in_reply_to_user_id": "278450525",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953829524436762625",
+      "in_reply_to_status_id": "944816903976919040",
+      "created_at": "Thu Jan 18 03:20:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@freialobo I am now at this movie because you told me about it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "freialobo",
+      "in_reply_to_user_id_str": "278450525"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953729112379596800"
+          ],
+          "editableUntil": "2018-01-17T21:41:54.478Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "12",
+              "19"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "78"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "953727933054636032",
+      "id_str": "953729112379596800",
+      "in_reply_to_user_id": "622960227",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953729112379596800",
+      "in_reply_to_status_id": "953727933054636032",
+      "created_at": "Wed Jan 17 20:41:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@bitandbang @sebmck I'm waiting for the first person to not think it's a joke.",
+      "lang": "en",
+      "in_reply_to_screen_name": "bitandbang",
+      "in_reply_to_user_id_str": "622960227"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953728833722531840"
+          ],
+          "editableUntil": "2018-01-17T21:40:48.041Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "YouTube TV",
+            "screen_name": "YouTubeTV",
+            "indices": [
+              "8",
+              "18"
+            ],
+            "id_str": "803263807489536000",
+            "id": "803263807489536000"
+          },
+          {
+            "name": "Hulu",
+            "screen_name": "hulu",
+            "indices": [
+              "19",
+              "24"
+            ],
+            "id_str": "15033883",
+            "id": "15033883"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/IQvOjuSyRC",
+            "expanded_url": "https://www.sling.com",
+            "display_url": "sling.com",
+            "indices": [
+              "29",
+              "52"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "52"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953722865035001856",
+      "id_str": "953728833722531840",
+      "in_reply_to_user_id": "290549888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953728833722531840",
+      "in_reply_to_status_id": "953722865035001856",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 20:40:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@sebmck @YouTubeTV @hulu Try https://t.co/IQvOjuSyRC",
+      "lang": "und",
+      "in_reply_to_screen_name": "sebmck",
+      "in_reply_to_user_id_str": "290549888"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953704189716148224"
+          ],
+          "editableUntil": "2018-01-17T20:02:52.452Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "23"
+      ],
+      "favorite_count": "59",
+      "id_str": "953704189716148224",
+      "truncated": false,
+      "retweet_count": "9",
+      "id": "953704189716148224",
+      "created_at": "Wed Jan 17 19:02:52 +0000 2018",
+      "favorited": false,
+      "full_text": "SELL BITCOIN\nBUY TULIPS",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953702209371324416"
+          ],
+          "editableUntil": "2018-01-17T19:55:00.301Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@LittleMxSurly@yharnam.singles",
+            "screen_name": "LittleMxSurly",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "22009627",
+            "id": "22009627"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "18"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "953702079972884481",
+      "id_str": "953702209371324416",
+      "in_reply_to_user_id": "22009627",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953702209371324416",
+      "in_reply_to_status_id": "953702079972884481",
+      "created_at": "Wed Jan 17 18:55:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@LittleMxSurly wat",
+      "lang": "und",
+      "in_reply_to_screen_name": "LittleMxSurly",
+      "in_reply_to_user_id_str": "22009627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953701725138862080"
+          ],
+          "editableUntil": "2018-01-17T19:53:04.851Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Malte Ubl",
+            "screen_name": "cramforce",
+            "indices": [
+              "3",
+              "13"
+            ],
+            "id_str": "15534471",
+            "id": "15534471"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "953701725138862080",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953701725138862080",
+      "created_at": "Wed Jan 17 18:53:04 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @cramforce: 💥 OMG biggest news in web performance in, like, a decade:\n\nTechnology independent performance based ranking in Google Search…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953699835923726337"
+          ],
+          "editableUntil": "2018-01-17T19:45:34.427Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "AZIZUL HAKIM",
+            "screen_name": "_Azzy23",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "1604363425555283970",
+            "id": "1604363425555283970"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "41"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "953698576592326656",
+      "id_str": "953699835923726337",
+      "in_reply_to_user_id": "310038791",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953699835923726337",
+      "in_reply_to_status_id": "953698576592326656",
+      "created_at": "Wed Jan 17 18:45:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@_azzy23 IS THE PASSWORD WARGAMES+2? OMG.",
+      "lang": "en",
+      "in_reply_to_screen_name": "gottbach",
+      "in_reply_to_user_id_str": "310038791"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953699374021853184"
+          ],
+          "editableUntil": "2018-01-17T19:43:44.301Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/953699374021853184/photo/1",
+            "indices": [
+              "91",
+              "114"
+            ],
+            "url": "https://t.co/YJNiEQTumZ",
+            "media_url": "http://pbs.twimg.com/media/DTw4c78VAAAvZCt.jpg",
+            "id_str": "953699290873921536",
+            "id": "953699290873921536",
+            "media_url_https": "https://pbs.twimg.com/media/DTw4c78VAAAvZCt.jpg",
+            "sizes": {
+              "large": {
+                "w": "387",
+                "h": "448",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "387",
+                "h": "448",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "387",
+                "h": "448",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/YJNiEQTumZ"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "114"
+      ],
+      "favorite_count": "35",
+      "in_reply_to_status_id_str": "953428532826263553",
+      "id_str": "953699374021853184",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953699374021853184",
+      "in_reply_to_status_id": "953428532826263553",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 18:43:44 +0000 2018",
+      "favorited": false,
+      "full_text": "I hate to say I told you so... oh wait, no, that's not right. I LOVE to say I told you so. https://t.co/YJNiEQTumZ",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/953699374021853184/photo/1",
+            "indices": [
+              "91",
+              "114"
+            ],
+            "url": "https://t.co/YJNiEQTumZ",
+            "media_url": "http://pbs.twimg.com/media/DTw4c78VAAAvZCt.jpg",
+            "id_str": "953699290873921536",
+            "id": "953699290873921536",
+            "media_url_https": "https://pbs.twimg.com/media/DTw4c78VAAAvZCt.jpg",
+            "sizes": {
+              "large": {
+                "w": "387",
+                "h": "448",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "387",
+                "h": "448",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "387",
+                "h": "448",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/YJNiEQTumZ"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953696117333532673"
+          ],
+          "editableUntil": "2018-01-17T19:30:47.846Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "207"
+      ],
+      "favorite_count": "15",
+      "in_reply_to_status_id_str": "953695322718355456",
+      "id_str": "953696117333532673",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "953696117333532673",
+      "in_reply_to_status_id": "953695322718355456",
+      "created_at": "Wed Jan 17 18:30:47 +0000 2018",
+      "favorited": false,
+      "full_text": "Cities across America competed to utterly fuck themselves by giving Amazon a massive tax break to bring jobs and people without commensurate funds to build the infrastructure they would need to support them.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953695701472432128"
+          ],
+          "editableUntil": "2018-01-17T19:29:08.697Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "53"
+      ],
+      "favorite_count": "27",
+      "in_reply_to_status_id_str": "953695640948703232",
+      "id_str": "953695701472432128",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953695701472432128",
+      "in_reply_to_status_id": "953695640948703232",
+      "created_at": "Wed Jan 17 18:29:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@sebmck Oh man am I going to get in trouble for this.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953695640948703232"
+          ],
+          "editableUntil": "2018-01-17T19:28:54.267Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "113"
+      ],
+      "favorite_count": "63",
+      "in_reply_to_status_id_str": "953695261070565376",
+      "id_str": "953695640948703232",
+      "in_reply_to_user_id": "290549888",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "953695640948703232",
+      "in_reply_to_status_id": "953695261070565376",
+      "created_at": "Wed Jan 17 18:28:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@sebmck They don't take orders from me, they just keep asking me to pay them. It's like open source contributors.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sebmck",
+      "in_reply_to_user_id_str": "290549888"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953695322718355456"
+          ],
+          "editableUntil": "2018-01-17T19:27:38.395Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/llsL53h1Mx",
+            "expanded_url": "https://twitter.com/ap/status/953694190117978113",
+            "display_url": "twitter.com/ap/status/9536…",
+            "indices": [
+              "80",
+              "103"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "103"
+      ],
+      "favorite_count": "24",
+      "id_str": "953695322718355456",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "953695322718355456",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 18:27:38 +0000 2018",
+      "favorited": false,
+      "full_text": "Are they going to do another nationwide municipal death match, like Amazon did? https://t.co/llsL53h1Mx",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953694432934576128"
+          ],
+          "editableUntil": "2018-01-17T19:24:06.254Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "163"
+      ],
+      "favorite_count": "20",
+      "in_reply_to_status_id_str": "953694024560340997",
+      "id_str": "953694432934576128",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "953694432934576128",
+      "in_reply_to_status_id": "953694024560340997",
+      "created_at": "Wed Jan 17 18:24:06 +0000 2018",
+      "favorited": false,
+      "full_text": "I can set up a filter but I'm genuinely worried that a bunch of construction workers are going to go unpaid or get fired for not filing their time sheets properly.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953694024560340997"
+          ],
+          "editableUntil": "2018-01-17T19:22:28.890Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "188"
+      ],
+      "favorite_count": "64",
+      "id_str": "953694024560340997",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "953694024560340997",
+      "created_at": "Wed Jan 17 18:22:28 +0000 2018",
+      "favorited": false,
+      "full_text": "A construction company somewhere in America has made a typo and now all their employees are emailing me copies of their time sheets to be filed. My replies asking them to stop are ignored.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953691206906650624"
+          ],
+          "editableUntil": "2018-01-17T19:11:17.109Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "54"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "953668006734848000",
+      "id_str": "953691206906650624",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953691206906650624",
+      "in_reply_to_status_id": "953668006734848000",
+      "created_at": "Wed Jan 17 18:11:17 +0000 2018",
+      "favorited": false,
+      "full_text": "Shout out to all my French speaking gym bro followers.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953690858792001536"
+          ],
+          "editableUntil": "2018-01-17T19:09:54.112Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/hpwaXUR9gu",
+            "expanded_url": "http://www.civilbeat.org/2018/01/hawaii-distributed-phony-image-of-missile-warning-screen/",
+            "display_url": "civilbeat.org/2018/01/hawaii…",
+            "indices": [
+              "80",
+              "103"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "103"
+      ],
+      "favorite_count": "6",
+      "id_str": "953690858792001536",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "953690858792001536",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 18:09:54 +0000 2018",
+      "favorited": false,
+      "full_text": "What I'm getting out of this is that Hawaii's government is kind of clown shoes https://t.co/hpwaXUR9gu",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953668006734848000"
+          ],
+          "editableUntil": "2018-01-17T17:39:05.757Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "48"
+      ],
+      "favorite_count": "9",
+      "id_str": "953668006734848000",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953668006734848000",
+      "created_at": "Wed Jan 17 16:39:05 +0000 2018",
+      "favorited": false,
+      "full_text": "Je ne regrette rien sauf 💀 le jour de la jambe 💀",
+      "lang": "fr"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953646332568219648"
+          ],
+          "editableUntil": "2018-01-17T16:12:58.233Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "223"
+      ],
+      "favorite_count": "22",
+      "id_str": "953646332568219648",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "953646332568219648",
+      "created_at": "Wed Jan 17 15:12:58 +0000 2018",
+      "favorited": false,
+      "full_text": "If Trump lying about his weight brings up too many complicated issues for you, he is also lying about how tall he is. Can we agree that lying about how tall we can directly see he is is a petty and embarrassing thing to do?",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953645702822871040"
+          ],
+          "editableUntil": "2018-01-17T16:10:28.090Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Richard Littauer",
+            "screen_name": "richlitt",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "118133101",
+            "id": "118133101"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "202"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953644822295965697",
+      "id_str": "953645702822871040",
+      "in_reply_to_user_id": "118133101",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953645702822871040",
+      "in_reply_to_status_id": "953644822295965697",
+      "created_at": "Wed Jan 17 15:10:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@richlitt Abramson isn't *wrong*, factually. He just presents a seductive but incorrect impression of a White House that is going to collapse any minute now. I don't believe his take on things any more.",
+      "lang": "en",
+      "in_reply_to_screen_name": "richlitt",
+      "in_reply_to_user_id_str": "118133101"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953644179812376576"
+          ],
+          "editableUntil": "2018-01-17T16:04:24.976Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Andrew Betts",
+            "screen_name": "triblondon",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "7311232",
+            "id": "7311232"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "69"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "953535837144272896",
+      "id_str": "953644179812376576",
+      "in_reply_to_user_id": "7311232",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953644179812376576",
+      "in_reply_to_status_id": "953535837144272896",
+      "created_at": "Wed Jan 17 15:04:24 +0000 2018",
+      "favorited": false,
+      "full_text": "@triblondon We need more money first, but that is of course the plan.",
+      "lang": "en",
+      "in_reply_to_screen_name": "triblondon",
+      "in_reply_to_user_id_str": "7311232"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953643981115596800"
+          ],
+          "editableUntil": "2018-01-17T16:03:37.603Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Richard Littauer",
+            "screen_name": "richlitt",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "118133101",
+            "id": "118133101"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/btu7aVbnJ1",
+            "expanded_url": "https://slate.com/news-and-politics/2017/12/sharing-seth-abramson-not-once-not-ever.html",
+            "display_url": "slate.com/news-and-polit…",
+            "indices": [
+              "109",
+              "132"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "132"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953643048331866112",
+      "id_str": "953643981115596800",
+      "in_reply_to_user_id": "118133101",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953643981115596800",
+      "in_reply_to_status_id": "953643048331866112",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 15:03:37 +0000 2018",
+      "favorited": false,
+      "full_text": "@richlitt I arrived at that conclusion by reading his tweets but it was easy to find a more formal analysis: https://t.co/btu7aVbnJ1",
+      "lang": "en",
+      "in_reply_to_screen_name": "richlitt",
+      "in_reply_to_user_id_str": "118133101"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953641137599782913"
+          ],
+          "editableUntil": "2018-01-17T15:52:19.656Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Richard Littauer",
+            "screen_name": "richlitt",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "118133101",
+            "id": "118133101"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "44"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953640325528121346",
+      "id_str": "953641137599782913",
+      "in_reply_to_user_id": "118133101",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953641137599782913",
+      "in_reply_to_status_id": "953640325528121346",
+      "created_at": "Wed Jan 17 14:52:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@richlitt He is a wacky conspiracy theorist.",
+      "lang": "en",
+      "in_reply_to_screen_name": "richlitt",
+      "in_reply_to_user_id_str": "118133101"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953639205317431298"
+          ],
+          "editableUntil": "2018-01-17T15:44:38.964Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "21"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "953510815935602688",
+      "id_str": "953639205317431298",
+      "in_reply_to_user_id": "6473302",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953639205317431298",
+      "in_reply_to_status_id": "953510815935602688",
+      "created_at": "Wed Jan 17 14:44:38 +0000 2018",
+      "favorited": false,
+      "full_text": "@mspowahs Ohhhhhhhhhh",
+      "lang": "und",
+      "in_reply_to_screen_name": "unknownmetric",
+      "in_reply_to_user_id_str": "6473302"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953638922214453249"
+          ],
+          "editableUntil": "2018-01-17T15:43:31.467Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Benedykt Dryl",
+            "screen_name": "benedyktdryl",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "13665822",
+            "id": "13665822"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "14",
+              "20"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/fL786CRQlO",
+            "expanded_url": "http://Package.community",
+            "display_url": "Package.community",
+            "indices": [
+              "40",
+              "63"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "139"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "953565948765769728",
+      "id_str": "953638922214453249",
+      "in_reply_to_user_id": "13665822",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953638922214453249",
+      "in_reply_to_status_id": "953565948765769728",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 14:43:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@benedyktdryl @npmjs Who said we don't? https://t.co/fL786CRQlO exists for us to get community contributions and we take them all the time.",
+      "lang": "en",
+      "in_reply_to_screen_name": "benedyktdryl",
+      "in_reply_to_user_id_str": "13665822"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953504064041447424"
+          ],
+          "editableUntil": "2018-01-17T06:47:38.773Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/YnIT5NsmXt",
+            "expanded_url": "https://twitter.com/maybekatz/status/953402549293350913",
+            "display_url": "twitter.com/maybekatz/stat…",
+            "indices": [
+              "101",
+              "124"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "124"
+      ],
+      "favorite_count": "36",
+      "id_str": "953504064041447424",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "953504064041447424",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 05:47:38 +0000 2018",
+      "favorited": false,
+      "full_text": "TLDR: in order to have time to actually fix bugs, npm's CLI team has to ignore a lot of bug reports. https://t.co/YnIT5NsmXt",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953498132519645184"
+          ],
+          "editableUntil": "2018-01-17T06:24:04.588Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "sarah jeong",
+            "screen_name": "sarahjeong",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "47509268",
+            "id": "47509268"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "953498132519645184",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953498132519645184",
+      "created_at": "Wed Jan 17 05:24:04 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @sarahjeong: Me: Bitcoin solves a problem that is only a problem for a very narrow segment of the population\n\nInternet rando: What about…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953463421365764096"
+          ],
+          "editableUntil": "2018-01-17T04:06:08.804Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/953463421365764096/photo/1",
+            "indices": [
+              "32",
+              "55"
+            ],
+            "url": "https://t.co/1WHzL6LcE4",
+            "media_url": "http://pbs.twimg.com/media/DTth5i5VMAAvemb.jpg",
+            "id_str": "953463387366699008",
+            "id": "953463387366699008",
+            "media_url_https": "https://pbs.twimg.com/media/DTth5i5VMAAvemb.jpg",
+            "sizes": {
+              "large": {
+                "w": "789",
+                "h": "628",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "541",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "789",
+                "h": "628",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/1WHzL6LcE4"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "79",
+      "id_str": "953463421365764096",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "953463421365764096",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 03:06:08 +0000 2018",
+      "favorited": false,
+      "full_text": "Everyone is back from vacation! https://t.co/1WHzL6LcE4",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/953463421365764096/photo/1",
+            "indices": [
+              "32",
+              "55"
+            ],
+            "url": "https://t.co/1WHzL6LcE4",
+            "media_url": "http://pbs.twimg.com/media/DTth5i5VMAAvemb.jpg",
+            "id_str": "953463387366699008",
+            "id": "953463387366699008",
+            "media_url_https": "https://pbs.twimg.com/media/DTth5i5VMAAvemb.jpg",
+            "sizes": {
+              "large": {
+                "w": "789",
+                "h": "628",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "541",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "789",
+                "h": "628",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/1WHzL6LcE4"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953463142108966912"
+          ],
+          "editableUntil": "2018-01-17T04:05:02.224Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Cholo Goth",
+            "screen_name": "eldealado_",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "426352248",
+            "id": "426352248"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/E1jWwE5Iaw",
+            "expanded_url": "https://www.nytimes.com/2018/01/16/us/politics/trump-health-exam-doctor-cognitive-test.html?_r=0",
+            "display_url": "nytimes.com/2018/01/16/us/…",
+            "indices": [
+              "12",
+              "35"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "953462357115703296",
+      "id_str": "953463142108966912",
+      "in_reply_to_user_id": "426352248",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953463142108966912",
+      "in_reply_to_status_id": "953462357115703296",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 03:05:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@eldealado_ https://t.co/E1jWwE5Iaw",
+      "lang": "qme",
+      "in_reply_to_screen_name": "eldealado_",
+      "in_reply_to_user_id_str": "426352248"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953461342173736960"
+          ],
+          "editableUntil": "2018-01-17T03:57:53.086Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/GwAsc0aEQT",
+            "expanded_url": "https://twitter.com/Politidope/status/953400128970338304",
+            "display_url": "twitter.com/Politidope/sta…",
+            "indices": [
+              "174",
+              "197"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "197"
+      ],
+      "favorite_count": "14",
+      "id_str": "953461342173736960",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "953461342173736960",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 02:57:53 +0000 2018",
+      "favorited": false,
+      "full_text": "Remember: it's not that Trump is overweight, it's that he repeatedly lies about things that are obviously untrue. You can't trust a single thing that comes out of his mouth. https://t.co/GwAsc0aEQT",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953460720087134208"
+          ],
+          "editableUntil": "2018-01-17T03:55:24.769Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "234"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "953460322395856897",
+      "id_str": "953460720087134208",
+      "in_reply_to_user_id": "6473302",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953460720087134208",
+      "in_reply_to_status_id": "953460322395856897",
+      "created_at": "Wed Jan 17 02:55:24 +0000 2018",
+      "favorited": false,
+      "full_text": "@mspowahs I got this one in reverse from an Apple support tech who was ma'am-ing me for 5 minutes before I corrected him and then he covered by saying he'd been calling me \"man\" the whole time. He hadn't, but it was a smooth recovery.",
+      "lang": "en",
+      "in_reply_to_screen_name": "unknownmetric",
+      "in_reply_to_user_id_str": "6473302"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953437038757404673"
+          ],
+          "editableUntil": "2018-01-17T02:21:18.700Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Here Comes The Sun",
+            "screen_name": "SunOfSeldo",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "456374925",
+            "id": "456374925"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "139"
+      ],
+      "favorite_count": "0",
+      "id_str": "953437038757404673",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953437038757404673",
+      "created_at": "Wed Jan 17 01:21:18 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @SunOfSeldo: Sunset moved forward to 5.15pm today. You are more than half-way through January! You can make it through January. You can…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953435537204891649"
+          ],
+          "editableUntil": "2018-01-17T02:15:20.702Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ben Basson",
+            "screen_name": "Ben_Basson",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "312501914",
+            "id": "312501914"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "136"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "953434791432646661",
+      "id_str": "953435537204891649",
+      "in_reply_to_user_id": "312501914",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953435537204891649",
+      "in_reply_to_status_id": "953434791432646661",
+      "created_at": "Wed Jan 17 01:15:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@Ben_Basson I think lots of people think it's stable and a lot of people think it's a currency and it's neither, unfortunately for them.",
+      "lang": "en",
+      "in_reply_to_screen_name": "Ben_Basson",
+      "in_reply_to_user_id_str": "312501914"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953429136608960513"
+          ],
+          "editableUntil": "2018-01-17T01:49:54.681Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "tef",
+            "screen_name": "tef_ebooks",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "3107896458",
+            "id": "3107896458"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "115"
+      ],
+      "favorite_count": "0",
+      "id_str": "953429136608960513",
+      "in_reply_to_user_id": "3107896458",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953429136608960513",
+      "created_at": "Wed Jan 17 00:49:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@tef_ebooks I like your poll but 18% of your respondents are Larry Wall which is really going to skew your results.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tef_ebooks",
+      "in_reply_to_user_id_str": "3107896458"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953428532826263553"
+          ],
+          "editableUntil": "2018-01-17T01:47:30.728Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/953428532826263553/photo/1",
+            "indices": [
+              "119",
+              "142"
+            ],
+            "url": "https://t.co/BnWBQ84jUL",
+            "media_url": "http://pbs.twimg.com/media/DTtB4rsUQAEcCkk.jpg",
+            "id_str": "953428188176072705",
+            "id": "953428188176072705",
+            "media_url_https": "https://pbs.twimg.com/media/DTtB4rsUQAEcCkk.jpg",
+            "sizes": {
+              "large": {
+                "w": "469",
+                "h": "448",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "469",
+                "h": "448",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "469",
+                "h": "448",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/BnWBQ84jUL"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "142"
+      ],
+      "favorite_count": "51",
+      "id_str": "953428532826263553",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "953428532826263553",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 00:47:30 +0000 2018",
+      "favorited": false,
+      "full_text": "🎵 Give me that stable store of value\n🎵 That stable store of value\n🎵 I can't get enough of\n🎵 That stable store of value https://t.co/BnWBQ84jUL",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/953428532826263553/photo/1",
+            "indices": [
+              "119",
+              "142"
+            ],
+            "url": "https://t.co/BnWBQ84jUL",
+            "media_url": "http://pbs.twimg.com/media/DTtB4rsUQAEcCkk.jpg",
+            "id_str": "953428188176072705",
+            "id": "953428188176072705",
+            "media_url_https": "https://pbs.twimg.com/media/DTtB4rsUQAEcCkk.jpg",
+            "sizes": {
+              "large": {
+                "w": "469",
+                "h": "448",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "469",
+                "h": "448",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "469",
+                "h": "448",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/BnWBQ84jUL"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953420816565358592"
+          ],
+          "editableUntil": "2018-01-17T01:16:51.028Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/GdL1DJhtRR",
+            "expanded_url": "https://twitter.com/tef_ebooks/status/953186333455015936",
+            "display_url": "twitter.com/tef_ebooks/sta…",
+            "indices": [
+              "53",
+              "76"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "76"
+      ],
+      "favorite_count": "27",
+      "id_str": "953420816565358592",
+      "truncated": false,
+      "retweet_count": "17",
+      "id": "953420816565358592",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 17 00:16:51 +0000 2018",
+      "favorited": false,
+      "full_text": "This is great and worth your time and also hilarious https://t.co/GdL1DJhtRR",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953416467432718336"
+          ],
+          "editableUntil": "2018-01-17T00:59:34.114Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/2sKJs8iD9m",
+            "expanded_url": "https://twitter.com/sidizenkane/status/953400413419548672",
+            "display_url": "twitter.com/sidizenkane/st…",
+            "indices": [
+              "69",
+              "92"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "92"
+      ],
+      "favorite_count": "17",
+      "id_str": "953416467432718336",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "953416467432718336",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 16 23:59:34 +0000 2018",
+      "favorited": false,
+      "full_text": "Star Wars fans upset to learn that they do not understand Star Wars. https://t.co/2sKJs8iD9m",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953415452176166912"
+          ],
+          "editableUntil": "2018-01-17T00:55:32.058Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ashley",
+            "screen_name": "rabcyr",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "26157562",
+            "id": "26157562"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "24"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "953414985224540166",
+      "id_str": "953415452176166912",
+      "in_reply_to_user_id": "26157562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953415452176166912",
+      "in_reply_to_status_id": "953414985224540166",
+      "created_at": "Tue Jan 16 23:55:32 +0000 2018",
+      "favorited": false,
+      "full_text": "@rabcyr This is v. good.",
+      "lang": "en",
+      "in_reply_to_screen_name": "rabcyr",
+      "in_reply_to_user_id_str": "26157562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953381321220304896"
+          ],
+          "editableUntil": "2018-01-16T22:39:54.604Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/A1WBoA3wNX",
+            "expanded_url": "https://talkingpointsmemo.com/muckraker/misleading-trump-admin-report-links-immigration-terrorism",
+            "display_url": "talkingpointsmemo.com/muckraker/misl…",
+            "indices": [
+              "107",
+              "130"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "130"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "953379948856688640",
+      "id_str": "953381321220304896",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "953381321220304896",
+      "in_reply_to_status_id": "953379948856688640",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 16 21:39:54 +0000 2018",
+      "favorited": false,
+      "full_text": "This is a transparently racist report intended to build a case against immigration by fudging the numbers: https://t.co/A1WBoA3wNX",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953379948856688640"
+          ],
+          "editableUntil": "2018-01-16T22:34:27.407Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/swQIwJnRHE",
+            "expanded_url": "https://twitter.com/TheJusticeDept/status/953275839361187840",
+            "display_url": "twitter.com/TheJusticeDept…",
+            "indices": [
+              "136",
+              "159"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "159"
+      ],
+      "favorite_count": "49",
+      "id_str": "953379948856688640",
+      "truncated": false,
+      "retweet_count": "8",
+      "id": "953379948856688640",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 16 21:34:27 +0000 2018",
+      "favorited": false,
+      "full_text": "Breaking news: a crime called \"international terrorism\" is usually committed by foreigners. Meanwhile \"domestic terrorism\" also exists. https://t.co/swQIwJnRHE",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953328072664653824"
+          ],
+          "editableUntil": "2018-01-16T19:08:19.159Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "175"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "953327908889612293",
+      "id_str": "953328072664653824",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953328072664653824",
+      "in_reply_to_status_id": "953327908889612293",
+      "created_at": "Tue Jan 16 18:08:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@terronk c.f. \"things you can't say in Silicon Valley\". It's not that you're not allowed to say them, it's that they're stupid things to say so you get shouted at when you do.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953327908889612293"
+          ],
+          "editableUntil": "2018-01-16T19:07:40.112Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "186"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "953326417323765765",
+      "id_str": "953327908889612293",
+      "in_reply_to_user_id": "14829286",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953327908889612293",
+      "in_reply_to_status_id": "953326417323765765",
+      "created_at": "Tue Jan 16 18:07:40 +0000 2018",
+      "favorited": false,
+      "full_text": "@terronk I think the fact that they focus on the words indicates they don't realize the concepts are offensive. \"It's true but don't say it\" is the form of respectable republican racism.",
+      "lang": "en",
+      "in_reply_to_screen_name": "terronk",
+      "in_reply_to_user_id_str": "14829286"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953323660575588352"
+          ],
+          "editableUntil": "2018-01-16T18:50:47.235Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "184"
+      ],
+      "favorite_count": "102",
+      "id_str": "953323660575588352",
+      "truncated": false,
+      "retweet_count": "8",
+      "id": "953323660575588352",
+      "created_at": "Tue Jan 16 17:50:47 +0000 2018",
+      "favorited": false,
+      "full_text": "I am beyond exasperated at the GOP focusing the \"shithole\" scandal on the language used. No you assholes, the problem is that he's racist. The language is the symptom, not the problem.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953322266594430976"
+          ],
+          "editableUntil": "2018-01-16T18:45:14.884Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/RI3PGr70OL",
+            "expanded_url": "https://www.cnet.com/products/oppo-r9s/review/",
+            "display_url": "cnet.com/products/oppo-…",
+            "indices": [
+              "100",
+              "123"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "123"
+      ],
+      "favorite_count": "2",
+      "id_str": "953322266594430976",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "953322266594430976",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 16 17:45:14 +0000 2018",
+      "favorited": false,
+      "full_text": "Meet the Oppo R9S, the best selling phone in the world's largest market for phones in 2017 (China). https://t.co/RI3PGr70OL",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953320290557165568"
+          ],
+          "editableUntil": "2018-01-16T18:37:23.760Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "68"
+      ],
+      "favorite_count": "4",
+      "id_str": "953320290557165568",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953320290557165568",
+      "created_at": "Tue Jan 16 17:37:23 +0000 2018",
+      "favorited": false,
+      "full_text": "I can't believe how long it took me to discover Infrastructure Week.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953319613646782464"
+          ],
+          "editableUntil": "2018-01-16T18:34:42.372Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matthew Eernisse",
+            "screen_name": "mde",
+            "indices": [
+              "0",
+              "4"
+            ],
+            "id_str": "778332",
+            "id": "778332"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "98"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953315979521441793",
+      "id_str": "953319613646782464",
+      "in_reply_to_user_id": "778332",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953319613646782464",
+      "in_reply_to_status_id": "953315979521441793",
+      "created_at": "Tue Jan 16 17:34:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@mde Disagree on Discovery. It's the most interesting Trek. Taking risks nobody's taken since TOS.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mde",
+      "in_reply_to_user_id_str": "778332"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953307692063375362"
+          ],
+          "editableUntil": "2018-01-16T17:47:20.045Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Michael Del Moro",
+            "screen_name": "MikeDelMoro",
+            "indices": [
+              "3",
+              "15"
+            ],
+            "id_str": "31059230",
+            "id": "31059230"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "953307692063375362",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953307692063375362",
+      "created_at": "Tue Jan 16 16:47:20 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @MikeDelMoro: AP: Trump ends first year with lowest average approval rating of any elected president in his first term https://t.co/o8Ev…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953307267209707520"
+          ],
+          "editableUntil": "2018-01-16T17:45:38.752Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "lauraolin dot com slash newsletter",
+            "screen_name": "lauraolin",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "14069365",
+            "id": "14069365"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "131"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "953272110348193792",
+      "id_str": "953307267209707520",
+      "in_reply_to_user_id": "14069365",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953307267209707520",
+      "in_reply_to_status_id": "953272110348193792",
+      "created_at": "Tue Jan 16 16:45:38 +0000 2018",
+      "favorited": false,
+      "full_text": "@lauraolin Nah, quoting MLK is a favorite pastime of the kind of racist who thinks it's only racism if you're wearing a white hood.",
+      "lang": "en",
+      "in_reply_to_screen_name": "lauraolin",
+      "in_reply_to_user_id_str": "14069365"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953157922720108544"
+          ],
+          "editableUntil": "2018-01-16T07:52:12.251Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "57"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "953154180952162304",
+      "id_str": "953157922720108544",
+      "in_reply_to_user_id": "14829286",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953157922720108544",
+      "in_reply_to_status_id": "953154180952162304",
+      "created_at": "Tue Jan 16 06:52:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@terronk That's why they cut it. It was out of character.",
+      "lang": "en",
+      "in_reply_to_screen_name": "terronk",
+      "in_reply_to_user_id_str": "14829286"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953153409443536896"
+          ],
+          "editableUntil": "2018-01-16T07:34:16.202Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "146"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "953153184792379392",
+      "id_str": "953153409443536896",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953153409443536896",
+      "in_reply_to_status_id": "953153184792379392",
+      "created_at": "Tue Jan 16 06:34:16 +0000 2018",
+      "favorited": false,
+      "full_text": "@terronk At least Vader has the fundamental honesty to *admit* he's evil and try to convince people evil's the winning side. C3PO is just a snake.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953153184792379392"
+          ],
+          "editableUntil": "2018-01-16T07:33:22.641Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "108"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953133527079374849",
+      "id_str": "953153184792379392",
+      "in_reply_to_user_id": "14829286",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953153184792379392",
+      "in_reply_to_status_id": "953133527079374849",
+      "created_at": "Tue Jan 16 06:33:22 +0000 2018",
+      "favorited": false,
+      "full_text": "@terronk He's not a coward, he's a traitor. A willful, repeated traitor, totally unworthy of anyone's trust.",
+      "lang": "en",
+      "in_reply_to_screen_name": "terronk",
+      "in_reply_to_user_id_str": "14829286"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953127662846853120"
+          ],
+          "editableUntil": "2018-01-16T05:51:57.735Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "donjay (https://mastodon.social/@donjay)",
+            "screen_name": "donjay",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "11065502",
+            "id": "11065502"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "28"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953126440328822784",
+      "id_str": "953127662846853120",
+      "in_reply_to_user_id": "11065502",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953127662846853120",
+      "in_reply_to_status_id": "953126440328822784",
+      "created_at": "Tue Jan 16 04:51:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@donjay That's cool as hell.",
+      "lang": "en",
+      "in_reply_to_screen_name": "donjay",
+      "in_reply_to_user_id_str": "11065502"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953122921030942720"
+          ],
+          "editableUntil": "2018-01-16T05:33:07.198Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jessica hilberman",
+            "screen_name": "saysjessbess",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "337835487",
+            "id": "337835487"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "953122097294753792",
+      "id_str": "953122921030942720",
+      "in_reply_to_user_id": "337835487",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953122921030942720",
+      "in_reply_to_status_id": "953122097294753792",
+      "created_at": "Tue Jan 16 04:33:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@saysjessbess I'm quite enjoying it!",
+      "lang": "en",
+      "in_reply_to_screen_name": "saysjessbess",
+      "in_reply_to_user_id_str": "337835487"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953121681429549056"
+          ],
+          "editableUntil": "2018-01-16T05:28:11.654Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "1",
+      "id_str": "953121681429549056",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953121681429549056",
+      "created_at": "Tue Jan 16 04:28:11 +0000 2018",
+      "favorited": false,
+      "full_text": "Is Jason Isaacs could keep his American accent straight for even a couple of seconds it would stop throwing me out of Discovery.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953109734365659137"
+          ],
+          "editableUntil": "2018-01-16T04:40:43.252Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/0wK7G6AU4Q",
+            "expanded_url": "https://talkingpointsmemo.com/livewire/president-obama-peter-king-tan-suit-rant",
+            "display_url": "talkingpointsmemo.com/livewire/presi…",
+            "indices": [
+              "182",
+              "205"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "205"
+      ],
+      "favorite_count": "55",
+      "id_str": "953109734365659137",
+      "truncated": false,
+      "retweet_count": "11",
+      "id": "953109734365659137",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 16 03:40:43 +0000 2018",
+      "favorited": false,
+      "full_text": "\"There’s no way any of us can excuse what the president did yesterday\" is a real thing a republican member of congress said when Obama wore a tan suit to a press conference in 2014: https://t.co/0wK7G6AU4Q",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953106204342931457"
+          ],
+          "editableUntil": "2018-01-16T04:26:41.629Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "donjay (https://mastodon.social/@donjay)",
+            "screen_name": "donjay",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "11065502",
+            "id": "11065502"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "81"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953104500742500352",
+      "id_str": "953106204342931457",
+      "in_reply_to_user_id": "11065502",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953106204342931457",
+      "in_reply_to_status_id": "953104500742500352",
+      "created_at": "Tue Jan 16 03:26:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@donjay (Are you actually related to John Jay because that would be cool as hell)",
+      "lang": "en",
+      "in_reply_to_screen_name": "donjay",
+      "in_reply_to_user_id_str": "11065502"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953105444674744321"
+          ],
+          "editableUntil": "2018-01-16T04:23:40.510Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matt McDermott",
+            "screen_name": "mattmfm",
+            "indices": [
+              "3",
+              "11"
+            ],
+            "id_str": "15418628",
+            "id": "15418628"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "139"
+      ],
+      "favorite_count": "0",
+      "id_str": "953105444674744321",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953105444674744321",
+      "created_at": "Tue Jan 16 03:23:40 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @mattmfm: Obama said it was stupid for a cop to arrest a black guy entering his own home, and it was a month-long story. \n\nTrump had an…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953103387062558720"
+          ],
+          "editableUntil": "2018-01-16T04:15:29.937Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Jemele Hill",
+            "screen_name": "jemelehill",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "35586563",
+            "id": "35586563"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/jemelehill/status/952917202134491136/photo/1",
+            "source_status_id": "952917202134491136",
+            "indices": [
+              "117",
+              "140"
+            ],
+            "url": "https://t.co/6C0BWKcTXO",
+            "media_url": "http://pbs.twimg.com/media/DTlxJIEV4AAFtlZ.jpg",
+            "id_str": "952917197764026368",
+            "source_user_id": "35586563",
+            "id": "952917197764026368",
+            "media_url_https": "https://pbs.twimg.com/media/DTlxJIEV4AAFtlZ.jpg",
+            "source_user_id_str": "35586563",
+            "sizes": {
+              "large": {
+                "w": "1024",
+                "h": "538",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "357",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1024",
+                "h": "538",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "952917202134491136",
+            "display_url": "pic.twitter.com/6C0BWKcTXO"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "953103387062558720",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953103387062558720",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 16 03:15:29 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @jemelehill: Me, watching people who criticized Colin Kaepernick for his nonviolent protest post MLK quotes today https://t.co/6C0BWKcTXO",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/jemelehill/status/952917202134491136/photo/1",
+            "source_status_id": "952917202134491136",
+            "indices": [
+              "117",
+              "140"
+            ],
+            "url": "https://t.co/6C0BWKcTXO",
+            "media_url": "http://pbs.twimg.com/media/DTlxJIEV4AAFtlZ.jpg",
+            "id_str": "952917197764026368",
+            "source_user_id": "35586563",
+            "id": "952917197764026368",
+            "media_url_https": "https://pbs.twimg.com/media/DTlxJIEV4AAFtlZ.jpg",
+            "source_user_id_str": "35586563",
+            "sizes": {
+              "large": {
+                "w": "1024",
+                "h": "538",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "357",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1024",
+                "h": "538",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "952917202134491136",
+            "display_url": "pic.twitter.com/6C0BWKcTXO"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953099323750805506"
+          ],
+          "editableUntil": "2018-01-16T03:59:21.168Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "anildash.com",
+            "screen_name": "anildash",
+            "indices": [
+              "3",
+              "12"
+            ],
+            "id_str": "36823",
+            "id": "36823"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "953099323750805506",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953099323750805506",
+      "created_at": "Tue Jan 16 02:59:21 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @anildash: There should be a real-life warning label if a person you encounter has a twitter timeline that consists of them angrily twee…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953008012586729472"
+          ],
+          "editableUntil": "2018-01-15T21:56:30.890Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/eTAV5uzbB1",
+            "expanded_url": "https://www.patreon.com/MissionComics/posts",
+            "display_url": "patreon.com/MissionComics/…",
+            "indices": [
+              "140",
+              "163"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "163"
+      ],
+      "favorite_count": "6",
+      "id_str": "953008012586729472",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "953008012586729472",
+      "possibly_sensitive": false,
+      "created_at": "Mon Jan 15 20:56:30 +0000 2018",
+      "favorited": false,
+      "full_text": "I'm backing Mission Comics on Patreon (basically subscribing to comic books), why not join me and keep this neighborhood institution going? https://t.co/eTAV5uzbB1",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "953007031866159104"
+          ],
+          "editableUntil": "2018-01-15T21:52:37.068Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Rick Waldron",
+            "screen_name": "rwaldron",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "16144669",
+            "id": "16144669"
+          },
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "175"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "953000070747746304",
+      "id_str": "953007031866159104",
+      "in_reply_to_user_id": "16144669",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "953007031866159104",
+      "in_reply_to_status_id": "953000070747746304",
+      "created_at": "Mon Jan 15 20:52:37 +0000 2018",
+      "favorited": false,
+      "full_text": "@rwaldron @AdamRackis I donated them to the composting gods. They did not smell at all though and various people have suggested they might have been okay even after that long.",
+      "lang": "en",
+      "in_reply_to_screen_name": "rwaldron",
+      "in_reply_to_user_id_str": "16144669"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952999751162589184"
+          ],
+          "editableUntil": "2018-01-15T21:23:41.213Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "107"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "952969388700954624",
+      "id_str": "952999751162589184",
+      "in_reply_to_user_id": "68567860",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952999751162589184",
+      "in_reply_to_status_id": "952969388700954624",
+      "created_at": "Mon Jan 15 20:23:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@AdamRackis I was having a lazy weekend when I didn't feel like cooking breakfast. For six months in a row.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AdamRackis",
+      "in_reply_to_user_id_str": "68567860"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952995180981858305"
+          ],
+          "editableUntil": "2018-01-15T21:05:31.597Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "live, laugh, @lawnsea@mastodon.social",
+            "screen_name": "lawnsea",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14132172",
+            "id": "14132172"
+          },
+          {
+            "name": "isaacs",
+            "screen_name": "izs",
+            "indices": [
+              "9",
+              "13"
+            ],
+            "id_str": "8038312",
+            "id": "8038312"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952994634619412480",
+      "id_str": "952995180981858305",
+      "in_reply_to_user_id": "14132172",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952995180981858305",
+      "in_reply_to_status_id": "952994634619412480",
+      "created_at": "Mon Jan 15 20:05:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@lawnsea @izs My blood curdled at that joke",
+      "lang": "en",
+      "in_reply_to_screen_name": "lawnsea",
+      "in_reply_to_user_id_str": "14132172"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952993486260678657"
+          ],
+          "editableUntil": "2018-01-15T20:58:47.544Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Robert Yang",
+            "screen_name": "radiatoryang",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "165537786",
+            "id": "165537786"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "122"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "952988115882401793",
+      "id_str": "952993486260678657",
+      "in_reply_to_user_id": "165537786",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952993486260678657",
+      "in_reply_to_status_id": "952988115882401793",
+      "created_at": "Mon Jan 15 19:58:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@radiatoryang I tried this but my professor was all \"this is an algorithms and data structures course\". They're not ready.",
+      "lang": "en",
+      "in_reply_to_screen_name": "radiatoryang",
+      "in_reply_to_user_id_str": "165537786"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952982065753944065"
+          ],
+          "editableUntil": "2018-01-15T20:13:24.683Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "isaacs",
+            "screen_name": "izs",
+            "indices": [
+              "0",
+              "4"
+            ],
+            "id_str": "8038312",
+            "id": "8038312"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "12"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "952981891023384576",
+      "id_str": "952982065753944065",
+      "in_reply_to_user_id": "8038312",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952982065753944065",
+      "in_reply_to_status_id": "952981891023384576",
+      "created_at": "Mon Jan 15 19:13:24 +0000 2018",
+      "favorited": false,
+      "full_text": "@izs why tho",
+      "lang": "en",
+      "in_reply_to_screen_name": "izs",
+      "in_reply_to_user_id_str": "8038312"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952964896827650048"
+          ],
+          "editableUntil": "2018-01-15T19:05:11.292Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "176"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952959705629929473",
+      "id_str": "952964896827650048",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952964896827650048",
+      "in_reply_to_status_id": "952959705629929473",
+      "created_at": "Mon Jan 15 18:05:11 +0000 2018",
+      "favorited": false,
+      "full_text": "🎵 And now I tell you openly\n🎵 You have my heart so don't hurt me\n🎵 You're what I couldn't find\n🎵 A totally amazing mind\n🎵 So understanding and so kind\n🎵 You're everything to me",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952959705629929473"
+          ],
+          "editableUntil": "2018-01-15T18:44:33.614Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/G56LnlC4GD",
+            "expanded_url": "http://www.bbc.com/news/entertainment-arts-42696376",
+            "display_url": "bbc.com/news/entertain…",
+            "indices": [
+              "129",
+              "152"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "56",
+      "id_str": "952959705629929473",
+      "truncated": false,
+      "retweet_count": "9",
+      "id": "952959705629929473",
+      "possibly_sensitive": false,
+      "created_at": "Mon Jan 15 17:44:33 +0000 2018",
+      "favorited": false,
+      "full_text": "RIP Dolores O'Riordan. Thank you for many hours of angry yelling songs at a time in my life when that was exactly what I needed. https://t.co/G56LnlC4GD",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952957685778927616"
+          ],
+          "editableUntil": "2018-01-15T18:36:32.044Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "87"
+      ],
+      "favorite_count": "18",
+      "in_reply_to_status_id_str": "952947255689924609",
+      "id_str": "952957685778927616",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952957685778927616",
+      "in_reply_to_status_id": "952947255689924609",
+      "created_at": "Mon Jan 15 17:36:32 +0000 2018",
+      "favorited": false,
+      "full_text": "I couldn't find a date on the open pack of bacon so I cooked and ate it anyway. RIP me.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952949300052422657"
+          ],
+          "editableUntil": "2018-01-15T18:03:12.731Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jenn R",
+            "screen_name": "jnnfrrss",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "2375935285",
+            "id": "2375935285"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "91"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952948565411758080",
+      "id_str": "952949300052422657",
+      "in_reply_to_user_id": "2375935285",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952949300052422657",
+      "in_reply_to_status_id": "952948565411758080",
+      "created_at": "Mon Jan 15 17:03:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@jnnfrrss Usually I give no fucks about expiry dates but six months seems like a long time.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jnnfrrss",
+      "in_reply_to_user_id_str": "2375935285"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952947255689924609"
+          ],
+          "editableUntil": "2018-01-15T17:55:05.317Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "106"
+      ],
+      "favorite_count": "51",
+      "id_str": "952947255689924609",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "952947255689924609",
+      "created_at": "Mon Jan 15 16:55:05 +0000 2018",
+      "favorited": false,
+      "full_text": "\"I should cook breakfast! It's been a while since I did that.\"\nThe eggs in my fridge expired 7 months ago.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952945999068057601"
+          ],
+          "editableUntil": "2018-01-15T17:50:05.715Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dennis Collinson",
+            "screen_name": "dnscollective",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "30498562",
+            "id": "30498562"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "77"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952811564846825472",
+      "id_str": "952945999068057601",
+      "in_reply_to_user_id": "30498562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952945999068057601",
+      "in_reply_to_status_id": "952811564846825472",
+      "created_at": "Mon Jan 15 16:50:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@dnscollective I'm hoping they'll be back thanks to mirror universe bullshit.",
+      "lang": "en",
+      "in_reply_to_screen_name": "dnscollective",
+      "in_reply_to_user_id_str": "30498562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952944810762977280"
+          ],
+          "editableUntil": "2018-01-15T17:45:22.401Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Christmas (in November) Kennedy",
+            "screen_name": "onebrightlight",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "755485",
+            "id": "755485"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "33"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952944184306024448",
+      "id_str": "952944810762977280",
+      "in_reply_to_user_id": "755485",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952944810762977280",
+      "in_reply_to_status_id": "952944184306024448",
+      "created_at": "Mon Jan 15 16:45:22 +0000 2018",
+      "favorited": false,
+      "full_text": "@onebrightlight But people pay me",
+      "lang": "en",
+      "in_reply_to_screen_name": "onebrightlight",
+      "in_reply_to_user_id_str": "755485"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952943383646945280"
+          ],
+          "editableUntil": "2018-01-15T17:39:42.150Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952943383646945280/photo/1",
+            "indices": [
+              "14",
+              "37"
+            ],
+            "url": "https://t.co/4MfVNIGBLc",
+            "media_url": "http://pbs.twimg.com/media/DTmI83_U8AE2cyY.jpg",
+            "id_str": "952943375568662529",
+            "id": "952943375568662529",
+            "media_url_https": "https://pbs.twimg.com/media/DTmI83_U8AE2cyY.jpg",
+            "sizes": {
+              "large": {
+                "w": "500",
+                "h": "296",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "500",
+                "h": "296",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "500",
+                "h": "296",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/4MfVNIGBLc"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952942997456367616",
+      "id_str": "952943383646945280",
+      "in_reply_to_user_id": "106463784",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952943383646945280",
+      "in_reply_to_status_id": "952942997456367616",
+      "possibly_sensitive": false,
+      "created_at": "Mon Jan 15 16:39:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@VilliSpeaks  https://t.co/4MfVNIGBLc",
+      "lang": "qme",
+      "in_reply_to_screen_name": "villi",
+      "in_reply_to_user_id_str": "106463784",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952943383646945280/photo/1",
+            "indices": [
+              "14",
+              "37"
+            ],
+            "url": "https://t.co/4MfVNIGBLc",
+            "media_url": "http://pbs.twimg.com/media/DTmI83_U8AE2cyY.jpg",
+            "id_str": "952943375568662529",
+            "id": "952943375568662529",
+            "media_url_https": "https://pbs.twimg.com/media/DTmI83_U8AE2cyY.jpg",
+            "sizes": {
+              "large": {
+                "w": "500",
+                "h": "296",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "500",
+                "h": "296",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "500",
+                "h": "296",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/4MfVNIGBLc"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952943256400113664"
+          ],
+          "editableUntil": "2018-01-15T17:39:11.812Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "73"
+      ],
+      "favorite_count": "8",
+      "id_str": "952943256400113664",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952943256400113664",
+      "created_at": "Mon Jan 15 16:39:11 +0000 2018",
+      "favorited": false,
+      "full_text": "What if I started an onlyfans account and it was just all-text shitposts.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952928564474597377"
+          ],
+          "editableUntil": "2018-01-15T16:40:48.984Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nick Quaranto 🦦",
+            "screen_name": "qrush",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "5743852",
+            "id": "5743852"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952878058918301696",
+      "id_str": "952928564474597377",
+      "in_reply_to_user_id": "5743852",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952928564474597377",
+      "in_reply_to_status_id": "952878058918301696",
+      "created_at": "Mon Jan 15 15:40:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@qrush No phones, internet, or tv. It was all they had.",
+      "lang": "en",
+      "in_reply_to_screen_name": "qrush",
+      "in_reply_to_user_id_str": "5743852"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952802049703297025"
+          ],
+          "editableUntil": "2018-01-15T08:18:05.512Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tracy Chou 🌻",
+            "screen_name": "triketora",
+            "indices": [
+              "3",
+              "13"
+            ],
+            "id_str": "19556080",
+            "id": "19556080"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "952802049703297025",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952802049703297025",
+      "created_at": "Mon Jan 15 07:18:05 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @triketora: These bubbles are the largest in all of history. That means they're going to be the most destructive in history when they fi…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952800382933069825"
+          ],
+          "editableUntil": "2018-01-15T08:11:28.123Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adrian Bradley",
+            "screen_name": "adebradley",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "7786722",
+            "id": "7786722"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "40"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952797973402013697",
+      "id_str": "952800382933069825",
+      "in_reply_to_user_id": "7786722",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952800382933069825",
+      "in_reply_to_status_id": "952797973402013697",
+      "created_at": "Mon Jan 15 07:11:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@adebradley Do not throw away your shot.",
+      "lang": "en",
+      "in_reply_to_screen_name": "adebradley",
+      "in_reply_to_user_id_str": "7786722"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952777020777250816"
+          ],
+          "editableUntil": "2018-01-15T06:38:38.151Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "kenneth 🌞",
+            "screen_name": "kpk",
+            "indices": [
+              "0",
+              "4"
+            ],
+            "id_str": "22915745",
+            "id": "22915745"
+          },
+          {
+            "name": "Jason Goldman",
+            "screen_name": "goldman",
+            "indices": [
+              "5",
+              "13"
+            ],
+            "id_str": "291",
+            "id": "291"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "139"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "952776516236013568",
+      "id_str": "952777020777250816",
+      "in_reply_to_user_id": "22915745",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952777020777250816",
+      "in_reply_to_status_id": "952776516236013568",
+      "created_at": "Mon Jan 15 05:38:38 +0000 2018",
+      "favorited": false,
+      "full_text": "@kpk @goldman DS9 is Jefferson. Really solid overall arc but the details don't stand up to scrutiny and seriously problematic all the time.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kpk",
+      "in_reply_to_user_id_str": "22915745"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952776110613254144"
+          ],
+          "editableUntil": "2018-01-15T06:35:01.151Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jason Goldman",
+            "screen_name": "goldman",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "291",
+            "id": "291"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "208"
+      ],
+      "favorite_count": "9",
+      "in_reply_to_status_id_str": "952775630277365760",
+      "id_str": "952776110613254144",
+      "in_reply_to_user_id": "291",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952776110613254144",
+      "in_reply_to_status_id": "952775630277365760",
+      "created_at": "Mon Jan 15 05:35:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@goldman YOU TAKE THAT BACK. But seriously, he's obviously TNG. Annoying to start with, grew a beard, did a bunch of really solid stuff mid-career, fucked up the final season and ultimately canceled too soon.",
+      "lang": "en",
+      "in_reply_to_screen_name": "goldman",
+      "in_reply_to_user_id_str": "291"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952775753149509634"
+          ],
+          "editableUntil": "2018-01-15T06:33:35.925Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jason Goldman",
+            "screen_name": "goldman",
+            "indices": [
+              "3",
+              "11"
+            ],
+            "id_str": "291",
+            "id": "291"
+          },
+          {
+            "name": "Laurie Voss moved to @seldo@alpaca.gold",
+            "screen_name": "seldo",
+            "indices": [
+              "13",
+              "19"
+            ],
+            "id_str": "15453",
+            "id": "15453"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "0",
+      "id_str": "952775753149509634",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952775753149509634",
+      "created_at": "Mon Jan 15 05:33:35 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @goldman: @seldo Hamilton is the DS9 of founding fathers",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952775173064687616"
+          ],
+          "editableUntil": "2018-01-15T06:31:17.622Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "187"
+      ],
+      "favorite_count": "44",
+      "id_str": "952775173064687616",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952775173064687616",
+      "created_at": "Mon Jan 15 05:31:17 +0000 2018",
+      "favorited": false,
+      "full_text": "\"One of the founding fathers, revered mythic figures of your country, was a whiny jerk\"\n*crickets*\n\n\"I don't like this particular Star Trek spinoff\"\n*riots, shouting, people throw chairs*",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952772152112988161"
+          ],
+          "editableUntil": "2018-01-15T06:19:17.371Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "86"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952771948441939968",
+      "id_str": "952772152112988161",
+      "in_reply_to_user_id": "17205841",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952772152112988161",
+      "in_reply_to_status_id": "952771948441939968",
+      "created_at": "Mon Jan 15 05:19:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@TatumCreative I am just past that bit! I get it, he had malaria, k. Move the hell on.",
+      "lang": "en",
+      "in_reply_to_screen_name": "gr3gtatum",
+      "in_reply_to_user_id_str": "17205841"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952771153843519488"
+          ],
+          "editableUntil": "2018-01-15T06:15:19.365Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "201"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952769168553717760",
+      "id_str": "952771153843519488",
+      "in_reply_to_user_id": "17205841",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952771153843519488",
+      "in_reply_to_status_id": "952769168553717760",
+      "created_at": "Mon Jan 15 05:15:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@TatumCreative Yes. It is extremely long and goes into way more detail about housekeeping details than one might wish. (Do you want to know how many servants he had in Paris and what they did? I know.)",
+      "lang": "en",
+      "in_reply_to_screen_name": "gr3gtatum",
+      "in_reply_to_user_id_str": "17205841"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952770902814437378"
+          ],
+          "editableUntil": "2018-01-15T06:14:19.515Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tyler",
+            "screen_name": "tbreisacher",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "72212594",
+            "id": "72212594"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "69"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952769605860130816",
+      "id_str": "952770902814437378",
+      "in_reply_to_user_id": "72212594",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952770902814437378",
+      "in_reply_to_status_id": "952769605860130816",
+      "created_at": "Mon Jan 15 05:14:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@tbreisacher Not on purpose but I am certainly being ratioed to hell.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tbreisacher",
+      "in_reply_to_user_id_str": "72212594"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952767133003390976"
+          ],
+          "editableUntil": "2018-01-15T05:59:20.722Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "175"
+      ],
+      "favorite_count": "13",
+      "in_reply_to_status_id_str": "952766444726509569",
+      "id_str": "952767133003390976",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "952767133003390976",
+      "in_reply_to_status_id": "952766444726509569",
+      "created_at": "Mon Jan 15 04:59:20 +0000 2018",
+      "favorited": false,
+      "full_text": "Adams himself wandered around Europe writing letters and pissing off important diplomats while Franklin kept France on America's side and John Jay negotiated the final treaty.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952766444726509569"
+          ],
+          "editableUntil": "2018-01-15T05:56:36.624Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "269"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "952765757447856128",
+      "id_str": "952766444726509569",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952766444726509569",
+      "in_reply_to_status_id": "952765757447856128",
+      "created_at": "Mon Jan 15 04:56:36 +0000 2018",
+      "favorited": false,
+      "full_text": "This has come up in several of these biographies, but it is really amazing that the independence of the USA, and the size of its territory, was roughly equal in importance to fishing rights off the coast of Newfoundland. Disagreements about fish nearly sunk the treaty.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952765757447856128"
+          ],
+          "editableUntil": "2018-01-15T05:53:52.764Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "234"
+      ],
+      "favorite_count": "27",
+      "id_str": "952765757447856128",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952765757447856128",
+      "created_at": "Mon Jan 15 04:53:52 +0000 2018",
+      "favorited": false,
+      "full_text": "I'm reading a biography of John Adams. My impression of him in passing from the biographies of other founding fathers is that he was a prudish, self-important little shit, and this biography is doing nothing to change that impression.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952763318732668928"
+          ],
+          "editableUntil": "2018-01-15T05:44:11.329Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Geraldine @everywhereist@mastodon.social",
+            "screen_name": "everywhereist",
+            "indices": [
+              "3",
+              "17"
+            ],
+            "id_str": "30409200",
+            "id": "30409200"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "952763318732668928",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952763318732668928",
+      "created_at": "Mon Jan 15 04:44:11 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @everywhereist: Instead of deleting abusive comments on my site I'm editing them to reveal what I think the author's intent truly was. h…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952697772628570112"
+          ],
+          "editableUntil": "2018-01-15T01:23:43.920Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sacha Sayan",
+            "screen_name": "sachasayan",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "48093353",
+            "id": "48093353"
+          },
+          {
+            "name": "Ariel Waldman",
+            "screen_name": "arielwaldman",
+            "indices": [
+              "24",
+              "37"
+            ],
+            "id_str": "814304",
+            "id": "814304"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "108"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952697595931000832",
+      "id_str": "952697772628570112",
+      "in_reply_to_user_id": "48093353",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952697772628570112",
+      "in_reply_to_status_id": "952697595931000832",
+      "created_at": "Mon Jan 15 00:23:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@sachasayan @paulcbetts @arielwaldman How much more bullshit do I have to wade through until Seven shows up?",
+      "lang": "en",
+      "in_reply_to_screen_name": "sachasayan",
+      "in_reply_to_user_id_str": "48093353"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952697606429278208"
+          ],
+          "editableUntil": "2018-01-15T01:23:04.295Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "184"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952696910112088065",
+      "id_str": "952697606429278208",
+      "in_reply_to_user_id": "68567860",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952697606429278208",
+      "in_reply_to_status_id": "952696910112088065",
+      "created_at": "Mon Jan 15 00:23:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@AdamRackis @ceejbot We really don't want to fork Node and as a practical matter don't have the resources to do it anyway. We're part of the Node foundation and want to work within it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AdamRackis",
+      "in_reply_to_user_id_str": "68567860"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952695612041936896"
+          ],
+          "editableUntil": "2018-01-15T01:15:08.796Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ariel Waldman",
+            "screen_name": "arielwaldman",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "814304",
+            "id": "814304"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "61"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952695276388548608",
+      "id_str": "952695612041936896",
+      "in_reply_to_user_id": "814304",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952695612041936896",
+      "in_reply_to_status_id": "952695276388548608",
+      "created_at": "Mon Jan 15 00:15:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@arielwaldman I'm in Season 2. Does it improve at some point?",
+      "lang": "en",
+      "in_reply_to_screen_name": "arielwaldman",
+      "in_reply_to_user_id_str": "814304"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952695505041027072"
+          ],
+          "editableUntil": "2018-01-15T01:14:43.285Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "79"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952695328976719872",
+      "id_str": "952695505041027072",
+      "in_reply_to_user_id": "312270808",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952695505041027072",
+      "in_reply_to_status_id": "952695328976719872",
+      "created_at": "Mon Jan 15 00:14:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@RJasonMorgan I've not watched Enterprise yet. How does it get worse than this?",
+      "lang": "en",
+      "in_reply_to_user_id_str": "312270808"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952695407464689664"
+          ],
+          "editableUntil": "2018-01-15T01:14:20.021Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "155"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952695212807213056",
+      "id_str": "952695407464689664",
+      "in_reply_to_user_id": "68567860",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952695407464689664",
+      "in_reply_to_status_id": "952695212807213056",
+      "created_at": "Mon Jan 15 00:14:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@AdamRackis @ceejbot I don't need Node to adopt our PR. I would like to see positive progress in the direction we're indicating, but it's not an ultimatum.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AdamRackis",
+      "in_reply_to_user_id_str": "68567860"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952695007890173952"
+          ],
+          "editableUntil": "2018-01-15T01:12:44.755Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "95"
+      ],
+      "favorite_count": "27",
+      "id_str": "952695007890173952",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952695007890173952",
+      "created_at": "Mon Jan 15 00:12:44 +0000 2018",
+      "favorited": false,
+      "full_text": "I have been trying to watch Voyager today and it truly is the very worst of all the Star Treks.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952691543223164933"
+          ],
+          "editableUntil": "2018-01-15T00:58:58.714Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "52"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "952689664086958080",
+      "id_str": "952691543223164933",
+      "in_reply_to_user_id": "68567860",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952691543223164933",
+      "in_reply_to_status_id": "952689664086958080",
+      "created_at": "Sun Jan 14 23:58:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@AdamRackis @ceejbot We are not here to start drama.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AdamRackis",
+      "in_reply_to_user_id_str": "68567860"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952602262806855688"
+          ],
+          "editableUntil": "2018-01-14T19:04:12.604Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Arlen Abraham",
+            "screen_name": "arlenarlenarlen",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "15314965",
+            "id": "15314965"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "155"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952598821237764097",
+      "id_str": "952602262806855688",
+      "in_reply_to_user_id": "15314965",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952602262806855688",
+      "in_reply_to_status_id": "952598821237764097",
+      "created_at": "Sun Jan 14 18:04:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@arlenarlenarlen Straight people are less fond of how they appear in glasses than gay people, statistically speaking. Not sure why that correlation exists.",
+      "lang": "en",
+      "in_reply_to_screen_name": "arlenarlenarlen",
+      "in_reply_to_user_id_str": "15314965"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952585697113735169"
+          ],
+          "editableUntil": "2018-01-14T17:58:23.035Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bree (should be writing 🧹🧹🧹)",
+            "screen_name": "mostlybree",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "15587189",
+            "id": "15587189"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "142"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "952283598740062208",
+      "id_str": "952585697113735169",
+      "in_reply_to_user_id": "15587189",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952585697113735169",
+      "in_reply_to_status_id": "952283598740062208",
+      "created_at": "Sun Jan 14 16:58:23 +0000 2018",
+      "favorited": false,
+      "full_text": "@mostlybree This person also thinks buying a large TV would necessitate a $6,000-a-month payment so it's possible they're just not very smart.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mostlybree",
+      "in_reply_to_user_id_str": "15587189"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952584865232244736"
+          ],
+          "editableUntil": "2018-01-14T17:55:04.699Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tilde Thurium",
+            "screen_name": "annthurium",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "17101287",
+            "id": "17101287"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "145"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952584589016367105",
+      "id_str": "952584865232244736",
+      "in_reply_to_user_id": "17101287",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952584865232244736",
+      "in_reply_to_status_id": "952584589016367105",
+      "created_at": "Sun Jan 14 16:55:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@annthurium It's news to me too! I was also surprised to hear gay men are less tan, I thought deliberate tanning would outweigh work environment.",
+      "lang": "en",
+      "in_reply_to_screen_name": "annthurium",
+      "in_reply_to_user_id_str": "17101287"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952584510612258816"
+          ],
+          "editableUntil": "2018-01-14T17:53:40.151Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Vorpal Hex",
+            "screen_name": "VorpalHex",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "809600853766184960",
+            "id": "809600853766184960"
+          },
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "11",
+              "22"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "23",
+              "31"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "124"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952583939666915329",
+      "id_str": "952584510612258816",
+      "in_reply_to_user_id": "809600853766184960",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952584510612258816",
+      "in_reply_to_status_id": "952583939666915329",
+      "created_at": "Sun Jan 14 16:53:40 +0000 2018",
+      "favorited": false,
+      "full_text": "@VorpalHex @AdamRackis @ceejbot If you change your file extensions don't you already know which files are in which language?",
+      "lang": "en",
+      "in_reply_to_screen_name": "VorpalHex",
+      "in_reply_to_user_id_str": "809600853766184960"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952581649593647104"
+          ],
+          "editableUntil": "2018-01-14T17:42:18.031Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "226"
+      ],
+      "favorite_count": "30",
+      "in_reply_to_status_id_str": "952581332378333184",
+      "id_str": "952581649593647104",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952581649593647104",
+      "in_reply_to_status_id": "952581332378333184",
+      "created_at": "Sun Jan 14 16:42:18 +0000 2018",
+      "favorited": false,
+      "full_text": "The folks who wrote the paper took the fact that straight men are more tan on average (because they work outdoors more often) and came up with some bullshit about how melanin levels differ in gay people because ????. So wacky.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952581332378333184"
+          ],
+          "editableUntil": "2018-01-14T17:41:02.401Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "259"
+      ],
+      "favorite_count": "25",
+      "in_reply_to_status_id_str": "952579321285062657",
+      "id_str": "952581332378333184",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952581332378333184",
+      "in_reply_to_status_id": "952579321285062657",
+      "created_at": "Sun Jan 14 16:41:02 +0000 2018",
+      "favorited": false,
+      "full_text": "Yes, it's possible to tell if you're gay by looking at you. Gay people often dress in a way that signals their sexuality. The \"AI\" 🙄 does no better than a six-question survey of questions like \"do you like how you look in glasses?\" and \"do you work outdoors?\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952579321285062657"
+          ],
+          "editableUntil": "2018-01-14T17:33:02.919Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/5M1doUjgWl",
+            "expanded_url": "https://twitter.com/dakami/status/952365705768222720",
+            "display_url": "twitter.com/dakami/status/…",
+            "indices": [
+              "102",
+              "125"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "252"
+      ],
+      "favorite_count": "97",
+      "id_str": "952579321285062657",
+      "truncated": false,
+      "retweet_count": "23",
+      "id": "952579321285062657",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 14 16:33:02 +0000 2018",
+      "favorited": false,
+      "full_text": "That \"AI can tell if you're gay just by looking at you\" study has been really thoroughly discredited: https://t.co/5M1doUjgWl It turns out gay people groom themselves differently, and eye shadow is not an intrinsic biological feature of straight women.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952575547028078592"
+          ],
+          "editableUntil": "2018-01-14T17:18:03.066Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Martin MacKerel",
+            "screen_name": "kemokid",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "15301778",
+            "id": "15301778"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "14"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952441038399918080",
+      "id_str": "952575547028078592",
+      "in_reply_to_user_id": "15301778",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952575547028078592",
+      "in_reply_to_status_id": "952441038399918080",
+      "created_at": "Sun Jan 14 16:18:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@kemokid What?",
+      "lang": "en",
+      "in_reply_to_screen_name": "kemokid",
+      "in_reply_to_user_id_str": "15301778"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952574335247466496"
+          ],
+          "editableUntil": "2018-01-14T17:13:14.155Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Gender API",
+            "screen_name": "Gender_API",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "2960685238",
+            "id": "2960685238"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "56"
+      ],
+      "favorite_count": "298",
+      "in_reply_to_status_id_str": "915535864662564864",
+      "id_str": "952574335247466496",
+      "in_reply_to_user_id": "2960685238",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "952574335247466496",
+      "in_reply_to_status_id": "915535864662564864",
+      "created_at": "Sun Jan 14 16:13:14 +0000 2018",
+      "favorited": false,
+      "full_text": "@Gender_API This is a terrible, terrible, terrible idea.",
+      "lang": "en",
+      "in_reply_to_screen_name": "Gender_API",
+      "in_reply_to_user_id_str": "2960685238"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952419467870404608"
+          ],
+          "editableUntil": "2018-01-14T06:57:50.895Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952419467870404608/photo/1",
+            "indices": [
+              "41",
+              "64"
+            ],
+            "url": "https://t.co/8I0ogIbj1B",
+            "media_url": "http://pbs.twimg.com/media/DTesZZLUMAA-i6w.jpg",
+            "id_str": "952419398467203072",
+            "id": "952419398467203072",
+            "media_url_https": "https://pbs.twimg.com/media/DTesZZLUMAA-i6w.jpg",
+            "sizes": {
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "536",
+                "h": "604",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "536",
+                "h": "604",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "536",
+                "h": "604",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/8I0ogIbj1B"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "64"
+      ],
+      "favorite_count": "27",
+      "id_str": "952419467870404608",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952419467870404608",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 14 05:57:50 +0000 2018",
+      "favorited": false,
+      "full_text": "It me, but mostly because I'm forgetful. https://t.co/8I0ogIbj1B",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952419467870404608/photo/1",
+            "indices": [
+              "41",
+              "64"
+            ],
+            "url": "https://t.co/8I0ogIbj1B",
+            "media_url": "http://pbs.twimg.com/media/DTesZZLUMAA-i6w.jpg",
+            "id_str": "952419398467203072",
+            "id": "952419398467203072",
+            "media_url_https": "https://pbs.twimg.com/media/DTesZZLUMAA-i6w.jpg",
+            "sizes": {
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "536",
+                "h": "604",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "536",
+                "h": "604",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "536",
+                "h": "604",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/8I0ogIbj1B"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952408694553112576"
+          ],
+          "editableUntil": "2018-01-14T06:15:02.336Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam Baldwin",
+            "screen_name": "adam_baldwin",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "14878068",
+            "id": "14878068"
+          },
+          {
+            "name": "Babyfro",
+            "screen_name": "babyfro",
+            "indices": [
+              "14",
+              "22"
+            ],
+            "id_str": "14883693",
+            "id": "14883693"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "134"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "952397080693161984",
+      "id_str": "952408694553112576",
+      "in_reply_to_user_id": "14878068",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952408694553112576",
+      "in_reply_to_status_id": "952397080693161984",
+      "created_at": "Sun Jan 14 05:15:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@adam_baldwin @babyfro There is literally nothing visible in this picture that suggests anything other than an A+ purchasing decision.",
+      "lang": "en",
+      "in_reply_to_screen_name": "adam_baldwin",
+      "in_reply_to_user_id_str": "14878068"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952393905793728512"
+          ],
+          "editableUntil": "2018-01-14T05:16:16.421Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Eric Holthaus",
+            "screen_name": "EricHolthaus",
+            "indices": [
+              "3",
+              "16"
+            ],
+            "id_str": "290180065",
+            "id": "290180065"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "952393905793728512",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952393905793728512",
+      "created_at": "Sun Jan 14 04:16:16 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @EricHolthaus: Puerto Rico, Day 115:\n—About 1.5 million people still w/o power\n—Hundreds of thousands still w/o clean water\n—Still a hum…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952389216788361216"
+          ],
+          "editableUntil": "2018-01-14T04:57:38.475Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Scott Dworkin",
+            "screen_name": "funder",
+            "indices": [
+              "3",
+              "10"
+            ],
+            "id_str": "14247236",
+            "id": "14247236"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/pq0b7b1BEW",
+            "expanded_url": "https://www.pscp.tv/w/bSlIFzFXZ0tnYWtidkd6RXZ8MWt2SnBrQXphUGtHRc5vSsJu_YYyqxGEwRHzV6izHFqQkfQOk7xDYSW37NtW",
+            "display_url": "pscp.tv/w/bSlIFzFXZ0tn…",
+            "indices": [
+              "74",
+              "97"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "97"
+      ],
+      "favorite_count": "0",
+      "id_str": "952389216788361216",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952389216788361216",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 14 03:57:38 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @funder: The word “shithole” is being projected onto Trump’s DC hotel. https://t.co/pq0b7b1BEW",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952389065696985090"
+          ],
+          "editableUntil": "2018-01-14T04:57:02.452Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "meat.io on bluesky",
+            "screen_name": "meat",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "21006515",
+            "id": "21006515"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "40"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952093685033795584",
+      "id_str": "952389065696985090",
+      "in_reply_to_user_id": "21006515",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952389065696985090",
+      "in_reply_to_status_id": "952093685033795584",
+      "created_at": "Sun Jan 14 03:57:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@meat Green card process being terrible?",
+      "lang": "en",
+      "in_reply_to_screen_name": "meat",
+      "in_reply_to_user_id_str": "21006515"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952388682236936192"
+          ],
+          "editableUntil": "2018-01-14T04:55:31.028Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jen reiber walsh",
+            "screen_name": "jrw",
+            "indices": [
+              "0",
+              "4"
+            ],
+            "id_str": "15420902",
+            "id": "15420902"
+          },
+          {
+            "name": "Nolan Caudill",
+            "screen_name": "nolancaudill",
+            "indices": [
+              "5",
+              "18"
+            ],
+            "id_str": "23081862",
+            "id": "23081862"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "29"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952388577131773952",
+      "id_str": "952388682236936192",
+      "in_reply_to_user_id": "15420902",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952388682236936192",
+      "in_reply_to_status_id": "952388577131773952",
+      "created_at": "Sun Jan 14 03:55:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@jrw @nolancaudill ME NEITHER",
+      "lang": "en",
+      "in_reply_to_screen_name": "jrw",
+      "in_reply_to_user_id_str": "15420902"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952348404411019265"
+          ],
+          "editableUntil": "2018-01-14T02:15:28.046Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "David Schmitt",
+            "screen_name": "dev_el_ops",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "2884734326",
+            "id": "2884734326"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "157"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952346710378008576",
+      "id_str": "952348404411019265",
+      "in_reply_to_user_id": "2884734326",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952348404411019265",
+      "in_reply_to_status_id": "952346710378008576",
+      "created_at": "Sun Jan 14 01:15:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@dev_el_ops I'm not saying she doesn't have any experience. I'm saying I think she should run for a lower office before senate. I think any candidate should.",
+      "lang": "en",
+      "in_reply_to_screen_name": "dev_el_ops",
+      "in_reply_to_user_id_str": "2884734326"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952348169483968512"
+          ],
+          "editableUntil": "2018-01-14T02:14:32.035Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "thepaulstella",
+            "screen_name": "thepaulstella",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "1567181394345861120",
+            "id": "1567181394345861120"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "96"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952344977056649217",
+      "id_str": "952348169483968512",
+      "in_reply_to_user_id": "11133992",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952348169483968512",
+      "in_reply_to_status_id": "952344977056649217",
+      "created_at": "Sun Jan 14 01:14:32 +0000 2018",
+      "favorited": false,
+      "full_text": "@thepaulstella Similarly, though less so since congress is much less responsibility than senate.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "11133992"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952340070731735041"
+          ],
+          "editableUntil": "2018-01-14T01:42:21.142Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ashley",
+            "screen_name": "rabcyr",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "26157562",
+            "id": "26157562"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/UB8Q92TW1M",
+            "expanded_url": "https://www.washingtonpost.com/local/md-politics/chelsea-manning-files-to-run-for-us-senate-in-maryland/2018/01/13/6439f0d0-f88c-11e7-beb6-c8d48830c54d_story.html?utm_term=.67db47889ab5",
+            "display_url": "washingtonpost.com/local/md-polit…",
+            "indices": [
+              "29",
+              "52"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "52"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952339797279850496",
+      "id_str": "952340070731735041",
+      "in_reply_to_user_id": "26157562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952340070731735041",
+      "in_reply_to_status_id": "952339797279850496",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 14 00:42:21 +0000 2018",
+      "favorited": false,
+      "full_text": "@rabcyr The Washington Post: https://t.co/UB8Q92TW1M",
+      "lang": "en",
+      "in_reply_to_screen_name": "rabcyr",
+      "in_reply_to_user_id_str": "26157562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952335978852528128"
+          ],
+          "editableUntil": "2018-01-14T01:26:05.562Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "176"
+      ],
+      "favorite_count": "85",
+      "id_str": "952335978852528128",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "952335978852528128",
+      "created_at": "Sun Jan 14 00:26:05 +0000 2018",
+      "favorited": false,
+      "full_text": "I love Chelsea Manning with all my heart but I'll be honest, my first reaction is that maybe she should have run for state or local office before kicking off a senate campaign.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952324964497080320"
+          ],
+          "editableUntil": "2018-01-14T00:42:19.535Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sahil Kapur",
+            "screen_name": "sahilkapur",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "19847765",
+            "id": "19847765"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "952324964497080320",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952324964497080320",
+      "created_at": "Sat Jan 13 23:42:19 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @sahilkapur: It’s weird that I have more security in logging into my gmail account than Hawaii apparently does in freaking out its entir…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952322764144128000"
+          ],
+          "editableUntil": "2018-01-14T00:33:34.930Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "@jackie@toot.cat",
+            "screen_name": "jackie_cs_",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "241267794",
+            "id": "241267794"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952322764144128000/photo/1",
+            "indices": [
+              "61",
+              "84"
+            ],
+            "url": "https://t.co/VJgMonemwd",
+            "media_url": "http://pbs.twimg.com/media/DTdUgC5UMAA7Z2b.jpg",
+            "id_str": "952322755721965568",
+            "id": "952322755721965568",
+            "media_url_https": "https://pbs.twimg.com/media/DTdUgC5UMAA7Z2b.jpg",
+            "sizes": {
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/VJgMonemwd"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "84"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952321875069276165",
+      "id_str": "952322764144128000",
+      "in_reply_to_user_id": "241267794",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952322764144128000",
+      "in_reply_to_status_id": "952321875069276165",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 23:33:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@jackie_cs_ Yes! Where SF meets the ocean is one long beach. https://t.co/VJgMonemwd",
+      "lang": "en",
+      "in_reply_to_screen_name": "jackie_cs_",
+      "in_reply_to_user_id_str": "241267794",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952322764144128000/photo/1",
+            "indices": [
+              "61",
+              "84"
+            ],
+            "url": "https://t.co/VJgMonemwd",
+            "media_url": "http://pbs.twimg.com/media/DTdUgC5UMAA7Z2b.jpg",
+            "id_str": "952322755721965568",
+            "id": "952322755721965568",
+            "media_url_https": "https://pbs.twimg.com/media/DTdUgC5UMAA7Z2b.jpg",
+            "sizes": {
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/VJgMonemwd"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952320880704503809"
+          ],
+          "editableUntil": "2018-01-14T00:26:05.883Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952320880704503809/video/1",
+            "indices": [
+              "13",
+              "36"
+            ],
+            "url": "https://t.co/IXGNoO5Gb7",
+            "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/952320839902314496/pu/img/l37QtATjhN3gXpF_.jpg",
+            "id_str": "952320839902314496",
+            "id": "952320839902314496",
+            "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/952320839902314496/pu/img/l37QtATjhN3gXpF_.jpg",
+            "sizes": {
+              "medium": {
+                "w": "675",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "720",
+                "h": "1280",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "383",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/IXGNoO5Gb7"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "14",
+      "in_reply_to_status_id_str": "952311091769430016",
+      "id_str": "952320880704503809",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952320880704503809",
+      "in_reply_to_status_id": "952311091769430016",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 23:26:05 +0000 2018",
+      "favorited": false,
+      "full_text": "Ocean beach. https://t.co/IXGNoO5Gb7",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952320880704503809/video/1",
+            "indices": [
+              "13",
+              "36"
+            ],
+            "url": "https://t.co/IXGNoO5Gb7",
+            "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/952320839902314496/pu/img/l37QtATjhN3gXpF_.jpg",
+            "id_str": "952320839902314496",
+            "video_info": {
+              "aspect_ratio": [
+                "9",
+                "16"
+              ],
+              "duration_millis": "10850",
+              "variants": [
+                {
+                  "bitrate": "256000",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/ext_tw_video/952320839902314496/pu/vid/180x320/z2WFTD2Y21wFZBSE.mp4"
+                },
+                {
+                  "bitrate": "832000",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/ext_tw_video/952320839902314496/pu/vid/360x640/taXq3zayBGnd6Sf4.mp4"
+                },
+                {
+                  "bitrate": "2176000",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/ext_tw_video/952320839902314496/pu/vid/720x1280/V4Tyw7vfV8VPZs9n.mp4"
+                },
+                {
+                  "content_type": "application/x-mpegURL",
+                  "url": "https://video.twimg.com/ext_tw_video/952320839902314496/pu/pl/w1TICJMAuhrZnPtL.m3u8"
+                }
+              ]
+            },
+            "additional_media_info": {
+              "monetizable": false
+            },
+            "id": "952320839902314496",
+            "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/952320839902314496/pu/img/l37QtATjhN3gXpF_.jpg",
+            "sizes": {
+              "medium": {
+                "w": "675",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "720",
+                "h": "1280",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "383",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "video",
+            "display_url": "pic.twitter.com/IXGNoO5Gb7"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952311091769430016"
+          ],
+          "editableUntil": "2018-01-13T23:47:12.019Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952311091769430016/photo/1",
+            "indices": [
+              "4",
+              "27"
+            ],
+            "url": "https://t.co/6mfvhz83SZ",
+            "media_url": "http://pbs.twimg.com/media/DTdJ4pkVoAAZ9DZ.jpg",
+            "id_str": "952311083791917056",
+            "id": "952311083791917056",
+            "media_url_https": "https://pbs.twimg.com/media/DTdJ4pkVoAAZ9DZ.jpg",
+            "sizes": {
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/6mfvhz83SZ"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "27"
+      ],
+      "favorite_count": "18",
+      "in_reply_to_status_id_str": "952310549726904320",
+      "id_str": "952311091769430016",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952311091769430016",
+      "in_reply_to_status_id": "952310549726904320",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 22:47:12 +0000 2018",
+      "favorited": false,
+      "full_text": "DOG https://t.co/6mfvhz83SZ",
+      "lang": "und",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952311091769430016/photo/1",
+            "indices": [
+              "4",
+              "27"
+            ],
+            "url": "https://t.co/6mfvhz83SZ",
+            "media_url": "http://pbs.twimg.com/media/DTdJ4pkVoAAZ9DZ.jpg",
+            "id_str": "952311083791917056",
+            "id": "952311083791917056",
+            "media_url_https": "https://pbs.twimg.com/media/DTdJ4pkVoAAZ9DZ.jpg",
+            "sizes": {
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/6mfvhz83SZ"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952310797446692864"
+          ],
+          "editableUntil": "2018-01-13T23:46:01.847Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jason quense",
+            "screen_name": "monasticpanic",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "158805214",
+            "id": "158805214"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "181"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952310349017042949",
+      "id_str": "952310797446692864",
+      "in_reply_to_user_id": "158805214",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952310797446692864",
+      "in_reply_to_status_id": "952310349017042949",
+      "created_at": "Sat Jan 13 22:46:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@monasticpanic Right, but that's why it's uncompelling. Pointing out that people are bad at their religion doesn't really advance any kind of debate on immigration or anything else.",
+      "lang": "en",
+      "in_reply_to_screen_name": "monasticpanic",
+      "in_reply_to_user_id_str": "158805214"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952310549726904320"
+          ],
+          "editableUntil": "2018-01-13T23:45:02.786Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952310549726904320/photo/1",
+            "indices": [
+              "80",
+              "103"
+            ],
+            "url": "https://t.co/hvhWd2VDzW",
+            "media_url": "http://pbs.twimg.com/media/DTdJYqsUMAAew2v.jpg",
+            "id_str": "952310534337998848",
+            "id": "952310534337998848",
+            "media_url_https": "https://pbs.twimg.com/media/DTdJYqsUMAAew2v.jpg",
+            "sizes": {
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/hvhWd2VDzW"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "103"
+      ],
+      "favorite_count": "20",
+      "in_reply_to_status_id_str": "952301593667366913",
+      "id_str": "952310549726904320",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "952310549726904320",
+      "in_reply_to_status_id": "952301593667366913",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 22:45:02 +0000 2018",
+      "favorited": false,
+      "full_text": "Sometimes it seems like everything cool in America was, ultimately, FDR's idea. https://t.co/hvhWd2VDzW",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952310549726904320/photo/1",
+            "indices": [
+              "80",
+              "103"
+            ],
+            "url": "https://t.co/hvhWd2VDzW",
+            "media_url": "http://pbs.twimg.com/media/DTdJYqsUMAAew2v.jpg",
+            "id_str": "952310534337998848",
+            "id": "952310534337998848",
+            "media_url_https": "https://pbs.twimg.com/media/DTdJYqsUMAAew2v.jpg",
+            "sizes": {
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/hvhWd2VDzW"
+          },
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952310549726904320/photo/1",
+            "indices": [
+              "80",
+              "103"
+            ],
+            "url": "https://t.co/hvhWd2VDzW",
+            "media_url": "http://pbs.twimg.com/media/DTdJYquV4AAln0_.jpg",
+            "id_str": "952310534346498048",
+            "id": "952310534346498048",
+            "media_url_https": "https://pbs.twimg.com/media/DTdJYquV4AAln0_.jpg",
+            "sizes": {
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/hvhWd2VDzW"
+          },
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952310549726904320/photo/1",
+            "indices": [
+              "80",
+              "103"
+            ],
+            "url": "https://t.co/hvhWd2VDzW",
+            "media_url": "http://pbs.twimg.com/media/DTdJYqtVwAAhW6k.jpg",
+            "id_str": "952310534342295552",
+            "id": "952310534342295552",
+            "media_url_https": "https://pbs.twimg.com/media/DTdJYqtVwAAhW6k.jpg",
+            "sizes": {
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/hvhWd2VDzW"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952305954279714817"
+          ],
+          "editableUntil": "2018-01-13T23:26:47.146Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/kizXb8EYRg",
+            "expanded_url": "https://twitter.com/jamesmartinsj/status/951826937646845952",
+            "display_url": "twitter.com/jamesmartinsj/…",
+            "indices": [
+              "185",
+              "208"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "208"
+      ],
+      "favorite_count": "33",
+      "id_str": "952305954279714817",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "952305954279714817",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 22:26:47 +0000 2018",
+      "favorited": false,
+      "full_text": "\"Jesus was an immigrant\" is such a weirdly uncompelling argument. It is fine for immigrants to not be comic book super heroes. They can just be normal folks. Immigration is still good. https://t.co/kizXb8EYRg",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952301593667366913"
+          ],
+          "editableUntil": "2018-01-13T23:09:27.495Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952301593667366913/photo/1",
+            "indices": [
+              "46",
+              "69"
+            ],
+            "url": "https://t.co/i4LmE76fPe",
+            "media_url": "http://pbs.twimg.com/media/DTdBPfIVoAAQXWI.jpg",
+            "id_str": "952301580522463232",
+            "id": "952301580522463232",
+            "media_url_https": "https://pbs.twimg.com/media/DTdBPfIVoAAQXWI.jpg",
+            "sizes": {
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/i4LmE76fPe"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "69"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "952293639769620480",
+      "id_str": "952301593667366913",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952301593667366913",
+      "in_reply_to_status_id": "952293639769620480",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 22:09:27 +0000 2018",
+      "favorited": false,
+      "full_text": "Quite some way to go, but downhill from here. https://t.co/i4LmE76fPe",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952301593667366913/photo/1",
+            "indices": [
+              "46",
+              "69"
+            ],
+            "url": "https://t.co/i4LmE76fPe",
+            "media_url": "http://pbs.twimg.com/media/DTdBPfIVoAAQXWI.jpg",
+            "id_str": "952301580522463232",
+            "id": "952301580522463232",
+            "media_url_https": "https://pbs.twimg.com/media/DTdBPfIVoAAQXWI.jpg",
+            "sizes": {
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/i4LmE76fPe"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952298459427610624"
+          ],
+          "editableUntil": "2018-01-13T22:57:00.234Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dennis Collinson",
+            "screen_name": "dnscollective",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "30498562",
+            "id": "30498562"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "15",
+              "23"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "60"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952298127058395137",
+      "id_str": "952298459427610624",
+      "in_reply_to_user_id": "30498562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952298459427610624",
+      "in_reply_to_status_id": "952298127058395137",
+      "created_at": "Sat Jan 13 21:57:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@dnscollective @ceejbot Political donations aren't thoughts.",
+      "lang": "en",
+      "in_reply_to_screen_name": "dnscollective",
+      "in_reply_to_user_id_str": "30498562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952297886569545728"
+          ],
+          "editableUntil": "2018-01-13T22:54:43.654Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dennis Collinson",
+            "screen_name": "dnscollective",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "30498562",
+            "id": "30498562"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "15",
+              "23"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "162"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952297631484493824",
+      "id_str": "952297886569545728",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952297886569545728",
+      "in_reply_to_status_id": "952297631484493824",
+      "created_at": "Sat Jan 13 21:54:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@dnscollective @ceejbot I'm walking a very fine line here. I think his actions were detestable, I think he paid a price for them, and I'm willing to call a truce.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952297631484493824"
+          ],
+          "editableUntil": "2018-01-13T22:53:42.837Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dennis Collinson",
+            "screen_name": "dnscollective",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "30498562",
+            "id": "30498562"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "15",
+              "23"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "61"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952297353414717440",
+      "id_str": "952297631484493824",
+      "in_reply_to_user_id": "30498562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952297631484493824",
+      "in_reply_to_status_id": "952297353414717440",
+      "created_at": "Sat Jan 13 21:53:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@dnscollective @ceejbot He unblocked me yesterday apparently!",
+      "lang": "en",
+      "in_reply_to_screen_name": "dnscollective",
+      "in_reply_to_user_id_str": "30498562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952293639769620480"
+          ],
+          "editableUntil": "2018-01-13T22:37:51.138Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952293639769620480/photo/1",
+            "indices": [
+              "52",
+              "75"
+            ],
+            "url": "https://t.co/6fB4qrNMx2",
+            "media_url": "http://pbs.twimg.com/media/DTc57o7VoAAEOs7.jpg",
+            "id_str": "952293542973513728",
+            "id": "952293542973513728",
+            "media_url_https": "https://pbs.twimg.com/media/DTc57o7VoAAEOs7.jpg",
+            "sizes": {
+              "medium": {
+                "w": "768",
+                "h": "1024",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "768",
+                "h": "1024",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/6fB4qrNMx2"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "75"
+      ],
+      "favorite_count": "22",
+      "id_str": "952293639769620480",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952293639769620480",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 21:37:51 +0000 2018",
+      "favorited": false,
+      "full_text": "Oh hello, I am walking to the ocean this afternoon. https://t.co/6fB4qrNMx2",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952293639769620480/photo/1",
+            "indices": [
+              "52",
+              "75"
+            ],
+            "url": "https://t.co/6fB4qrNMx2",
+            "media_url": "http://pbs.twimg.com/media/DTc57o7VoAAEOs7.jpg",
+            "id_str": "952293542973513728",
+            "id": "952293542973513728",
+            "media_url_https": "https://pbs.twimg.com/media/DTc57o7VoAAEOs7.jpg",
+            "sizes": {
+              "medium": {
+                "w": "768",
+                "h": "1024",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "768",
+                "h": "1024",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/6fB4qrNMx2"
+          },
+          {
+            "expanded_url": "https://twitter.com/seldo/status/952293639769620480/photo/1",
+            "indices": [
+              "52",
+              "75"
+            ],
+            "url": "https://t.co/6fB4qrNMx2",
+            "media_url": "http://pbs.twimg.com/media/DTc57rxUMAAaI__.jpg",
+            "id_str": "952293543736782848",
+            "id": "952293543736782848",
+            "media_url_https": "https://pbs.twimg.com/media/DTc57rxUMAAaI__.jpg",
+            "sizes": {
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "768",
+                "h": "1024",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "768",
+                "h": "1024",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/6fB4qrNMx2"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952285466975289344"
+          ],
+          "editableUntil": "2018-01-13T22:05:22.592Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jake Williams",
+            "screen_name": "MalwareJake",
+            "indices": [
+              "3",
+              "15"
+            ],
+            "id_str": "77346069",
+            "id": "77346069"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "952285466975289344",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952285466975289344",
+      "created_at": "Sat Jan 13 21:05:22 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @MalwareJake: The official Linux kernel mailing list being offline for days because it's hosted on a home Linux server that suffered a p…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952284214400991232"
+          ],
+          "editableUntil": "2018-01-13T22:00:23.955Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "BenEncodes",
+            "screen_name": "BenEncodes",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1065837607735545857",
+            "id": "1065837607735545857"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "81"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952284065943625728",
+      "id_str": "952284214400991232",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952284214400991232",
+      "in_reply_to_status_id": "952284065943625728",
+      "created_at": "Sat Jan 13 21:00:23 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenEncodes I also identify heavily with the movie because of my llama-like hair.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952284065943625728"
+          ],
+          "editableUntil": "2018-01-13T21:59:48.560Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "BenEncodes",
+            "screen_name": "BenEncodes",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1065837607735545857",
+            "id": "1065837607735545857"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "105"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952283447090823169",
+      "id_str": "952284065943625728",
+      "in_reply_to_user_id": "154189594",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952284065943625728",
+      "in_reply_to_status_id": "952283447090823169",
+      "created_at": "Sat Jan 13 20:59:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenEncodes My bucket list includes bursting into a room by kicking the door open and saying \"BOOM baby!\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "tandemNuclei",
+      "in_reply_to_user_id_str": "154189594"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952282320823730176"
+          ],
+          "editableUntil": "2018-01-13T21:52:52.491Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "BenEncodes",
+            "screen_name": "BenEncodes",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1065837607735545857",
+            "id": "1065837607735545857"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952279908427866112",
+      "id_str": "952282320823730176",
+      "in_reply_to_user_id": "154189594",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952282320823730176",
+      "in_reply_to_status_id": "952279908427866112",
+      "created_at": "Sat Jan 13 20:52:52 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenEncodes Best Disney movie. Possibly best movie.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tandemNuclei",
+      "in_reply_to_user_id_str": "154189594"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952271882090196992"
+          ],
+          "editableUntil": "2018-01-13T21:11:23.703Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Josh Marshall",
+            "screen_name": "joshtpm",
+            "indices": [
+              "3",
+              "11"
+            ],
+            "id_str": "21268897",
+            "id": "21268897"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "952271882090196992",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952271882090196992",
+      "created_at": "Sat Jan 13 20:11:23 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @joshtpm: If this was just pushing the wrong button I think you need an additional explanation why it took 38 minutes to sound an all cl…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952269773177372673"
+          ],
+          "editableUntil": "2018-01-13T21:03:00.899Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "M.G. Siegler",
+            "screen_name": "mgsiegler",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "652193",
+            "id": "652193"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "48"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952257328555765760",
+      "id_str": "952269773177372673",
+      "in_reply_to_user_id": "652193",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952269773177372673",
+      "in_reply_to_status_id": "952257328555765760",
+      "created_at": "Sat Jan 13 20:03:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@mgsiegler The only winning move is not to play.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mgsiegler",
+      "in_reply_to_user_id_str": "652193"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952269401545297921"
+          ],
+          "editableUntil": "2018-01-13T21:01:32.295Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Late Stage Millennial",
+            "screen_name": "TheAmyCode",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1429148504",
+            "id": "1429148504"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "33"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952268679529418752",
+      "id_str": "952269401545297921",
+      "in_reply_to_user_id": "1429148504",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952269401545297921",
+      "in_reply_to_status_id": "952268679529418752",
+      "created_at": "Sat Jan 13 20:01:32 +0000 2018",
+      "favorited": false,
+      "full_text": "@TheAmyCode Such a great feeling.",
+      "lang": "en",
+      "in_reply_to_screen_name": "TheAmyCode",
+      "in_reply_to_user_id_str": "1429148504"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952266317981077504"
+          ],
+          "editableUntil": "2018-01-13T20:49:17.116Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/IZfLRrdXly",
+            "expanded_url": "https://twitter.com/tulsipress/status/952244980944338944",
+            "display_url": "twitter.com/tulsipress/sta…",
+            "indices": [
+              "33",
+              "56"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "56"
+      ],
+      "favorite_count": "20",
+      "id_str": "952266317981077504",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952266317981077504",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 19:49:17 +0000 2018",
+      "favorited": false,
+      "full_text": "Why do we even have that lever!? https://t.co/IZfLRrdXly",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952238493178126337"
+          ],
+          "editableUntil": "2018-01-13T18:58:43.166Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "9",
+              "19"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "20",
+              "31"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          },
+          {
+            "name": "Bradley Farias",
+            "screen_name": "bradleymeck",
+            "indices": [
+              "32",
+              "44"
+            ],
+            "id_str": "15338477",
+            "id": "15338477"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "45",
+              "54"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "207"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952235723507228672",
+      "id_str": "952238493178126337",
+      "in_reply_to_user_id": "44052627",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952238493178126337",
+      "in_reply_to_status_id": "952235723507228672",
+      "created_at": "Sat Jan 13 17:58:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@nebrius @aredridel @bitandbang @bradleymeck @addaleax Analyzing package.json is for technical reasons orders of magnitude faster than inspecting any other file in a package, so I wouldn't use the third way.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nebrius",
+      "in_reply_to_user_id_str": "44052627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952235693983416320"
+          ],
+          "editableUntil": "2018-01-13T18:47:35.786Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "22",
+      "in_reply_to_status_id_str": "952234733655609344",
+      "id_str": "952235693983416320",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952235693983416320",
+      "in_reply_to_status_id": "952234733655609344",
+      "created_at": "Sat Jan 13 17:47:35 +0000 2018",
+      "favorited": false,
+      "full_text": "\"Premium Cracker\" is my middle name.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952235531483602944"
+          ],
+          "editableUntil": "2018-01-13T18:46:57.043Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          },
+          {
+            "name": "Bradley Farias",
+            "screen_name": "bradleymeck",
+            "indices": [
+              "21",
+              "33"
+            ],
+            "id_str": "15338477",
+            "id": "15338477"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "34",
+              "44"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "45",
+              "54"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "165"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952235018671210498",
+      "id_str": "952235531483602944",
+      "in_reply_to_user_id": "44052627",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952235531483602944",
+      "in_reply_to_status_id": "952235018671210498",
+      "created_at": "Sat Jan 13 17:46:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@nebrius @bitandbang @bradleymeck @aredridel @addaleax It's orthogonal to your broader point anyway, which is that build steps do many things, not just load modules.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nebrius",
+      "in_reply_to_user_id_str": "44052627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952235191883280384"
+          ],
+          "editableUntil": "2018-01-13T18:45:36.076Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "9",
+              "19"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "20",
+              "31"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          },
+          {
+            "name": "Bradley Farias",
+            "screen_name": "bradleymeck",
+            "indices": [
+              "32",
+              "44"
+            ],
+            "id_str": "15338477",
+            "id": "15338477"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "45",
+              "54"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "205"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952233196157992960",
+      "id_str": "952235191883280384",
+      "in_reply_to_user_id": "44052627",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952235191883280384",
+      "in_reply_to_status_id": "952233196157992960",
+      "created_at": "Sat Jan 13 17:45:36 +0000 2018",
+      "favorited": false,
+      "full_text": "@nebrius @aredridel @bitandbang @bradleymeck @addaleax Hmmm. I don't, but probably can. Is there a reliable way to determine it from the package.json? Is just having typescript as a dep enough of a signal?",
+      "lang": "en",
+      "in_reply_to_screen_name": "nebrius",
+      "in_reply_to_user_id_str": "44052627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952234733655609344"
+          ],
+          "editableUntil": "2018-01-13T18:43:46.826Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "90"
+      ],
+      "favorite_count": "24",
+      "id_str": "952234733655609344",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952234733655609344",
+      "created_at": "Sat Jan 13 17:43:46 +0000 2018",
+      "favorited": false,
+      "full_text": "Instacart included two free boxes of \"premium crackers\" in my order and I feel called out.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952233982262853632"
+          ],
+          "editableUntil": "2018-01-13T18:40:47.680Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          },
+          {
+            "name": "Bradley Farias",
+            "screen_name": "bradleymeck",
+            "indices": [
+              "21",
+              "33"
+            ],
+            "id_str": "15338477",
+            "id": "15338477"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "34",
+              "44"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "45",
+              "54"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "147"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952232689674829824",
+      "id_str": "952233982262853632",
+      "in_reply_to_user_id": "44052627",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952233982262853632",
+      "in_reply_to_status_id": "952232689674829824",
+      "created_at": "Sat Jan 13 17:40:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@nebrius @bitandbang @bradleymeck @aredridel @addaleax I would like to go on record as predicting that JSX will become a native part of JavaScript.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nebrius",
+      "in_reply_to_user_id_str": "44052627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952233129137393666"
+          ],
+          "editableUntil": "2018-01-13T18:37:24.279Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/H6LROp28SD",
+            "expanded_url": "https://twitter.com/mlnow/status/952230037562056707",
+            "display_url": "twitter.com/mlnow/status/9…",
+            "indices": [
+              "30",
+              "53"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "53"
+      ],
+      "favorite_count": "5",
+      "id_str": "952233129137393666",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "952233129137393666",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 17:37:24 +0000 2018",
+      "favorited": false,
+      "full_text": "Noooooooo *runs to subscribe* https://t.co/H6LROp28SD",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952230977157267456"
+          ],
+          "editableUntil": "2018-01-13T18:28:51.207Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "Bradley Farias",
+            "screen_name": "bradleymeck",
+            "indices": [
+              "9",
+              "21"
+            ],
+            "id_str": "15338477",
+            "id": "15338477"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "22",
+              "32"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "33",
+              "42"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "136"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952230627742441472",
+      "id_str": "952230977157267456",
+      "in_reply_to_user_id": "44052627",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952230977157267456",
+      "in_reply_to_status_id": "952230627742441472",
+      "created_at": "Sat Jan 13 17:28:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@nebrius @bradleymeck @aredridel @addaleax I think it's good that you recognize how that preference might be swaying your opinions here.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nebrius",
+      "in_reply_to_user_id_str": "44052627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952230617575448576"
+          ],
+          "editableUntil": "2018-01-13T18:27:25.476Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "9",
+              "19"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "20",
+              "29"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "224"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952230003789381632",
+      "id_str": "952230617575448576",
+      "in_reply_to_user_id": "44052627",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952230617575448576",
+      "in_reply_to_status_id": "952230003789381632",
+      "created_at": "Sat Jan 13 17:27:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@nebrius @aredridel @addaleax I look forward to your further thoughts. We are, as somebody said at a conference recently, implementing every idea we can think of and seeing what works. That's the only way to find the answer.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nebrius",
+      "in_reply_to_user_id_str": "44052627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952229969370869760"
+          ],
+          "editableUntil": "2018-01-13T18:24:50.932Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bradley Farias",
+            "screen_name": "bradleymeck",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "15338477",
+            "id": "15338477"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "13",
+              "23"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "24",
+              "32"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "33",
+              "42"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "258"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952229420546260992",
+      "id_str": "952229969370869760",
+      "in_reply_to_user_id": "15338477",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952229969370869760",
+      "in_reply_to_status_id": "952229420546260992",
+      "created_at": "Sat Jan 13 17:24:50 +0000 2018",
+      "favorited": false,
+      "full_text": "@bradleymeck @aredridel @nebrius @addaleax All fair points. We couldn't figure out a way to get around HTTP so we think bundles will still be used as a perf optimization, but getting away without a build step at development time is a worthwhile win, I think.",
+      "lang": "en",
+      "in_reply_to_screen_name": "bradleymeck",
+      "in_reply_to_user_id_str": "15338477"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952229412463788032"
+          ],
+          "editableUntil": "2018-01-13T18:22:38.155Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "9",
+              "19"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "20",
+              "29"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "952228808278487040",
+      "id_str": "952229412463788032",
+      "in_reply_to_user_id": "44052627",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952229412463788032",
+      "in_reply_to_status_id": "952228808278487040",
+      "created_at": "Sat Jan 13 17:22:38 +0000 2018",
+      "favorited": false,
+      "full_text": "@nebrius @aredridel @addaleax That's a very fair point.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nebrius",
+      "in_reply_to_user_id_str": "44052627"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952229026021588993"
+          ],
+          "editableUntil": "2018-01-13T18:21:06.020Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bradley Farias",
+            "screen_name": "bradleymeck",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "15338477",
+            "id": "15338477"
+          },
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "13",
+              "23"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "24",
+              "32"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "33",
+              "42"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "952228648748232709",
+      "id_str": "952229026021588993",
+      "in_reply_to_user_id": "15338477",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952229026021588993",
+      "in_reply_to_status_id": "952228648748232709",
+      "created_at": "Sat Jan 13 17:21:06 +0000 2018",
+      "favorited": false,
+      "full_text": "@bradleymeck @aredridel @nebrius @addaleax Such as?",
+      "lang": "en",
+      "in_reply_to_screen_name": "bradleymeck",
+      "in_reply_to_user_id_str": "15338477"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952228491965095937"
+          ],
+          "editableUntil": "2018-01-13T18:18:58.691Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "11",
+              "19"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "20",
+              "29"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "198"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "952227926291787776",
+      "id_str": "952228491965095937",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952228491965095937",
+      "in_reply_to_status_id": "952227926291787776",
+      "created_at": "Sat Jan 13 17:18:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@aredridel @nebrius @addaleax The goal isn't \"we love ES modules\", the goal is simpler web development work flows. ES modules are the modules that work in the browser, so the goal runs through them.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952227926291787776"
+          ],
+          "editableUntil": "2018-01-13T18:16:43.824Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          },
+          {
+            "name": "Bryan Hughes 🏳️‍🌈",
+            "screen_name": "nebrius",
+            "indices": [
+              "11",
+              "19"
+            ],
+            "id_str": "44052627",
+            "id": "44052627"
+          },
+          {
+            "name": "Anna 🏳️‍⚧️ #blm",
+            "screen_name": "addaleax",
+            "indices": [
+              "20",
+              "29"
+            ],
+            "id_str": "135577613",
+            "id": "135577613"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "170"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "952227017130463232",
+      "id_str": "952227926291787776",
+      "in_reply_to_user_id": "17950990",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952227926291787776",
+      "in_reply_to_status_id": "952227017130463232",
+      "created_at": "Sat Jan 13 17:16:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@aredridel @nebrius @addaleax I bet if the poll was \"would you like to ship code to browsers without needing to set up webpack and Babel\" the responses would be positive.",
+      "lang": "en",
+      "in_reply_to_screen_name": "aredridel",
+      "in_reply_to_user_id_str": "17950990"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952226939820888064"
+          ],
+          "editableUntil": "2018-01-13T18:12:48.631Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tom Forsyth (TODO: replace broken SCOTUS)",
+            "screen_name": "tom_forsyth",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "243293725",
+            "id": "243293725"
+          },
+          {
+            "name": "Brian Gesiak",
+            "screen_name": "modocache",
+            "indices": [
+              "13",
+              "23"
+            ],
+            "id_str": "192478064",
+            "id": "192478064"
+          },
+          {
+            "name": "Steve Canon (PARODY) 🧾",
+            "screen_name": "stephentyrone",
+            "indices": [
+              "24",
+              "38"
+            ],
+            "id_str": "154221301",
+            "id": "154221301"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "119"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "952225578937073664",
+      "id_str": "952226939820888064",
+      "in_reply_to_user_id": "243293725",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952226939820888064",
+      "in_reply_to_status_id": "952225578937073664",
+      "created_at": "Sat Jan 13 17:12:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@tom_forsyth @modocache @stephentyrone Welp. I was definitely in the bucket of software engineers who didn't know that.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tom_forsyth",
+      "in_reply_to_user_id_str": "243293725"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952225879446339584"
+          ],
+          "editableUntil": "2018-01-13T18:08:35.818Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/Ou7WoCAiRg",
+            "expanded_url": "https://github.com/npm/spife/blob/master/docs/getting-started.md",
+            "display_url": "github.com/npm/spife/blob…",
+            "indices": [
+              "116",
+              "139"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "139"
+      ],
+      "favorite_count": "16",
+      "in_reply_to_status_id_str": "952223414139236352",
+      "id_str": "952225879446339584",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "952225879446339584",
+      "in_reply_to_status_id": "952223414139236352",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 17:08:35 +0000 2018",
+      "favorited": false,
+      "full_text": "Oh, and as if that wasn't enough, our engineering team open sourced the framework behind our new website this week: https://t.co/Ou7WoCAiRg",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952223414139236352"
+          ],
+          "editableUntil": "2018-01-13T17:58:48.043Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "223"
+      ],
+      "favorite_count": "13",
+      "in_reply_to_status_id_str": "952222961817214981",
+      "id_str": "952223414139236352",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "952223414139236352",
+      "in_reply_to_status_id": "952222961817214981",
+      "created_at": "Sat Jan 13 16:58:48 +0000 2018",
+      "favorited": false,
+      "full_text": "This last bit is even more experimental, but it's a glimpse at a glorious future where modules just work in browsers, and build steps are a performance optimization, not an unavoidable requirement. It's very, very exciting.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952222961817214981"
+          ],
+          "editableUntil": "2018-01-13T17:57:00.201Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/d89y7mpjow",
+            "expanded_url": "https://twitter.com/maybekatz/status/952006817994891265",
+            "display_url": "twitter.com/maybekatz/stat…",
+            "indices": [
+              "222",
+              "245"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "245"
+      ],
+      "favorite_count": "20",
+      "in_reply_to_status_id_str": "952221784853524481",
+      "id_str": "952222961817214981",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "952222961817214981",
+      "in_reply_to_status_id": "952221784853524481",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 16:57:00 +0000 2018",
+      "favorited": false,
+      "full_text": "Most excitingly to web devs like me, the implementation comes with a new npm command, `npm asset`, which installs ES modules into a new `assets` folder, where they can be loaded directly into a browser with no build step: https://t.co/d89y7mpjow",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494101976761597953"
+          ],
+          "editableUntil": "2022-02-17T01:10:44.989Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "JTK",
+            "screen_name": "heyJTK",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "1023991506934419456",
+            "id": "1023991506934419456"
+          },
+          {
+            "name": "Donut",
+            "screen_name": "Donut",
+            "indices": [
+              "8",
+              "14"
+            ],
+            "id_str": "753998025698189312",
+            "id": "753998025698189312"
+          },
+          {
+            "name": "Aaron Reffett is now @madgoat@hachyderm.io",
+            "screen_name": "madg04t",
+            "indices": [
+              "15",
+              "23"
+            ],
+            "id_str": "158918139",
+            "id": "158918139"
+          },
+          {
+            "name": "darthâ„¢",
+            "screen_name": "darth",
+            "indices": [
+              "24",
+              "30"
+            ],
+            "id_str": "1337271",
+            "id": "1337271"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "166"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1494101846587105280",
+      "id_str": "1494101976761597953",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494101976761597953",
+      "in_reply_to_status_id": "1494101846587105280",
+      "created_at": "Thu Feb 17 00:10:44 +0000 2022",
+      "favorited": false,
+      "full_text": "@heyJTK @Donut @madg04t @darth The answer is \"curly fries\", though shoelace fries are an acceptable substitute, and I need to see how many of my colleagues are wrong.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494101846587105280"
+          ],
+          "editableUntil": "2022-02-17T01:10:13.953Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "JTK",
+            "screen_name": "heyJTK",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "1023991506934419456",
+            "id": "1023991506934419456"
+          },
+          {
+            "name": "Donut",
+            "screen_name": "Donut",
+            "indices": [
+              "8",
+              "14"
+            ],
+            "id_str": "753998025698189312",
+            "id": "753998025698189312"
+          },
+          {
+            "name": "Aaron Reffett is now @madgoat@hachyderm.io",
+            "screen_name": "madg04t",
+            "indices": [
+              "15",
+              "23"
+            ],
+            "id_str": "158918139",
+            "id": "158918139"
+          },
+          {
+            "name": "darthâ„¢",
+            "screen_name": "darth",
+            "indices": [
+              "24",
+              "30"
+            ],
+            "id_str": "1337271",
+            "id": "1337271"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "102"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1494099171586240517",
+      "id_str": "1494101846587105280",
+      "in_reply_to_user_id": "1023991506934419456",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494101846587105280",
+      "in_reply_to_status_id": "1494099171586240517",
+      "created_at": "Thu Feb 17 00:10:13 +0000 2022",
+      "favorited": false,
+      "full_text": "@heyJTK @Donut @madg04t @darth I have now taken this question to Netlify's internal hot takes channel.",
+      "lang": "en",
+      "in_reply_to_screen_name": "heyJTK",
+      "in_reply_to_user_id_str": "1023991506934419456"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494084560073547782"
+          ],
+          "editableUntil": "2022-02-17T00:01:32.527Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "foone🏳️‍⚧️",
+            "screen_name": "Foone",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "13502732",
+            "id": "13502732"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "1494084560073547782",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494084560073547782",
+      "created_at": "Wed Feb 16 23:01:32 +0000 2022",
+      "favorited": false,
+      "full_text": "RT @Foone: ahh, it uses SQLite.\nThat's perfectly normal for an android app, but still, remember this is for a toothbrush. \ntell people in 1…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494080921158373377"
+          ],
+          "editableUntil": "2022-02-16T23:47:04.942Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Derrick Knight",
+            "screen_name": "knight427",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "74209189",
+            "id": "74209189"
+          },
+          {
+            "name": "jeppeReinhold 🇩🇰 @reinhold@fosstodon.org",
+            "screen_name": "DrReinhold",
+            "indices": [
+              "11",
+              "22"
+            ],
+            "id_str": "2415054492",
+            "id": "2415054492"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "130"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1494080468135944195",
+      "id_str": "1494080921158373377",
+      "in_reply_to_user_id": "74209189",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494080921158373377",
+      "in_reply_to_status_id": "1494080468135944195",
+      "created_at": "Wed Feb 16 22:47:04 +0000 2022",
+      "favorited": false,
+      "full_text": "@knight427 @DrReinhold I mean, it makes the room warmer for anyone who the fan isn't pointed at, which probably meant the teacher.",
+      "lang": "en",
+      "in_reply_to_screen_name": "knight427",
+      "in_reply_to_user_id_str": "74209189"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494064603319308293"
+          ],
+          "editableUntil": "2022-02-16T22:42:14.466Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [
+          {
+            "text": "productivity",
+            "indices": [
+              "123",
+              "136"
+            ]
+          }
+        ],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Erik Rasmussen 🇺🇸🇪🇸 @erikras@erikras.com",
+            "screen_name": "erikras",
+            "indices": [
+              "3",
+              "11"
+            ],
+            "id_str": "7618412",
+            "id": "7618412"
+          },
+          {
+            "name": "1Password",
+            "screen_name": "1Password",
+            "indices": [
+              "18",
+              "28"
+            ],
+            "id_str": "793926",
+            "id": "793926"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "69",
+              "75"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "1494064603319308293",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494064603319308293",
+      "created_at": "Wed Feb 16 21:42:14 +0000 2022",
+      "favorited": false,
+      "full_text": "RT @erikras: TIL: @1Password has a CLI! So I can securely publish to @npmjs with:\n\nnpm publish --otp $(op get totp npmjs)\n\n#productivity #d…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494064070453985280"
+          ],
+          "editableUntil": "2022-02-16T22:40:07.421Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Rob Palmer",
+            "screen_name": "robpalmer2",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "55897406",
+            "id": "55897406"
+          },
+          {
+            "name": "Ryan Cavanaugh 👉 searyanc.dev on bsky",
+            "screen_name": "SeaRyanC",
+            "indices": [
+              "12",
+              "21"
+            ],
+            "id_str": "1177182800",
+            "id": "1177182800"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "69"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "1494058393446793221",
+      "id_str": "1494064070453985280",
+      "in_reply_to_user_id": "55897406",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494064070453985280",
+      "in_reply_to_status_id": "1494058393446793221",
+      "created_at": "Wed Feb 16 21:40:07 +0000 2022",
+      "favorited": false,
+      "full_text": "@robpalmer2 @SeaRyanC It is not pointing at where people are sitting.",
+      "lang": "en",
+      "in_reply_to_screen_name": "robpalmer2",
+      "in_reply_to_user_id_str": "55897406"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494063204346982401"
+          ],
+          "editableUntil": "2022-02-16T22:36:40.925Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nate Cohn",
+            "screen_name": "Nate_Cohn",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "463765807",
+            "id": "463765807"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "52"
+      ],
+      "favorite_count": "13",
+      "in_reply_to_status_id_str": "1494062495979425796",
+      "id_str": "1494063204346982401",
+      "in_reply_to_user_id": "463765807",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494063204346982401",
+      "in_reply_to_status_id": "1494062495979425796",
+      "created_at": "Wed Feb 16 21:36:40 +0000 2022",
+      "favorited": false,
+      "full_text": "@Nate_Cohn 1. Get hired\n2. Delete the needle\n3. Quit",
+      "lang": "en",
+      "in_reply_to_screen_name": "Nate_Cohn",
+      "in_reply_to_user_id_str": "463765807"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494062164155400199"
+          ],
+          "editableUntil": "2022-02-16T22:32:32.924Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jeppeReinhold 🇩🇰 @reinhold@fosstodon.org",
+            "screen_name": "DrReinhold",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "2415054492",
+            "id": "2415054492"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "42"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "1494058653338456066",
+      "id_str": "1494062164155400199",
+      "in_reply_to_user_id": "2415054492",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494062164155400199",
+      "in_reply_to_status_id": "1494058653338456066",
+      "created_at": "Wed Feb 16 21:32:32 +0000 2022",
+      "favorited": false,
+      "full_text": "@DrReinhold No, definitely a fan anti-fan.",
+      "lang": "ht",
+      "in_reply_to_screen_name": "DrReinhold",
+      "in_reply_to_user_id_str": "2415054492"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494062064066707457"
+          ],
+          "editableUntil": "2022-02-16T22:32:09.061Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Gary Olsen (LosHuertos)",
+            "screen_name": "garylosh",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "20668569",
+            "id": "20668569"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "39"
+      ],
+      "favorite_count": "14",
+      "in_reply_to_status_id_str": "1494056729906085891",
+      "id_str": "1494062064066707457",
+      "in_reply_to_user_id": "20668569",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494062064066707457",
+      "in_reply_to_status_id": "1494056729906085891",
+      "created_at": "Wed Feb 16 21:32:09 +0000 2022",
+      "favorited": false,
+      "full_text": "@garylosh Dammit, that domain is taken.",
+      "lang": "en",
+      "in_reply_to_screen_name": "garylosh",
+      "in_reply_to_user_id_str": "20668569"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494055094748278785"
+          ],
+          "editableUntil": "2022-02-16T22:04:27.446Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ryan Cavanaugh 👉 searyanc.dev on bsky",
+            "screen_name": "SeaRyanC",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1177182800",
+            "id": "1177182800"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "204"
+      ],
+      "favorite_count": "19",
+      "in_reply_to_status_id_str": "1494054890124939264",
+      "id_str": "1494055094748278785",
+      "in_reply_to_user_id": "1177182800",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494055094748278785",
+      "in_reply_to_status_id": "1494054890124939264",
+      "created_at": "Wed Feb 16 21:04:27 +0000 2022",
+      "favorited": false,
+      "full_text": "@SeaRyanC 1. Unless you can physically feel air moving over your skin from the fan, the fan is not working, it is probably making you warmer\n2. They are almost never properly installed to make (1) happen.",
+      "lang": "en",
+      "in_reply_to_screen_name": "SeaRyanC",
+      "in_reply_to_user_id_str": "1177182800"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494054786156531712"
+          ],
+          "editableUntil": "2022-02-16T22:03:13.872Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494054786156531712/photo/1",
+            "indices": [
+              "0",
+              "23"
+            ],
+            "url": "https://t.co/J2RYuAikSR",
+            "media_url": "http://pbs.twimg.com/media/FLvy5VVUYAUWkVr.jpg",
+            "id_str": "1494054768196476933",
+            "id": "1494054768196476933",
+            "media_url_https": "https://pbs.twimg.com/media/FLvy5VVUYAUWkVr.jpg",
+            "sizes": {
+              "large": {
+                "w": "1280",
+                "h": "960",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "510",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "900",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/J2RYuAikSR"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "23"
+      ],
+      "favorite_count": "45",
+      "in_reply_to_status_id_str": "1494054559882223616",
+      "id_str": "1494054786156531712",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494054786156531712",
+      "in_reply_to_status_id": "1494054559882223616",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 21:03:13 +0000 2022",
+      "favorited": false,
+      "full_text": "https://t.co/J2RYuAikSR",
+      "lang": "zxx",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494054786156531712/photo/1",
+            "indices": [
+              "0",
+              "23"
+            ],
+            "url": "https://t.co/J2RYuAikSR",
+            "media_url": "http://pbs.twimg.com/media/FLvy5VVUYAUWkVr.jpg",
+            "id_str": "1494054768196476933",
+            "id": "1494054768196476933",
+            "media_url_https": "https://pbs.twimg.com/media/FLvy5VVUYAUWkVr.jpg",
+            "sizes": {
+              "large": {
+                "w": "1280",
+                "h": "960",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "510",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "900",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/J2RYuAikSR"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494054559882223616"
+          ],
+          "editableUntil": "2022-02-16T22:02:19.924Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "199"
+      ],
+      "favorite_count": "72",
+      "id_str": "1494054559882223616",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494054559882223616",
+      "created_at": "Wed Feb 16 21:02:19 +0000 2022",
+      "favorited": false,
+      "full_text": "Having an internal company get-to-know-you meeting (we use an app called Donut) and somebody mentioned ceiling fans and now 3 of my co-workers think I'm a complete weirdo obsessed with how fans work.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494044285322153985"
+          ],
+          "editableUntil": "2022-02-16T21:21:30.278Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494044285322153985/photo/1",
+            "indices": [
+              "265",
+              "288"
+            ],
+            "url": "https://t.co/OvDJqDhDUg",
+            "media_url": "http://pbs.twimg.com/media/FLvpAVmUUAA69j3.jpg",
+            "id_str": "1494043893410582528",
+            "id": "1494043893410582528",
+            "media_url_https": "https://pbs.twimg.com/media/FLvpAVmUUAA69j3.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "574",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "1014",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1534",
+                "h": "1296",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/OvDJqDhDUg"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "288"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "1494035027251777536",
+      "id_str": "1494044285322153985",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "1494044285322153985",
+      "in_reply_to_status_id": "1494035027251777536",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 20:21:30 +0000 2022",
+      "favorited": false,
+      "full_text": "The native apps space remains very fragmented, with nobody having more than a third of the market and Electron/React Native/Cordova trading places back and forth as the top 3. Capacitor, Expo and Quasar seem to be the up-and-comers creating the flux in this space. https://t.co/OvDJqDhDUg",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494044285322153985/photo/1",
+            "indices": [
+              "265",
+              "288"
+            ],
+            "url": "https://t.co/OvDJqDhDUg",
+            "media_url": "http://pbs.twimg.com/media/FLvpAVmUUAA69j3.jpg",
+            "id_str": "1494043893410582528",
+            "id": "1494043893410582528",
+            "media_url_https": "https://pbs.twimg.com/media/FLvpAVmUUAA69j3.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "574",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "1014",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1534",
+                "h": "1296",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/OvDJqDhDUg"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494035027251777536"
+          ],
+          "editableUntil": "2022-02-16T20:44:42.982Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494035027251777536/photo/1",
+            "indices": [
+              "272",
+              "295"
+            ],
+            "url": "https://t.co/BLDcUJ1kJN",
+            "media_url": "http://pbs.twimg.com/media/FLvgKSYVUAAsKUO.jpg",
+            "id_str": "1494034168740663296",
+            "id": "1494034168740663296",
+            "media_url_https": "https://pbs.twimg.com/media/FLvgKSYVUAAsKUO.jpg",
+            "sizes": {
+              "medium": {
+                "w": "1200",
+                "h": "1101",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1412",
+                "h": "1296",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "624",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/BLDcUJ1kJN"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "295"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "1494033500919402499",
+      "id_str": "1494035027251777536",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494035027251777536",
+      "in_reply_to_status_id": "1494033500919402499",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 19:44:42 +0000 2022",
+      "favorited": false,
+      "full_text": "SoJ has a somewhat confusing split between \"front-end\" and \"back-end\" frameworks (Ember is front-end but Next.js is back-end?). Surprisingly strong showing from Angular here; if you combined these lists it would be third in usage, which is way stronger than I've seen it. https://t.co/BLDcUJ1kJN",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494035027251777536/photo/1",
+            "indices": [
+              "272",
+              "295"
+            ],
+            "url": "https://t.co/BLDcUJ1kJN",
+            "media_url": "http://pbs.twimg.com/media/FLvgKSYVUAAsKUO.jpg",
+            "id_str": "1494034168740663296",
+            "id": "1494034168740663296",
+            "media_url_https": "https://pbs.twimg.com/media/FLvgKSYVUAAsKUO.jpg",
+            "sizes": {
+              "medium": {
+                "w": "1200",
+                "h": "1101",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1412",
+                "h": "1296",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "624",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/BLDcUJ1kJN"
+          },
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494035027251777536/photo/1",
+            "indices": [
+              "272",
+              "295"
+            ],
+            "url": "https://t.co/BLDcUJ1kJN",
+            "media_url": "http://pbs.twimg.com/media/FLvgKSWVUAIH_eS.jpg",
+            "id_str": "1494034168732274690",
+            "id": "1494034168732274690",
+            "media_url_https": "https://pbs.twimg.com/media/FLvgKSWVUAIH_eS.jpg",
+            "sizes": {
+              "medium": {
+                "w": "1082",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1452",
+                "h": "1610",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "613",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/BLDcUJ1kJN"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494033500919402499"
+          ],
+          "editableUntil": "2022-02-16T20:38:39.076Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "163"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1494033001675587587",
+      "id_str": "1494033500919402499",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494033500919402499",
+      "in_reply_to_status_id": "1494033001675587587",
+      "created_at": "Wed Feb 16 19:38:39 +0000 2022",
+      "favorited": false,
+      "full_text": "(Though I note that npm Workspaces have a higher satisfaction score than Yarn Workspaces, which is a *little* surprising to me, although the difference is not big)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494033001675587587"
+          ],
+          "editableUntil": "2022-02-16T20:36:40.047Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494033001675587587/photo/1",
+            "indices": [
+              "253",
+              "276"
+            ],
+            "url": "https://t.co/gp4HhPYeTc",
+            "media_url": "http://pbs.twimg.com/media/FLvem5LVQAE5hdU.jpg",
+            "id_str": "1494032461168197633",
+            "id": "1494032461168197633",
+            "media_url_https": "https://pbs.twimg.com/media/FLvem5LVQAE5hdU.jpg",
+            "sizes": {
+              "small": {
+                "w": "610",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1076",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1690",
+                "h": "1884",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/gp4HhPYeTc"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "276"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "1494032103582752768",
+      "id_str": "1494033001675587587",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494033001675587587",
+      "in_reply_to_status_id": "1494032103582752768",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 19:36:40 +0000 2022",
+      "favorited": false,
+      "full_text": "SoJ were the first survey I saw that captured positive/negative sentiment and expressed it as a ratio, a concept I adopted for the Jamstack survey too. Here they're using it to \"tier\" popular libraries. Again, no real surprises in the actual data here. https://t.co/gp4HhPYeTc",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494033001675587587/photo/1",
+            "indices": [
+              "253",
+              "276"
+            ],
+            "url": "https://t.co/gp4HhPYeTc",
+            "media_url": "http://pbs.twimg.com/media/FLvem5LVQAE5hdU.jpg",
+            "id_str": "1494032461168197633",
+            "id": "1494032461168197633",
+            "media_url_https": "https://pbs.twimg.com/media/FLvem5LVQAE5hdU.jpg",
+            "sizes": {
+              "small": {
+                "w": "610",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1076",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1690",
+                "h": "1884",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/gp4HhPYeTc"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494032103582752768"
+          ],
+          "editableUntil": "2022-02-16T20:33:05.925Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494032103582752768/photo/1",
+            "indices": [
+              "275",
+              "298"
+            ],
+            "url": "https://t.co/vl7dkkskf9",
+            "media_url": "http://pbs.twimg.com/media/FLvd9MYUUAIkvJ_.jpg",
+            "id_str": "1494031744768430082",
+            "id": "1494031744768430082",
+            "media_url_https": "https://pbs.twimg.com/media/FLvd9MYUUAIkvJ_.jpg",
+            "sizes": {
+              "small": {
+                "w": "541",
+                "h": "680",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1630",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "955",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/vl7dkkskf9"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "298"
+      ],
+      "favorite_count": "12",
+      "in_reply_to_status_id_str": "1494030145220345857",
+      "id_str": "1494032103582752768",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494032103582752768",
+      "in_reply_to_status_id": "1494030145220345857",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 19:33:05 +0000 2022",
+      "favorited": false,
+      "full_text": "I was literally saying yesterday that it's hard to find a use-case for a Minard diagram and here one is, showing changes in popularity and sentiment of a slew of JS libraries over the last 4 years. It's innovative but, perhaps, a little hard to read. No real surprises here. https://t.co/vl7dkkskf9",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494032103582752768/photo/1",
+            "indices": [
+              "275",
+              "298"
+            ],
+            "url": "https://t.co/vl7dkkskf9",
+            "media_url": "http://pbs.twimg.com/media/FLvd9MYUUAIkvJ_.jpg",
+            "id_str": "1494031744768430082",
+            "id": "1494031744768430082",
+            "media_url_https": "https://pbs.twimg.com/media/FLvd9MYUUAIkvJ_.jpg",
+            "sizes": {
+              "small": {
+                "w": "541",
+                "h": "680",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1630",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "955",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/vl7dkkskf9"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494030145220345857"
+          ],
+          "editableUntil": "2022-02-16T20:25:19.015Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/dJ2yhxIUAp",
+            "expanded_url": "https://jamstack.org/survey/2021/#demographics",
+            "display_url": "jamstack.org/survey/2021/#d…",
+            "indices": [
+              "193",
+              "216"
+            ]
+          }
+        ],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494030145220345857/photo/1",
+            "indices": [
+              "276",
+              "299"
+            ],
+            "url": "https://t.co/8C8OIK4FcG",
+            "media_url": "http://pbs.twimg.com/media/FLvcQs5VIAA_0Mw.jpg",
+            "id_str": "1494029880891088896",
+            "id": "1494029880891088896",
+            "media_url_https": "https://pbs.twimg.com/media/FLvcQs5VIAA_0Mw.jpg",
+            "sizes": {
+              "medium": {
+                "w": "1200",
+                "h": "833",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "472",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1740",
+                "h": "1208",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/8C8OIK4FcG"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "299"
+      ],
+      "favorite_count": "16",
+      "in_reply_to_status_id_str": "1494029673143042050",
+      "id_str": "1494030145220345857",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1494030145220345857",
+      "in_reply_to_status_id": "1494029673143042050",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 19:25:19 +0000 2022",
+      "favorited": false,
+      "full_text": "SoJ's data seems to show that the developer community is becoming more racially diverse. We saw a similar effect in our State of the Jamstack survey when we asked about geographical diversity: https://t.co/dJ2yhxIUAp This is an excellent sign for the health of the community. https://t.co/8C8OIK4FcG",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494030145220345857/photo/1",
+            "indices": [
+              "276",
+              "299"
+            ],
+            "url": "https://t.co/8C8OIK4FcG",
+            "media_url": "http://pbs.twimg.com/media/FLvcQs5VIAA_0Mw.jpg",
+            "id_str": "1494029880891088896",
+            "id": "1494029880891088896",
+            "media_url_https": "https://pbs.twimg.com/media/FLvcQs5VIAA_0Mw.jpg",
+            "sizes": {
+              "medium": {
+                "w": "1200",
+                "h": "833",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "472",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1740",
+                "h": "1208",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/8C8OIK4FcG"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494029673143042050"
+          ],
+          "editableUntil": "2022-02-16T20:23:26.463Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Sacha Greif @sachagreif@hachyderm.io",
+            "screen_name": "SachaGreif",
+            "indices": [
+              "78",
+              "89"
+            ],
+            "id_str": "14261086",
+            "id": "14261086"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/BJoRYmTAiV",
+            "expanded_url": "https://dev.to/sachagreif/whats-new-in-the-2021-state-of-javascript-survey-4eej",
+            "display_url": "dev.to/sachagreif/wha…",
+            "indices": [
+              "91",
+              "114"
+            ]
+          }
+        ],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494029673143042050/photo/1",
+            "indices": [
+              "255",
+              "278"
+            ],
+            "url": "https://t.co/L6fkmFWlp9",
+            "media_url": "http://pbs.twimg.com/media/FLvbubkVQAAek7D.jpg",
+            "id_str": "1494029292124061696",
+            "id": "1494029292124061696",
+            "media_url_https": "https://pbs.twimg.com/media/FLvbubkVQAAek7D.jpg",
+            "sizes": {
+              "medium": {
+                "w": "1200",
+                "h": "831",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "471",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1858",
+                "h": "1286",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/L6fkmFWlp9"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "278"
+      ],
+      "favorite_count": "21",
+      "in_reply_to_status_id_str": "1494029242828406785",
+      "id_str": "1494029673143042050",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1494029673143042050",
+      "in_reply_to_status_id": "1494029242828406785",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 19:23:26 +0000 2022",
+      "favorited": false,
+      "full_text": "SoJ has done some amazing work this year (it's now nearly a full-time job for @SachaGreif: https://t.co/BJoRYmTAiV) and one of the things we get from that is \"facets\", where they split questions by other answers. This is ethnicity by years of experience: https://t.co/L6fkmFWlp9",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1494029673143042050/photo/1",
+            "indices": [
+              "255",
+              "278"
+            ],
+            "url": "https://t.co/L6fkmFWlp9",
+            "media_url": "http://pbs.twimg.com/media/FLvbubkVQAAek7D.jpg",
+            "id_str": "1494029292124061696",
+            "id": "1494029292124061696",
+            "media_url_https": "https://pbs.twimg.com/media/FLvbubkVQAAek7D.jpg",
+            "sizes": {
+              "medium": {
+                "w": "1200",
+                "h": "831",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "471",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1858",
+                "h": "1286",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/L6fkmFWlp9"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1494029242828406785"
+          ],
+          "editableUntil": "2022-02-16T20:21:43.868Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/JJz09Jvbc8",
+            "expanded_url": "https://2021.stateofjs.com",
+            "display_url": "2021.stateofjs.com",
+            "indices": [
+              "127",
+              "150"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "150"
+      ],
+      "favorite_count": "27",
+      "id_str": "1494029242828406785",
+      "truncated": false,
+      "retweet_count": "9",
+      "id": "1494029242828406785",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 19:21:43 +0000 2022",
+      "favorited": false,
+      "full_text": "The State of JS 2021 is out (yes they know it's 2022)! Here follows a thread of any interesting graphs I find, as I find them: https://t.co/JJz09Jvbc8",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952221784853524481"
+          ],
+          "editableUntil": "2018-01-13T17:52:19.591Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/4UtfK8mhFe",
+            "expanded_url": "https://twitter.com/jdalton/status/951997590421164032",
+            "display_url": "twitter.com/jdalton/status…",
+            "indices": [
+              "104",
+              "127"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "952221500462870530",
+      "id_str": "952221784853524481",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "952221784853524481",
+      "in_reply_to_status_id": "952221500462870530",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 16:52:19 +0000 2018",
+      "favorited": false,
+      "full_text": "But it's not just a document describing how it might work: we implemented it. You can try it out today: https://t.co/4UtfK8mhFe",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952221500462870530"
+          ],
+          "editableUntil": "2018-01-13T17:51:11.787Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/AOBFbenCjn",
+            "expanded_url": "https://twitter.com/adamrackis/status/952204813051351040",
+            "display_url": "twitter.com/adamrackis/sta…",
+            "indices": [
+              "38",
+              "61"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "61"
+      ],
+      "favorite_count": "9",
+      "in_reply_to_status_id_str": "952221337757532160",
+      "id_str": "952221500462870530",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952221500462870530",
+      "in_reply_to_status_id": "952221337757532160",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 16:51:11 +0000 2018",
+      "favorited": false,
+      "full_text": "Yes, in fact, people seem to like it: https://t.co/AOBFbenCjn",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952221337757532160"
+          ],
+          "editableUntil": "2018-01-13T17:50:32.995Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/clwZ1jyFe3",
+            "expanded_url": "https://twitter.com/jdalton/status/951995685620006912",
+            "display_url": "twitter.com/jdalton/status…",
+            "indices": [
+              "20",
+              "43"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "952220966398001152",
+      "id_str": "952221337757532160",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "952221337757532160",
+      "in_reply_to_status_id": "952220966398001152",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 16:50:32 +0000 2018",
+      "favorited": false,
+      "full_text": "@ceejbot Very good: https://t.co/clwZ1jyFe3",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952220966398001152"
+          ],
+          "editableUntil": "2018-01-13T17:49:04.456Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "31",
+              "39"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/GWJG1IJjv1",
+            "expanded_url": "https://twitter.com/brendaneich/status/951975857093935104",
+            "display_url": "twitter.com/brendaneich/st…",
+            "indices": [
+              "186",
+              "209"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "209"
+      ],
+      "favorite_count": "97",
+      "id_str": "952220966398001152",
+      "truncated": false,
+      "retweet_count": "30",
+      "id": "952220966398001152",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 16:49:04 +0000 2018",
+      "favorited": false,
+      "full_text": "npm's engineering team, led by @ceejbot, are taking a stab at making native ES modules easier to work with in node, an important future direction for JavaScript. Early reviews are good: https://t.co/GWJG1IJjv1",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "952073046830927872"
+          ],
+          "editableUntil": "2018-01-13T08:01:17.683Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "",
+            "screen_name": "Braintasm",
+            "indices": [
+              "3",
+              "13"
+            ],
+            "id_str": "-1",
+            "id": "-1"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "952073046830927872",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "952073046830927872",
+      "created_at": "Sat Jan 13 07:01:17 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @Braintasm: Went and saw The Post tonight. I watched a film about newspapers inside a movie theater inside of a mall. It was a dying ind…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951989980708028417"
+          ],
+          "editableUntil": "2018-01-13T02:31:13.176Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "79"
+      ],
+      "favorite_count": "27",
+      "id_str": "951989980708028417",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951989980708028417",
+      "created_at": "Sat Jan 13 01:31:13 +0000 2018",
+      "favorited": false,
+      "full_text": "Let's play everyone's favorite BART game \"who in this car is it smells of pee?\"",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951985765155856385"
+          ],
+          "editableUntil": "2018-01-13T02:14:28.110Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951985765155856385/photo/1",
+            "indices": [
+              "209",
+              "232"
+            ],
+            "url": "https://t.co/pji2ZSxJ4G",
+            "media_url": "http://pbs.twimg.com/media/DTYhnl3VMAAbGOC.jpg",
+            "id_str": "951985335298240512",
+            "id": "951985335298240512",
+            "media_url_https": "https://pbs.twimg.com/media/DTYhnl3VMAAbGOC.jpg",
+            "sizes": {
+              "medium": {
+                "w": "725",
+                "h": "478",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "725",
+                "h": "478",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "448",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/pji2ZSxJ4G"
+          }
+        ],
+        "hashtags": [
+          {
+            "text": "npmstats",
+            "indices": [
+              "0",
+              "9"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "232"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "951985184731099136",
+      "id_str": "951985765155856385",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "951985765155856385",
+      "in_reply_to_status_id": "951985184731099136",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 01:14:28 +0000 2018",
+      "favorited": false,
+      "full_text": "#npmstats for January 2018: 5 is about to overtake 3 as the most popular version (right in line with the shift from node 6 to node 8). Why is anyone still using npm 1.x that thing is really broken these days. https://t.co/pji2ZSxJ4G",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951985765155856385/photo/1",
+            "indices": [
+              "209",
+              "232"
+            ],
+            "url": "https://t.co/pji2ZSxJ4G",
+            "media_url": "http://pbs.twimg.com/media/DTYhnl3VMAAbGOC.jpg",
+            "id_str": "951985335298240512",
+            "id": "951985335298240512",
+            "media_url_https": "https://pbs.twimg.com/media/DTYhnl3VMAAbGOC.jpg",
+            "sizes": {
+              "medium": {
+                "w": "725",
+                "h": "478",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "725",
+                "h": "478",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "448",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/pji2ZSxJ4G"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951985184731099136"
+          ],
+          "editableUntil": "2018-01-13T02:12:09.726Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951985184731099136/photo/1",
+            "indices": [
+              "175",
+              "198"
+            ],
+            "url": "https://t.co/vugmkGhKuM",
+            "media_url": "http://pbs.twimg.com/media/DTYhMEOU8AAYpNS.jpg",
+            "id_str": "951984862411419648",
+            "id": "951984862411419648",
+            "media_url_https": "https://pbs.twimg.com/media/DTYhMEOU8AAYpNS.jpg",
+            "sizes": {
+              "medium": {
+                "w": "779",
+                "h": "521",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "455",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "779",
+                "h": "521",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/vugmkGhKuM"
+          }
+        ],
+        "hashtags": [
+          {
+            "text": "nodestats",
+            "indices": [
+              "0",
+              "10"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "198"
+      ],
+      "favorite_count": "8",
+      "id_str": "951985184731099136",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "951985184731099136",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 13 01:12:09 +0000 2018",
+      "favorited": false,
+      "full_text": "#nodestats for January 2018: Node 8.x is on track to become the most popular version, node 6.x is still most popular right now, and node 9 is already making a strong showing: https://t.co/vugmkGhKuM",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951985184731099136/photo/1",
+            "indices": [
+              "175",
+              "198"
+            ],
+            "url": "https://t.co/vugmkGhKuM",
+            "media_url": "http://pbs.twimg.com/media/DTYhMEOU8AAYpNS.jpg",
+            "id_str": "951984862411419648",
+            "id": "951984862411419648",
+            "media_url_https": "https://pbs.twimg.com/media/DTYhMEOU8AAYpNS.jpg",
+            "sizes": {
+              "medium": {
+                "w": "779",
+                "h": "521",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "455",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "779",
+                "h": "521",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/vugmkGhKuM"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951971585887387648"
+          ],
+          "editableUntil": "2018-01-13T01:18:07.509Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "82"
+      ],
+      "favorite_count": "68",
+      "id_str": "951971585887387648",
+      "truncated": false,
+      "retweet_count": "11",
+      "id": "951971585887387648",
+      "created_at": "Sat Jan 13 00:18:07 +0000 2018",
+      "favorited": false,
+      "full_text": "The number of presidents of the USA who were not racist, by the way, is \"maybe 1\".",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951970388086464513"
+          ],
+          "editableUntil": "2018-01-13T01:13:21.931Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Catherynne M. Valente",
+            "screen_name": "catvalente",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "18000189",
+            "id": "18000189"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "951970388086464513",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951970388086464513",
+      "created_at": "Sat Jan 13 00:13:21 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @catvalente: Trump was just asked publicly if he is a racist.\n\nHe immediately ended the presser.\n\nHe turned around and left the room.\n\nB…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951942919224569856"
+          ],
+          "editableUntil": "2018-01-12T23:24:12.844Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Amanda Guinzburg",
+            "screen_name": "Guinz",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "19834228",
+            "id": "19834228"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "951942919224569856",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951942919224569856",
+      "created_at": "Fri Jan 12 22:24:12 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @Guinz: It's unfortunate and unhelpful that you are a spineless shill who refuses to vehemently condemn disgusting racism from the Presi…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951938226377277440"
+          ],
+          "editableUntil": "2018-01-12T23:05:33.982Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Rivers",
+            "screen_name": "jeffrivers",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1784701",
+            "id": "1784701"
+          },
+          {
+            "name": "@meyerweb@mastodon.social",
+            "screen_name": "meyerweb",
+            "indices": [
+              "12",
+              "21"
+            ],
+            "id_str": "646533",
+            "id": "646533"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951937252573106176",
+      "id_str": "951938226377277440",
+      "in_reply_to_user_id": "1784701",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951938226377277440",
+      "in_reply_to_status_id": "951937252573106176",
+      "created_at": "Fri Jan 12 22:05:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffrivers @meyerweb Definitely too smart.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jeffrivers",
+      "in_reply_to_user_id_str": "1784701"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951933497366560773"
+          ],
+          "editableUntil": "2018-01-12T22:46:46.498Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "94"
+      ],
+      "favorite_count": "4",
+      "id_str": "951933497366560773",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951933497366560773",
+      "created_at": "Fri Jan 12 21:46:46 +0000 2018",
+      "favorited": false,
+      "full_text": "So where's he going to go with this. \"Lying Stormy\"? \"Ugly Stormy\"? \"I've never even met her\"?",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951933258609999872"
+          ],
+          "editableUntil": "2018-01-12T22:45:49.574Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Yashar Ali 🐘",
+            "screen_name": "yashar",
+            "indices": [
+              "3",
+              "10"
+            ],
+            "id_str": "11744152",
+            "id": "11744152"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "79"
+      ],
+      "favorite_count": "0",
+      "id_str": "951933258609999872",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951933258609999872",
+      "created_at": "Fri Jan 12 21:45:49 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @yashar: If the President tweets about Stormy Daniels I'm taking a week off.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951904184290353152"
+          ],
+          "editableUntil": "2018-01-12T20:50:17.716Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "89"
+      ],
+      "favorite_count": "36",
+      "id_str": "951904184290353152",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951904184290353152",
+      "created_at": "Fri Jan 12 19:50:17 +0000 2018",
+      "favorited": false,
+      "full_text": "TFW you spend 3 months putting off a tedious admin phone call and it's over in 3 minutes.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951899468974112768"
+          ],
+          "editableUntil": "2018-01-12T20:31:33.497Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/S9G6DeThhe",
+            "expanded_url": "http://www.sfgate.com/business/networth/article/New-law-bans-California-employers-from-asking-12274431.php",
+            "display_url": "sfgate.com/business/netwo…",
+            "indices": [
+              "134",
+              "157"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "157"
+      ],
+      "favorite_count": "11",
+      "id_str": "951899468974112768",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "951899468974112768",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 12 19:31:33 +0000 2018",
+      "favorited": false,
+      "full_text": "Your reminder that if you are interviewing for a job it is illegal in California for the employer to ask you what you currently earn: https://t.co/S9G6DeThhe",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951881018973110272"
+          ],
+          "editableUntil": "2018-01-12T19:18:14.674Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Daniel Lo Nigro | Mastodon: @dan@d.sb",
+            "screen_name": "Daniel15",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "14282250",
+            "id": "14282250"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "87"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951879085805850629",
+      "id_str": "951881018973110272",
+      "in_reply_to_user_id": "14282250",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951881018973110272",
+      "in_reply_to_status_id": "951879085805850629",
+      "created_at": "Fri Jan 12 18:18:14 +0000 2018",
+      "favorited": false,
+      "full_text": "@Daniel15 I mean, a big chunk of it is absolutely CI, but CI usage is legitimate usage.",
+      "lang": "en",
+      "in_reply_to_screen_name": "Daniel15",
+      "in_reply_to_user_id_str": "14282250"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951874671888117765"
+          ],
+          "editableUntil": "2018-01-12T18:53:01.411Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "ian bremmer",
+            "screen_name": "ianbremmer",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "60783724",
+            "id": "60783724"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/ianbremmer/status/951870733088681985/photo/1",
+            "source_status_id": "951870733088681985",
+            "indices": [
+              "44",
+              "67"
+            ],
+            "url": "https://t.co/ArMLwFW4Cs",
+            "media_url": "http://pbs.twimg.com/media/DTW5APAWAAAw_1k.jpg",
+            "id_str": "951870309937840128",
+            "source_user_id": "60783724",
+            "id": "951870309937840128",
+            "media_url_https": "https://pbs.twimg.com/media/DTW5APAWAAAw_1k.jpg",
+            "source_user_id_str": "60783724",
+            "sizes": {
+              "large": {
+                "w": "578",
+                "h": "656",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "578",
+                "h": "656",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "578",
+                "h": "656",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "951870733088681985",
+            "display_url": "pic.twitter.com/ArMLwFW4Cs"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "67"
+      ],
+      "favorite_count": "0",
+      "id_str": "951874671888117765",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951874671888117765",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 12 17:53:01 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @ianbremmer: Press Release of the Month. https://t.co/ArMLwFW4Cs",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/ianbremmer/status/951870733088681985/photo/1",
+            "source_status_id": "951870733088681985",
+            "indices": [
+              "44",
+              "67"
+            ],
+            "url": "https://t.co/ArMLwFW4Cs",
+            "media_url": "http://pbs.twimg.com/media/DTW5APAWAAAw_1k.jpg",
+            "id_str": "951870309937840128",
+            "source_user_id": "60783724",
+            "id": "951870309937840128",
+            "media_url_https": "https://pbs.twimg.com/media/DTW5APAWAAAw_1k.jpg",
+            "source_user_id_str": "60783724",
+            "sizes": {
+              "large": {
+                "w": "578",
+                "h": "656",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "578",
+                "h": "656",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "578",
+                "h": "656",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "951870733088681985",
+            "display_url": "pic.twitter.com/ArMLwFW4Cs"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951874082601127937"
+          ],
+          "editableUntil": "2018-01-12T18:50:40.914Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🇧🇧🇹🇹🏳️‍🌈🌉 🚴🏿Ed says Yes on J, No on I",
+            "screen_name": "eparillon",
+            "indices": [
+              "3",
+              "13"
+            ],
+            "id_str": "5818162",
+            "id": "5818162"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "951874082601127937",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951874082601127937",
+      "created_at": "Fri Jan 12 17:50:40 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @eparillon: Trump has a point. I mean do you know in some of those countries people have to go on gofundme to raise cash for basic medic…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951871696507518977"
+          ],
+          "editableUntil": "2018-01-12T18:41:12.025Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jamil Smith جميل كريم",
+            "screen_name": "JamilSmith",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "46213956",
+            "id": "46213956"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "951871696507518977",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951871696507518977",
+      "created_at": "Fri Jan 12 17:41:12 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @JamilSmith: \"Donald Trump came onto the political scene with a racist conspiracy theory. He ran a racist campaign. As president, he con…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951871434090934272"
+          ],
+          "editableUntil": "2018-01-12T18:40:09.460Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "rat king 🐀",
+            "screen_name": "MikeIsaac",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "19040598",
+            "id": "19040598"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951871434090934272/photo/1",
+            "indices": [
+              "12",
+              "35"
+            ],
+            "url": "https://t.co/uTLBAvrPdF",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DTW6BVsUMAAMgXD.jpg",
+            "id_str": "951871428424380416",
+            "id": "951871428424380416",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DTW6BVsUMAAMgXD.jpg",
+            "sizes": {
+              "medium": {
+                "w": "250",
+                "h": "250",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "250",
+                "h": "250",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "250",
+                "h": "250",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/uTLBAvrPdF"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "951866653943332864",
+      "id_str": "951871434090934272",
+      "in_reply_to_user_id": "19040598",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951871434090934272",
+      "in_reply_to_status_id": "951866653943332864",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 12 17:40:09 +0000 2018",
+      "favorited": false,
+      "full_text": "@MikeIsaac  https://t.co/uTLBAvrPdF",
+      "lang": "qme",
+      "in_reply_to_screen_name": "MikeIsaac",
+      "in_reply_to_user_id_str": "19040598",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951871434090934272/photo/1",
+            "indices": [
+              "12",
+              "35"
+            ],
+            "url": "https://t.co/uTLBAvrPdF",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DTW6BVsUMAAMgXD.jpg",
+            "id_str": "951871428424380416",
+            "video_info": {
+              "aspect_ratio": [
+                "1",
+                "1"
+              ],
+              "variants": [
+                {
+                  "bitrate": "0",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/tweet_video/DTW6BVsUMAAMgXD.mp4"
+                }
+              ]
+            },
+            "id": "951871428424380416",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DTW6BVsUMAAMgXD.jpg",
+            "sizes": {
+              "medium": {
+                "w": "250",
+                "h": "250",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "250",
+                "h": "250",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "250",
+                "h": "250",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "animated_gif",
+            "display_url": "pic.twitter.com/uTLBAvrPdF"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951866006384779264"
+          ],
+          "editableUntil": "2018-01-12T18:18:35.394Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ed Miliband",
+            "screen_name": "Ed_Miliband",
+            "indices": [
+              "3",
+              "15"
+            ],
+            "id_str": "61781260",
+            "id": "61781260"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/9xV7bFZQgL",
+            "expanded_url": "https://twitter.com/realdonaldtrump/status/951679619341737986",
+            "display_url": "twitter.com/realdonaldtrum…",
+            "indices": [
+              "87",
+              "110"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "110"
+      ],
+      "favorite_count": "0",
+      "id_str": "951866006384779264",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951866006384779264",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 12 17:18:35 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @Ed_Miliband: Nope it’s because nobody wanted you to come. And you got the message. https://t.co/9xV7bFZQgL",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951861036239396864"
+          ],
+          "editableUntil": "2018-01-12T17:58:50.419Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "lauraolin dot com slash newsletter",
+            "screen_name": "lauraolin",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "14069365",
+            "id": "14069365"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "107"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951859861519831040",
+      "id_str": "951861036239396864",
+      "in_reply_to_user_id": "14069365",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951861036239396864",
+      "in_reply_to_status_id": "951859861519831040",
+      "created_at": "Fri Jan 12 16:58:50 +0000 2018",
+      "favorited": false,
+      "full_text": "@lauraolin I like the concept but think you're going to need to workshop the title after the next 24 hours.",
+      "lang": "en",
+      "in_reply_to_screen_name": "lauraolin",
+      "in_reply_to_user_id_str": "14069365"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951834933202272256"
+          ],
+          "editableUntil": "2018-01-12T16:15:06.970Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "David @automatedtester@mastodon.social",
+            "screen_name": "AutomatedTester",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "20143607",
+            "id": "20143607"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "23"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951803354514157568",
+      "id_str": "951834933202272256",
+      "in_reply_to_user_id": "20143607",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951834933202272256",
+      "in_reply_to_status_id": "951803354514157568",
+      "created_at": "Fri Jan 12 15:15:06 +0000 2018",
+      "favorited": false,
+      "full_text": "@AutomatedTester 🇹🇹🇹🇹🇹🇹",
+      "lang": "qme",
+      "in_reply_to_screen_name": "AutomatedTester",
+      "in_reply_to_user_id_str": "20143607"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951725349536071682"
+          ],
+          "editableUntil": "2018-01-12T08:59:40.188Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John Legend",
+            "screen_name": "johnlegend",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "18228898",
+            "id": "18228898"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "951725349536071682",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951725349536071682",
+      "created_at": "Fri Jan 12 07:59:40 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @johnlegend: The president is a racist. He has been for his entire public life. If you vote(d) for him, you do so because of that or des…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951723671403380736"
+          ],
+          "editableUntil": "2018-01-12T08:53:00.090Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matthew McGregor",
+            "screen_name": "mcgregormt",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "15205606",
+            "id": "15205606"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "122"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951722578682490880",
+      "id_str": "951723671403380736",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951723671403380736",
+      "in_reply_to_status_id": "951722578682490880",
+      "created_at": "Fri Jan 12 07:53:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@mcgregormt P.S. the automatic passport control machines at MIA still tell you to insert your green card the wrong way up.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951722578682490880"
+          ],
+          "editableUntil": "2018-01-12T08:48:39.565Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matthew McGregor",
+            "screen_name": "mcgregormt",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "15205606",
+            "id": "15205606"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "259"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951720624283668480",
+      "id_str": "951722578682490880",
+      "in_reply_to_user_id": "15205606",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951722578682490880",
+      "in_reply_to_status_id": "951720624283668480",
+      "created_at": "Fri Jan 12 07:48:39 +0000 2018",
+      "favorited": false,
+      "full_text": "@mcgregormt As a Trinidadian, it was an excellently representative introduction to the immigration experience in that I was given actively incorrect, illegal instructions by a poorly trained clerk who treated me like a criminal and expected me to be grateful.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mcgregormt",
+      "in_reply_to_user_id_str": "15205606"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951711279630069760"
+          ],
+          "editableUntil": "2018-01-12T08:03:45.661Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Evan Goer",
+            "screen_name": "evangoer",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "15164211",
+            "id": "15164211"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "67"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951711124356923393",
+      "id_str": "951711279630069760",
+      "in_reply_to_user_id": "15164211",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951711279630069760",
+      "in_reply_to_status_id": "951711124356923393",
+      "created_at": "Fri Jan 12 07:03:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@evangoer You are suspiciously full of details on this thing, Evan.",
+      "lang": "en",
+      "in_reply_to_screen_name": "evangoer",
+      "in_reply_to_user_id_str": "15164211"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951711050369400832"
+          ],
+          "editableUntil": "2018-01-12T08:02:51.001Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "154"
+      ],
+      "favorite_count": "197",
+      "id_str": "951711050369400832",
+      "truncated": false,
+      "retweet_count": "14",
+      "id": "951711050369400832",
+      "created_at": "Fri Jan 12 07:02:51 +0000 2018",
+      "favorited": false,
+      "full_text": "I would just like to say that I am an immigrant from one of the shithole countries, and the orange bastard can go fuck himself, in case that wasn't clear.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951710490375307265"
+          ],
+          "editableUntil": "2018-01-12T08:00:37.488Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "KING KORTNEY😷",
+            "screen_name": "fakerapper",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14256353",
+            "id": "14256353"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "951688196743573505",
+      "id_str": "951710490375307265",
+      "in_reply_to_user_id": "14256353",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951710490375307265",
+      "in_reply_to_status_id": "951688196743573505",
+      "created_at": "Fri Jan 12 07:00:37 +0000 2018",
+      "favorited": false,
+      "full_text": "@fakerapper They're crushing on you.",
+      "lang": "en",
+      "in_reply_to_screen_name": "fakerapper",
+      "in_reply_to_user_id_str": "14256353"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951709841013157889"
+          ],
+          "editableUntil": "2018-01-12T07:58:02.668Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Evan Goer",
+            "screen_name": "evangoer",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "15164211",
+            "id": "15164211"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "68"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951704856674234369",
+      "id_str": "951709841013157889",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951709841013157889",
+      "in_reply_to_status_id": "951704856674234369",
+      "created_at": "Fri Jan 12 06:58:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@evangoer Those poor fuckers have been writing a lot of fan fiction.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951708764838666240"
+          ],
+          "editableUntil": "2018-01-12T07:53:46.088Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Deanboop",
+            "screen_name": "deanboop",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1538810077385089024",
+            "id": "1538810077385089024"
+          },
+          {
+            "name": "Hack Reactor",
+            "screen_name": "HackReactor",
+            "indices": [
+              "10",
+              "22"
+            ],
+            "id_str": "1102977272",
+            "id": "1102977272"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "86"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951707394672750592",
+      "id_str": "951708764838666240",
+      "in_reply_to_user_id": "148832579",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951708764838666240",
+      "in_reply_to_status_id": "951707394672750592",
+      "created_at": "Fri Jan 12 06:53:46 +0000 2018",
+      "favorited": false,
+      "full_text": "@deanboop @HackReactor I love finding out where HR grads have got to! How's OpenTable?",
+      "lang": "en",
+      "in_reply_to_screen_name": "boopmatt",
+      "in_reply_to_user_id_str": "148832579"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951706427432685570"
+          ],
+          "editableUntil": "2018-01-12T07:44:28.807Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Félix Saparelli",
+            "screen_name": "passcod",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "92200252",
+            "id": "92200252"
+          },
+          {
+            "name": "Hack Reactor",
+            "screen_name": "HackReactor",
+            "indices": [
+              "9",
+              "21"
+            ],
+            "id_str": "1102977272",
+            "id": "1102977272"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951705997956886528",
+      "id_str": "951706427432685570",
+      "in_reply_to_user_id": "92200252",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951706427432685570",
+      "in_reply_to_status_id": "951705997956886528",
+      "created_at": "Fri Jan 12 06:44:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@passcod @HackReactor That exactly.",
+      "lang": "en",
+      "in_reply_to_screen_name": "passcod",
+      "in_reply_to_user_id_str": "92200252"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951705514009706496"
+          ],
+          "editableUntil": "2018-01-12T07:40:51.030Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Hack Reactor",
+            "screen_name": "HackReactor",
+            "indices": [
+              "37",
+              "49"
+            ],
+            "id_str": "1102977272",
+            "id": "1102977272"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951705514009706496/photo/1",
+            "indices": [
+              "84",
+              "107"
+            ],
+            "url": "https://t.co/bOwEjSxitZ",
+            "media_url": "http://pbs.twimg.com/media/DTUjHH2VMAAGMQi.jpg",
+            "id_str": "951705501531713536",
+            "id": "951705501531713536",
+            "media_url_https": "https://pbs.twimg.com/media/DTUjHH2VMAAGMQi.jpg",
+            "sizes": {
+              "large": {
+                "w": "2048",
+                "h": "1538",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "511",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "901",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/bOwEjSxitZ"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "107"
+      ],
+      "favorite_count": "26",
+      "in_reply_to_status_id_str": "951648938385293312",
+      "id_str": "951705514009706496",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951705514009706496",
+      "in_reply_to_status_id": "951648938385293312",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 12 06:40:51 +0000 2018",
+      "favorited": false,
+      "full_text": "Spent time with my favorite folks at @HackReactor. As always, the perfect audience. https://t.co/bOwEjSxitZ",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951705514009706496/photo/1",
+            "indices": [
+              "84",
+              "107"
+            ],
+            "url": "https://t.co/bOwEjSxitZ",
+            "media_url": "http://pbs.twimg.com/media/DTUjHH2VMAAGMQi.jpg",
+            "id_str": "951705501531713536",
+            "id": "951705501531713536",
+            "media_url_https": "https://pbs.twimg.com/media/DTUjHH2VMAAGMQi.jpg",
+            "sizes": {
+              "large": {
+                "w": "2048",
+                "h": "1538",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "511",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "901",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/bOwEjSxitZ"
+          },
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951705514009706496/photo/1",
+            "indices": [
+              "84",
+              "107"
+            ],
+            "url": "https://t.co/bOwEjSxitZ",
+            "media_url": "http://pbs.twimg.com/media/DTUjHH5VAAAFyDe.jpg",
+            "id_str": "951705501544284160",
+            "id": "951705501544284160",
+            "media_url_https": "https://pbs.twimg.com/media/DTUjHH5VAAAFyDe.jpg",
+            "sizes": {
+              "large": {
+                "w": "2048",
+                "h": "1538",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "901",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "511",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/bOwEjSxitZ"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951704856674234369"
+          ],
+          "editableUntil": "2018-01-12T07:38:14.309Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Evan Goer",
+            "screen_name": "evangoer",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "15164211",
+            "id": "15164211"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "46"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951675841322262532",
+      "id_str": "951704856674234369",
+      "in_reply_to_user_id": "15164211",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951704856674234369",
+      "in_reply_to_status_id": "951675841322262532",
+      "created_at": "Fri Jan 12 06:38:14 +0000 2018",
+      "favorited": false,
+      "full_text": "@evangoer That would be at least equally cool.",
+      "lang": "en",
+      "in_reply_to_screen_name": "evangoer",
+      "in_reply_to_user_id_str": "15164211"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951704508844748800"
+          ],
+          "editableUntil": "2018-01-12T07:36:51.380Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lachlan Campbell",
+            "screen_name": "lachlanjc",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "2464774904",
+            "id": "2464774904"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "14"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951652405522960385",
+      "id_str": "951704508844748800",
+      "in_reply_to_user_id": "2464774904",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951704508844748800",
+      "in_reply_to_status_id": "951652405522960385",
+      "created_at": "Fri Jan 12 06:36:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@lachlanjc 😁😁😁",
+      "lang": "qme",
+      "in_reply_to_screen_name": "lachlanjc",
+      "in_reply_to_user_id_str": "2464774904"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951648938385293312"
+          ],
+          "editableUntil": "2018-01-12T03:56:02.350Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Hack Reactor",
+            "screen_name": "HackReactor",
+            "indices": [
+              "70",
+              "82"
+            ],
+            "id_str": "1102977272",
+            "id": "1102977272"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "110"
+      ],
+      "favorite_count": "33",
+      "in_reply_to_status_id_str": "951646741396209665",
+      "id_str": "951648938385293312",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "951648938385293312",
+      "in_reply_to_status_id": "951646741396209665",
+      "created_at": "Fri Jan 12 02:56:02 +0000 2018",
+      "favorited": false,
+      "full_text": "Extremely related: tonight I am speaking to a bunch of junior devs at @HackReactor and I could not be happier.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951647997821009920"
+          ],
+          "editableUntil": "2018-01-12T03:52:18.102Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "169"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "951647766194900993",
+      "id_str": "951647997821009920",
+      "in_reply_to_user_id": "622960227",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951647997821009920",
+      "in_reply_to_status_id": "951647766194900993",
+      "created_at": "Fri Jan 12 02:52:18 +0000 2018",
+      "favorited": false,
+      "full_text": "@bitandbang I remember when I was graduating college all my friends freaking out about what they wanted to do with their lives, and I was already 5 years into my career.",
+      "lang": "en",
+      "in_reply_to_screen_name": "bitandbang",
+      "in_reply_to_user_id_str": "622960227"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951646741396209665"
+          ],
+          "editableUntil": "2018-01-12T03:47:18.547Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "172"
+      ],
+      "favorite_count": "96",
+      "id_str": "951646741396209665",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "951646741396209665",
+      "created_at": "Fri Jan 12 02:47:18 +0000 2018",
+      "favorited": false,
+      "full_text": "Very few people discover the thing they want to do for the rest of their life at age 14, and fewer still manage to turn it into an actual paying job. I know how lucky I am.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951645206171983873"
+          ],
+          "editableUntil": "2018-01-12T03:41:12.521Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Laurie Voss moved to @seldo@alpaca.gold",
+            "screen_name": "seldo",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "15453",
+            "id": "15453"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "951645206171983873",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951645206171983873",
+      "created_at": "Fri Jan 12 02:41:12 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @seldo: @webrender_ October 1995:\n10am: Dial into the internet at a friend's house, see first web page\n11am: Find out about HTML\nnoon: W…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951624169598337024"
+          ],
+          "editableUntil": "2018-01-12T02:17:37.011Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "💥 Marco Stipek",
+            "screen_name": "codeprophet",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "1464495715",
+            "id": "1464495715"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "34"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "951624034755604481",
+      "id_str": "951624169598337024",
+      "in_reply_to_user_id": "1464495715",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951624169598337024",
+      "in_reply_to_status_id": "951624034755604481",
+      "created_at": "Fri Jan 12 01:17:37 +0000 2018",
+      "favorited": false,
+      "full_text": "@codeprophet @webrender_ Still do.",
+      "lang": "en",
+      "in_reply_to_screen_name": "codeprophet",
+      "in_reply_to_user_id_str": "1464495715"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951623810435837952"
+          ],
+          "editableUntil": "2018-01-12T02:16:11.380Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@jackie@toot.cat",
+            "screen_name": "jackie_cs_",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "241267794",
+            "id": "241267794"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "33"
+      ],
+      "favorite_count": "18",
+      "in_reply_to_status_id_str": "951621699769896962",
+      "id_str": "951623810435837952",
+      "in_reply_to_user_id": "241267794",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951623810435837952",
+      "in_reply_to_status_id": "951621699769896962",
+      "created_at": "Fri Jan 12 01:16:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@jackie_cs_ [cries in old person]",
+      "lang": "en",
+      "in_reply_to_screen_name": "jackie_cs_",
+      "in_reply_to_user_id_str": "241267794"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951623003439169536"
+          ],
+          "editableUntil": "2018-01-12T02:12:58.977Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "240"
+      ],
+      "favorite_count": "43",
+      "in_reply_to_status_id_str": "951622196664741888",
+      "id_str": "951623003439169536",
+      "in_reply_to_user_id": "375774945",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "951623003439169536",
+      "in_reply_to_status_id": "951622196664741888",
+      "created_at": "Fri Jan 12 01:12:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@webrender_ October 1995:\n10am: Dial into the internet at a friend's house, see first web page\n11am: Find out about HTML\nnoon: Write first web page\n1pm: Publish to Angelfire\n2pm: Decide that this is all I want to do for the rest of my life.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "375774945"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951621296609095680"
+          ],
+          "editableUntil": "2018-01-12T02:06:12.037Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "99",
+      "id_str": "951621296609095680",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951621296609095680",
+      "created_at": "Fri Jan 12 01:06:12 +0000 2018",
+      "favorited": false,
+      "full_text": "I have been building websites for 22 years.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951618940886634498"
+          ],
+          "editableUntil": "2018-01-12T01:56:50.389Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nick Kocharhook 🇺🇦💪🏼",
+            "screen_name": "k9",
+            "indices": [
+              "0",
+              "3"
+            ],
+            "id_str": "15601717",
+            "id": "15601717"
+          },
+          {
+            "name": "Genesis",
+            "screen_name": "Genesis",
+            "indices": [
+              "4",
+              "12"
+            ],
+            "id_str": "1369390280286363651",
+            "id": "1369390280286363651"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951618012670504960",
+      "id_str": "951618940886634498",
+      "in_reply_to_user_id": "15601717",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951618940886634498",
+      "in_reply_to_status_id": "951618012670504960",
+      "created_at": "Fri Jan 12 00:56:50 +0000 2018",
+      "favorited": false,
+      "full_text": "@k9 @Genesis I saw it and moved it! I am seeing it again tomorrow!",
+      "lang": "en",
+      "in_reply_to_screen_name": "k9",
+      "in_reply_to_user_id_str": "15601717"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951614511689027584"
+          ],
+          "editableUntil": "2018-01-12T01:39:14.386Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Keith Boykin",
+            "screen_name": "keithboykin",
+            "indices": [
+              "3",
+              "15"
+            ],
+            "id_str": "21728303",
+            "id": "21728303"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "951614511689027584",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951614511689027584",
+      "created_at": "Fri Jan 12 00:39:14 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @keithboykin: Wen did you know Trump was racist?\n1. Housing discrimination\n2. Central Park 5 lie\n3. Birtherism\n4. Called Mexicans drug d…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951587695406473216"
+          ],
+          "editableUntil": "2018-01-11T23:52:40.886Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "13",
+      "in_reply_to_status_id_str": "951587531857936384",
+      "id_str": "951587695406473216",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "951587695406473216",
+      "in_reply_to_status_id": "951587531857936384",
+      "created_at": "Thu Jan 11 22:52:40 +0000 2018",
+      "favorited": false,
+      "full_text": "I have been working here for 4 years, looking at our numbers every day, and the idea that we grew 67,000% in that time is still very very hard to grasp.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951587531857936384"
+          ],
+          "editableUntil": "2018-01-11T23:52:01.893Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "178"
+      ],
+      "favorite_count": "10",
+      "in_reply_to_status_id_str": "951574711695155200",
+      "id_str": "951587531857936384",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "951587531857936384",
+      "in_reply_to_status_id": "951574711695155200",
+      "created_at": "Thu Jan 11 22:52:01 +0000 2018",
+      "favorited": false,
+      "full_text": "\"The reason 6000% growth looks like a decline in the previous graph is that the registry itself grew 67,000% in the same time frame\" is one of my favorite sentences in this post.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951586225164402688"
+          ],
+          "editableUntil": "2018-01-11T23:46:50.353Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Peter Wooley",
+            "screen_name": "peterwooley",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "766612",
+            "id": "766612"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951586225164402688/photo/1",
+            "indices": [
+              "14",
+              "37"
+            ],
+            "url": "https://t.co/4wI3uzrpIo",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DTS2ns5VQAAESRR.jpg",
+            "id_str": "951586214464798720",
+            "id": "951586214464798720",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DTS2ns5VQAAESRR.jpg",
+            "sizes": {
+              "small": {
+                "w": "400",
+                "h": "276",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "400",
+                "h": "276",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "400",
+                "h": "276",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/4wI3uzrpIo"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951586095719837696",
+      "id_str": "951586225164402688",
+      "in_reply_to_user_id": "766612",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951586225164402688",
+      "in_reply_to_status_id": "951586095719837696",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 22:46:50 +0000 2018",
+      "favorited": false,
+      "full_text": "@peterwooley  https://t.co/4wI3uzrpIo",
+      "lang": "qme",
+      "in_reply_to_screen_name": "peterwooley",
+      "in_reply_to_user_id_str": "766612",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951586225164402688/photo/1",
+            "indices": [
+              "14",
+              "37"
+            ],
+            "url": "https://t.co/4wI3uzrpIo",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DTS2ns5VQAAESRR.jpg",
+            "id_str": "951586214464798720",
+            "video_info": {
+              "aspect_ratio": [
+                "100",
+                "69"
+              ],
+              "variants": [
+                {
+                  "bitrate": "0",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/tweet_video/DTS2ns5VQAAESRR.mp4"
+                }
+              ]
+            },
+            "id": "951586214464798720",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DTS2ns5VQAAESRR.jpg",
+            "sizes": {
+              "small": {
+                "w": "400",
+                "h": "276",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "400",
+                "h": "276",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "400",
+                "h": "276",
+                "resize": "fit"
+              }
+            },
+            "type": "animated_gif",
+            "display_url": "pic.twitter.com/4wI3uzrpIo"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951581690748522497"
+          ],
+          "editableUntil": "2018-01-11T23:28:49.264Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "insecurity princess @saraislet@infosec.exchange",
+            "screen_name": "saraislet",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "4838355980",
+            "id": "4838355980"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "94"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951581397667299328",
+      "id_str": "951581690748522497",
+      "in_reply_to_user_id": "4838355980",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951581690748522497",
+      "in_reply_to_status_id": "951581397667299328",
+      "created_at": "Thu Jan 11 22:28:49 +0000 2018",
+      "favorited": false,
+      "full_text": "@saraislet I feel like my views on ocean-based version control are being misrepresented here 😛",
+      "lang": "en",
+      "in_reply_to_screen_name": "saraislet",
+      "in_reply_to_user_id_str": "4838355980"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951577757951016962"
+          ],
+          "editableUntil": "2018-01-11T23:13:11.612Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Henry",
+            "screen_name": "left_pad",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "138173132",
+            "id": "138173132"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "184"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951575032404365313",
+      "id_str": "951577757951016962",
+      "in_reply_to_user_id": "138173132",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951577757951016962",
+      "in_reply_to_status_id": "951575032404365313",
+      "created_at": "Thu Jan 11 22:13:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@left_pad Good question! It was a bit tricky to decide but the numbers I used in the end are the sum of babel-core and 6to5. Does that seem like it would be an accurate representation?",
+      "lang": "en",
+      "in_reply_to_screen_name": "left_pad",
+      "in_reply_to_user_id_str": "138173132"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951574711695155200"
+          ],
+          "editableUntil": "2018-01-11T23:01:05.328Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "148"
+      ],
+      "favorite_count": "24",
+      "in_reply_to_status_id_str": "951572010907287552",
+      "id_str": "951574711695155200",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "951574711695155200",
+      "in_reply_to_status_id": "951572010907287552",
+      "created_at": "Thu Jan 11 22:01:05 +0000 2018",
+      "favorited": false,
+      "full_text": "There is a reason npm started referring to itself as \"the package manager for JavaScript\" not just \"the package manager for Node.js\" and this is it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951574224858103808"
+          ],
+          "editableUntil": "2018-01-11T22:59:09.257Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/cWaR1ql40j",
+            "expanded_url": "https://www.washingtonpost.com/politics/trump-attacks-protections-for-immigrants-from-shithole-countries-in-oval-office-meeting/2018/01/11/bfc0725c-f711-11e7-91af-31ac729add94_story.html?utm_term=.bc65ffd99359",
+            "display_url": "washingtonpost.com/politics/trump…",
+            "indices": [
+              "52",
+              "75"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "75"
+      ],
+      "favorite_count": "8",
+      "id_str": "951574224858103808",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "951574224858103808",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 21:59:09 +0000 2018",
+      "favorited": false,
+      "full_text": "The president is an ignorant bigot, part 1,000,000: https://t.co/cWaR1ql40j",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951572844994904064"
+          ],
+          "editableUntil": "2018-01-11T22:53:40.272Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jay g. 🦇",
+            "screen_name": "jaydestro",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "15664858",
+            "id": "15664858"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "39"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951572346816614400",
+      "id_str": "951572844994904064",
+      "in_reply_to_user_id": "15664858",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951572844994904064",
+      "in_reply_to_status_id": "951572346816614400",
+      "created_at": "Thu Jan 11 21:53:40 +0000 2018",
+      "favorited": false,
+      "full_text": "@jaydestro Fixing, thanks for the spot!",
+      "lang": "en",
+      "in_reply_to_screen_name": "jaydestro",
+      "in_reply_to_user_id_str": "15664858"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951572010907287552"
+          ],
+          "editableUntil": "2018-01-11T22:50:21.410Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951572010907287552/photo/1",
+            "indices": [
+              "148",
+              "171"
+            ],
+            "url": "https://t.co/Z0GraYSBKB",
+            "media_url": "http://pbs.twimg.com/media/DTSpsMWUQAA8U6P.jpg",
+            "id_str": "951571997976182784",
+            "id": "951571997976182784",
+            "media_url_https": "https://pbs.twimg.com/media/DTSpsMWUQAA8U6P.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "589",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "723",
+                "h": "626",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "723",
+                "h": "626",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/Z0GraYSBKB"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "171"
+      ],
+      "favorite_count": "16",
+      "in_reply_to_status_id_str": "951571704580489216",
+      "id_str": "951572010907287552",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "951572010907287552",
+      "in_reply_to_status_id": "951571704580489216",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 21:50:21 +0000 2018",
+      "favorited": false,
+      "full_text": "TLDR: front-end usage of npm is growing rapidly towards being the dominant purpose of npm, and webpack's usage is exploding even faster than React: https://t.co/Z0GraYSBKB",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951572010907287552/photo/1",
+            "indices": [
+              "148",
+              "171"
+            ],
+            "url": "https://t.co/Z0GraYSBKB",
+            "media_url": "http://pbs.twimg.com/media/DTSpsMWUQAA8U6P.jpg",
+            "id_str": "951571997976182784",
+            "id": "951571997976182784",
+            "media_url_https": "https://pbs.twimg.com/media/DTSpsMWUQAA8U6P.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "589",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "723",
+                "h": "626",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "723",
+                "h": "626",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/Z0GraYSBKB"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951571704580489216"
+          ],
+          "editableUntil": "2018-01-11T22:49:08.376Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/wQqhD4szTy",
+            "expanded_url": "https://www.npmjs.com/npm/the-state-of-javascript-frameworks-2017-part-3-back-end-frameworks",
+            "display_url": "npmjs.com/npm/the-state-…",
+            "indices": [
+              "40",
+              "63"
+            ]
+          }
+        ],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951571704580489216/photo/1",
+            "indices": [
+              "134",
+              "157"
+            ],
+            "url": "https://t.co/gT2zsR8Uc0",
+            "media_url": "http://pbs.twimg.com/media/DTSpZrwUMAAZy8S.jpg",
+            "id_str": "951571679989215232",
+            "id": "951571679989215232",
+            "media_url_https": "https://pbs.twimg.com/media/DTSpZrwUMAAZy8S.jpg",
+            "sizes": {
+              "medium": {
+                "w": "749",
+                "h": "553",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "502",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "749",
+                "h": "553",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/gT2zsR8Uc0"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "157"
+      ],
+      "favorite_count": "47",
+      "id_str": "951571704580489216",
+      "truncated": false,
+      "retweet_count": "12",
+      "id": "951571704580489216",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 21:49:08 +0000 2018",
+      "favorited": false,
+      "full_text": "npm's State of JavaScript 2017, part 3: https://t.co/wQqhD4szTy Includes looks at usage of Express, Next.js, Webpack, Babel and more! https://t.co/gT2zsR8Uc0",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951571704580489216/photo/1",
+            "indices": [
+              "134",
+              "157"
+            ],
+            "url": "https://t.co/gT2zsR8Uc0",
+            "media_url": "http://pbs.twimg.com/media/DTSpZrwUMAAZy8S.jpg",
+            "id_str": "951571679989215232",
+            "id": "951571679989215232",
+            "media_url_https": "https://pbs.twimg.com/media/DTSpZrwUMAAZy8S.jpg",
+            "sizes": {
+              "medium": {
+                "w": "749",
+                "h": "553",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "502",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "749",
+                "h": "553",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/gT2zsR8Uc0"
+          },
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951571704580489216/photo/1",
+            "indices": [
+              "134",
+              "157"
+            ],
+            "url": "https://t.co/gT2zsR8Uc0",
+            "media_url": "http://pbs.twimg.com/media/DTSpaeEVMAAOIk0.jpg",
+            "id_str": "951571693494939648",
+            "id": "951571693494939648",
+            "media_url_https": "https://pbs.twimg.com/media/DTSpaeEVMAAOIk0.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "589",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "723",
+                "h": "626",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "723",
+                "h": "626",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/gT2zsR8Uc0"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951568903682981888"
+          ],
+          "editableUntil": "2018-01-11T22:38:00.590Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "KirinDave has left for elucidating@mastodon.social",
+            "screen_name": "KirinDave",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "784519",
+            "id": "784519"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "30"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951566797605502976",
+      "id_str": "951568903682981888",
+      "in_reply_to_user_id": "784519",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951568903682981888",
+      "in_reply_to_status_id": "951566797605502976",
+      "created_at": "Thu Jan 11 21:38:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@KirinDave I mean, inevitably.",
+      "lang": "en",
+      "in_reply_to_screen_name": "KirinDave",
+      "in_reply_to_user_id_str": "784519"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951566436085907456"
+          ],
+          "editableUntil": "2018-01-11T22:28:12.269Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "154"
+      ],
+      "favorite_count": "58",
+      "id_str": "951566436085907456",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "951566436085907456",
+      "created_at": "Thu Jan 11 21:28:12 +0000 2018",
+      "favorited": false,
+      "full_text": "Because my brain is a traitor that hates me, it made me Google \"are there BitCoin enthusiasts who are also furries?\" and now there is much I can't un-see.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951566169072259072"
+          ],
+          "editableUntil": "2018-01-11T22:27:08.608Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "HTTP 1.1/418 Teapot",
+            "screen_name": "rmd1023",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14821220",
+            "id": "14821220"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "76"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951564990623907846",
+      "id_str": "951566169072259072",
+      "in_reply_to_user_id": "14821220",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951566169072259072",
+      "in_reply_to_status_id": "951564990623907846",
+      "created_at": "Thu Jan 11 21:27:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@rmd1023 Missed opportunity to corner the BitCoin Enthusiast + Furry market.",
+      "lang": "en",
+      "in_reply_to_screen_name": "rmd1023",
+      "in_reply_to_user_id_str": "14821220"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951563736636047360"
+          ],
+          "editableUntil": "2018-01-11T22:17:28.670Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "David Bamford 🏳️‍🌈🇪🇺🏴󠁧󠁢󠁳󠁣󠁴󠁿",
+            "screen_name": "DavidBamf0rd",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "414315764",
+            "id": "414315764"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "34"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951563283634491393",
+      "id_str": "951563736636047360",
+      "in_reply_to_user_id": "414315764",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951563736636047360",
+      "in_reply_to_status_id": "951563283634491393",
+      "created_at": "Thu Jan 11 21:17:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@DavidBamf0rd Killing is more fun.",
+      "lang": "en",
+      "in_reply_to_screen_name": "DavidBamf0rd",
+      "in_reply_to_user_id_str": "414315764"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951558766465499137"
+          ],
+          "editableUntil": "2018-01-11T21:57:43.689Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "41"
+      ],
+      "favorite_count": "3",
+      "id_str": "951558766465499137",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "951558766465499137",
+      "created_at": "Thu Jan 11 20:57:43 +0000 2018",
+      "favorited": false,
+      "full_text": "🎵 Is there a risk the track could bend? 🎵",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951529805375131648"
+          ],
+          "editableUntil": "2018-01-11T20:02:38.827Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "JBaruch 🎩",
+            "screen_name": "jbaruch",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "16887172",
+            "id": "16887172"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "21",
+              "30"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "31",
+              "40"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "41",
+              "48"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "49",
+              "62"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "63",
+              "69"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "70",
+              "81"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          },
+          {
+            "name": "Stephen Fluin",
+            "screen_name": "stephenfluin",
+            "indices": [
+              "82",
+              "95"
+            ],
+            "id_str": "15313446",
+            "id": "15313446"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951528616818442240",
+      "id_str": "951529805375131648",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951529805375131648",
+      "in_reply_to_status_id": "951528616818442240",
+      "created_at": "Thu Jan 11 19:02:38 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @jbaruch @ZChapple @samccone @sebmck @thejameskyle @jfrog @robwormald @stephenfluin Nice! That's some genuinely persuasive data.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951527756898037760"
+          ],
+          "editableUntil": "2018-01-11T19:54:30.432Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/KNP3MyNphm",
+            "expanded_url": "https://buff.ly/2mjNL2o",
+            "display_url": "buff.ly/2mjNL2o",
+            "indices": [
+              "94",
+              "117"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "117"
+      ],
+      "favorite_count": "0",
+      "id_str": "951527756898037760",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951527756898037760",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 18:54:30 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @npmjs: our full incident report and timeline from the operations incident on january 6th: https://t.co/KNP3MyNphm",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951527004297314304"
+          ],
+          "editableUntil": "2018-01-11T19:51:30.998Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "203"
+      ],
+      "favorite_count": "21",
+      "in_reply_to_status_id_str": "951511598975221761",
+      "id_str": "951527004297314304",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "951527004297314304",
+      "in_reply_to_status_id": "951511598975221761",
+      "created_at": "Thu Jan 11 18:51:30 +0000 2018",
+      "favorited": false,
+      "full_text": "Why are they wearing Lucha Libre masks with crypto logos instead of incorporating them into the costumes? Is it because none of the women involved wanted their real identities associated with this stunt?",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951511956606787584"
+          ],
+          "editableUntil": "2018-01-11T18:51:43.349Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matt Stancliff",
+            "screen_name": "mattsta",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14825696",
+            "id": "14825696"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "85"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951510997595926530",
+      "id_str": "951511956606787584",
+      "in_reply_to_user_id": "14825696",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951511956606787584",
+      "in_reply_to_status_id": "951510997595926530",
+      "created_at": "Thu Jan 11 17:51:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@mattsta My goodness. I gave up years ago. Such a pain in the ass, kept losing stuff.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mattsta",
+      "in_reply_to_user_id_str": "14825696"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951511598975221761"
+          ],
+          "editableUntil": "2018-01-11T18:50:18.083Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/AFjtN6bnFH",
+            "expanded_url": "https://qz.com/1177249/japans-kasotsuka-shojo-the-worlds-first-cryptopop-group-sings-about-bitcoin-and-cryptofraud/?mc_cid=0a04b0b7ba&mc_eid=0a91fadb73",
+            "display_url": "qz.com/1177249/japans…",
+            "indices": [
+              "149",
+              "172"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "172"
+      ],
+      "favorite_count": "71",
+      "id_str": "951511598975221761",
+      "truncated": false,
+      "retweet_count": "55",
+      "id": "951511598975221761",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 17:50:18 +0000 2018",
+      "favorited": false,
+      "full_text": "There is a Japanese pop group called Virtual Currency Girls who sing songs about crypto. Each of the 8 girls represents a different crypto currency. https://t.co/AFjtN6bnFH",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951509682643877889"
+          ],
+          "editableUntil": "2018-01-11T18:42:41.194Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matt Stancliff",
+            "screen_name": "mattsta",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14825696",
+            "id": "14825696"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951497713677320192",
+      "id_str": "951509682643877889",
+      "in_reply_to_user_id": "14825696",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951509682643877889",
+      "in_reply_to_status_id": "951497713677320192",
+      "created_at": "Thu Jan 11 17:42:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@mattsta You host your own git repos?",
+      "lang": "en",
+      "in_reply_to_screen_name": "mattsta",
+      "in_reply_to_user_id_str": "14825696"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951507925066903552"
+          ],
+          "editableUntil": "2018-01-11T18:35:42.155Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zach Cole",
+            "screen_name": "ZachACole",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "17949007",
+            "id": "17949007"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "15"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951507011501359104",
+      "id_str": "951507925066903552",
+      "in_reply_to_user_id": "17949007",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951507925066903552",
+      "in_reply_to_status_id": "951507011501359104",
+      "created_at": "Thu Jan 11 17:35:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZachACole Oooo",
+      "lang": "und",
+      "in_reply_to_screen_name": "ZachACole",
+      "in_reply_to_user_id_str": "17949007"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951504269663813632"
+          ],
+          "editableUntil": "2018-01-11T18:21:10.639Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "40"
+      ],
+      "favorite_count": "2",
+      "id_str": "951504269663813632",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951504269663813632",
+      "created_at": "Thu Jan 11 17:21:10 +0000 2018",
+      "favorited": false,
+      "full_text": "🎵 Are you scared of these boogie feet? 🎵",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951497000645681153"
+          ],
+          "editableUntil": "2018-01-11T17:52:17.570Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "WeRateDogs",
+            "screen_name": "dog_rates",
+            "indices": [
+              "3",
+              "13"
+            ],
+            "id_str": "4196983835",
+            "id": "4196983835"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "951497000645681153",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951497000645681153",
+      "created_at": "Thu Jan 11 16:52:17 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @dog_rates: This is Noisette. She responds well to pats and her name means “tear-inducingly huggable” in French. 13/10 would cherish htt…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951495873741045762"
+          ],
+          "editableUntil": "2018-01-11T17:47:48.895Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "sMyle",
+            "screen_name": "MylesBorins",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "150664007",
+            "id": "150664007"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "80"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951286380495364097",
+      "id_str": "951495873741045762",
+      "in_reply_to_user_id": "150664007",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951495873741045762",
+      "in_reply_to_status_id": "951286380495364097",
+      "created_at": "Thu Jan 11 16:47:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@MylesBorins Just assume that I am replying \"same\" to every single one of these.",
+      "lang": "en",
+      "in_reply_to_screen_name": "MylesBorins",
+      "in_reply_to_user_id_str": "150664007"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951494651055284227"
+          ],
+          "editableUntil": "2018-01-11T17:42:57.384Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Glockymolo Enjoyer",
+            "screen_name": "ysaw",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "8340382",
+            "id": "8340382"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "58"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951487379042312192",
+      "id_str": "951494651055284227",
+      "in_reply_to_user_id": "8340382",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951494651055284227",
+      "in_reply_to_status_id": "951487379042312192",
+      "created_at": "Thu Jan 11 16:42:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@ysaw In fairness the above was definitely said as a joke.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ysaw",
+      "in_reply_to_user_id_str": "8340382"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951494379872468993"
+          ],
+          "editableUntil": "2018-01-11T17:41:52.729Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "You",
+            "screen_name": "knzconnor",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "14086000",
+            "id": "14086000"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "121"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "951475889274945539",
+      "id_str": "951494379872468993",
+      "in_reply_to_user_id": "14086000",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951494379872468993",
+      "in_reply_to_status_id": "951475889274945539",
+      "created_at": "Thu Jan 11 16:41:52 +0000 2018",
+      "favorited": false,
+      "full_text": "@knzconnor So is putting it on a thumb drive and throwing it into the ocean but I don't think that's a good idea, either.",
+      "lang": "en",
+      "in_reply_to_screen_name": "knzconnor",
+      "in_reply_to_user_id_str": "14086000"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951470484733874178"
+          ],
+          "editableUntil": "2018-01-11T16:06:55.684Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/U83gGpfyx7",
+            "expanded_url": "https://twitter.com/jonathanchait/status/951450890396938241",
+            "display_url": "twitter.com/jonathanchait/…",
+            "indices": [
+              "234",
+              "257"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "257"
+      ],
+      "favorite_count": "10",
+      "id_str": "951470484733874178",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "951470484733874178",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 15:06:55 +0000 2018",
+      "favorited": false,
+      "full_text": "\"As impressive as it may have been for Trump to sit upright and participate in a discussion of public policy while only subverting his administration’s position one time ... Trump does not understand his own administration’s policy.\"\nhttps://t.co/U83gGpfyx7",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951468287480639488"
+          ],
+          "editableUntil": "2018-01-11T15:58:11.818Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Michelle",
+            "screen_name": "hope4tigers",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "759555100293656577",
+            "id": "759555100293656577"
+          },
+          {
+            "name": "Pinboard",
+            "screen_name": "Pinboard",
+            "indices": [
+              "13",
+              "22"
+            ],
+            "id_str": "55525953",
+            "id": "55525953"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "244"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951466728822886401",
+      "id_str": "951468287480639488",
+      "in_reply_to_user_id": "759555100293656577",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951468287480639488",
+      "in_reply_to_status_id": "951466728822886401",
+      "created_at": "Thu Jan 11 14:58:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@hope4tigers @Pinboard In 2018 if they happened Kellyanne Conway would be on Fox within the hour explaining that only liberals spell it correctly, and by the end of the week there would be a bill to force dictionaries to end the War on Potatoe.",
+      "lang": "en",
+      "in_reply_to_screen_name": "hope4tigers",
+      "in_reply_to_user_id_str": "759555100293656577"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951467384740577281"
+          ],
+          "editableUntil": "2018-01-11T15:54:36.588Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kelly Ellis",
+            "screen_name": "justkelly_ok",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "2586997621",
+            "id": "2586997621"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "185"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "951465673116405760",
+      "id_str": "951467384740577281",
+      "in_reply_to_user_id": "2586997621",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951467384740577281",
+      "in_reply_to_status_id": "951465673116405760",
+      "created_at": "Thu Jan 11 14:54:36 +0000 2018",
+      "favorited": false,
+      "full_text": "@justkelly_ok IT IS NOW, KELLY. Stop holding back the march of progress. Everyone will pause before sex to click a bunch of checkboxes on their phones and then never change their minds.",
+      "lang": "en",
+      "in_reply_to_screen_name": "justkelly_ok",
+      "in_reply_to_user_id_str": "2586997621"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951466911585394688"
+          ],
+          "editableUntil": "2018-01-11T15:52:43.779Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ee",
+            "screen_name": "EWDurbin",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "14590010",
+            "id": "14590010"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "29"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "951426720283770882",
+      "id_str": "951466911585394688",
+      "in_reply_to_user_id": "14590010",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951466911585394688",
+      "in_reply_to_status_id": "951426720283770882",
+      "created_at": "Thu Jan 11 14:52:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@EWDurbin Fresh fruit juices.",
+      "lang": "en",
+      "in_reply_to_screen_name": "EWDurbin",
+      "in_reply_to_user_id_str": "14590010"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951466026452987907"
+          ],
+          "editableUntil": "2018-01-11T15:49:12.747Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "You",
+            "screen_name": "knzconnor",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "14086000",
+            "id": "14086000"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "951463967897083904",
+      "id_str": "951466026452987907",
+      "in_reply_to_user_id": "14086000",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951466026452987907",
+      "in_reply_to_status_id": "951463967897083904",
+      "created_at": "Thu Jan 11 14:49:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@knzconnor It's listed under \"I don't use version control\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "knzconnor",
+      "in_reply_to_user_id_str": "14086000"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951461663139545088"
+          ],
+          "editableUntil": "2018-01-11T15:31:52.452Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/KCWGE53IGO",
+            "expanded_url": "https://twitter.com/matt_levine/status/951149190809341952",
+            "display_url": "twitter.com/matt_levine/st…",
+            "indices": [
+              "14",
+              "37"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "13",
+      "id_str": "951461663139545088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951461663139545088",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 14:31:52 +0000 2018",
+      "favorited": false,
+      "full_text": "Oh no dot gif https://t.co/KCWGE53IGO",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951341649585569792"
+          ],
+          "editableUntil": "2018-01-11T07:34:58.991Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Coraline Ada Ehmke",
+            "screen_name": "CoralineAda",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "9526722",
+            "id": "9526722"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951341177860653056",
+      "id_str": "951341649585569792",
+      "in_reply_to_user_id": "9526722",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951341649585569792",
+      "in_reply_to_status_id": "951341177860653056",
+      "created_at": "Thu Jan 11 06:34:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@CoralineAda There's ALWAYS something happening on the internet; find a time zone where it's 10am right now and follow some people there :-)",
+      "lang": "en",
+      "in_reply_to_screen_name": "CoralineAda",
+      "in_reply_to_user_id_str": "9526722"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951340980623491072"
+          ],
+          "editableUntil": "2018-01-11T07:32:19.498Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ashley",
+            "screen_name": "rabcyr",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "26157562",
+            "id": "26157562"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "83"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951340785986883584",
+      "id_str": "951340980623491072",
+      "in_reply_to_user_id": "26157562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951340980623491072",
+      "in_reply_to_status_id": "951340785986883584",
+      "created_at": "Thu Jan 11 06:32:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@rabcyr That is the usual form of fuckup. I think in our survey we just didn't ask.",
+      "lang": "en",
+      "in_reply_to_screen_name": "rabcyr",
+      "in_reply_to_user_id_str": "26157562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951340803896438784"
+          ],
+          "editableUntil": "2018-01-11T07:31:37.363Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "cara esten",
+            "screen_name": "esten",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "1108462281237520384",
+            "id": "1108462281237520384"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "53"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951336361952292865",
+      "id_str": "951340803896438784",
+      "in_reply_to_user_id": "15374401",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951340803896438784",
+      "in_reply_to_status_id": "951336361952292865",
+      "created_at": "Thu Jan 11 06:31:37 +0000 2018",
+      "favorited": false,
+      "full_text": "@esten Every day you reach new heights of hipsterdom.",
+      "lang": "en",
+      "in_reply_to_screen_name": "caraesten",
+      "in_reply_to_user_id_str": "15374401"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951339858449985538"
+          ],
+          "editableUntil": "2018-01-11T07:27:51.951Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mx. Aria Stewart",
+            "screen_name": "aredridel",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "17950990",
+            "id": "17950990"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "100"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951338667129344000",
+      "id_str": "951339858449985538",
+      "in_reply_to_user_id": "17950990",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951339858449985538",
+      "in_reply_to_status_id": "951338667129344000",
+      "created_at": "Thu Jan 11 06:27:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@aredridel I've deleted the tweet. It's not my place to tell trans folk how to feel about questions.",
+      "lang": "en",
+      "in_reply_to_screen_name": "aredridel",
+      "in_reply_to_user_id_str": "17950990"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951339598474440704"
+          ],
+          "editableUntil": "2018-01-11T07:26:49.968Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ashley",
+            "screen_name": "rabcyr",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "26157562",
+            "id": "26157562"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "13"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951336343522693120",
+      "id_str": "951339598474440704",
+      "in_reply_to_user_id": "26157562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951339598474440704",
+      "in_reply_to_status_id": "951336343522693120",
+      "created_at": "Thu Jan 11 06:26:49 +0000 2018",
+      "favorited": false,
+      "full_text": "@rabcyr Oops.",
+      "lang": "en",
+      "in_reply_to_screen_name": "rabcyr",
+      "in_reply_to_user_id_str": "26157562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951332486616776704"
+          ],
+          "editableUntil": "2018-01-11T06:58:34.369Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "116"
+      ],
+      "favorite_count": "30",
+      "in_reply_to_status_id_str": "951331681981497345",
+      "id_str": "951332486616776704",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951332486616776704",
+      "in_reply_to_status_id": "951331681981497345",
+      "created_at": "Thu Jan 11 05:58:34 +0000 2018",
+      "favorited": false,
+      "full_text": "There are enough people copying and pasting files to network shares that this is a pre-filled answer. I am very sad.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951331681981497345"
+          ],
+          "editableUntil": "2018-01-11T06:55:22.529Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951331681981497345/photo/1",
+            "indices": [
+              "73",
+              "96"
+            ],
+            "url": "https://t.co/gJuF2DpJ5I",
+            "media_url": "http://pbs.twimg.com/media/DTPPEE5VwAAS2DX.jpg",
+            "id_str": "951331615245975552",
+            "id": "951331615245975552",
+            "media_url_https": "https://pbs.twimg.com/media/DTPPEE5VwAAS2DX.jpg",
+            "sizes": {
+              "small": {
+                "w": "668",
+                "h": "324",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "668",
+                "h": "324",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "668",
+                "h": "324",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/gJuF2DpJ5I"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "96"
+      ],
+      "favorite_count": "37",
+      "id_str": "951331681981497345",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "951331681981497345",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 05:55:22 +0000 2018",
+      "favorited": false,
+      "full_text": "The available answers to this question make me sad just looking at them. https://t.co/gJuF2DpJ5I",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951331681981497345/photo/1",
+            "indices": [
+              "73",
+              "96"
+            ],
+            "url": "https://t.co/gJuF2DpJ5I",
+            "media_url": "http://pbs.twimg.com/media/DTPPEE5VwAAS2DX.jpg",
+            "id_str": "951331615245975552",
+            "id": "951331615245975552",
+            "media_url_https": "https://pbs.twimg.com/media/DTPPEE5VwAAS2DX.jpg",
+            "sizes": {
+              "small": {
+                "w": "668",
+                "h": "324",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "668",
+                "h": "324",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "668",
+                "h": "324",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/gJuF2DpJ5I"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951327925034401792"
+          ],
+          "editableUntil": "2018-01-11T06:40:26.803Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "26"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "951324287390003200",
+      "id_str": "951327925034401792",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951327925034401792",
+      "in_reply_to_status_id": "951324287390003200",
+      "created_at": "Thu Jan 11 05:40:26 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar 👍🏻 Appreciated.",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951325916004667393"
+          ],
+          "editableUntil": "2018-01-11T06:32:27.813Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Alan",
+            "screen_name": "akgerber",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "115095156",
+            "id": "115095156"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951297797705388033",
+      "id_str": "951325916004667393",
+      "in_reply_to_user_id": "115095156",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951325916004667393",
+      "in_reply_to_status_id": "951297797705388033",
+      "created_at": "Thu Jan 11 05:32:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@akgerber I 100% own polo shirts and khakis and occasionally wear them at the same time. But how could my haircut get any worse?",
+      "lang": "en",
+      "in_reply_to_screen_name": "akgerber",
+      "in_reply_to_user_id_str": "115095156"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951325606033088513"
+          ],
+          "editableUntil": "2018-01-11T06:31:13.910Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          },
+          {
+            "name": "Ben Lesh",
+            "screen_name": "BenLesh",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "23795212",
+            "id": "23795212"
+          },
+          {
+            "name": "danabramov.bsky.social",
+            "screen_name": "dan_abramov",
+            "indices": [
+              "21",
+              "33"
+            ],
+            "id_str": "70345946",
+            "id": "70345946"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "102"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951284011648745482",
+      "id_str": "951325606033088513",
+      "in_reply_to_user_id": "14103865",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951325606033088513",
+      "in_reply_to_status_id": "951284011648745482",
+      "created_at": "Thu Jan 11 05:31:13 +0000 2018",
+      "favorited": false,
+      "full_text": "@robwormald @BenLesh @dan_abramov Absolutely! I think it's part 4 or 5? I forget how we split them up.",
+      "lang": "en",
+      "in_reply_to_screen_name": "robwormald",
+      "in_reply_to_user_id_str": "14103865"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951277290943496192"
+          ],
+          "editableUntil": "2018-01-11T03:19:14.695Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dennis Collinson",
+            "screen_name": "dnscollective",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "30498562",
+            "id": "30498562"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "214"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951220716514373632",
+      "id_str": "951277290943496192",
+      "in_reply_to_user_id": "30498562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951277290943496192",
+      "in_reply_to_status_id": "951220716514373632",
+      "created_at": "Thu Jan 11 02:19:14 +0000 2018",
+      "favorited": false,
+      "full_text": "@dnscollective I mean, the way worse part is that it was run and paid for by the VC firm itself. Again: the problem is not sex parties, the problem is access to investment being contingent on attending sex parties.",
+      "lang": "en",
+      "in_reply_to_screen_name": "dnscollective",
+      "in_reply_to_user_id_str": "30498562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951275026644328448"
+          ],
+          "editableUntil": "2018-01-11T03:10:14.844Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Revin Guillen",
+            "screen_name": "revin",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "14496796",
+            "id": "14496796"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "7",
+              "15"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          },
+          {
+            "name": "Rick Waldron",
+            "screen_name": "rwaldron",
+            "indices": [
+              "16",
+              "25"
+            ],
+            "id_str": "16144669",
+            "id": "16144669"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "49"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "951268431763877888",
+      "id_str": "951275026644328448",
+      "in_reply_to_user_id": "14496796",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951275026644328448",
+      "in_reply_to_status_id": "951268431763877888",
+      "created_at": "Thu Jan 11 02:10:14 +0000 2018",
+      "favorited": false,
+      "full_text": "@revin @ceejbot @rwaldron I *am* the Grump Track.",
+      "lang": "en",
+      "in_reply_to_screen_name": "revin",
+      "in_reply_to_user_id_str": "14496796"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951261859197476865"
+          ],
+          "editableUntil": "2018-01-11T02:17:55.480Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "951260854338535425",
+      "id_str": "951261859197476865",
+      "in_reply_to_user_id": "165524923",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951261859197476865",
+      "in_reply_to_status_id": "951260854338535425",
+      "created_at": "Thu Jan 11 01:17:55 +0000 2018",
+      "favorited": false,
+      "full_text": "@destroyvegas What if... this *is* a left-pad joke?",
+      "lang": "en",
+      "in_reply_to_screen_name": "zackschuster",
+      "in_reply_to_user_id_str": "165524923"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951260645353115648"
+          ],
+          "editableUntil": "2018-01-11T02:13:06.077Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951260645353115648/photo/1",
+            "indices": [
+              "21",
+              "44"
+            ],
+            "url": "https://t.co/eOdoQRRoMj",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DTOOgWHUMAENm3A.jpg",
+            "id_str": "951260632648527873",
+            "id": "951260632648527873",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DTOOgWHUMAENm3A.jpg",
+            "sizes": {
+              "medium": {
+                "w": "240",
+                "h": "300",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "240",
+                "h": "300",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "240",
+                "h": "300",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/eOdoQRRoMj"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "44"
+      ],
+      "favorite_count": "27",
+      "id_str": "951260645353115648",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "951260645353115648",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 11 01:13:06 +0000 2018",
+      "favorited": false,
+      "full_text": "Remember left shark? https://t.co/eOdoQRRoMj",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/951260645353115648/photo/1",
+            "indices": [
+              "21",
+              "44"
+            ],
+            "url": "https://t.co/eOdoQRRoMj",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DTOOgWHUMAENm3A.jpg",
+            "id_str": "951260632648527873",
+            "video_info": {
+              "aspect_ratio": [
+                "4",
+                "5"
+              ],
+              "variants": [
+                {
+                  "bitrate": "0",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/tweet_video/DTOOgWHUMAENm3A.mp4"
+                }
+              ]
+            },
+            "id": "951260632648527873",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DTOOgWHUMAENm3A.jpg",
+            "sizes": {
+              "medium": {
+                "w": "240",
+                "h": "300",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "240",
+                "h": "300",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "240",
+                "h": "300",
+                "resize": "fit"
+              }
+            },
+            "type": "animated_gif",
+            "display_url": "pic.twitter.com/eOdoQRRoMj"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951258066065940480"
+          ],
+          "editableUntil": "2018-01-11T02:02:51.127Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Omid Monshizadeh",
+            "screen_name": "monshi",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "15391366",
+            "id": "15391366"
+          },
+          {
+            "name": "kat",
+            "screen_name": "maybekatz",
+            "indices": [
+              "8",
+              "18"
+            ],
+            "id_str": "1199492153832902658",
+            "id": "1199492153832902658"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "19",
+              "25"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "115"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "951257490947112960",
+      "id_str": "951258066065940480",
+      "in_reply_to_user_id": "15391366",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951258066065940480",
+      "in_reply_to_status_id": "951257490947112960",
+      "created_at": "Thu Jan 11 01:02:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@monshi @maybekatz @npmjs That's a bit more work :-) Is this just curiosity or do you need this list for something?",
+      "lang": "en",
+      "in_reply_to_screen_name": "monshi",
+      "in_reply_to_user_id_str": "15391366"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951257468042076160"
+          ],
+          "editableUntil": "2018-01-11T02:00:28.547Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "28"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "951255805205999617",
+      "id_str": "951257468042076160",
+      "in_reply_to_user_id": "78663",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951257468042076160",
+      "in_reply_to_status_id": "951255805205999617",
+      "created_at": "Thu Jan 11 01:00:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@ceejbot I'll bring my cane.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ceejbot",
+      "in_reply_to_user_id_str": "78663"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951257183722680320"
+          ],
+          "editableUntil": "2018-01-11T01:59:20.760Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "kat",
+            "screen_name": "maybekatz",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "1199492153832902658",
+            "id": "1199492153832902658"
+          },
+          {
+            "name": "Omid Monshizadeh",
+            "screen_name": "monshi",
+            "indices": [
+              "11",
+              "18"
+            ],
+            "id_str": "15391366",
+            "id": "15391366"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "19",
+              "25"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "136"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951256010500403200",
+      "id_str": "951257183722680320",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951257183722680320",
+      "in_reply_to_status_id": "951256010500403200",
+      "created_at": "Thu Jan 11 00:59:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@maybekatz @monshi @npmjs 2989 packages have mixed-case names, or about 0.5% of the registry. The last one was created in December 2016.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951256010500403200"
+          ],
+          "editableUntil": "2018-01-11T01:54:41.042Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "kat",
+            "screen_name": "maybekatz",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "1199492153832902658",
+            "id": "1199492153832902658"
+          },
+          {
+            "name": "Omid Monshizadeh",
+            "screen_name": "monshi",
+            "indices": [
+              "11",
+              "18"
+            ],
+            "id_str": "15391366",
+            "id": "15391366"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "19",
+              "25"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "60"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951255692664438784",
+      "id_str": "951256010500403200",
+      "in_reply_to_user_id": "2978661890",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951256010500403200",
+      "in_reply_to_status_id": "951255692664438784",
+      "created_at": "Thu Jan 11 00:54:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@maybekatz @monshi @npmjs Hmmm. Sure I do. *computer noises*",
+      "lang": "en",
+      "in_reply_to_screen_name": "zkat__",
+      "in_reply_to_user_id_str": "2978661890"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951254329490460673"
+          ],
+          "editableUntil": "2018-01-11T01:48:00.258Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🏳️‍🌈 Sam Kimbrel | @skimbrel@tech.lgbt",
+            "screen_name": "skimbrel",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "17934129",
+            "id": "17934129"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "86"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "951254146316779520",
+      "id_str": "951254329490460673",
+      "in_reply_to_user_id": "17934129",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951254329490460673",
+      "in_reply_to_status_id": "951254146316779520",
+      "created_at": "Thu Jan 11 00:48:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@skimbrel This would be a bigger perk if I had been to a bar in the last... 2 years...",
+      "lang": "en",
+      "in_reply_to_screen_name": "skimbrel",
+      "in_reply_to_user_id_str": "17934129"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951253264535756801"
+          ],
+          "editableUntil": "2018-01-11T01:43:46.353Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "166"
+      ],
+      "favorite_count": "48",
+      "in_reply_to_status_id_str": "951252764612485121",
+      "id_str": "951253264535756801",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951253264535756801",
+      "in_reply_to_status_id": "951252764612485121",
+      "created_at": "Thu Jan 11 00:43:46 +0000 2018",
+      "favorited": false,
+      "full_text": "On the other hand, looking like an idiot child sometimes means people let their guard down in negotiations and are unprepared when I ask actually difficult questions.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951252764612485121"
+          ],
+          "editableUntil": "2018-01-11T01:41:47.162Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "54"
+      ],
+      "favorite_count": "19",
+      "in_reply_to_status_id_str": "951252533795680256",
+      "id_str": "951252764612485121",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951252764612485121",
+      "in_reply_to_status_id": "951252533795680256",
+      "created_at": "Thu Jan 11 00:41:47 +0000 2018",
+      "favorited": false,
+      "full_text": "I'm a hella old, grizzled idiot. Give me some respect.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951252533795680256"
+          ],
+          "editableUntil": "2018-01-11T01:40:52.131Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "205"
+      ],
+      "favorite_count": "94",
+      "id_str": "951252533795680256",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "951252533795680256",
+      "created_at": "Thu Jan 11 00:40:52 +0000 2018",
+      "favorited": false,
+      "full_text": "Sometimes I think my conversations with third-party vendors, consultants, investors etc. would go a lot faster if I wore a big nametag that said \"I am nearly 40, not the idiot child you are taking me for\".",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951250595079380992"
+          ],
+          "editableUntil": "2018-01-11T01:33:09.905Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ben Lesh",
+            "screen_name": "BenLesh",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "23795212",
+            "id": "23795212"
+          },
+          {
+            "name": "danabramov.bsky.social",
+            "screen_name": "dan_abramov",
+            "indices": [
+              "9",
+              "21"
+            ],
+            "id_str": "70345946",
+            "id": "70345946"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "157"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "951249677717970944",
+      "id_str": "951250595079380992",
+      "in_reply_to_user_id": "23795212",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951250595079380992",
+      "in_reply_to_status_id": "951249677717970944",
+      "created_at": "Thu Jan 11 00:33:09 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenLesh @dan_abramov The reason I included it was I tweeted publicly about big packages people use in the React space and multiple people chimed in with it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "BenLesh",
+      "in_reply_to_user_id_str": "23795212"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951239648625307649"
+          ],
+          "editableUntil": "2018-01-11T00:49:40.067Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ben Lesh",
+            "screen_name": "BenLesh",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "23795212",
+            "id": "23795212"
+          },
+          {
+            "name": "danabramov.bsky.social",
+            "screen_name": "dan_abramov",
+            "indices": [
+              "9",
+              "21"
+            ],
+            "id_str": "70345946",
+            "id": "70345946"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "951239459437080576",
+      "id_str": "951239648625307649",
+      "in_reply_to_user_id": "23795212",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951239648625307649",
+      "in_reply_to_status_id": "951239459437080576",
+      "created_at": "Wed Jan 10 23:49:40 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenLesh @dan_abramov As I mentioned in the post, lots of RxJS usage is coming in because the Angular CLI uses it. All Angular CLI users are RxJS users.",
+      "lang": "en",
+      "in_reply_to_screen_name": "BenLesh",
+      "in_reply_to_user_id_str": "23795212"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951236892632088576"
+          ],
+          "editableUntil": "2018-01-11T00:38:42.987Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mikeal Rogers",
+            "screen_name": "mikeal",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "668423",
+            "id": "668423"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "26"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "951236758812835840",
+      "id_str": "951236892632088576",
+      "in_reply_to_user_id": "668423",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951236892632088576",
+      "in_reply_to_status_id": "951236758812835840",
+      "created_at": "Wed Jan 10 23:38:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@mikeal DISRUPT ADJECTIVES",
+      "lang": "en",
+      "in_reply_to_screen_name": "mikeal",
+      "in_reply_to_user_id_str": "668423"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951234996592721920"
+          ],
+          "editableUntil": "2018-01-11T00:31:10.936Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "148"
+      ],
+      "favorite_count": "20",
+      "in_reply_to_status_id_str": "951234624243474432",
+      "id_str": "951234996592721920",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "951234996592721920",
+      "in_reply_to_status_id": "951234624243474432",
+      "created_at": "Wed Jan 10 23:31:10 +0000 2018",
+      "favorited": false,
+      "full_text": "This is where the Bitcoin enthusiasts swoop in to tell me that Bitcoin, down 14% in the last 30 days, is not a currency but a stable store of value.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951234624243474432"
+          ],
+          "editableUntil": "2018-01-11T00:29:42.161Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/QZH1fSzbsK",
+            "expanded_url": "https://twitter.com/Luwhi/status/951165647815348224",
+            "display_url": "twitter.com/Luwhi/status/9…",
+            "indices": [
+              "36",
+              "59"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "69",
+      "id_str": "951234624243474432",
+      "truncated": false,
+      "retweet_count": "22",
+      "id": "951234624243474432",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 10 23:29:42 +0000 2018",
+      "favorited": false,
+      "full_text": "The irony never stops with Bitcoin: https://t.co/QZH1fSzbsK",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951208922865520640"
+          ],
+          "editableUntil": "2018-01-10T22:47:34.475Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "BuzzFeed",
+            "screen_name": "BuzzFeed",
+            "indices": [
+              "3",
+              "12"
+            ],
+            "id_str": "5695632",
+            "id": "5695632"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/gYYtSpUutf",
+            "expanded_url": "http://bzfd.it/2mf3i3y",
+            "display_url": "bzfd.it/2mf3i3y",
+            "indices": [
+              "97",
+              "120"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "120"
+      ],
+      "favorite_count": "0",
+      "id_str": "951208922865520640",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951208922865520640",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 10 21:47:34 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @BuzzFeed: \"Black Panther\" sold more advance tickets in 24 hours than any other Marvel movie\n\nhttps://t.co/gYYtSpUutf",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951199232173592576"
+          ],
+          "editableUntil": "2018-01-10T22:09:04.034Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Ryan T From Tennessee",
+            "screen_name": "RyanTablada",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "90242250",
+            "id": "90242250"
+          },
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "13",
+              "24"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "112"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "951198325084180482",
+      "id_str": "951199232173592576",
+      "in_reply_to_user_id": "90242250",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951199232173592576",
+      "in_reply_to_status_id": "951198325084180482",
+      "created_at": "Wed Jan 10 21:09:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@RyanTablada @bitandbang Everything about Steam is terrible and I do not understand what keeps them in business.",
+      "lang": "en",
+      "in_reply_to_screen_name": "RyanTablada",
+      "in_reply_to_user_id_str": "90242250"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951192019547824133"
+          ],
+          "editableUntil": "2018-01-10T21:40:24.410Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "131"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "951191776961769472",
+      "id_str": "951192019547824133",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951192019547824133",
+      "in_reply_to_status_id": "951191776961769472",
+      "created_at": "Wed Jan 10 20:40:24 +0000 2018",
+      "favorited": false,
+      "full_text": "(I'm not affiliated with HarperDB in any way, except I agreed to be a judge for the competition after meeting them at a conference)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951191776961769472"
+          ],
+          "editableUntil": "2018-01-10T21:39:26.573Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/HySVC3m54q",
+            "expanded_url": "https://twitter.com/harperdbio/status/948983171672047616",
+            "display_url": "twitter.com/harperdbio/sta…",
+            "indices": [
+              "131",
+              "154"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "154"
+      ],
+      "favorite_count": "8",
+      "id_str": "951191776961769472",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "951191776961769472",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 10 20:39:26 +0000 2018",
+      "favorited": false,
+      "full_text": "HarperDB is a fun new open-source DB and they are giving prizes for building stuff with it in a week-long competition in February: https://t.co/HySVC3m54q",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951190188411125761"
+          ],
+          "editableUntil": "2018-01-10T21:33:07.833Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "125"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "951187814372143104",
+      "id_str": "951190188411125761",
+      "in_reply_to_user_id": "69426451",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "951190188411125761",
+      "in_reply_to_status_id": "951187814372143104",
+      "created_at": "Wed Jan 10 20:33:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseyNewton The live stream when I opened it was a picture of somebody looking at a tweet on twitter. It was very Inception.",
+      "lang": "en",
+      "in_reply_to_screen_name": "CaseyNewton",
+      "in_reply_to_user_id_str": "69426451"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "951184046096244736"
+          ],
+          "editableUntil": "2018-01-10T21:08:43.391Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "20",
+      "id_str": "951184046096244736",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "951184046096244736",
+      "created_at": "Wed Jan 10 20:08:43 +0000 2018",
+      "favorited": false,
+      "full_text": "OH: \"Acquisitions are how people in Silicon Valley take vacation.\"",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950982800114515968"
+          ],
+          "editableUntil": "2018-01-10T07:49:02.610Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "alexis",
+            "screen_name": "holyurl",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "172227116",
+            "id": "172227116"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "32"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950951334118912000",
+      "id_str": "950982800114515968",
+      "in_reply_to_user_id": "172227116",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950982800114515968",
+      "in_reply_to_status_id": "950951334118912000",
+      "created_at": "Wed Jan 10 06:49:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@holyurl Isn't that just Canada?",
+      "lang": "en",
+      "in_reply_to_screen_name": "holyurl",
+      "in_reply_to_user_id_str": "172227116"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950980230193098752"
+          ],
+          "editableUntil": "2018-01-10T07:38:49.893Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan English (💉💉💉💉)",
+            "screen_name": "bengl",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "14863971",
+            "id": "14863971"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "48"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950976260724875264",
+      "id_str": "950980230193098752",
+      "in_reply_to_user_id": "14863971",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950980230193098752",
+      "in_reply_to_status_id": "950976260724875264",
+      "created_at": "Wed Jan 10 06:38:49 +0000 2018",
+      "favorited": false,
+      "full_text": "@bengl I don't hate it. It's really dark though.",
+      "lang": "en",
+      "in_reply_to_screen_name": "bengl",
+      "in_reply_to_user_id_str": "14863971"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950972644555341824"
+          ],
+          "editableUntil": "2018-01-10T07:08:41.336Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "laura i. gómez",
+            "screen_name": "laura",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "17454341",
+            "id": "17454341"
+          },
+          {
+            "name": "Atipica",
+            "screen_name": "GetAtipica",
+            "indices": [
+              "7",
+              "18"
+            ],
+            "id_str": "2957802415",
+            "id": "2957802415"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950972182699556864",
+      "id_str": "950972644555341824",
+      "in_reply_to_user_id": "17454341",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950972644555341824",
+      "in_reply_to_status_id": "950972182699556864",
+      "created_at": "Wed Jan 10 06:08:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@laura @GetAtipica Congratulations!",
+      "lang": "en",
+      "in_reply_to_screen_name": "laura",
+      "in_reply_to_user_id_str": "17454341"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950971938700107776"
+          ],
+          "editableUntil": "2018-01-10T07:05:53.047Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Devon Govett",
+            "screen_name": "devongovett",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "15687937",
+            "id": "15687937"
+          },
+          {
+            "name": "Jason Miller 🦊⚛",
+            "screen_name": "_developit",
+            "indices": [
+              "13",
+              "24"
+            ],
+            "id_str": "16495353",
+            "id": "16495353"
+          },
+          {
+            "name": "Dominic Gannaway",
+            "screen_name": "trueadm",
+            "indices": [
+              "25",
+              "33"
+            ],
+            "id_str": "39141147",
+            "id": "39141147"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "254"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950970753171652609",
+      "id_str": "950971938700107776",
+      "in_reply_to_user_id": "15687937",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950971938700107776",
+      "in_reply_to_status_id": "950970753171652609",
+      "created_at": "Wed Jan 10 06:05:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@devongovett @_developit @trueadm It was not generally true across npm (it was a significantly below-average day for most packages). I think somebody really did do 80k installs of something that day. Probably somebody's holiday hacking project had a bug.",
+      "lang": "en",
+      "in_reply_to_screen_name": "devongovett",
+      "in_reply_to_user_id_str": "15687937"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950970279081082881"
+          ],
+          "editableUntil": "2018-01-10T06:59:17.363Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "AJ Jordan #neveragain",
+            "screen_name": "strugee2",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "369017201",
+            "id": "369017201"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "48"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950970001833410560",
+      "id_str": "950970279081082881",
+      "in_reply_to_user_id": "369017201",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950970279081082881",
+      "in_reply_to_status_id": "950970001833410560",
+      "created_at": "Wed Jan 10 05:59:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@strugee2 Mitigations are not the same as fixes.",
+      "lang": "en",
+      "in_reply_to_screen_name": "strugee2",
+      "in_reply_to_user_id_str": "369017201"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950961840170835970"
+          ],
+          "editableUntil": "2018-01-10T06:25:45.370Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/9bqZpGkg6n",
+            "expanded_url": "https://www.thedailybeast.com/this-is-the-data-snapchat-doesnt-want-you-to-see",
+            "display_url": "thedailybeast.com/this-is-the-da…",
+            "indices": [
+              "140",
+              "163"
+            ]
+          }
+        ],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/950961840170835970/photo/1",
+            "indices": [
+              "164",
+              "187"
+            ],
+            "url": "https://t.co/e0ydXvUGZi",
+            "media_url": "http://pbs.twimg.com/media/DTJ-j5xV4AAJ-Wi.jpg",
+            "id_str": "950961626596892672",
+            "id": "950961626596892672",
+            "media_url_https": "https://pbs.twimg.com/media/DTJ-j5xV4AAJ-Wi.jpg",
+            "sizes": {
+              "large": {
+                "w": "668",
+                "h": "354",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "668",
+                "h": "354",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "668",
+                "h": "354",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/e0ydXvUGZi"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "187"
+      ],
+      "favorite_count": "29",
+      "id_str": "950961840170835970",
+      "truncated": false,
+      "retweet_count": "11",
+      "id": "950961840170835970",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 10 05:25:45 +0000 2018",
+      "favorited": false,
+      "full_text": "I have long suspected that Snap has been fudging its active user numbers because they suck, and a big leak appears to show that's the case: https://t.co/9bqZpGkg6n https://t.co/e0ydXvUGZi",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/950961840170835970/photo/1",
+            "indices": [
+              "164",
+              "187"
+            ],
+            "url": "https://t.co/e0ydXvUGZi",
+            "media_url": "http://pbs.twimg.com/media/DTJ-j5xV4AAJ-Wi.jpg",
+            "id_str": "950961626596892672",
+            "id": "950961626596892672",
+            "media_url_https": "https://pbs.twimg.com/media/DTJ-j5xV4AAJ-Wi.jpg",
+            "sizes": {
+              "large": {
+                "w": "668",
+                "h": "354",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "668",
+                "h": "354",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "668",
+                "h": "354",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/e0ydXvUGZi"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950959235826774016"
+          ],
+          "editableUntil": "2018-01-10T06:15:24.446Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "50"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950958558794809344",
+      "id_str": "950959235826774016",
+      "in_reply_to_user_id": "4254951",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950959235826774016",
+      "in_reply_to_status_id": "950958558794809344",
+      "created_at": "Wed Jan 10 05:15:24 +0000 2018",
+      "favorited": false,
+      "full_text": "@jef_poskanzer But what is your source of entropy?",
+      "lang": "en",
+      "in_reply_to_screen_name": "jefposk",
+      "in_reply_to_user_id_str": "4254951"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950958777099956224"
+          ],
+          "editableUntil": "2018-01-10T06:13:35.077Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mikel Jollett",
+            "screen_name": "Mikel_Jollett",
+            "indices": [
+              "3",
+              "17"
+            ],
+            "id_str": "594175899",
+            "id": "594175899"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "950958777099956224",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950958777099956224",
+      "created_at": "Wed Jan 10 05:13:35 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @Mikel_Jollett: Bannonfreude is when you build a propaganda empire based on racist lies which then fires you the minute you tell the tru…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950955979406942208"
+          ],
+          "editableUntil": "2018-01-10T06:02:28.055Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "93"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "950954680246419456",
+      "id_str": "950955979406942208",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "950955979406942208",
+      "in_reply_to_status_id": "950954680246419456",
+      "created_at": "Wed Jan 10 05:02:28 +0000 2018",
+      "favorited": false,
+      "full_text": "If you saw my talk at @nodevember, this is the tool I was referring to as \"cipm\" at the time.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950955538434502657"
+          ],
+          "editableUntil": "2018-01-10T06:00:42.919Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "john curley",
+            "screen_name": "johncurley",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "3719",
+            "id": "3719"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "109"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950952368786456576",
+      "id_str": "950955538434502657",
+      "in_reply_to_user_id": "3719",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950955538434502657",
+      "in_reply_to_status_id": "950952368786456576",
+      "created_at": "Wed Jan 10 05:00:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@johncurley @jef_poskanzer Beware! This is a well known pattern that brute-force attacks we are aware of use.",
+      "lang": "en",
+      "in_reply_to_screen_name": "johncurley",
+      "in_reply_to_user_id_str": "3719"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950955393223507968"
+          ],
+          "editableUntil": "2018-01-10T06:00:08.298Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "71"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950950852407132160",
+      "id_str": "950955393223507968",
+      "in_reply_to_user_id": "4254951",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950955393223507968",
+      "in_reply_to_status_id": "950950852407132160",
+      "created_at": "Wed Jan 10 05:00:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@jef_poskanzer How do you... write your own... random number generator?",
+      "lang": "en",
+      "in_reply_to_screen_name": "jefposk",
+      "in_reply_to_user_id_str": "4254951"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950954680246419456"
+          ],
+          "editableUntil": "2018-01-10T05:57:18.311Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/U9uMHrDAL1",
+            "expanded_url": "https://twitter.com/mikesherov/status/950935119287775232",
+            "display_url": "twitter.com/mikesherov/sta…",
+            "indices": [
+              "89",
+              "112"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "112"
+      ],
+      "favorite_count": "23",
+      "id_str": "950954680246419456",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "950954680246419456",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 10 04:57:18 +0000 2018",
+      "favorited": false,
+      "full_text": "Coming soon to npm, `npm ci`, a bare-bones install that is extremely, unbelievably fast: https://t.co/U9uMHrDAL1",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950924954433765376"
+          ],
+          "editableUntil": "2018-01-10T03:59:11.125Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Emily Gorcenski",
+            "screen_name": "EmilyGorcenski",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "1483064670",
+            "id": "1483064670"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "20"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950924791179022336",
+      "id_str": "950924954433765376",
+      "in_reply_to_user_id": "1483064670",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950924954433765376",
+      "in_reply_to_status_id": "950924791179022336",
+      "created_at": "Wed Jan 10 02:59:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@EmilyGorcenski Oof.",
+      "lang": "und",
+      "in_reply_to_screen_name": "EmilyGorcenski",
+      "in_reply_to_user_id_str": "1483064670"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950923878171254784"
+          ],
+          "editableUntil": "2018-01-10T03:54:54.524Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "135"
+      ],
+      "favorite_count": "13",
+      "in_reply_to_status_id_str": "950922102336503808",
+      "id_str": "950923878171254784",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950923878171254784",
+      "in_reply_to_status_id": "950922102336503808",
+      "created_at": "Wed Jan 10 02:54:54 +0000 2018",
+      "favorited": false,
+      "full_text": "I have stuffed the packaging of the new recycling bin into the twisted wreckage of the old recycling bin and thrown the whole bin away.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950922102336503808"
+          ],
+          "editableUntil": "2018-01-10T03:47:51.132Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "95"
+      ],
+      "favorite_count": "95",
+      "id_str": "950922102336503808",
+      "truncated": false,
+      "retweet_count": "13",
+      "id": "950922102336503808",
+      "created_at": "Wed Jan 10 02:47:51 +0000 2018",
+      "favorited": false,
+      "full_text": "I bought a new recycling bin but it isn't big enough to hold all the packaging that it came in.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950911152975826946"
+          ],
+          "editableUntil": "2018-01-10T03:04:20.601Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/EGd3bmaAwy",
+            "expanded_url": "https://twitter.com/hkanji/status/950906816854192128",
+            "display_url": "twitter.com/hkanji/status/…",
+            "indices": [
+              "41",
+              "64"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "64"
+      ],
+      "favorite_count": "29",
+      "id_str": "950911152975826946",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "950911152975826946",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 10 02:04:20 +0000 2018",
+      "favorited": false,
+      "full_text": "I can't believe this is a real headline. https://t.co/EGd3bmaAwy",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950884944355602432"
+          ],
+          "editableUntil": "2018-01-10T01:20:11.979Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jason Miller 🦊⚛",
+            "screen_name": "_developit",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16495353",
+            "id": "16495353"
+          },
+          {
+            "name": "Dominic Gannaway",
+            "screen_name": "trueadm",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "39141147",
+            "id": "39141147"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "73"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950882205164883970",
+      "id_str": "950884944355602432",
+      "in_reply_to_user_id": "16495353",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950884944355602432",
+      "in_reply_to_status_id": "950882205164883970",
+      "created_at": "Wed Jan 10 00:20:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@_developit @trueadm 83,000 downloads on December 26th. How very strange!",
+      "lang": "en",
+      "in_reply_to_screen_name": "_developit",
+      "in_reply_to_user_id_str": "16495353"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950878943980150784"
+          ],
+          "editableUntil": "2018-01-10T00:56:21.378Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "BenEncodes",
+            "screen_name": "BenEncodes",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1065837607735545857",
+            "id": "1065837607735545857"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "32"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950877969240621056",
+      "id_str": "950878943980150784",
+      "in_reply_to_user_id": "154189594",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950878943980150784",
+      "in_reply_to_status_id": "950877969240621056",
+      "created_at": "Tue Jan 09 23:56:21 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenEncodes Me all day every day",
+      "lang": "en",
+      "in_reply_to_screen_name": "tandemNuclei",
+      "in_reply_to_user_id_str": "154189594"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950872903347724288"
+          ],
+          "editableUntil": "2018-01-10T00:32:21.179Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "live, laugh, @lawnsea@mastodon.social",
+            "screen_name": "lawnsea",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14132172",
+            "id": "14132172"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950872113988210688",
+      "id_str": "950872903347724288",
+      "in_reply_to_user_id": "14132172",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950872903347724288",
+      "in_reply_to_status_id": "950872113988210688",
+      "created_at": "Tue Jan 09 23:32:21 +0000 2018",
+      "favorited": false,
+      "full_text": "@lawnsea Like this, only anonymous.",
+      "lang": "en",
+      "in_reply_to_screen_name": "lawnsea",
+      "in_reply_to_user_id_str": "14132172"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950872396621164544"
+          ],
+          "editableUntil": "2018-01-10T00:30:20.366Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Chris Bannister - @devpanda@tech.lgbt",
+            "screen_name": "suddenmoves",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "11791122",
+            "id": "11791122"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "78"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950872244313575432",
+      "id_str": "950872396621164544",
+      "in_reply_to_user_id": "11791122",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950872396621164544",
+      "in_reply_to_status_id": "950872244313575432",
+      "created_at": "Tue Jan 09 23:30:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@suddenmoves I dunno, it would be interesting to know how many people do that.",
+      "lang": "en",
+      "in_reply_to_screen_name": "suddenmoves",
+      "in_reply_to_user_id_str": "11791122"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950871244424933376"
+          ],
+          "editableUntil": "2018-01-10T00:25:45.661Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "104"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950871019849330689",
+      "id_str": "950871244424933376",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950871244424933376",
+      "in_reply_to_status_id": "950871019849330689",
+      "created_at": "Tue Jan 09 23:25:45 +0000 2018",
+      "favorited": false,
+      "full_text": "If I set up a Post Secret style anonymous place to describe your password system, would you participate?",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950871019849330689"
+          ],
+          "editableUntil": "2018-01-10T00:24:52.118Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "198"
+      ],
+      "favorite_count": "27",
+      "id_str": "950871019849330689",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "950871019849330689",
+      "created_at": "Tue Jan 09 23:24:52 +0000 2018",
+      "favorited": false,
+      "full_text": "I feel like everybody has a clever little system they use to generate new passwords, like \"I quote War and Peace and add the day\", but nobody can talk about them because that would make it insecure.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950868884961112064"
+          ],
+          "editableUntil": "2018-01-10T00:16:23.121Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nathan Fritz 🌯🤔",
+            "screen_name": "fritzy",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "14498374",
+            "id": "14498374"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "16"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "950864883519700994",
+      "id_str": "950868884961112064",
+      "in_reply_to_user_id": "14498374",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950868884961112064",
+      "in_reply_to_status_id": "950864883519700994",
+      "created_at": "Tue Jan 09 23:16:23 +0000 2018",
+      "favorited": false,
+      "full_text": "@fritzy Shhhhhhh",
+      "lang": "und",
+      "in_reply_to_screen_name": "fritzy",
+      "in_reply_to_user_id_str": "14498374"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950864486507806720"
+          ],
+          "editableUntil": "2018-01-09T23:58:54.448Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "122"
+      ],
+      "favorite_count": "64",
+      "id_str": "950864486507806720",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950864486507806720",
+      "created_at": "Tue Jan 09 22:58:54 +0000 2018",
+      "favorited": false,
+      "full_text": "My master password for my password manager is an extremely long and profane sentence that I fuck up like 2 out of 3 times.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950841650313596928"
+          ],
+          "editableUntil": "2018-01-09T22:28:09.875Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nicolas",
+            "screen_name": "necolas",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "24974216",
+            "id": "24974216"
+          },
+          {
+            "name": "Peggy Rayzis",
+            "screen_name": "peggyrayzis",
+            "indices": [
+              "9",
+              "21"
+            ],
+            "id_str": "711729626482081792",
+            "id": "711729626482081792"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "68"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950841515751784448",
+      "id_str": "950841650313596928",
+      "in_reply_to_user_id": "24974216",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950841650313596928",
+      "in_reply_to_status_id": "950841515751784448",
+      "created_at": "Tue Jan 09 21:28:09 +0000 2018",
+      "favorited": false,
+      "full_text": "@necolas @peggyrayzis Yes, I shall think about how to talk about it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "necolas",
+      "in_reply_to_user_id_str": "24974216"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950840504022859777"
+          ],
+          "editableUntil": "2018-01-09T22:23:36.578Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nicolas",
+            "screen_name": "necolas",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "24974216",
+            "id": "24974216"
+          },
+          {
+            "name": "Peggy Rayzis",
+            "screen_name": "peggyrayzis",
+            "indices": [
+              "9",
+              "21"
+            ],
+            "id_str": "711729626482081792",
+            "id": "711729626482081792"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/Lem9tNYT3I",
+            "expanded_url": "https://www.npmjs.com/package/react-native",
+            "display_url": "npmjs.com/package/react-…",
+            "indices": [
+              "50",
+              "73"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "131"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950823473072541696",
+      "id_str": "950840504022859777",
+      "in_reply_to_user_id": "24974216",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950840504022859777",
+      "in_reply_to_status_id": "950823473072541696",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 09 21:23:36 +0000 2018",
+      "favorited": false,
+      "full_text": "@necolas @peggyrayzis That's a fair criticism. Is https://t.co/Lem9tNYT3I the package I should be using as a proxy for RN activity?",
+      "lang": "en",
+      "in_reply_to_screen_name": "necolas",
+      "in_reply_to_user_id_str": "24974216"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950825609474670592"
+          ],
+          "editableUntil": "2018-01-09T21:24:25.441Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lin Clark",
+            "screen_name": "linclark",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "21500149",
+            "id": "21500149"
+          },
+          {
+            "name": "John C. Miller",
+            "screen_name": "melaniersumner",
+            "indices": [
+              "10",
+              "25"
+            ],
+            "id_str": "1396895289470906368",
+            "id": "1396895289470906368"
+          },
+          {
+            "name": "Kyle has moved to @kyleve@mastodon.online 🏳️‍🌈",
+            "screen_name": "kyleve",
+            "indices": [
+              "26",
+              "33"
+            ],
+            "id_str": "14680556",
+            "id": "14680556"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "96"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950821494652850177",
+      "id_str": "950825609474670592",
+      "in_reply_to_user_id": "21500149",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950825609474670592",
+      "in_reply_to_status_id": "950821494652850177",
+      "created_at": "Tue Jan 09 20:24:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@linclark @melaniersumner @kyleve Omg I have a whole talk about that! That would be fun as hell.",
+      "lang": "en",
+      "in_reply_to_screen_name": "linclark",
+      "in_reply_to_user_id_str": "21500149"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950820326862045184"
+          ],
+          "editableUntil": "2018-01-09T21:03:25.968Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [
+          {
+            "text": "hugops",
+            "indices": [
+              "13",
+              "20"
+            ]
+          }
+        ],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ashley williams",
+            "screen_name": "ag_dubs",
+            "indices": [
+              "3",
+              "11"
+            ],
+            "id_str": "304067888",
+            "id": "304067888"
+          },
+          {
+            "name": "Slack",
+            "screen_name": "SlackHQ",
+            "indices": [
+              "24",
+              "32"
+            ],
+            "id_str": "1305940272",
+            "id": "1305940272"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "103"
+      ],
+      "favorite_count": "0",
+      "id_str": "950820326862045184",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950820326862045184",
+      "created_at": "Tue Jan 09 20:03:25 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @ag_dubs: #hugops to @SlackHQ \n\ntrust me i know the feel, and it's not a great one. u got this tho 👊",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950820214832164866"
+          ],
+          "editableUntil": "2018-01-09T21:02:59.258Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nicolas",
+            "screen_name": "necolas",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "24974216",
+            "id": "24974216"
+          },
+          {
+            "name": "Peggy Rayzis",
+            "screen_name": "peggyrayzis",
+            "indices": [
+              "9",
+              "21"
+            ],
+            "id_str": "711729626482081792",
+            "id": "711729626482081792"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "244"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950818816920989696",
+      "id_str": "950820214832164866",
+      "in_reply_to_user_id": "24974216",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950820214832164866",
+      "in_reply_to_status_id": "950818816920989696",
+      "created_at": "Tue Jan 09 20:02:59 +0000 2018",
+      "favorited": false,
+      "full_text": "@necolas @peggyrayzis Oh for sure, react-native usage is definitely folded into the general usage. But native usage is only about 1-3% of React usage (by our best estimate) so it wasn't a big focus, though I personally think it's very exciting.",
+      "lang": "en",
+      "in_reply_to_screen_name": "necolas",
+      "in_reply_to_user_id_str": "24974216"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950817218811449344"
+          ],
+          "editableUntil": "2018-01-09T20:51:04.951Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "47"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950816177764249600",
+      "id_str": "950817218811449344",
+      "in_reply_to_user_id": "823484",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950817218811449344",
+      "in_reply_to_status_id": "950816177764249600",
+      "created_at": "Tue Jan 09 19:51:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@abritinthebay And yet here they are, doing it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "GregWildSmith",
+      "in_reply_to_user_id_str": "823484"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950817092210606081"
+          ],
+          "editableUntil": "2018-01-09T20:50:34.767Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John C. Miller",
+            "screen_name": "melaniersumner",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "1396895289470906368",
+            "id": "1396895289470906368"
+          },
+          {
+            "name": "Kyle has moved to @kyleve@mastodon.online 🏳️‍🌈",
+            "screen_name": "kyleve",
+            "indices": [
+              "16",
+              "23"
+            ],
+            "id_str": "14680556",
+            "id": "14680556"
+          },
+          {
+            "name": "Lin Clark",
+            "screen_name": "linclark",
+            "indices": [
+              "27",
+              "36"
+            ],
+            "id_str": "21500149",
+            "id": "21500149"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950816147527618560",
+      "id_str": "950817092210606081",
+      "in_reply_to_user_id": "177759800",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950817092210606081",
+      "in_reply_to_status_id": "950816147527618560",
+      "created_at": "Tue Jan 09 19:50:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@melaniersumner @kyleve CC @linclark",
+      "lang": "und",
+      "in_reply_to_screen_name": "a11yMel",
+      "in_reply_to_user_id_str": "177759800"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950817027119181824"
+          ],
+          "editableUntil": "2018-01-09T20:50:19.248Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nicolas",
+            "screen_name": "necolas",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "24974216",
+            "id": "24974216"
+          },
+          {
+            "name": "Peggy Rayzis",
+            "screen_name": "peggyrayzis",
+            "indices": [
+              "9",
+              "21"
+            ],
+            "id_str": "711729626482081792",
+            "id": "711729626482081792"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "110"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950815952869797888",
+      "id_str": "950817027119181824",
+      "in_reply_to_user_id": "24974216",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950817027119181824",
+      "in_reply_to_status_id": "950815952869797888",
+      "created_at": "Tue Jan 09 19:50:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@necolas @peggyrayzis I didn't include a specific proxy for react native in this analysis, it was web focused.",
+      "lang": "en",
+      "in_reply_to_screen_name": "necolas",
+      "in_reply_to_user_id_str": "24974216"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950816715474198529"
+          ],
+          "editableUntil": "2018-01-09T20:49:04.946Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "test elsfa7",
+            "screen_name": "d3dvincent",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1559887182621458432",
+            "id": "1559887182621458432"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "141"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950813678118596608",
+      "id_str": "950816715474198529",
+      "in_reply_to_user_id": "388151045",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950816715474198529",
+      "in_reply_to_status_id": "950813678118596608",
+      "created_at": "Tue Jan 09 19:49:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@D3DVincent I really struggled to come up with a 2 or 3 word summary of what it does. If you've got a better suggestion I'll happily take it.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "388151045"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950815584211513345"
+          ],
+          "editableUntil": "2018-01-09T20:44:35.232Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John C. Miller",
+            "screen_name": "melaniersumner",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "1396895289470906368",
+            "id": "1396895289470906368"
+          },
+          {
+            "name": "Kyle has moved to @kyleve@mastodon.online 🏳️‍🌈",
+            "screen_name": "kyleve",
+            "indices": [
+              "16",
+              "23"
+            ],
+            "id_str": "14680556",
+            "id": "14680556"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "151"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "950815192681734146",
+      "id_str": "950815584211513345",
+      "in_reply_to_user_id": "177759800",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950815584211513345",
+      "in_reply_to_status_id": "950815192681734146",
+      "created_at": "Tue Jan 09 19:44:35 +0000 2018",
+      "favorited": false,
+      "full_text": "@melaniersumner @kyleve People keep asking us to put npm on the blockchain and I patiently explain that that would make it worse in every possible way.",
+      "lang": "en",
+      "in_reply_to_screen_name": "a11yMel",
+      "in_reply_to_user_id_str": "177759800"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950815010804064256"
+          ],
+          "editableUntil": "2018-01-09T20:42:18.521Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kyle has moved to @kyleve@mastodon.online 🏳️‍🌈",
+            "screen_name": "kyleve",
+            "indices": [
+              "3",
+              "10"
+            ],
+            "id_str": "14680556",
+            "id": "14680556"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "0",
+      "id_str": "950815010804064256",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950815010804064256",
+      "created_at": "Tue Jan 09 19:42:18 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @kyleve: What if we put Slack… On the blockchain",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950814873243467776"
+          ],
+          "editableUntil": "2018-01-09T20:41:45.724Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🇧🇧🇹🇹🏳️‍🌈🌉 🚴🏿Ed says Yes on J, No on I",
+            "screen_name": "eparillon",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "5818162",
+            "id": "5818162"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "48"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950814529876733952",
+      "id_str": "950814873243467776",
+      "in_reply_to_user_id": "5818162",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950814873243467776",
+      "in_reply_to_status_id": "950814529876733952",
+      "created_at": "Tue Jan 09 19:41:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@eparillon I did. It is still deeply horrifying.",
+      "lang": "en",
+      "in_reply_to_screen_name": "eparillon",
+      "in_reply_to_user_id_str": "5818162"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950814609346387973"
+          ],
+          "editableUntil": "2018-01-09T20:40:42.806Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dominic Gannaway",
+            "screen_name": "trueadm",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "39141147",
+            "id": "39141147"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "155"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950814087038062592",
+      "id_str": "950814609346387973",
+      "in_reply_to_user_id": "39141147",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950814609346387973",
+      "in_reply_to_status_id": "950814087038062592",
+      "created_at": "Tue Jan 09 19:40:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@trueadm Good to know! I will definitely include it next time, especially if it's growing fast. Preact was an exception mostly because we use it ourselves.",
+      "lang": "en",
+      "in_reply_to_screen_name": "trueadm",
+      "in_reply_to_user_id_str": "39141147"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950814148660613120"
+          ],
+          "editableUntil": "2018-01-09T20:38:52.970Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/aAkKbOvWzu",
+            "expanded_url": "https://rewire.news/article/2018/01/09/justice-department-revokes-naturalized-citizenship-citing-fingerprint-issue/",
+            "display_url": "rewire.news/article/2018/0…",
+            "indices": [
+              "112",
+              "135"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "135"
+      ],
+      "favorite_count": "20",
+      "id_str": "950814148660613120",
+      "truncated": false,
+      "retweet_count": "35",
+      "id": "950814148660613120",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 09 19:38:52 +0000 2018",
+      "favorited": false,
+      "full_text": "The USCIS has begun revoking the citizenship of thousands of people who naturalized to US citizens decades ago: https://t.co/aAkKbOvWzu",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950812801785724928"
+          ],
+          "editableUntil": "2018-01-09T20:33:31.850Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dominic Gannaway",
+            "screen_name": "trueadm",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "39141147",
+            "id": "39141147"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "193"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950805226705047557",
+      "id_str": "950812801785724928",
+      "in_reply_to_user_id": "39141147",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950812801785724928",
+      "in_reply_to_status_id": "950805226705047557",
+      "created_at": "Tue Jan 09 19:33:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@trueadm I wasn't aware of it, but it's currently doing about 100k dls/month, which is below our threshold -- we weren't looking at anything that did less than half a million downloads a month.",
+      "lang": "en",
+      "in_reply_to_screen_name": "trueadm",
+      "in_reply_to_user_id_str": "39141147"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950794653908942849"
+          ],
+          "editableUntil": "2018-01-09T19:21:25.059Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tiago @trodrigues@icosahedron.website",
+            "screen_name": "trodrigues",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "6477652",
+            "id": "6477652"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950794179420086273",
+      "id_str": "950794653908942849",
+      "in_reply_to_user_id": "6477652",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950794653908942849",
+      "in_reply_to_status_id": "950794179420086273",
+      "created_at": "Tue Jan 09 18:21:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@trodrigues My advice is \"live in fear\" right now. \"Replace your processor\" will be my advice the moment that becomes an option.",
+      "lang": "en",
+      "in_reply_to_screen_name": "trodrigues",
+      "in_reply_to_user_id_str": "6477652"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950794461235130368"
+          ],
+          "editableUntil": "2018-01-09T19:20:39.122Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/950794461235130368/photo/1",
+            "indices": [
+              "105",
+              "128"
+            ],
+            "url": "https://t.co/vn8mtzjHwP",
+            "media_url": "http://pbs.twimg.com/media/DTHmUCAU0AALfxQ.jpg",
+            "id_str": "950794228161892352",
+            "id": "950794228161892352",
+            "media_url_https": "https://pbs.twimg.com/media/DTHmUCAU0AALfxQ.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "545",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "768",
+                "h": "616",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "768",
+                "h": "616",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/vn8mtzjHwP"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "140",
+      "in_reply_to_status_id_str": "950793406946590721",
+      "id_str": "950794461235130368",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "52",
+      "id": "950794461235130368",
+      "in_reply_to_status_id": "950793406946590721",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 09 18:20:39 +0000 2018",
+      "favorited": false,
+      "full_text": "TLDR: React Router + Redux is the de facto standard, and 2018 is going to be a breakout year for Apollo. https://t.co/vn8mtzjHwP",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/950794461235130368/photo/1",
+            "indices": [
+              "105",
+              "128"
+            ],
+            "url": "https://t.co/vn8mtzjHwP",
+            "media_url": "http://pbs.twimg.com/media/DTHmUCAU0AALfxQ.jpg",
+            "id_str": "950794228161892352",
+            "id": "950794228161892352",
+            "media_url_https": "https://pbs.twimg.com/media/DTHmUCAU0AALfxQ.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "545",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "768",
+                "h": "616",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "768",
+                "h": "616",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/vn8mtzjHwP"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950794026818576384"
+          ],
+          "editableUntil": "2018-01-09T19:18:55.549Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tiago @trodrigues@icosahedron.website",
+            "screen_name": "trodrigues",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "6477652",
+            "id": "6477652"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "203"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950793796966592512",
+      "id_str": "950794026818576384",
+      "in_reply_to_user_id": "6477652",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950794026818576384",
+      "in_reply_to_status_id": "950793796966592512",
+      "created_at": "Tue Jan 09 18:18:55 +0000 2018",
+      "favorited": false,
+      "full_text": "@trodrigues Not AFAIK. Presumably all the major vendors are hard at work trying to redesign their architectures, but it's a multi-year job as far as I can tell. We have to unwind 20 years of chip design.",
+      "lang": "en",
+      "in_reply_to_screen_name": "trodrigues",
+      "in_reply_to_user_id_str": "6477652"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950793836405534720"
+          ],
+          "editableUntil": "2018-01-09T19:18:10.151Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "KirinDave has left for elucidating@mastodon.social",
+            "screen_name": "KirinDave",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "784519",
+            "id": "784519"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "176"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950792949687701504",
+      "id_str": "950793836405534720",
+      "in_reply_to_user_id": "784519",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950793836405534720",
+      "in_reply_to_status_id": "950792949687701504",
+      "created_at": "Tue Jan 09 18:18:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@KirinDave I have always been skeptical that type checking has significant security benefits over and above just having good tests. Type checking is just a kind of testing IMO.",
+      "lang": "en",
+      "in_reply_to_screen_name": "KirinDave",
+      "in_reply_to_user_id_str": "784519"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950793406946590721"
+          ],
+          "editableUntil": "2018-01-09T19:16:27.760Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/o49ZtOicZS",
+            "expanded_url": "https://www.npmjs.com/npm/the-state-of-javascript-frameworks-2017-part-2-the-react-ecosystem",
+            "display_url": "npmjs.com/npm/the-state-…",
+            "indices": [
+              "115",
+              "138"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "272"
+      ],
+      "favorite_count": "81",
+      "id_str": "950793406946590721",
+      "truncated": false,
+      "retweet_count": "32",
+      "id": "950793406946590721",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 09 18:16:27 +0000 2018",
+      "favorited": false,
+      "full_text": "Part 2 of npm's analysis of the state of JavaScript frameworks is up. This time we zoom in on the React ecosystem: https://t.co/o49ZtOicZS\nAs before, if you think there are any errors or omissions in this analysis, please let me know! I spoke to as many people as I could.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950792460942311424"
+          ],
+          "editableUntil": "2018-01-09T19:12:42.215Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "KirinDave has left for elucidating@mastodon.social",
+            "screen_name": "KirinDave",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "784519",
+            "id": "784519"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950791634211475456",
+      "id_str": "950792460942311424",
+      "in_reply_to_user_id": "784519",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950792460942311424",
+      "in_reply_to_status_id": "950791634211475456",
+      "created_at": "Tue Jan 09 18:12:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@KirinDave See, that was my working hypothesis. It's like a buffer overflow attack in that if you miss even one vulnerable spot, you lose the ball game.",
+      "lang": "en",
+      "in_reply_to_screen_name": "KirinDave",
+      "in_reply_to_user_id_str": "784519"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950791297475870721"
+          ],
+          "editableUntil": "2018-01-09T19:08:04.823Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "KirinDave has left for elucidating@mastodon.social",
+            "screen_name": "KirinDave",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "784519",
+            "id": "784519"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950790758096887808",
+      "id_str": "950791297475870721",
+      "in_reply_to_user_id": "784519",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950791297475870721",
+      "in_reply_to_status_id": "950790758096887808",
+      "created_at": "Tue Jan 09 18:08:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@KirinDave Good to know! Got a link?",
+      "lang": "en",
+      "in_reply_to_screen_name": "KirinDave",
+      "in_reply_to_user_id_str": "784519"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950791190168838144"
+          ],
+          "editableUntil": "2018-01-09T19:07:39.239Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Drew Harry",
+            "screen_name": "drewwww",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "15169938",
+            "id": "15169938"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "99"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "950790608104247296",
+      "id_str": "950791190168838144",
+      "in_reply_to_user_id": "15169938",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950791190168838144",
+      "in_reply_to_status_id": "950790608104247296",
+      "created_at": "Tue Jan 09 18:07:39 +0000 2018",
+      "favorited": false,
+      "full_text": "@drewwww Jitter fuzzing can be defeated by statistical methods. It makes it slower, not impossible.",
+      "lang": "en",
+      "in_reply_to_screen_name": "drewwww",
+      "in_reply_to_user_id_str": "15169938"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950789489487527936"
+          ],
+          "editableUntil": "2018-01-09T19:00:53.765Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Evan Shortiss 🇮🇪 🇺🇸",
+            "screen_name": "evanshortiss",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15011401",
+            "id": "15011401"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "64"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "950789232183906307",
+      "id_str": "950789489487527936",
+      "in_reply_to_user_id": "15011401",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950789489487527936",
+      "in_reply_to_status_id": "950789232183906307",
+      "created_at": "Tue Jan 09 18:00:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@evanshortiss Sorry! We screwed the pooch. Computers are broken.",
+      "lang": "en",
+      "in_reply_to_screen_name": "evanshortiss",
+      "in_reply_to_user_id_str": "15011401"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950789408290230273"
+          ],
+          "editableUntil": "2018-01-09T19:00:34.406Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "184"
+      ],
+      "favorite_count": "17",
+      "in_reply_to_status_id_str": "950783578081697793",
+      "id_str": "950789408290230273",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "950789408290230273",
+      "in_reply_to_status_id": "950783578081697793",
+      "created_at": "Tue Jan 09 18:00:34 +0000 2018",
+      "favorited": false,
+      "full_text": "Corollary: if a vendor tells me that their system is immune to Spectre and it doesn't rely on brand-new hardware I am going to assume they are lying until I see peer-reviewed research.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950784919940227072"
+          ],
+          "editableUntil": "2018-01-09T18:42:44.300Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🌻 Vortmax 🌻",
+            "screen_name": "Vortmax",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "756196",
+            "id": "756196"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "161"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950784122254970887",
+      "id_str": "950784919940227072",
+      "in_reply_to_user_id": "756196",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950784919940227072",
+      "in_reply_to_status_id": "950784122254970887",
+      "created_at": "Tue Jan 09 17:42:44 +0000 2018",
+      "favorited": false,
+      "full_text": "@Vortmax So far. I think it will be practical to escalate the read only exploit to arbitrary execution, I have seen plausible suggestions how to do this already.",
+      "lang": "en",
+      "in_reply_to_screen_name": "Vortmax",
+      "in_reply_to_user_id_str": "756196"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950784505433829376"
+          ],
+          "editableUntil": "2018-01-09T18:41:05.474Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Elijah Manor",
+            "screen_name": "elijahmanor",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "9453872",
+            "id": "9453872"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "151"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950782859400359936",
+      "id_str": "950784505433829376",
+      "in_reply_to_user_id": "9453872",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950784505433829376",
+      "in_reply_to_status_id": "950782859400359936",
+      "created_at": "Tue Jan 09 17:41:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@elijahmanor What an interesting set of constraints. Have you looked at the Samsung a157? No contract, no camera (this is a good thing), feature phone.",
+      "lang": "en",
+      "in_reply_to_screen_name": "elijahmanor",
+      "in_reply_to_user_id_str": "9453872"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950783578081697793"
+          ],
+          "editableUntil": "2018-01-09T18:37:24.376Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "225"
+      ],
+      "favorite_count": "40",
+      "in_reply_to_status_id_str": "950782920448360448",
+      "id_str": "950783578081697793",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "20",
+      "id": "950783578081697793",
+      "in_reply_to_status_id": "950782920448360448",
+      "created_at": "Tue Jan 09 17:37:24 +0000 2018",
+      "favorited": false,
+      "full_text": "The next 12 months are going to see increasingly elaborate attacks based on Spectre that do increasingly large amounts of damage. The silence you hear right now is a frantic race to build exploits. It is going to be Very Bad.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950783153974624256"
+          ],
+          "editableUntil": "2018-01-09T18:35:43.261Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Beau Davenport",
+            "screen_name": "BeauLaBelle",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "50584640",
+            "id": "50584640"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "65"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "950782906015694848",
+      "id_str": "950783153974624256",
+      "in_reply_to_user_id": "50584640",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950783153974624256",
+      "in_reply_to_status_id": "950782906015694848",
+      "created_at": "Tue Jan 09 17:35:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@BeauLaBelle I have Better on my phone and AdBlock on my desktop.",
+      "lang": "en",
+      "in_reply_to_screen_name": "BeauLaBelle",
+      "in_reply_to_user_id_str": "50584640"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950782920448360448"
+          ],
+          "editableUntil": "2018-01-09T18:34:47.584Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "172"
+      ],
+      "favorite_count": "27",
+      "in_reply_to_status_id_str": "950781363849801728",
+      "id_str": "950782920448360448",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "9",
+      "id": "950782920448360448",
+      "in_reply_to_status_id": "950781363849801728",
+      "created_at": "Tue Jan 09 17:34:47 +0000 2018",
+      "favorited": false,
+      "full_text": "Computers are all default unsafe right now. Your computer will not be safe until the chips are rearchitected and you buy a new computer and a new phone. It will take years.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950782442809434112"
+          ],
+          "editableUntil": "2018-01-09T18:32:53.706Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@aaronfriel@hachyderm.io",
+            "screen_name": "AaronFriel",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "184674078",
+            "id": "184674078"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "97"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950781641198309378",
+      "id_str": "950782442809434112",
+      "in_reply_to_user_id": "184674078",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950782442809434112",
+      "in_reply_to_status_id": "950781641198309378",
+      "created_at": "Tue Jan 09 17:32:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@AaronFriel I'm not sure I ever believed that was true, but we sure moved the risk-reward needle.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AaronFriel",
+      "in_reply_to_user_id_str": "184674078"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950781363849801728"
+          ],
+          "editableUntil": "2018-01-09T18:28:36.462Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "84"
+      ],
+      "favorite_count": "119",
+      "id_str": "950781363849801728",
+      "truncated": false,
+      "retweet_count": "23",
+      "id": "950781363849801728",
+      "created_at": "Tue Jan 09 17:28:36 +0000 2018",
+      "favorited": false,
+      "full_text": "Spectre and Meltdown have reversed my position on ad blockers. Block all the things.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950777661667778560"
+          ],
+          "editableUntil": "2018-01-09T18:13:53.793Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jasper 🌈",
+            "screen_name": "DaleJStephens",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "84245958",
+            "id": "84245958"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "177"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950777368402042880",
+      "id_str": "950777661667778560",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950777661667778560",
+      "in_reply_to_status_id": "950777368402042880",
+      "created_at": "Tue Jan 09 17:13:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@DaleJStephens Software that phones home is easy to spot because the tools web devs use to debug their own code would show up the malicious activity as part of normal debugging.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950777368402042880"
+          ],
+          "editableUntil": "2018-01-09T18:12:43.873Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jasper 🌈",
+            "screen_name": "DaleJStephens",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "84245958",
+            "id": "84245958"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "205"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950776457499783168",
+      "id_str": "950777368402042880",
+      "in_reply_to_user_id": "84245958",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950777368402042880",
+      "in_reply_to_status_id": "950776457499783168",
+      "created_at": "Tue Jan 09 17:12:43 +0000 2018",
+      "favorited": false,
+      "full_text": "@DaleJStephens It requires millions of people failing to notice something that is extremely easy to notice, for years, and also that the code never had any bugs from the start. It is extremely implausible.",
+      "lang": "en",
+      "in_reply_to_screen_name": "DaleJStephens",
+      "in_reply_to_user_id_str": "84245958"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950776136832712704"
+          ],
+          "editableUntil": "2018-01-09T18:07:50.244Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jasper 🌈",
+            "screen_name": "DaleJStephens",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "84245958",
+            "id": "84245958"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "57"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950771542631186432",
+      "id_str": "950776136832712704",
+      "in_reply_to_user_id": "84245958",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950776136832712704",
+      "in_reply_to_status_id": "950771542631186432",
+      "created_at": "Tue Jan 09 17:07:50 +0000 2018",
+      "favorited": false,
+      "full_text": "@DaleJStephens Yes. I do not agree with the threat model.",
+      "lang": "en",
+      "in_reply_to_screen_name": "DaleJStephens",
+      "in_reply_to_user_id_str": "84245958"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950775915700563968"
+          ],
+          "editableUntil": "2018-01-09T18:06:57.522Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Andreas Eldh",
+            "screen_name": "eldh",
+            "indices": [
+              "12",
+              "17"
+            ],
+            "id_str": "15131982",
+            "id": "15131982"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "18",
+              "28"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "29",
+              "38"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "39",
+              "50"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "54"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950753094492504064",
+      "id_str": "950775915700563968",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950775915700563968",
+      "in_reply_to_status_id": "950753094492504064",
+      "created_at": "Tue Jan 09 17:06:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @eldh @IgorMinar @ZChapple @robwormald TIL",
+      "lang": "und",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950742474254901248"
+          ],
+          "editableUntil": "2018-01-09T15:54:04.460Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Saeed, Or The Other One",
+            "screen_name": "theferocity",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "15649438",
+            "id": "15649438"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "45"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950740403728379904",
+      "id_str": "950742474254901248",
+      "in_reply_to_user_id": "15649438",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950742474254901248",
+      "in_reply_to_status_id": "950740403728379904",
+      "created_at": "Tue Jan 09 14:54:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@theferocity Why do you hate democracy Saeed.",
+      "lang": "en",
+      "in_reply_to_screen_name": "theferocity",
+      "in_reply_to_user_id_str": "15649438"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950737290627657728"
+          ],
+          "editableUntil": "2018-01-09T15:33:28.587Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Andreas Eldh",
+            "screen_name": "eldh",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "15131982",
+            "id": "15131982"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "6",
+              "16"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "17",
+              "28"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "29",
+              "38"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "39",
+              "50"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "260"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950736152184737793",
+      "id_str": "950737290627657728",
+      "in_reply_to_user_id": "15131982",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950737290627657728",
+      "in_reply_to_status_id": "950736152184737793",
+      "created_at": "Tue Jan 09 14:33:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@eldh @IgorMinar @jeffbcross @ZChapple @robwormald Yes, so Angular 2 data starts in 2016 and Angular 1 data starts in 2015 because that is when they started using npm to distribute. So it's only really useful for trends since 2015, but that's 3 years of trend!",
+      "lang": "en",
+      "in_reply_to_screen_name": "eldh",
+      "in_reply_to_user_id_str": "15131982"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950735111527411712"
+          ],
+          "editableUntil": "2018-01-09T15:24:49.049Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Andreas Eldh",
+            "screen_name": "eldh",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "15131982",
+            "id": "15131982"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "6",
+              "16"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "17",
+              "28"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "29",
+              "38"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "39",
+              "50"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "210"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950734360432513024",
+      "id_str": "950735111527411712",
+      "in_reply_to_user_id": "15131982",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950735111527411712",
+      "in_reply_to_status_id": "950734360432513024",
+      "created_at": "Tue Jan 09 14:24:49 +0000 2018",
+      "favorited": false,
+      "full_text": "@eldh @IgorMinar @jeffbcross @ZChapple @robwormald Oh! For Angular data is missing because it involves a scoped package and we only calculated stats for those back to October 2016. I explained this in the post.",
+      "lang": "en",
+      "in_reply_to_screen_name": "eldh",
+      "in_reply_to_user_id_str": "15131982"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950732104853176321"
+          ],
+          "editableUntil": "2018-01-09T15:12:52.202Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Andreas Eldh",
+            "screen_name": "eldh",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "15131982",
+            "id": "15131982"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "6",
+              "16"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "17",
+              "28"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "29",
+              "38"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "39",
+              "50"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "121"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950674967246655488",
+      "id_str": "950732104853176321",
+      "in_reply_to_user_id": "15131982",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950732104853176321",
+      "in_reply_to_status_id": "950674967246655488",
+      "created_at": "Tue Jan 09 14:12:52 +0000 2018",
+      "favorited": false,
+      "full_text": "@eldh @IgorMinar @jeffbcross @ZChapple @robwormald They didn't always use npm as their primary distribution mechanism :-)",
+      "lang": "en",
+      "in_reply_to_screen_name": "eldh",
+      "in_reply_to_user_id_str": "15131982"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950594205012803585"
+          ],
+          "editableUntil": "2018-01-09T06:04:54.318Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "l a r s",
+            "screen_name": "larspeet",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "174344258",
+            "id": "174344258"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "81"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950593544393125893",
+      "id_str": "950594205012803585",
+      "in_reply_to_user_id": "174344258",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950594205012803585",
+      "in_reply_to_status_id": "950593544393125893",
+      "created_at": "Tue Jan 09 05:04:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@larspeet It happens every year! It seems like this is a thing we could plan for.",
+      "lang": "en",
+      "in_reply_to_screen_name": "larspeet",
+      "in_reply_to_user_id_str": "174344258"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950594018622111746"
+          ],
+          "editableUntil": "2018-01-09T06:04:09.879Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "kenneth 🌞",
+            "screen_name": "kpk",
+            "indices": [
+              "0",
+              "4"
+            ],
+            "id_str": "22915745",
+            "id": "22915745"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "31"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950593486968926209",
+      "id_str": "950594018622111746",
+      "in_reply_to_user_id": "22915745",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950594018622111746",
+      "in_reply_to_status_id": "950593486968926209",
+      "created_at": "Tue Jan 09 05:04:09 +0000 2018",
+      "favorited": false,
+      "full_text": "@kpk It's called Airplane Mode.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kpk",
+      "in_reply_to_user_id_str": "22915745"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950592438933991424"
+          ],
+          "editableUntil": "2018-01-09T05:57:53.252Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "14"
+      ],
+      "favorite_count": "2",
+      "id_str": "950592438933991424",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950592438933991424",
+      "created_at": "Tue Jan 09 04:57:53 +0000 2018",
+      "favorited": false,
+      "full_text": "Star Trek: GOP",
+      "lang": "nl"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950591441197154304"
+          ],
+          "editableUntil": "2018-01-09T05:53:55.373Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tom Bielecki 𐃏",
+            "screen_name": "tombielecki",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "13650782",
+            "id": "13650782"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "131"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "950590853025689601",
+      "id_str": "950591441197154304",
+      "in_reply_to_user_id": "13650782",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950591441197154304",
+      "in_reply_to_status_id": "950590853025689601",
+      "created_at": "Tue Jan 09 04:53:55 +0000 2018",
+      "favorited": false,
+      "full_text": "@tombielecki One shouldn't need a goddamn code of conduct to know that having strippers at a professional event is a terrible idea.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tombielecki",
+      "in_reply_to_user_id_str": "13650782"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950589245055410177"
+          ],
+          "editableUntil": "2018-01-09T05:45:11.772Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/mrvmCEpBH3",
+            "expanded_url": "https://twitter.com/taylorlorenz/status/950587082388406272",
+            "display_url": "twitter.com/taylorlorenz/s…",
+            "indices": [
+              "25",
+              "48"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "48"
+      ],
+      "favorite_count": "14",
+      "id_str": "950589245055410177",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "950589245055410177",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 09 04:45:11 +0000 2018",
+      "favorited": false,
+      "full_text": "Why are people like this https://t.co/mrvmCEpBH3",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950587476548005888"
+          ],
+          "editableUntil": "2018-01-09T05:38:10.127Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/XHN7tX3k9G",
+            "expanded_url": "https://twitter.com/magsvisaggs/status/950429737813512192",
+            "display_url": "twitter.com/magsvisaggs/st…",
+            "indices": [
+              "26",
+              "49"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "49"
+      ],
+      "favorite_count": "2",
+      "id_str": "950587476548005888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950587476548005888",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 09 04:38:10 +0000 2018",
+      "favorited": false,
+      "full_text": "The Little Mermaid (1989) https://t.co/XHN7tX3k9G",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950579063285989376"
+          ],
+          "editableUntil": "2018-01-09T05:04:44.249Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Here Comes The Sun",
+            "screen_name": "SunOfSeldo",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "456374925",
+            "id": "456374925"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "950579063285989376",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950579063285989376",
+      "created_at": "Tue Jan 09 04:04:44 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @SunOfSeldo: Today was one whole minute longer than yesterday! I know it’s still dark. I know it still sucks. But every day, a minute be…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950578992960061440"
+          ],
+          "editableUntil": "2018-01-09T05:04:27.482Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zach Cole",
+            "screen_name": "ZachACole",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "17949007",
+            "id": "17949007"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "17"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950568753456070658",
+      "id_str": "950578992960061440",
+      "in_reply_to_user_id": "17949007",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950578992960061440",
+      "in_reply_to_status_id": "950568753456070658",
+      "created_at": "Tue Jan 09 04:04:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZachACole ☹️☹️☹️",
+      "lang": "qme",
+      "in_reply_to_screen_name": "ZachACole",
+      "in_reply_to_user_id_str": "17949007"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950576939302977536"
+          ],
+          "editableUntil": "2018-01-09T04:56:17.852Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nicholas Chappell",
+            "screen_name": "nickachappell",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "2872411530",
+            "id": "2872411530"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "167"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "950576370253377536",
+      "id_str": "950576939302977536",
+      "in_reply_to_user_id": "2872411530",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950576939302977536",
+      "in_reply_to_status_id": "950576370253377536",
+      "created_at": "Tue Jan 09 03:56:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@nickachappell I'm told that's a contributing factor but also Californians just don't know how to drive in the rain. They go full speed and then smack into each other.",
+      "lang": "en",
+      "in_reply_to_screen_name": "nickachappell",
+      "in_reply_to_user_id_str": "2872411530"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950559781277716480"
+          ],
+          "editableUntil": "2018-01-09T03:48:07.060Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "92"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950559256314458112",
+      "id_str": "950559781277716480",
+      "in_reply_to_user_id": "14829286",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950559781277716480",
+      "in_reply_to_status_id": "950559256314458112",
+      "created_at": "Tue Jan 09 02:48:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@terronk I am reading this while getting dressed to go to the gym for the second time today.",
+      "lang": "en",
+      "in_reply_to_screen_name": "terronk",
+      "in_reply_to_user_id_str": "14829286"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950559493259067392"
+          ],
+          "editableUntil": "2018-01-09T03:46:58.391Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dvdgee",
+            "screen_name": "dvdgee",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "1072782535225004032",
+            "id": "1072782535225004032"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "8",
+              "18"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Yarn",
+            "screen_name": "yarnpkg",
+            "indices": [
+              "19",
+              "27"
+            ],
+            "id_str": "777232271484997632",
+            "id": "777232271484997632"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "28",
+              "34"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "203"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950558986520076288",
+      "id_str": "950559493259067392",
+      "in_reply_to_user_id": "562513",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950559493259067392",
+      "in_reply_to_status_id": "950558986520076288",
+      "created_at": "Tue Jan 09 02:46:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@dvdgee @IgorMinar @yarnpkg @npmjs I don't think including or excluding CI downloads would really change the picture as long as every framework has roughly the same amount of CI traffic, as seems likely.",
+      "lang": "en",
+      "in_reply_to_screen_name": "grumblestumble",
+      "in_reply_to_user_id_str": "562513"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950558934472904704"
+          ],
+          "editableUntil": "2018-01-09T03:44:45.166Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "54"
+      ],
+      "favorite_count": "10",
+      "in_reply_to_status_id_str": "950558524530028544",
+      "id_str": "950558934472904704",
+      "in_reply_to_user_id": "290549888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950558934472904704",
+      "in_reply_to_status_id": "950558524530028544",
+      "created_at": "Tue Jan 09 02:44:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@sebmck They just have no idea, Seb. Shelter in place.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sebmck",
+      "in_reply_to_user_id_str": "290549888"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950556778789462016"
+          ],
+          "editableUntil": "2018-01-09T03:36:11.211Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mack, yes, That Mack",
+            "screen_name": "that_mc",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "573162336",
+            "id": "573162336"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "950556640083718144",
+      "id_str": "950556778789462016",
+      "in_reply_to_user_id": "19753703",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950556778789462016",
+      "in_reply_to_status_id": "950556640083718144",
+      "created_at": "Tue Jan 09 02:36:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@back40feet @that_mc You've made good life choices.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "19753703"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950556392800186368"
+          ],
+          "editableUntil": "2018-01-09T03:34:39.184Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Baptiste Laget",
+            "screen_name": "baptistelaget",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "7284322",
+            "id": "7284322"
+          },
+          {
+            "name": "Mack, yes, That Mack",
+            "screen_name": "that_mc",
+            "indices": [
+              "15",
+              "23"
+            ],
+            "id_str": "573162336",
+            "id": "573162336"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "950556137270718465",
+      "id_str": "950556392800186368",
+      "in_reply_to_user_id": "7284322",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950556392800186368",
+      "in_reply_to_status_id": "950556137270718465",
+      "created_at": "Tue Jan 09 02:34:39 +0000 2018",
+      "favorited": false,
+      "full_text": "@baptistelaget @that_mc I do not understand how Canada.",
+      "lang": "en",
+      "in_reply_to_screen_name": "baptistelaget",
+      "in_reply_to_user_id_str": "7284322"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950556293315534848"
+          ],
+          "editableUntil": "2018-01-09T03:34:15.465Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Yehuda Katz",
+            "screen_name": "wycats",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "8526432",
+            "id": "8526432"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "153"
+      ],
+      "favorite_count": "18",
+      "in_reply_to_status_id_str": "950555634268647424",
+      "id_str": "950556293315534848",
+      "in_reply_to_user_id": "8526432",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950556293315534848",
+      "in_reply_to_status_id": "950555634268647424",
+      "created_at": "Tue Jan 09 02:34:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@wycats My mental model of Portland is that everyone is baked all the time so maybe it's just the percentage of people who drive stoned who get confused.",
+      "lang": "en",
+      "in_reply_to_screen_name": "wycats",
+      "in_reply_to_user_id_str": "8526432"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950555981385101312"
+          ],
+          "editableUntil": "2018-01-09T03:33:01.095Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "130"
+      ],
+      "favorite_count": "49",
+      "in_reply_to_status_id_str": "950554712205549568",
+      "id_str": "950555981385101312",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950555981385101312",
+      "in_reply_to_status_id": "950554712205549568",
+      "created_at": "Tue Jan 09 02:33:01 +0000 2018",
+      "favorited": false,
+      "full_text": "This tweet brought to you by the slip-n-slide conditions at the entrances to my house, my office, and both BART stations en route.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950555586764054528"
+          ],
+          "editableUntil": "2018-01-09T03:31:27.010Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mack, yes, That Mack",
+            "screen_name": "that_mc",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "573162336",
+            "id": "573162336"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "109"
+      ],
+      "favorite_count": "12",
+      "in_reply_to_status_id_str": "950555254684176384",
+      "id_str": "950555586764054528",
+      "in_reply_to_user_id": "573162336",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950555586764054528",
+      "in_reply_to_status_id": "950555254684176384",
+      "created_at": "Tue Jan 09 02:31:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@that_mc I literally cannot imagine a snowstorm. I have only seen snow falling half a dozen times in my life.",
+      "lang": "en",
+      "in_reply_to_screen_name": "that_mc",
+      "in_reply_to_user_id_str": "573162336"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950554712205549568"
+          ],
+          "editableUntil": "2018-01-09T03:27:58.499Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "195"
+      ],
+      "favorite_count": "215",
+      "id_str": "950554712205549568",
+      "truncated": false,
+      "retweet_count": "20",
+      "id": "950554712205549568",
+      "created_at": "Tue Jan 09 02:27:58 +0000 2018",
+      "favorited": false,
+      "full_text": "It has been raining for 12 hours in San Francisco and the city is COMPLETELY UNPREPARED for this situation. Architecture in SF treats rain as an error condition and everything is a disaster area.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950552850093916160"
+          ],
+          "editableUntil": "2018-01-09T03:20:34.537Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ashley",
+            "screen_name": "rabcyr",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "26157562",
+            "id": "26157562"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950168126708240384",
+      "id_str": "950552850093916160",
+      "in_reply_to_user_id": "26157562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950552850093916160",
+      "in_reply_to_status_id": "950168126708240384",
+      "created_at": "Tue Jan 09 02:20:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@rabcyr Grace! Good Caribbean brand.",
+      "lang": "en",
+      "in_reply_to_screen_name": "rabcyr",
+      "in_reply_to_user_id_str": "26157562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950552081768722432"
+          ],
+          "editableUntil": "2018-01-09T03:17:31.354Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Yarn",
+            "screen_name": "yarnpkg",
+            "indices": [
+              "11",
+              "19"
+            ],
+            "id_str": "777232271484997632",
+            "id": "777232271484997632"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "20",
+              "26"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "112"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "950551176310816768",
+      "id_str": "950552081768722432",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950552081768722432",
+      "in_reply_to_status_id": "950551176310816768",
+      "created_at": "Tue Jan 09 02:17:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @yarnpkg @npmjs Yarn does not have its own registry. Downloads from yarn are included in these stats.",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493985431527903234"
+          ],
+          "editableUntil": "2022-02-16T17:27:38.440Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Eleventy 🎈 v2.0.1",
+            "screen_name": "eleven_ty",
+            "indices": [
+              "3",
+              "13"
+            ],
+            "id_str": "949639269433380864",
+            "id": "949639269433380864"
+          },
+          {
+            "name": "Netlify",
+            "screen_name": "Netlify",
+            "indices": [
+              "60",
+              "68"
+            ],
+            "id_str": "2571501973",
+            "id": "2571501973"
+          },
+          {
+            "name": "Eleventy 🎈 v2.0.1",
+            "screen_name": "eleven_ty",
+            "indices": [
+              "125",
+              "135"
+            ],
+            "id_str": "949639269433380864",
+            "id": "949639269433380864"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "139"
+      ],
+      "favorite_count": "0",
+      "id_str": "1493985431527903234",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493985431527903234",
+      "created_at": "Wed Feb 16 16:27:38 +0000 2022",
+      "favorited": false,
+      "full_text": "RT @eleven_ty: I won’t bury the lede, y’all—effective today @netlify is now sponsoring full time open source development for @eleven_ty! 🥳…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493981873126580228"
+          ],
+          "editableUntil": "2022-02-16T17:13:30.051Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jan Lehnardt is on Mastodon: @janl@narrativ.es",
+            "screen_name": "janl",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "819606",
+            "id": "819606"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "79"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "1493966053063507971",
+      "id_str": "1493981873126580228",
+      "in_reply_to_user_id": "819606",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493981873126580228",
+      "in_reply_to_status_id": "1493966053063507971",
+      "created_at": "Wed Feb 16 16:13:30 +0000 2022",
+      "favorited": false,
+      "full_text": "@janl It's been a morning for things confusingly not related to me in the news.",
+      "lang": "en",
+      "in_reply_to_screen_name": "janl",
+      "in_reply_to_user_id_str": "819606"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493964684038316033"
+          ],
+          "editableUntil": "2022-02-16T16:05:11.853Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "46"
+      ],
+      "favorite_count": "53",
+      "in_reply_to_status_id_str": "1493964464747520001",
+      "id_str": "1493964684038316033",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493964684038316033",
+      "in_reply_to_status_id": "1493964464747520001",
+      "created_at": "Wed Feb 16 15:05:11 +0000 2022",
+      "favorited": false,
+      "full_text": "IT'S NOT MY WATER I HAVE NOTHING TO DO WITH IT",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493964464747520001"
+          ],
+          "editableUntil": "2022-02-16T16:04:19.570Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493964464747520001/photo/1",
+            "indices": [
+              "6",
+              "29"
+            ],
+            "url": "https://t.co/RmvVnTDLdd",
+            "media_url": "http://pbs.twimg.com/media/FLugtyMVcAEIbPB.png",
+            "id_str": "1493964409831518209",
+            "id": "1493964409831518209",
+            "media_url_https": "https://pbs.twimg.com/media/FLugtyMVcAEIbPB.png",
+            "sizes": {
+              "medium": {
+                "w": "342",
+                "h": "154",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "342",
+                "h": "154",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "342",
+                "h": "154",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/RmvVnTDLdd"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "29"
+      ],
+      "favorite_count": "90",
+      "id_str": "1493964464747520001",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493964464747520001",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 15:04:19 +0000 2022",
+      "favorited": false,
+      "full_text": "Oh no https://t.co/RmvVnTDLdd",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493964464747520001/photo/1",
+            "indices": [
+              "6",
+              "29"
+            ],
+            "url": "https://t.co/RmvVnTDLdd",
+            "media_url": "http://pbs.twimg.com/media/FLugtyMVcAEIbPB.png",
+            "id_str": "1493964409831518209",
+            "id": "1493964409831518209",
+            "media_url_https": "https://pbs.twimg.com/media/FLugtyMVcAEIbPB.png",
+            "sizes": {
+              "medium": {
+                "w": "342",
+                "h": "154",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "342",
+                "h": "154",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "342",
+                "h": "154",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/RmvVnTDLdd"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493959364222152705"
+          ],
+          "editableUntil": "2022-02-16T15:44:03.510Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/XJUZqKkk6c",
+            "expanded_url": "https://spectrum.ieee.org/bionic-eye-obsolete",
+            "display_url": "spectrum.ieee.org/bionic-eye-obs…",
+            "indices": [
+              "192",
+              "215"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "215"
+      ],
+      "favorite_count": "130",
+      "id_str": "1493959364222152705",
+      "truncated": false,
+      "retweet_count": "47",
+      "id": "1493959364222152705",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 14:44:03 +0000 2022",
+      "favorited": false,
+      "full_text": "Imagine getting hardware implanted in your eyes but then the company goes bankrupt and shuts down so you literally go blind. Not a Black Mirror episode, a current reality for over 300 people. https://t.co/XJUZqKkk6c",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493954293090512899"
+          ],
+          "editableUntil": "2022-02-16T15:23:54.458Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "1493878911054147586",
+      "id_str": "1493954293090512899",
+      "in_reply_to_user_id": "14829286",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493954293090512899",
+      "in_reply_to_status_id": "1493878911054147586",
+      "created_at": "Wed Feb 16 14:23:54 +0000 2022",
+      "favorited": false,
+      "full_text": "@terronk That person is mentally ill.",
+      "lang": "en",
+      "in_reply_to_screen_name": "terronk",
+      "in_reply_to_user_id_str": "14829286"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493810865463726083"
+          ],
+          "editableUntil": "2022-02-16T05:53:58.647Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Josh Susser",
+            "screen_name": "joshsusser",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "35954885",
+            "id": "35954885"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "20"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1493810583010828290",
+      "id_str": "1493810865463726083",
+      "in_reply_to_user_id": "35954885",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493810865463726083",
+      "in_reply_to_status_id": "1493810583010828290",
+      "created_at": "Wed Feb 16 04:53:58 +0000 2022",
+      "favorited": false,
+      "full_text": "@joshsusser In hell?",
+      "lang": "en",
+      "in_reply_to_screen_name": "joshsusser",
+      "in_reply_to_user_id_str": "35954885"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493808473376636931"
+          ],
+          "editableUntil": "2022-02-16T05:44:28.329Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "87"
+      ],
+      "favorite_count": "80",
+      "in_reply_to_status_id_str": "1493806423028813825",
+      "id_str": "1493808473376636931",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "11",
+      "id": "1493808473376636931",
+      "in_reply_to_status_id": "1493806423028813825",
+      "created_at": "Wed Feb 16 04:44:28 +0000 2022",
+      "favorited": false,
+      "full_text": "If a corporation asks you to sacrifice your interests for its interests, quit your job.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493808238810185729"
+          ],
+          "editableUntil": "2022-02-16T05:43:32.404Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Craig (find me at dice.camp/@foxxtrot)",
+            "screen_name": "foxxtrot",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "14482107",
+            "id": "14482107"
+          },
+          {
+            "name": "@anderson_jon@hachyderm.io",
+            "screen_name": "anderson_jon",
+            "indices": [
+              "10",
+              "23"
+            ],
+            "id_str": "307676586",
+            "id": "307676586"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "102"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "1493808014310133766",
+      "id_str": "1493808238810185729",
+      "in_reply_to_user_id": "14482107",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493808238810185729",
+      "in_reply_to_status_id": "1493808014310133766",
+      "created_at": "Wed Feb 16 04:43:32 +0000 2022",
+      "favorited": false,
+      "full_text": "@foxxtrot @anderson_jon It's fucking grim in a military context too, but the military is fucking grim.",
+      "lang": "en",
+      "in_reply_to_screen_name": "foxxtrot",
+      "in_reply_to_user_id_str": "14482107"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493806423028813825"
+          ],
+          "editableUntil": "2022-02-16T05:36:19.488Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "246"
+      ],
+      "favorite_count": "87",
+      "in_reply_to_status_id_str": "1493805929791246337",
+      "id_str": "1493806423028813825",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "7",
+      "id": "1493806423028813825",
+      "in_reply_to_status_id": "1493805929791246337",
+      "created_at": "Wed Feb 16 04:36:19 +0000 2022",
+      "favorited": false,
+      "full_text": "\"I will put the interests of the corporation before my team, and those of my team before myself\" is believably a thing a CEO would want and would produce the kind of nightmarish outcomes Facebook has in fact created. It's honest, horribly honest.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493805929791246337"
+          ],
+          "editableUntil": "2022-02-16T05:34:21.891Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "198"
+      ],
+      "favorite_count": "199",
+      "id_str": "1493805929791246337",
+      "truncated": false,
+      "retweet_count": "10",
+      "id": "1493805929791246337",
+      "created_at": "Wed Feb 16 04:34:21 +0000 2022",
+      "favorited": false,
+      "full_text": "I only realized late in the day that \"Meta, Metamates, Me\" is an actual slogan from Facebook and not a joke. 1. How cringe but also 2. What a sinister, capitalist fever dream that phrase represents.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493805432871145473"
+          ],
+          "editableUntil": "2022-02-16T05:32:23.416Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "49"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "1493805229715832836",
+      "id_str": "1493805432871145473",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493805432871145473",
+      "in_reply_to_status_id": "1493805229715832836",
+      "created_at": "Wed Feb 16 04:32:23 +0000 2022",
+      "favorited": false,
+      "full_text": "(The one with his ass to the camera is Ringo obv)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493805229715832836"
+          ],
+          "editableUntil": "2022-02-16T05:31:34.980Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493805229715832836/photo/1",
+            "indices": [
+              "21",
+              "44"
+            ],
+            "url": "https://t.co/rAvZ76dRqU",
+            "media_url": "http://pbs.twimg.com/media/FLsP8CgVcAcBdOd.jpg",
+            "id_str": "1493805225542512647",
+            "id": "1493805225542512647",
+            "media_url_https": "https://pbs.twimg.com/media/FLsP8CgVcAcBdOd.jpg",
+            "sizes": {
+              "large": {
+                "w": "2048",
+                "h": "1536",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "900",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "510",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/rAvZ76dRqU"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "44"
+      ],
+      "favorite_count": "23",
+      "id_str": "1493805229715832836",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493805229715832836",
+      "possibly_sensitive": false,
+      "created_at": "Wed Feb 16 04:31:34 +0000 2022",
+      "favorited": false,
+      "full_text": "Arboreal Abbey Road. https://t.co/rAvZ76dRqU",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493805229715832836/photo/1",
+            "indices": [
+              "21",
+              "44"
+            ],
+            "url": "https://t.co/rAvZ76dRqU",
+            "media_url": "http://pbs.twimg.com/media/FLsP8CgVcAcBdOd.jpg",
+            "id_str": "1493805225542512647",
+            "id": "1493805225542512647",
+            "media_url_https": "https://pbs.twimg.com/media/FLsP8CgVcAcBdOd.jpg",
+            "sizes": {
+              "large": {
+                "w": "2048",
+                "h": "1536",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "900",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "510",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/rAvZ76dRqU"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493777708509057027"
+          ],
+          "editableUntil": "2022-02-16T03:42:13.413Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ChrisArchitect",
+            "screen_name": "chrisarchitect",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "121542889",
+            "id": "121542889"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "53"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1493764280646193174",
+      "id_str": "1493777708509057027",
+      "in_reply_to_user_id": "121542889",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493777708509057027",
+      "in_reply_to_status_id": "1493764280646193174",
+      "created_at": "Wed Feb 16 02:42:13 +0000 2022",
+      "favorited": false,
+      "full_text": "@chrisarchitect My browser had it cached, apparently.",
+      "lang": "en",
+      "in_reply_to_screen_name": "chrisarchitect",
+      "in_reply_to_user_id_str": "121542889"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493738653763334148"
+          ],
+          "editableUntil": "2022-02-16T01:07:02.036Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Josh Fruhlinger",
+            "screen_name": "jfruh",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "39813162",
+            "id": "39813162"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "1493738653763334148",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493738653763334148",
+      "created_at": "Wed Feb 16 00:07:02 +0000 2022",
+      "favorited": false,
+      "full_text": "RT @jfruh: heather, your lawyers are going to tell you that you shouldn't do a rap about this. but it's very important that you ignore them…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493713206979686401"
+          ],
+          "editableUntil": "2022-02-15T23:25:55.050Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Will Wilkinson",
+            "screen_name": "willwilkinson",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "2568461",
+            "id": "2568461"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "189"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "1493712116905242625",
+      "id_str": "1493713206979686401",
+      "in_reply_to_user_id": "2568461",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493713206979686401",
+      "in_reply_to_status_id": "1493712116905242625",
+      "created_at": "Tue Feb 15 22:25:55 +0000 2022",
+      "favorited": false,
+      "full_text": "@willwilkinson I believe her point is that the corporations don't have to make *bigger* profits during inflation; they could raise prices by less and make exactly the same profit as before.",
+      "lang": "en",
+      "in_reply_to_screen_name": "willwilkinson",
+      "in_reply_to_user_id_str": "2568461"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493693281003196418"
+          ],
+          "editableUntil": "2022-02-15T22:06:44.327Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "49"
+      ],
+      "favorite_count": "29",
+      "in_reply_to_status_id_str": "1493686091034943488",
+      "id_str": "1493693281003196418",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493693281003196418",
+      "in_reply_to_status_id": "1493686091034943488",
+      "created_at": "Tue Feb 15 21:06:44 +0000 2022",
+      "favorited": false,
+      "full_text": "\"Introducing... the Marvellous Mister Metamates!\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493687804630495232"
+          ],
+          "editableUntil": "2022-02-15T21:44:58.658Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "215"
+      ],
+      "favorite_count": "43",
+      "id_str": "1493687804630495232",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1493687804630495232",
+      "created_at": "Tue Feb 15 20:44:58 +0000 2022",
+      "favorited": false,
+      "full_text": "At some point Wordle started redirecting from the old PowerLanguage domain to the NYTimes site and the words on those site for today are *not the same word*, resulting in much consternation in the family group chat.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493686091034943488"
+          ],
+          "editableUntil": "2022-02-15T21:38:10.105Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/Sy1dsgNMCH",
+            "expanded_url": "https://twitter.com/thedailybeast/status/1493676520270962694",
+            "display_url": "twitter.com/thedailybeast/…",
+            "indices": [
+              "51",
+              "74"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "74"
+      ],
+      "favorite_count": "260",
+      "id_str": "1493686091034943488",
+      "truncated": false,
+      "retweet_count": "15",
+      "id": "1493686091034943488",
+      "possibly_sensitive": false,
+      "created_at": "Tue Feb 15 20:38:10 +0000 2022",
+      "favorited": false,
+      "full_text": "I will be pronouncing \"metamates\" like \"Socrates\". https://t.co/Sy1dsgNMCH",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493682249698398208"
+          ],
+          "editableUntil": "2022-02-15T21:22:54.259Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "90"
+      ],
+      "favorite_count": "15",
+      "in_reply_to_status_id_str": "1493681871171256320",
+      "id_str": "1493682249698398208",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493682249698398208",
+      "in_reply_to_status_id": "1493681871171256320",
+      "created_at": "Tue Feb 15 20:22:54 +0000 2022",
+      "favorited": false,
+      "full_text": "Related: I bet a lot of people owe me money but I would have absolutely no way to be sure.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950544312856584192"
+          ],
+          "editableUntil": "2018-01-09T02:46:39.101Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Becca Lee",
+            "screen_name": "the_becca_lee",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "885211554647392256",
+            "id": "885211554647392256"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "20"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950543621471666176",
+      "id_str": "950544312856584192",
+      "in_reply_to_user_id": "885211554647392256",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950544312856584192",
+      "in_reply_to_status_id": "950543621471666176",
+      "created_at": "Tue Jan 09 01:46:39 +0000 2018",
+      "favorited": false,
+      "full_text": "@the_becca_lee Same.",
+      "lang": "en",
+      "in_reply_to_screen_name": "the_becca_lee",
+      "in_reply_to_user_id_str": "885211554647392256"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950541091140354048"
+          ],
+          "editableUntil": "2018-01-09T02:33:50.984Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Chris Thielen",
+            "screen_name": "ChrisThielen",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "107591013",
+            "id": "107591013"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950540819693383680",
+      "id_str": "950541091140354048",
+      "in_reply_to_user_id": "107591013",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950541091140354048",
+      "in_reply_to_status_id": "950540819693383680",
+      "created_at": "Tue Jan 09 01:33:50 +0000 2018",
+      "favorited": false,
+      "full_text": "@ChrisThielen What will you use the extra data for?",
+      "lang": "en",
+      "in_reply_to_screen_name": "ChrisThielen",
+      "in_reply_to_user_id_str": "107591013"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950537060695252992"
+          ],
+          "editableUntil": "2018-01-09T02:17:50.051Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "12",
+              "22"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "23",
+              "34"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "35",
+              "44"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "94"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "950536910761443330",
+      "id_str": "950537060695252992",
+      "in_reply_to_user_id": "14103865",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950537060695252992",
+      "in_reply_to_status_id": "950536910761443330",
+      "created_at": "Tue Jan 09 01:17:50 +0000 2018",
+      "favorited": false,
+      "full_text": "@robwormald @IgorMinar @jeffbcross @ZChapple And there are twice as many of them as I thought!",
+      "lang": "en",
+      "in_reply_to_screen_name": "robwormald",
+      "in_reply_to_user_id_str": "14103865"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950536930025922560"
+          ],
+          "editableUntil": "2018-01-09T02:17:18.897Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "11",
+              "21"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "22",
+              "33"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "34",
+              "43"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "44",
+              "55"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "184"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950536638765191168",
+      "id_str": "950536930025922560",
+      "in_reply_to_user_id": "403075198",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950536930025922560",
+      "in_reply_to_status_id": "950536638765191168",
+      "created_at": "Tue Jan 09 01:17:18 +0000 2018",
+      "favorited": false,
+      "full_text": "@mjforclaz @IgorMinar @jeffbcross @ZChapple @robwormald I agree, but jQuery folks, on the other hand, were upset it didn't get a full write-up in the blog post. Can't please everybody!",
+      "lang": "en",
+      "in_reply_to_user_id_str": "403075198"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950534699197202432"
+          ],
+          "editableUntil": "2018-01-09T02:08:27.026Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matt Stancliff",
+            "screen_name": "mattsta",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14825696",
+            "id": "14825696"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "34"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "950534302957166593",
+      "id_str": "950534699197202432",
+      "in_reply_to_user_id": "14825696",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950534699197202432",
+      "in_reply_to_status_id": "950534302957166593",
+      "created_at": "Tue Jan 09 01:08:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@mattsta I'm consistent, at least.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mattsta",
+      "in_reply_to_user_id_str": "14825696"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950534595128078336"
+          ],
+          "editableUntil": "2018-01-09T02:08:02.214Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "11",
+              "22"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "23",
+              "32"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "33",
+              "44"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "176"
+      ],
+      "favorite_count": "24",
+      "in_reply_to_status_id_str": "950533961490489344",
+      "id_str": "950534595128078336",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950534595128078336",
+      "in_reply_to_status_id": "950533961490489344",
+      "created_at": "Tue Jan 09 01:08:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @jeffbcross @ZChapple @robwormald Many thanks to the polite but persistent folks in the Angular community who pointed out my oversight and helped me get it right :-)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950533961490489344"
+          ],
+          "editableUntil": "2018-01-09T02:05:31.143Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "158",
+              "168"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "169",
+              "180"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "181",
+              "190"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "191",
+              "202"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/rwIpUdB3a3",
+            "expanded_url": "https://www.npmjs.com/npm/state-of-javascript-frameworks-2017-part-1",
+            "display_url": "npmjs.com/npm/state-of-j…",
+            "indices": [
+              "91",
+              "114"
+            ]
+          }
+        ],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/950533961490489344/photo/1",
+            "indices": [
+              "203",
+              "226"
+            ],
+            "url": "https://t.co/9G2U53dgOB",
+            "media_url": "http://pbs.twimg.com/media/DTD5Xh0VwAAKfZf.jpg",
+            "id_str": "950533703985381376",
+            "id": "950533703985381376",
+            "media_url_https": "https://pbs.twimg.com/media/DTD5Xh0VwAAKfZf.jpg",
+            "sizes": {
+              "large": {
+                "w": "751",
+                "h": "694",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "628",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "751",
+                "h": "694",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/9G2U53dgOB"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "226"
+      ],
+      "favorite_count": "84",
+      "id_str": "950533961490489344",
+      "truncated": false,
+      "retweet_count": "46",
+      "id": "950533961490489344",
+      "possibly_sensitive": false,
+      "created_at": "Tue Jan 09 01:05:31 +0000 2018",
+      "favorited": false,
+      "full_text": "The State of JavaScript front-end Frameworks, 2017, has been updated to include Angular 2: https://t.co/rwIpUdB3a3 Angular 1+2 together are very popular! /cc @IgorMinar @jeffbcross @ZChapple @robwormald https://t.co/9G2U53dgOB",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/950533961490489344/photo/1",
+            "indices": [
+              "203",
+              "226"
+            ],
+            "url": "https://t.co/9G2U53dgOB",
+            "media_url": "http://pbs.twimg.com/media/DTD5Xh0VwAAKfZf.jpg",
+            "id_str": "950533703985381376",
+            "id": "950533703985381376",
+            "media_url_https": "https://pbs.twimg.com/media/DTD5Xh0VwAAKfZf.jpg",
+            "sizes": {
+              "large": {
+                "w": "751",
+                "h": "694",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "628",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "751",
+                "h": "694",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/9G2U53dgOB"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950530938793897984"
+          ],
+          "editableUntil": "2018-01-09T01:53:30.476Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "12",
+              "22"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "23",
+              "32"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950529576924454912",
+      "id_str": "950530938793897984",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950530938793897984",
+      "in_reply_to_status_id": "950529576924454912",
+      "created_at": "Tue Jan 09 00:53:30 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @IgorMinar @samccone Yes.",
+      "lang": "und",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950525799416832001"
+          ],
+          "editableUntil": "2018-01-09T01:33:05.153Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "12",
+              "22"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "23",
+              "32"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "950511527739637760",
+      "id_str": "950525799416832001",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950525799416832001",
+      "in_reply_to_status_id": "950511527739637760",
+      "created_at": "Tue Jan 09 00:33:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @IgorMinar @samccone No, it's @angular/core",
+      "lang": "en",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950525398902759425"
+          ],
+          "editableUntil": "2018-01-09T01:31:29.663Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ashusta",
+            "screen_name": "ashusta",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "17636082",
+            "id": "17636082"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "44"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950524487836954624",
+      "id_str": "950525398902759425",
+      "in_reply_to_user_id": "17636082",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950525398902759425",
+      "in_reply_to_status_id": "950524487836954624",
+      "created_at": "Tue Jan 09 00:31:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@ashusta Pleased to have the mystery solved!",
+      "lang": "en",
+      "in_reply_to_screen_name": "ashusta",
+      "in_reply_to_user_id_str": "17636082"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950511271933198336"
+          ],
+          "editableUntil": "2018-01-09T00:35:21.531Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "262"
+      ],
+      "favorite_count": "21",
+      "id_str": "950511271933198336",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950511271933198336",
+      "created_at": "Mon Jan 08 23:35:21 +0000 2018",
+      "favorited": false,
+      "full_text": "npm downloads stats fans: if for some reason you were sad that scoped packages didn't have download stats prior to March 2017, those stats now go back an additional 6 months, to October 2016. It's unlikely this will be helpful to anyone but me, but there you go!",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950510461450989569"
+          ],
+          "editableUntil": "2018-01-09T00:32:08.297Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "11",
+              "22"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "23",
+              "32"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/950510461450989569/photo/1",
+            "indices": [
+              "109",
+              "132"
+            ],
+            "url": "https://t.co/FfqpY4gco0",
+            "media_url": "http://pbs.twimg.com/media/DTDkFFlVQAE1EMC.jpg",
+            "id_str": "950510297424412673",
+            "id": "950510297424412673",
+            "media_url_https": "https://pbs.twimg.com/media/DTDkFFlVQAE1EMC.jpg",
+            "sizes": {
+              "large": {
+                "w": "745",
+                "h": "668",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "745",
+                "h": "668",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "610",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/FfqpY4gco0"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "132"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950461344335126528",
+      "id_str": "950510461450989569",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950510461450989569",
+      "in_reply_to_status_id": "950461344335126528",
+      "possibly_sensitive": false,
+      "created_at": "Mon Jan 08 23:32:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @jeffbcross @samccone Graphs updated! I'm back in meetings but will update wordpress later today. https://t.co/FfqpY4gco0",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/950510461450989569/photo/1",
+            "indices": [
+              "109",
+              "132"
+            ],
+            "url": "https://t.co/FfqpY4gco0",
+            "media_url": "http://pbs.twimg.com/media/DTDkFFlVQAE1EMC.jpg",
+            "id_str": "950510297424412673",
+            "id": "950510297424412673",
+            "media_url_https": "https://pbs.twimg.com/media/DTDkFFlVQAE1EMC.jpg",
+            "sizes": {
+              "large": {
+                "w": "745",
+                "h": "668",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "745",
+                "h": "668",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "610",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/FfqpY4gco0"
+          },
+          {
+            "expanded_url": "https://twitter.com/seldo/status/950510461450989569/photo/1",
+            "indices": [
+              "109",
+              "132"
+            ],
+            "url": "https://t.co/FfqpY4gco0",
+            "media_url": "http://pbs.twimg.com/media/DTDkIRvV4AAL7oT.jpg",
+            "id_str": "950510352227229696",
+            "id": "950510352227229696",
+            "media_url_https": "https://pbs.twimg.com/media/DTDkIRvV4AAL7oT.jpg",
+            "sizes": {
+              "large": {
+                "w": "751",
+                "h": "694",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "628",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "751",
+                "h": "694",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/FfqpY4gco0"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950502615355334657"
+          ],
+          "editableUntil": "2018-01-09T00:00:57.642Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Luca Soldaini 🎀",
+            "screen_name": "soldni",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "1865461842",
+            "id": "1865461842"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950501877959020544",
+      "id_str": "950502615355334657",
+      "in_reply_to_user_id": "1865461842",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950502615355334657",
+      "in_reply_to_status_id": "950501877959020544",
+      "created_at": "Mon Jan 08 23:00:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@soldni J'ACCUSE, MON PETIT FROMAGE",
+      "lang": "fr",
+      "in_reply_to_screen_name": "soldni",
+      "in_reply_to_user_id_str": "1865461842"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950502395523383296"
+          ],
+          "editableUntil": "2018-01-09T00:00:05.230Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "JBaruch 🎩",
+            "screen_name": "jbaruch",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "16887172",
+            "id": "16887172"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "21",
+              "30"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "31",
+              "40"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "41",
+              "48"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "49",
+              "62"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "63",
+              "69"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "70",
+              "81"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          },
+          {
+            "name": "Stephen Fluin",
+            "screen_name": "stephenfluin",
+            "indices": [
+              "82",
+              "95"
+            ],
+            "id_str": "15313446",
+            "id": "15313446"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "333"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950471700600139777",
+      "id_str": "950502395523383296",
+      "in_reply_to_user_id": "16887172",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950502395523383296",
+      "in_reply_to_status_id": "950471700600139777",
+      "created_at": "Mon Jan 08 23:00:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@jbaruch @jeffbcross @ZChapple @samccone @sebmck @thejameskyle @jfrog @robwormald @stephenfluin No, but Angular, Ember and React are all large and well established frameworks with major corporate users. There's no reason to believe Angular has an edge over them in the enterprise that I can think of, but I'm willing to be persuaded.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jbaruch",
+      "in_reply_to_user_id_str": "16887172"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950501455491866624"
+          ],
+          "editableUntil": "2018-01-08T23:56:21.109Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "58"
+      ],
+      "favorite_count": "69",
+      "id_str": "950501455491866624",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "950501455491866624",
+      "created_at": "Mon Jan 08 22:56:21 +0000 2018",
+      "favorited": false,
+      "full_text": "Umbrellas are a plot by short people to blind tall people.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950483880854695936"
+          ],
+          "editableUntil": "2018-01-08T22:46:30.989Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "cara esten",
+            "screen_name": "esten",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "1108462281237520384",
+            "id": "1108462281237520384"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "11"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950461470227152896",
+      "id_str": "950483880854695936",
+      "in_reply_to_user_id": "15374401",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950483880854695936",
+      "in_reply_to_status_id": "950461470227152896",
+      "created_at": "Mon Jan 08 21:46:30 +0000 2018",
+      "favorited": false,
+      "full_text": "@esten WHAT",
+      "lang": "en",
+      "in_reply_to_screen_name": "caraesten",
+      "in_reply_to_user_id_str": "15374401"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950483757672230912"
+          ],
+          "editableUntil": "2018-01-08T22:46:01.620Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "ashley williams",
+            "screen_name": "ag_dubs",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "304067888",
+            "id": "304067888"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "126"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950453935478919169",
+      "id_str": "950483757672230912",
+      "in_reply_to_user_id": "304067888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950483757672230912",
+      "in_reply_to_status_id": "950453935478919169",
+      "created_at": "Mon Jan 08 21:46:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@ag_dubs I think the opposite: the discovery process will reveal that white men are favored at Google and defeat his argument.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ag_dubs",
+      "in_reply_to_user_id_str": "304067888"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950461344335126528"
+          ],
+          "editableUntil": "2018-01-08T21:16:57.864Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "11",
+              "22"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "23",
+              "32"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "154"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "950460195557195776",
+      "id_str": "950461344335126528",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950461344335126528",
+      "in_reply_to_status_id": "950460195557195776",
+      "created_at": "Mon Jan 08 20:16:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @jeffbcross @samccone We are doing meetings about the weekend's operational incident as a higher priority, but still hoping to get to it today.",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950461134531846144"
+          ],
+          "editableUntil": "2018-01-08T21:16:07.843Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "JBaruch 🎩",
+            "screen_name": "jbaruch",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "16887172",
+            "id": "16887172"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "21",
+              "30"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "31",
+              "40"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "41",
+              "48"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "49",
+              "62"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "63",
+              "69"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "70",
+              "81"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          },
+          {
+            "name": "Stephen Fluin",
+            "screen_name": "stephenfluin",
+            "indices": [
+              "82",
+              "95"
+            ],
+            "id_str": "15313446",
+            "id": "15313446"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "111"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950454219701547008",
+      "id_str": "950461134531846144",
+      "in_reply_to_user_id": "16887172",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950461134531846144",
+      "in_reply_to_status_id": "950454219701547008",
+      "created_at": "Mon Jan 08 20:16:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@jbaruch @jeffbcross @ZChapple @samccone @sebmck @thejameskyle @jfrog @robwormald @stephenfluin Not really, no.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jbaruch",
+      "in_reply_to_user_id_str": "16887172"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950442898058747904"
+          ],
+          "editableUntil": "2018-01-08T20:03:39.929Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nathan Fritz 🌯🤔",
+            "screen_name": "fritzy",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "14498374",
+            "id": "14498374"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "19"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950442512950312960",
+      "id_str": "950442898058747904",
+      "in_reply_to_user_id": "14498374",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950442898058747904",
+      "in_reply_to_status_id": "950442512950312960",
+      "created_at": "Mon Jan 08 19:03:39 +0000 2018",
+      "favorited": false,
+      "full_text": "@fritzy Was it you?",
+      "lang": "en",
+      "in_reply_to_screen_name": "fritzy",
+      "in_reply_to_user_id_str": "14498374"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950421652621283329"
+          ],
+          "editableUntil": "2018-01-08T18:39:14.622Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "150"
+      ],
+      "favorite_count": "49",
+      "id_str": "950421652621283329",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "950421652621283329",
+      "created_at": "Mon Jan 08 17:39:14 +0000 2018",
+      "favorited": false,
+      "full_text": "It is dark and cold and wet today and I would like to make it clear that this is UNACCEPTABLE BULLSHIT and I will be lodging a complaint with physics.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950420663512133632"
+          ],
+          "editableUntil": "2018-01-08T18:35:18.800Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "166"
+      ],
+      "favorite_count": "20",
+      "id_str": "950420663512133632",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950420663512133632",
+      "created_at": "Mon Jan 08 17:35:18 +0000 2018",
+      "favorited": false,
+      "full_text": "Whoever it is gesturing at me in a friendly way from the other end of this too-crowded-to-move bart train: hi! I don't recognize you, please don't take it personally.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950409102668148736"
+          ],
+          "editableUntil": "2018-01-08T17:49:22.480Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "JBaruch 🎩",
+            "screen_name": "jbaruch",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "16887172",
+            "id": "16887172"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "9",
+              "18"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "19",
+              "30"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "31",
+              "40"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "41",
+              "48"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "49",
+              "62"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "63",
+              "69"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "151"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950403712786227201",
+      "id_str": "950409102668148736",
+      "in_reply_to_user_id": "16887172",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950409102668148736",
+      "in_reply_to_status_id": "950403712786227201",
+      "created_at": "Mon Jan 08 16:49:22 +0000 2018",
+      "favorited": false,
+      "full_text": "@jbaruch @ZChapple @jeffbcross @samccone @sebmck @thejameskyle @jfrog Yes, but why would corporate environments use Angular more than other frameworks?",
+      "lang": "en",
+      "in_reply_to_screen_name": "jbaruch",
+      "in_reply_to_user_id_str": "16887172"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950385144224923648"
+          ],
+          "editableUntil": "2018-01-08T16:14:10.342Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Naval",
+            "screen_name": "naval",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "745273",
+            "id": "745273"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "80"
+      ],
+      "favorite_count": "0",
+      "id_str": "950385144224923648",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950385144224923648",
+      "created_at": "Mon Jan 08 15:14:10 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @naval: \"Don't take yourself so seriously. You're just a monkey with a plan.\"",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950243566265102336"
+          ],
+          "editableUntil": "2018-01-08T06:51:35.526Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🏳️‍🌈🏳️‍⚧️👊Marco👊🏳️‍⚧️🏳️‍🌈",
+            "screen_name": "TheMarco",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "6875652",
+            "id": "6875652"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "26"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950243387872985088",
+      "id_str": "950243566265102336",
+      "in_reply_to_user_id": "6875652",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950243566265102336",
+      "in_reply_to_status_id": "950243387872985088",
+      "created_at": "Mon Jan 08 05:51:35 +0000 2018",
+      "favorited": false,
+      "full_text": "@TheMarco It's all upside.",
+      "lang": "en",
+      "in_reply_to_screen_name": "TheMarco",
+      "in_reply_to_user_id_str": "6875652"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950243191168557057"
+          ],
+          "editableUntil": "2018-01-08T06:50:06.096Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jake",
+            "screen_name": "jakezebear",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "133907247",
+            "id": "133907247"
+          },
+          {
+            "name": "anildash.com",
+            "screen_name": "anildash",
+            "indices": [
+              "12",
+              "21"
+            ],
+            "id_str": "36823",
+            "id": "36823"
+          },
+          {
+            "name": "Jason Goldman",
+            "screen_name": "goldman",
+            "indices": [
+              "22",
+              "30"
+            ],
+            "id_str": "291",
+            "id": "291"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "190"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950242393474740225",
+      "id_str": "950243191168557057",
+      "in_reply_to_user_id": "133907247",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950243191168557057",
+      "in_reply_to_status_id": "950242393474740225",
+      "created_at": "Mon Jan 08 05:50:06 +0000 2018",
+      "favorited": false,
+      "full_text": "@jakezebear @anildash @goldman In seriousness, I'd like Deval Patrick or Cory Booker to run, but Booker is probably too dirty. Or Warren, but I think she is too flawed to get the nomination.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jakezebear",
+      "in_reply_to_user_id_str": "133907247"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950241777297997824"
+          ],
+          "editableUntil": "2018-01-08T06:44:29.003Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "anildash.com",
+            "screen_name": "anildash",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "36823",
+            "id": "36823"
+          },
+          {
+            "name": "Jason Goldman",
+            "screen_name": "goldman",
+            "indices": [
+              "10",
+              "18"
+            ],
+            "id_str": "291",
+            "id": "291"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "49"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950240845109841920",
+      "id_str": "950241777297997824",
+      "in_reply_to_user_id": "36823",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950241777297997824",
+      "in_reply_to_status_id": "950240845109841920",
+      "created_at": "Mon Jan 08 05:44:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@anildash @goldman I think we have our candidate.",
+      "lang": "en",
+      "in_reply_to_screen_name": "anildash",
+      "in_reply_to_user_id_str": "36823"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950239557068337152"
+          ],
+          "editableUntil": "2018-01-08T06:35:39.659Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Burrito Justice",
+            "screen_name": "burritojustice",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "16944165",
+            "id": "16944165"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "28"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950233207894519808",
+      "id_str": "950239557068337152",
+      "in_reply_to_user_id": "16944165",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950239557068337152",
+      "in_reply_to_status_id": "950233207894519808",
+      "created_at": "Mon Jan 08 05:35:39 +0000 2018",
+      "favorited": false,
+      "full_text": "@burritojustice Hmmm. Speed?",
+      "lang": "en",
+      "in_reply_to_screen_name": "burritojustice",
+      "in_reply_to_user_id_str": "16944165"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950236610280357888"
+          ],
+          "editableUntil": "2018-01-08T06:23:57.090Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "241"
+      ],
+      "favorite_count": "21",
+      "in_reply_to_status_id_str": "950234996190490624",
+      "id_str": "950236610280357888",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "950236610280357888",
+      "in_reply_to_status_id": "950234996190490624",
+      "created_at": "Mon Jan 08 05:23:57 +0000 2018",
+      "favorited": false,
+      "full_text": "Okay, she didn't actually say anything about president. But she would be an interesting candidate. She's the liberal version of Trump: famous, rich, charismatic, popular, and totally unqualified. Only difference is she's liberal as all hell.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950235975581446144"
+          ],
+          "editableUntil": "2018-01-08T06:21:25.766Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🇵🇹 snipe, lixo tóxico ⭑⭒⭒⭒⭒",
+            "screen_name": "snipeyhead",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14246782",
+            "id": "14246782"
+          },
+          {
+            "name": "Owen Nelson",
+            "screen_name": "theomn",
+            "indices": [
+              "12",
+              "19"
+            ],
+            "id_str": "37782427",
+            "id": "37782427"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "28"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950235917473660930",
+      "id_str": "950235975581446144",
+      "in_reply_to_user_id": "14246782",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950235975581446144",
+      "in_reply_to_status_id": "950235917473660930",
+      "created_at": "Mon Jan 08 05:21:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@snipeyhead @theomn Exactly.",
+      "lang": "en",
+      "in_reply_to_screen_name": "snipeyhead",
+      "in_reply_to_user_id_str": "14246782"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950235739165417472"
+          ],
+          "editableUntil": "2018-01-08T06:20:29.400Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🇵🇹 snipe, lixo tóxico ⭑⭒⭒⭒⭒",
+            "screen_name": "snipeyhead",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "14246782",
+            "id": "14246782"
+          },
+          {
+            "name": "Owen Nelson",
+            "screen_name": "theomn",
+            "indices": [
+              "12",
+              "19"
+            ],
+            "id_str": "37782427",
+            "id": "37782427"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "108"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950235408561971200",
+      "id_str": "950235739165417472",
+      "in_reply_to_user_id": "14246782",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950235739165417472",
+      "in_reply_to_status_id": "950235408561971200",
+      "created_at": "Mon Jan 08 05:20:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@snipeyhead @theomn Ask yourself this: is she more qualified and a better person than the current president?",
+      "lang": "en",
+      "in_reply_to_screen_name": "snipeyhead",
+      "in_reply_to_user_id_str": "14246782"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950235250721882112"
+          ],
+          "editableUntil": "2018-01-08T06:18:32.946Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Owen Nelson",
+            "screen_name": "theomn",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "37782427",
+            "id": "37782427"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "28"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950235180609896449",
+      "id_str": "950235250721882112",
+      "in_reply_to_user_id": "37782427",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950235250721882112",
+      "in_reply_to_status_id": "950235180609896449",
+      "created_at": "Mon Jan 08 05:18:32 +0000 2018",
+      "favorited": false,
+      "full_text": "@theomn Me too, no question.",
+      "lang": "en",
+      "in_reply_to_screen_name": "theomn",
+      "in_reply_to_user_id_str": "37782427"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950234996190490624"
+          ],
+          "editableUntil": "2018-01-08T06:17:32.261Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "41"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "950233105444450304",
+      "id_str": "950234996190490624",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "950234996190490624",
+      "in_reply_to_status_id": "950233105444450304",
+      "created_at": "Mon Jan 08 05:17:32 +0000 2018",
+      "favorited": false,
+      "full_text": "Oprah is really great at making speeches.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950233594357690368"
+          ],
+          "editableUntil": "2018-01-08T06:11:58.038Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rachel",
+            "screen_name": "ohhoe",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2141321",
+            "id": "2141321"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "49"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950233310126641152",
+      "id_str": "950233594357690368",
+      "in_reply_to_user_id": "2141321",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950233594357690368",
+      "in_reply_to_status_id": "950233310126641152",
+      "created_at": "Mon Jan 08 05:11:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@ohhoe I'll tell you in 9 minutes and 44 seconds.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ohhoe",
+      "in_reply_to_user_id_str": "2141321"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950233105444450304"
+          ],
+          "editableUntil": "2018-01-08T06:10:01.472Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "129"
+      ],
+      "favorite_count": "14",
+      "id_str": "950233105444450304",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "950233105444450304",
+      "created_at": "Mon Jan 08 05:10:01 +0000 2018",
+      "favorited": false,
+      "full_text": "Apparently while I was seeing a movie Oprah announced that she's running for president? I guess I have to watch this damn speech.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950172165009162240"
+          ],
+          "editableUntil": "2018-01-08T02:07:52.140Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "137"
+      ],
+      "favorite_count": "34",
+      "id_str": "950172165009162240",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950172165009162240",
+      "created_at": "Mon Jan 08 01:07:52 +0000 2018",
+      "favorited": false,
+      "full_text": "\"We are digging underground to find puppies.\"\n\"Do puppies live underground?\"\n\"Yes.\"\n\nI am not sure how the 2.5yo came to this conclusion.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950150788138979329"
+          ],
+          "editableUntil": "2018-01-08T00:42:55.497Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Vlad Magdalin",
+            "screen_name": "callmevlad",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "46446956",
+            "id": "46446956"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "12",
+              "20"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          },
+          {
+            "name": "isaacs",
+            "screen_name": "izs",
+            "indices": [
+              "21",
+              "25"
+            ],
+            "id_str": "8038312",
+            "id": "8038312"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "26",
+              "32"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "112"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "950116025088921600",
+      "id_str": "950150788138979329",
+      "in_reply_to_user_id": "46446956",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950150788138979329",
+      "in_reply_to_status_id": "950116025088921600",
+      "created_at": "Sun Jan 07 23:42:55 +0000 2018",
+      "favorited": false,
+      "full_text": "@callmevlad @ceejbot @izs @npmjs We have in fact closed the vector as of this incident. We can give more detail.",
+      "lang": "en",
+      "in_reply_to_screen_name": "callmevlad",
+      "in_reply_to_user_id_str": "46446956"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950093448454979585"
+          ],
+          "editableUntil": "2018-01-07T20:55:04.651Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "3",
+              "9"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/3KZEyJ27Io",
+            "expanded_url": "http://blog.npmjs.org/post/169432444640/npm-operational-incident-6-jan-2018",
+            "display_url": "blog.npmjs.org/post/169432444…",
+            "indices": [
+              "60",
+              "83"
+            ]
+          }
+        ],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/npmjs/status/950081394415316992/photo/1",
+            "source_status_id": "950081394415316992",
+            "indices": [
+              "84",
+              "107"
+            ],
+            "url": "https://t.co/FvnHXKScM7",
+            "media_url": "http://pbs.twimg.com/media/DS9d_ZMU0AA-zER.jpg",
+            "id_str": "950081390074187776",
+            "source_user_id": "309528017",
+            "id": "950081390074187776",
+            "media_url_https": "https://pbs.twimg.com/media/DS9d_ZMU0AA-zER.jpg",
+            "source_user_id_str": "309528017",
+            "sizes": {
+              "large": {
+                "w": "1224",
+                "h": "1610",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "517",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "912",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "950081394415316992",
+            "display_url": "pic.twitter.com/FvnHXKScM7"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "107"
+      ],
+      "favorite_count": "0",
+      "id_str": "950093448454979585",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950093448454979585",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 07 19:55:04 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @npmjs: statement on saturday’s npm operational incident https://t.co/3KZEyJ27Io https://t.co/FvnHXKScM7",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/npmjs/status/950081394415316992/photo/1",
+            "source_status_id": "950081394415316992",
+            "indices": [
+              "84",
+              "107"
+            ],
+            "url": "https://t.co/FvnHXKScM7",
+            "media_url": "http://pbs.twimg.com/media/DS9d_ZMU0AA-zER.jpg",
+            "id_str": "950081390074187776",
+            "source_user_id": "309528017",
+            "id": "950081390074187776",
+            "media_url_https": "https://pbs.twimg.com/media/DS9d_ZMU0AA-zER.jpg",
+            "source_user_id_str": "309528017",
+            "sizes": {
+              "large": {
+                "w": "1224",
+                "h": "1610",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "517",
+                "h": "680",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "912",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "source_status_id_str": "950081394415316992",
+            "display_url": "pic.twitter.com/FvnHXKScM7"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950057928014233600"
+          ],
+          "editableUntil": "2018-01-07T18:33:55.918Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "psygnisfive",
+            "screen_name": "psygnisfive",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "995543826801410049",
+            "id": "995543826801410049"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "45"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950057274948685827",
+      "id_str": "950057928014233600",
+      "in_reply_to_user_id": "3393781",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950057928014233600",
+      "in_reply_to_status_id": "950057274948685827",
+      "created_at": "Sun Jan 07 17:33:55 +0000 2018",
+      "favorited": false,
+      "full_text": "@psygnisfive This article is extremely silly.",
+      "lang": "en",
+      "in_reply_to_screen_name": "beka_valentine",
+      "in_reply_to_user_id_str": "3393781"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950038946595069953"
+          ],
+          "editableUntil": "2018-01-07T17:18:30.395Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "256"
+      ],
+      "favorite_count": "33",
+      "in_reply_to_status_id_str": "950031569963556865",
+      "id_str": "950038946595069953",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "950038946595069953",
+      "in_reply_to_status_id": "950031569963556865",
+      "created_at": "Sun Jan 07 16:18:30 +0000 2018",
+      "favorited": false,
+      "full_text": "Berlin is just \"Swamp town\". \"Ber\" sounds like \"Bär\", German for \"bear\", so the coat of arms for Berlin has a bear on it, even though bears have nothing to do with the town. Apparently heraldry people really like puns and this kind of thing is very common.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950038150432215040"
+          ],
+          "editableUntil": "2018-01-07T17:15:20.575Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Alan",
+            "screen_name": "akgerber",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "115095156",
+            "id": "115095156"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "25"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "950033013076889600",
+      "id_str": "950038150432215040",
+      "in_reply_to_user_id": "115095156",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950038150432215040",
+      "in_reply_to_status_id": "950033013076889600",
+      "created_at": "Sun Jan 07 16:15:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@akgerber No it's not :-p",
+      "lang": "en",
+      "in_reply_to_screen_name": "akgerber",
+      "in_reply_to_user_id_str": "115095156"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950032001121247232"
+          ],
+          "editableUntil": "2018-01-07T16:50:54.465Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Alan",
+            "screen_name": "akgerber",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "115095156",
+            "id": "115095156"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "69"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950031743347757063",
+      "id_str": "950032001121247232",
+      "in_reply_to_user_id": "115095156",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "950032001121247232",
+      "in_reply_to_status_id": "950031743347757063",
+      "created_at": "Sun Jan 07 15:50:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@akgerber San Francisco is \"Holy French Guy (in an insulting sense)\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "akgerber",
+      "in_reply_to_user_id_str": "115095156"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950031569963556865"
+          ],
+          "editableUntil": "2018-01-07T16:49:11.669Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "280"
+      ],
+      "favorite_count": "18",
+      "in_reply_to_status_id_str": "950027931807465472",
+      "id_str": "950031569963556865",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950031569963556865",
+      "in_reply_to_status_id": "950027931807465472",
+      "created_at": "Sun Jan 07 15:49:11 +0000 2018",
+      "favorited": false,
+      "full_text": "Stockholm is literally \"log islet\". Sometime between 1000-1300 a series of forts were built to protect villages around the lake from invasion from the sea. They built the forts by driving logs into the sea bed to build on top of them. In 1978 they found some of these sunken logs.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950027931807465472"
+          ],
+          "editableUntil": "2018-01-07T16:34:44.265Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "31"
+      ],
+      "favorite_count": "23",
+      "in_reply_to_status_id_str": "950022109673152512",
+      "id_str": "950027931807465472",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950027931807465472",
+      "in_reply_to_status_id": "950022109673152512",
+      "created_at": "Sun Jan 07 15:34:44 +0000 2018",
+      "favorited": false,
+      "full_text": "I could do this forever, folks.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950024947224555520"
+          ],
+          "editableUntil": "2018-01-07T16:22:52.685Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Alan Fleming 🏴󠁧󠁢󠁳󠁣󠁴󠁿🇪🇺🏳️‍🌈",
+            "screen_name": "alanfleming",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "636263",
+            "id": "636263"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "21"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949936359258587141",
+      "id_str": "950024947224555520",
+      "in_reply_to_user_id": "636263",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950024947224555520",
+      "in_reply_to_status_id": "949936359258587141",
+      "created_at": "Sun Jan 07 15:22:52 +0000 2018",
+      "favorited": false,
+      "full_text": "@alanfleming Amazing.",
+      "lang": "en",
+      "in_reply_to_screen_name": "alanfleming",
+      "in_reply_to_user_id_str": "636263"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950024012377178112"
+          ],
+          "editableUntil": "2018-01-07T16:19:09.800Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Michael Valentine",
+            "screen_name": "mv_whelpley",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "706997260815454208",
+            "id": "706997260815454208"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "131"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "950023565805408256",
+      "id_str": "950024012377178112",
+      "in_reply_to_user_id": "706997260815454208",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950024012377178112",
+      "in_reply_to_status_id": "950023565805408256",
+      "created_at": "Sun Jan 07 15:19:09 +0000 2018",
+      "favorited": false,
+      "full_text": "@mv_whelpley That's not appeared in any of the etymologies I looked at so I think he probably made it up. I'm not an expert though.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mv_whelpley",
+      "in_reply_to_user_id_str": "706997260815454208"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950022109673152512"
+          ],
+          "editableUntil": "2018-01-07T16:11:36.160Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "180"
+      ],
+      "favorite_count": "23",
+      "in_reply_to_status_id_str": "950021506515451904",
+      "id_str": "950022109673152512",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "950022109673152512",
+      "in_reply_to_status_id": "950021506515451904",
+      "created_at": "Sun Jan 07 15:11:36 +0000 2018",
+      "favorited": false,
+      "full_text": "Paris comes from Lutetia Parisorum, which is \"the swamps of the Parisii\". \"Par\" is Celtic for \"boat\", so Paris can be arguably translated as \"The Swamp Where The Boat People Live\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950021506515451904"
+          ],
+          "editableUntil": "2018-01-07T16:09:12.356Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "280"
+      ],
+      "favorite_count": "20",
+      "in_reply_to_status_id_str": "949851749107490816",
+      "id_str": "950021506515451904",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "950021506515451904",
+      "in_reply_to_status_id": "949851749107490816",
+      "created_at": "Sun Jan 07 15:09:12 +0000 2018",
+      "favorited": false,
+      "full_text": "Continuing the \"village where &lt;obvious geographical feature&gt;\" theme: London's etymology is both obscure and contested, but I find most convincing the Celtic derivation of \"londinjon\", which means \"The Place That Floods Periodically Because Of Tides\", which it certainly was.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "950010881387020288"
+          ],
+          "editableUntil": "2018-01-07T15:26:59.128Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Max Stoiber",
+            "screen_name": "mxstbr",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "2451223458",
+            "id": "2451223458"
+          },
+          {
+            "name": "danabramov.bsky.social",
+            "screen_name": "dan_abramov",
+            "indices": [
+              "8",
+              "20"
+            ],
+            "id_str": "70345946",
+            "id": "70345946"
+          },
+          {
+            "name": "Riad Benguella",
+            "screen_name": "riadbenguella",
+            "indices": [
+              "21",
+              "35"
+            ],
+            "id_str": "8595922",
+            "id": "8595922"
+          },
+          {
+            "name": "Devon Govett",
+            "screen_name": "devongovett",
+            "indices": [
+              "36",
+              "48"
+            ],
+            "id_str": "15687937",
+            "id": "15687937"
+          },
+          {
+            "name": "Henry",
+            "screen_name": "left_pad",
+            "indices": [
+              "49",
+              "58"
+            ],
+            "id_str": "138173132",
+            "id": "138173132"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "202"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "950010113795993603",
+      "id_str": "950010881387020288",
+      "in_reply_to_user_id": "2451223458",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "950010881387020288",
+      "in_reply_to_status_id": "950010113795993603",
+      "created_at": "Sun Jan 07 14:26:59 +0000 2018",
+      "favorited": false,
+      "full_text": "@mxstbr @dan_abramov @riadbenguella @devongovett @left_pad This strikes me as one of those things that looks simple but is in fact very tricky. The \"engines\" field is widely ignored for similar reasons.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mxstbr",
+      "in_reply_to_user_id_str": "2451223458"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949872526070505472"
+          ],
+          "editableUntil": "2018-01-07T06:17:12.650Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "brianloveswords",
+            "screen_name": "brianloveswords",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "17177251",
+            "id": "17177251"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "44"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "949870634905079808",
+      "id_str": "949872526070505472",
+      "in_reply_to_user_id": "17177251",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949872526070505472",
+      "in_reply_to_status_id": "949870634905079808",
+      "created_at": "Sun Jan 07 05:17:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@brianloveswords I thought you loved swords.",
+      "lang": "en",
+      "in_reply_to_screen_name": "brianloveswords",
+      "in_reply_to_user_id_str": "17177251"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949862432716947456"
+          ],
+          "editableUntil": "2018-01-07T05:37:06.207Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Phil Dokas",
+            "screen_name": "dokas",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "635653",
+            "id": "635653"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "13"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949861666484772865",
+      "id_str": "949862432716947456",
+      "in_reply_to_user_id": "635653",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949862432716947456",
+      "in_reply_to_status_id": "949861666484772865",
+      "created_at": "Sun Jan 07 04:37:06 +0000 2018",
+      "favorited": false,
+      "full_text": "@dokas Oooooh",
+      "lang": "und",
+      "in_reply_to_screen_name": "dokas",
+      "in_reply_to_user_id_str": "635653"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949857352244633602"
+          ],
+          "editableUntil": "2018-01-07T05:16:54.928Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Amelia Bellamy-Royds",
+            "screen_name": "AmeliasBrain",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "3122402048",
+            "id": "3122402048"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "147"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "949855999208247296",
+      "id_str": "949857352244633602",
+      "in_reply_to_user_id": "3122402048",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949857352244633602",
+      "in_reply_to_status_id": "949855999208247296",
+      "created_at": "Sun Jan 07 04:16:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@AmeliasBrain I took a year off once and spent a week researching the etymology of every single street name in San Francisco and it was delightful.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AmeliasBrain",
+      "in_reply_to_user_id_str": "3122402048"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949855139015245824"
+          ],
+          "editableUntil": "2018-01-07T05:08:07.253Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "21"
+      ],
+      "favorite_count": "30",
+      "id_str": "949855139015245824",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949855139015245824",
+      "created_at": "Sun Jan 07 04:08:07 +0000 2018",
+      "favorited": false,
+      "full_text": "I love words so much.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949851749107490816"
+          ],
+          "editableUntil": "2018-01-07T04:54:39.036Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "226"
+      ],
+      "favorite_count": "43",
+      "in_reply_to_status_id_str": "949850353503055872",
+      "id_str": "949851749107490816",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "949851749107490816",
+      "in_reply_to_status_id": "949850353503055872",
+      "created_at": "Sun Jan 07 03:54:39 +0000 2018",
+      "favorited": false,
+      "full_text": "Most \"Washington\"s are named after a town in northern England. It comes from Hwæsingatūn, meaning \"Estate of the family of Hwæsa\". Hwæsa means \"wheat sheaf\". So it's \"The village where the family who grow a lot of wheat live\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949850353503055872"
+          ],
+          "editableUntil": "2018-01-07T04:49:06.298Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "63",
+      "in_reply_to_status_id_str": "949841831457509376",
+      "id_str": "949850353503055872",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "949850353503055872",
+      "in_reply_to_status_id": "949841831457509376",
+      "created_at": "Sun Jan 07 03:49:06 +0000 2018",
+      "favorited": false,
+      "full_text": "\"Amsterdam\" means \"Dam across the River Amstel\", Amstel means \"an area with lots of water\". So it's Dam Across The River In An Area With A Lot of Water.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949848477088935936"
+          ],
+          "editableUntil": "2018-01-07T04:41:38.926Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "A.J. Kandy",
+            "screen_name": "AJKandy",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "1508831",
+            "id": "1508831"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "64"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949848284364914688",
+      "id_str": "949848477088935936",
+      "in_reply_to_user_id": "1508831",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949848477088935936",
+      "in_reply_to_status_id": "949848284364914688",
+      "created_at": "Sun Jan 07 03:41:38 +0000 2018",
+      "favorited": false,
+      "full_text": "@AJKandy New York City is New Place With Lots of Yew Trees City.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AJKandy",
+      "in_reply_to_user_id_str": "1508831"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949848048321966081"
+          ],
+          "editableUntil": "2018-01-07T04:39:56.700Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949848048321966081/photo/1",
+            "indices": [
+              "14",
+              "37"
+            ],
+            "url": "https://t.co/M4Q2T952e5",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DS6JwilV4AEak6W.jpg",
+            "id_str": "949848038431907841",
+            "id": "949848038431907841",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DS6JwilV4AEak6W.jpg",
+            "sizes": {
+              "medium": {
+                "w": "534",
+                "h": "252",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "534",
+                "h": "252",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "534",
+                "h": "252",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/M4Q2T952e5"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949847529964949504",
+      "id_str": "949848048321966081",
+      "in_reply_to_user_id": "25119349",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "949848048321966081",
+      "in_reply_to_status_id": "949847529964949504",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 07 03:39:56 +0000 2018",
+      "favorited": false,
+      "full_text": "@MizzCandy09  https://t.co/M4Q2T952e5",
+      "lang": "qme",
+      "in_reply_to_user_id_str": "25119349",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949848048321966081/photo/1",
+            "indices": [
+              "14",
+              "37"
+            ],
+            "url": "https://t.co/M4Q2T952e5",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DS6JwilV4AEak6W.jpg",
+            "id_str": "949848038431907841",
+            "video_info": {
+              "aspect_ratio": [
+                "89",
+                "42"
+              ],
+              "variants": [
+                {
+                  "bitrate": "0",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/tweet_video/DS6JwilV4AEak6W.mp4"
+                }
+              ]
+            },
+            "id": "949848038431907841",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DS6JwilV4AEak6W.jpg",
+            "sizes": {
+              "medium": {
+                "w": "534",
+                "h": "252",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "534",
+                "h": "252",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "534",
+                "h": "252",
+                "resize": "fit"
+              }
+            },
+            "type": "animated_gif",
+            "display_url": "pic.twitter.com/M4Q2T952e5"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949847311340810240"
+          ],
+          "editableUntil": "2018-01-07T04:37:00.990Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jessica Rose",
+            "screen_name": "jesslynnrose",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "1530096708",
+            "id": "1530096708"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "191"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "949846898902315009",
+      "id_str": "949847311340810240",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949847311340810240",
+      "in_reply_to_status_id": "949846898902315009",
+      "created_at": "Sun Jan 07 03:37:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@jesslynnrose More specifically: the value of work life balance would not be so clear to me and so central to npm's values if I hadn't destroyed myself and my previous company by overworking.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949846898902315009"
+          ],
+          "editableUntil": "2018-01-07T04:35:22.657Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jessica Rose",
+            "screen_name": "jesslynnrose",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "1530096708",
+            "id": "1530096708"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "145"
+      ],
+      "favorite_count": "9",
+      "in_reply_to_status_id_str": "949334086295916545",
+      "id_str": "949846898902315009",
+      "in_reply_to_user_id": "1530096708",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949846898902315009",
+      "in_reply_to_status_id": "949334086295916545",
+      "created_at": "Sun Jan 07 03:35:22 +0000 2018",
+      "favorited": false,
+      "full_text": "@jesslynnrose I would have no idea how to run my current startup if I hadn't run my first one into the ground with dozens of boneheaded mistakes.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jesslynnrose",
+      "in_reply_to_user_id_str": "1530096708"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949845534998540288"
+          ],
+          "editableUntil": "2018-01-07T04:29:57.477Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Pinboard",
+            "screen_name": "Pinboard",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "55525953",
+            "id": "55525953"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "39"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "949844354272645120",
+      "id_str": "949845534998540288",
+      "in_reply_to_user_id": "55525953",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949845534998540288",
+      "in_reply_to_status_id": "949844354272645120",
+      "created_at": "Sun Jan 07 03:29:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@Pinboard They got infected by Spectre.",
+      "lang": "en",
+      "in_reply_to_screen_name": "Pinboard",
+      "in_reply_to_user_id_str": "55525953"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949843269134860289"
+          ],
+          "editableUntil": "2018-01-07T04:20:57.253Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "devesine",
+            "screen_name": "devesine",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1346022235664834561",
+            "id": "1346022235664834561"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949842693089144832",
+      "id_str": "949843269134860289",
+      "in_reply_to_user_id": "14703752",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949843269134860289",
+      "in_reply_to_status_id": "949842693089144832",
+      "created_at": "Sun Jan 07 03:20:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@devesine Thank you, this is amazing.",
+      "lang": "en",
+      "in_reply_to_screen_name": "devetangent",
+      "in_reply_to_user_id_str": "14703752"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949841831457509376"
+          ],
+          "editableUntil": "2018-01-07T04:15:14.484Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "141"
+      ],
+      "favorite_count": "94",
+      "in_reply_to_status_id_str": "949840112560455680",
+      "id_str": "949841831457509376",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "17",
+      "id": "949841831457509376",
+      "in_reply_to_status_id": "949840112560455680",
+      "created_at": "Sun Jan 07 03:15:14 +0000 2018",
+      "favorited": false,
+      "full_text": "Geographical etymology is discovering that every major city is, when translated literally, called something like \"village of townville city\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949841213590355970"
+          ],
+          "editableUntil": "2018-01-07T04:12:47.173Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Stefan du Fresne",
+            "screen_name": "_SCdF_",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "148841857",
+            "id": "148841857"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "102"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949840702443278336",
+      "id_str": "949841213590355970",
+      "in_reply_to_user_id": "148841857",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949841213590355970",
+      "in_reply_to_status_id": "949840702443278336",
+      "created_at": "Sun Jan 07 03:12:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@_SCdF_ I'm glad I'm not the only one who gets that mental image every time I hear about that company.",
+      "lang": "en",
+      "in_reply_to_screen_name": "_SCdF_",
+      "in_reply_to_user_id_str": "148841857"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949840112560455680"
+          ],
+          "editableUntil": "2018-01-07T04:08:24.667Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "260"
+      ],
+      "favorite_count": "36",
+      "in_reply_to_status_id_str": "949837613866758144",
+      "id_str": "949840112560455680",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "949840112560455680",
+      "in_reply_to_status_id": "949837613866758144",
+      "created_at": "Sun Jan 07 03:08:24 +0000 2018",
+      "favorited": false,
+      "full_text": "Braintree the town is named after a town in England of that name. How it got that name is disputed but possibly a mis-spelling of \"Braintry\", which means \"Village near the river Brain\". \"Brain\" meant \"river\" in Celtic, so it's literally \"Village by the river\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949838569891250177"
+          ],
+          "editableUntil": "2018-01-07T04:02:16.866Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/rnPdw6nSiE",
+            "expanded_url": "https://twitter.com/ladybreec/status/949497213390123008",
+            "display_url": "twitter.com/ladybreec/stat…",
+            "indices": [
+              "54",
+              "77"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "77"
+      ],
+      "favorite_count": "10",
+      "id_str": "949838569891250177",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "949838569891250177",
+      "possibly_sensitive": false,
+      "created_at": "Sun Jan 07 03:02:16 +0000 2018",
+      "favorited": false,
+      "full_text": "Signal boosting because this is my fucking nightmare: https://t.co/rnPdw6nSiE",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949838100330508289"
+          ],
+          "editableUntil": "2018-01-07T04:00:24.914Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@cowperthwait@sfba.social",
+            "screen_name": "cowperthwait",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15583257",
+            "id": "15583257"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949820761904111616",
+      "id_str": "949838100330508289",
+      "in_reply_to_user_id": "15583257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949838100330508289",
+      "in_reply_to_status_id": "949820761904111616",
+      "created_at": "Sun Jan 07 03:00:24 +0000 2018",
+      "favorited": false,
+      "full_text": "@cowperthwait And the sequel, \"I have adjusted the settings on your TV to stop it doing a thing you didn't notice it was doing.\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "cowperthwait",
+      "in_reply_to_user_id_str": "15583257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949837613866758144"
+          ],
+          "editableUntil": "2018-01-07T03:58:28.932Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "195"
+      ],
+      "favorite_count": "81",
+      "id_str": "949837613866758144",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "949837613866758144",
+      "created_at": "Sun Jan 07 02:58:28 +0000 2018",
+      "favorited": false,
+      "full_text": "I am reading a biography of John Adams, which is how I discovered that the payments company Braintree is named after the town where John Adams grew up, and they named the company for that reason.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949833823004499968"
+          ],
+          "editableUntil": "2018-01-07T03:43:25.120Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "whit",
+            "screen_name": "whitneyarner",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "14213001",
+            "id": "14213001"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "89"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949493632377245696",
+      "id_str": "949833823004499968",
+      "in_reply_to_user_id": "14213001",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949833823004499968",
+      "in_reply_to_status_id": "949493632377245696",
+      "created_at": "Sun Jan 07 02:43:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@whitneyarner So you're allowed to eat pure protein and that's it? Bipolar = Atkins diet?",
+      "lang": "en",
+      "in_reply_to_screen_name": "whitneyarner",
+      "in_reply_to_user_id_str": "14213001"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949832619025252352"
+          ],
+          "editableUntil": "2018-01-07T03:38:38.069Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949831632621481984",
+      "id_str": "949832619025252352",
+      "in_reply_to_user_id": "290549888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949832619025252352",
+      "in_reply_to_status_id": "949831632621481984",
+      "created_at": "Sun Jan 07 02:38:38 +0000 2018",
+      "favorited": false,
+      "full_text": "@sebmck It's still better than that.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sebmck",
+      "in_reply_to_user_id_str": "290549888"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949831264260927488"
+          ],
+          "editableUntil": "2018-01-07T03:33:15.068Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "117"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "949829570848374784",
+      "id_str": "949831264260927488",
+      "in_reply_to_user_id": "290549888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949831264260927488",
+      "in_reply_to_status_id": "949829570848374784",
+      "created_at": "Sun Jan 07 02:33:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@sebmck Have you heard the good news about Grilled Cheese (hint: it is nothing like what you'd expect given the name)",
+      "lang": "en",
+      "in_reply_to_screen_name": "sebmck",
+      "in_reply_to_user_id_str": "290549888"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949805684266123264"
+          ],
+          "editableUntil": "2018-01-07T01:51:36.322Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "wil shipley",
+            "screen_name": "wilshipley",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "2911221",
+            "id": "2911221"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "949805684266123264",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949805684266123264",
+      "created_at": "Sun Jan 07 00:51:36 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @wilshipley: Don’t buy the new biography of me—it’s full of salacious lies! Juicy, incredible stories that will make your arm hairs stan…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949775563228459009"
+          ],
+          "editableUntil": "2018-01-06T23:51:54.907Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "12",
+              "21"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "22",
+              "32"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/FALnIWgJsU",
+            "expanded_url": "https://www.npmjs.com/npm/state-of-javascript-frameworks-2017-part-1/?utm_content=buffer7837e&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer",
+            "display_url": "npmjs.com/npm/state-of-j…",
+            "indices": [
+              "125",
+              "148"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "148"
+      ],
+      "favorite_count": "12",
+      "in_reply_to_status_id_str": "949752479708798976",
+      "id_str": "949775563228459009",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "949775563228459009",
+      "in_reply_to_status_id": "949752479708798976",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 06 22:51:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @samccone @IgorMinar While the data crunching is ongoing I've added a note to the top of the post about Angular: https://t.co/FALnIWgJsU",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949772261308882944"
+          ],
+          "editableUntil": "2018-01-06T23:38:47.668Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "npm status",
+            "screen_name": "npmstatus",
+            "indices": [
+              "3",
+              "13"
+            ],
+            "id_str": "745003433019772928",
+            "id": "745003433019772928"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "949772261308882944",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949772261308882944",
+      "created_at": "Sat Jan 06 22:38:47 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @npmstatus: [status] Monitoring: We believe all cleanup is complete, and all packages are back to the state they were in before… https:/…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949762292945649664"
+          ],
+          "editableUntil": "2018-01-06T22:59:11.025Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Tom Coates",
+            "screen_name": "tomcoates",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "12514",
+            "id": "12514"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "58"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949761267102699520",
+      "id_str": "949762292945649664",
+      "in_reply_to_user_id": "12514",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949762292945649664",
+      "in_reply_to_status_id": "949761267102699520",
+      "created_at": "Sat Jan 06 21:59:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@tomcoates I keep expecting the robot to murder everybody.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tomcoates",
+      "in_reply_to_user_id_str": "12514"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949760425934991360"
+          ],
+          "editableUntil": "2018-01-06T22:51:45.895Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rat king 🐀",
+            "screen_name": "MikeIsaac",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "19040598",
+            "id": "19040598"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "114"
+      ],
+      "favorite_count": "27",
+      "in_reply_to_status_id_str": "949759659547611137",
+      "id_str": "949760425934991360",
+      "in_reply_to_user_id": "19040598",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949760425934991360",
+      "in_reply_to_status_id": "949759659547611137",
+      "created_at": "Sat Jan 06 21:51:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@MikeIsaac I got too deep with barista commitment and now I've been helping my barista learn to code for 6 months.",
+      "lang": "en",
+      "in_reply_to_screen_name": "MikeIsaac",
+      "in_reply_to_user_id_str": "19040598"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949754424380899328"
+          ],
+          "editableUntil": "2018-01-06T22:27:55.013Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "11",
+              "20"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "21",
+              "32"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "33",
+              "42"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "43",
+              "50"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "51",
+              "64"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "65",
+              "71"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "263"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "949753958406356992",
+      "id_str": "949754424380899328",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "949754424380899328",
+      "in_reply_to_status_id": "949753958406356992",
+      "created_at": "Sat Jan 06 21:27:55 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @ZChapple @jeffbcross @samccone @sebmck @thejameskyle @jfrog Is it okay if I refer to them as Angular 1.x and Angular 2.x? I do not think \"Angular\" vs. \"AngularJS\" is distinction understood outside of the Angular community (it is certainly news to me).",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949752479708798976"
+          ],
+          "editableUntil": "2018-01-06T22:20:11.367Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "12",
+              "21"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "22",
+              "32"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/olCltyhQdc",
+            "expanded_url": "https://twitter.com/seldo/status/949729181142679552",
+            "display_url": "twitter.com/seldo/status/9…",
+            "indices": [
+              "43",
+              "66"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949752254856273920",
+      "id_str": "949752479708798976",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949752479708798976",
+      "in_reply_to_status_id": "949752254856273920",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 06 21:20:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @samccone @IgorMinar See also: https://t.co/olCltyhQdc",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949752254856273920"
+          ],
+          "editableUntil": "2018-01-06T22:19:17.758Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "12",
+              "21"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "22",
+              "32"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "276"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949751994473828352",
+      "id_str": "949752254856273920",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949752254856273920",
+      "in_reply_to_status_id": "949751994473828352",
+      "created_at": "Sat Jan 06 21:19:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @samccone @IgorMinar There's several hundred terabytes of data involved and the cluster that does this work is pretty expensive, so I've sized it to take about 24 hours to complete the run. So either tomorrow or Monday I can re-draw the graphs and update the post.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949751994473828352"
+          ],
+          "editableUntil": "2018-01-06T22:18:15.678Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "12",
+              "21"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "22",
+              "32"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "278"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "949731552732131328",
+      "id_str": "949751994473828352",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949751994473828352",
+      "in_reply_to_status_id": "949731552732131328",
+      "created_at": "Sat Jan 06 21:18:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @samccone @IgorMinar I'm genuinely sorry for the mistake. Scoped package download counts currently start in March 2017; I have a job running to calculate them back to October 2016, which will allow me to re-draw the bubble chart with Angular(1+2) fairly represented.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949744630580461568"
+          ],
+          "editableUntil": "2018-01-06T21:48:59.989Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "22",
+              "31"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "32",
+              "39"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "40",
+              "53"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "54",
+              "60"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "179"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949744450015698944",
+      "id_str": "949744630580461568",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949744630580461568",
+      "in_reply_to_status_id": "949744450015698944",
+      "created_at": "Sat Jan 06 20:48:59 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZChapple @jeffbcross @samccone @sebmck @thejameskyle @jfrog (It could go faster but the number of boxes I have to throw into the cluster begins to become prohibitively expensive)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949744450015698944"
+          ],
+          "editableUntil": "2018-01-06T21:48:16.939Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "22",
+              "31"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "32",
+              "39"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "40",
+              "53"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "54",
+              "60"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "245"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "949729181142679552",
+      "id_str": "949744450015698944",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949744450015698944",
+      "in_reply_to_status_id": "949729181142679552",
+      "created_at": "Sat Jan 06 20:48:16 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZChapple @jeffbcross @samccone @sebmck @thejameskyle @jfrog I have now been nerd-sniped and have written the code necessary to fire up the supercomputer. It has to churn through several hundred terabytes of logs so it may take a couple of days.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949743904718389248"
+          ],
+          "editableUntil": "2018-01-06T21:46:06.930Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "123"
+      ],
+      "favorite_count": "14",
+      "in_reply_to_status_id_str": "949743337472339970",
+      "id_str": "949743904718389248",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949743904718389248",
+      "in_reply_to_status_id": "949743337472339970",
+      "created_at": "Sat Jan 06 20:46:06 +0000 2018",
+      "favorited": false,
+      "full_text": "I was in the ocean, on a surfboard-shaped device, a wave was involved... let's just call it a surfing accident and move on.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949743461195894784"
+          ],
+          "editableUntil": "2018-01-06T21:44:21.186Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "stanley",
+            "screen_name": "fivetanley",
+            "indices": [
+              "8",
+              "19"
+            ],
+            "id_str": "306497372",
+            "id": "306497372"
+          },
+          {
+            "name": "Horse JS",
+            "screen_name": "horse_js",
+            "indices": [
+              "20",
+              "29"
+            ],
+            "id_str": "497617437",
+            "id": "497617437"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "72"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "949742960404410368",
+      "id_str": "949743461195894784",
+      "in_reply_to_user_id": "290549888",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949743461195894784",
+      "in_reply_to_status_id": "949742960404410368",
+      "created_at": "Sat Jan 06 20:44:21 +0000 2018",
+      "favorited": false,
+      "full_text": "@sebmck @fivetanley @horse_js The horse knows. The horse is trolling me.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sebmck",
+      "in_reply_to_user_id_str": "290549888"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949743337472339970"
+          ],
+          "editableUntil": "2018-01-06T21:43:51.688Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "109"
+      ],
+      "favorite_count": "15",
+      "id_str": "949743337472339970",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949743337472339970",
+      "created_at": "Sat Jan 06 20:43:51 +0000 2018",
+      "favorited": false,
+      "full_text": "If anybody asks the cut on my face is from a \"surfing accident\" which is juuuuuuust on this side of accurate.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949742207493332992"
+          ],
+          "editableUntil": "2018-01-06T21:39:22.280Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Horse JS",
+            "screen_name": "horse_js",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "497617437",
+            "id": "497617437"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "39"
+      ],
+      "favorite_count": "24",
+      "in_reply_to_status_id_str": "949738702485454848",
+      "id_str": "949742207493332992",
+      "in_reply_to_user_id": "497617437",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949742207493332992",
+      "in_reply_to_status_id": "949738702485454848",
+      "created_at": "Sat Jan 06 20:39:22 +0000 2018",
+      "favorited": false,
+      "full_text": "@horse_js I'm being trolled by a horse.",
+      "lang": "en",
+      "in_reply_to_screen_name": "horse_js",
+      "in_reply_to_user_id_str": "497617437"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949729687231651840"
+          ],
+          "editableUntil": "2018-01-06T20:49:37.217Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "22",
+              "31"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "32",
+              "39"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "40",
+              "53"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "54",
+              "60"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "338"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949728420350648320",
+      "id_str": "949729687231651840",
+      "in_reply_to_user_id": "887912305",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949729687231651840",
+      "in_reply_to_status_id": "949728420350648320",
+      "created_at": "Sat Jan 06 19:49:37 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZChapple @jeffbcross @samccone @sebmck @thejameskyle @jfrog I appreciate that. I wouldn't want somebody spreading FUD about my framework either, so I appreciate your interest in seeing this corrected and it's totally reasonable. This was an honest mistake and the new data changes the picture considerably so I will broadcast the update.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "887912305"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949729181142679552"
+          ],
+          "editableUntil": "2018-01-06T20:47:36.556Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "22",
+              "31"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "32",
+              "39"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "40",
+              "53"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "54",
+              "60"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          }
+        ],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949729181142679552/photo/1",
+            "indices": [
+              "342",
+              "365"
+            ],
+            "url": "https://t.co/yQRL8RAqgx",
+            "media_url": "http://pbs.twimg.com/media/DS4c6oZVoAIqK6o.jpg",
+            "id_str": "949728365023436802",
+            "id": "949728365023436802",
+            "media_url_https": "https://pbs.twimg.com/media/DS4c6oZVoAIqK6o.jpg",
+            "sizes": {
+              "large": {
+                "w": "1474",
+                "h": "1274",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "1037",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "588",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/yQRL8RAqgx"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "365"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949724592377090050",
+      "id_str": "949729181142679552",
+      "in_reply_to_user_id": "887912305",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949729181142679552",
+      "in_reply_to_status_id": "949724592377090050",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 06 19:47:36 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZChapple @jeffbcross @samccone @sebmck @thejameskyle @jfrog Here's the graph for the last 9 months of data; I will fire up the supercomputer next week to crunch data for older scoped packages. Angular1+2 together are much more popular, so I will definitely update the post. The flat trend (but only 4 data points, so beware) looks the same. https://t.co/yQRL8RAqgx",
+      "lang": "en",
+      "in_reply_to_user_id_str": "887912305",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949729181142679552/photo/1",
+            "indices": [
+              "342",
+              "365"
+            ],
+            "url": "https://t.co/yQRL8RAqgx",
+            "media_url": "http://pbs.twimg.com/media/DS4c6oZVoAIqK6o.jpg",
+            "id_str": "949728365023436802",
+            "id": "949728365023436802",
+            "media_url_https": "https://pbs.twimg.com/media/DS4c6oZVoAIqK6o.jpg",
+            "sizes": {
+              "large": {
+                "w": "1474",
+                "h": "1274",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "1037",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "588",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/yQRL8RAqgx"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949722035755732992"
+          ],
+          "editableUntil": "2018-01-06T20:19:12.963Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "22",
+              "31"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "32",
+              "39"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "40",
+              "53"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "54",
+              "60"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "192"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949720990224809984",
+      "id_str": "949722035755732992",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949722035755732992",
+      "in_reply_to_status_id": "949720990224809984",
+      "created_at": "Sat Jan 06 19:19:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZChapple @jeffbcross @samccone @sebmck @thejameskyle @jfrog Private registries are quite popular but I can't think of a reason why they'd be more popular with angular users than anybody else.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949721368605544448"
+          ],
+          "editableUntil": "2018-01-06T20:16:33.902Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "32"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949707793480773632",
+      "id_str": "949721368605544448",
+      "in_reply_to_user_id": "102568309",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949721368605544448",
+      "in_reply_to_status_id": "949707793480773632",
+      "created_at": "Sat Jan 06 19:16:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@_austinfrey Yep, covered those.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "102568309"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949721176787464192"
+          ],
+          "editableUntil": "2018-01-06T20:15:48.169Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "12",
+              "21"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "67"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "949701153305980929",
+      "id_str": "949721176787464192",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "949721176787464192",
+      "in_reply_to_status_id": "949701153305980929",
+      "created_at": "Sat Jan 06 19:15:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @samccone It's the weekend. We take weekends seriously.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949720990224809984"
+          ],
+          "editableUntil": "2018-01-06T20:15:03.689Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "22",
+              "31"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "32",
+              "39"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "40",
+              "53"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          },
+          {
+            "name": "JFrog",
+            "screen_name": "jfrog",
+            "indices": [
+              "54",
+              "60"
+            ],
+            "id_str": "38003146",
+            "id": "38003146"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "320"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949702036613984256",
+      "id_str": "949720990224809984",
+      "in_reply_to_user_id": "887912305",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949720990224809984",
+      "in_reply_to_status_id": "949702036613984256",
+      "created_at": "Sat Jan 06 19:15:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZChapple @jeffbcross @samccone @sebmck @thejameskyle @jfrog The thing about Artifactory is it doesn't really matter what the usage is unless there's some reason Artifactory users would disproportionately use Angular over other frameworks. Private registry stats would probably increase all numbers in equal proportions.",
+      "lang": "en",
+      "in_reply_to_user_id_str": "887912305"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949720497465339904"
+          ],
+          "editableUntil": "2018-01-06T20:13:06.206Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "12",
+              "21"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          },
+          {
+            "name": "Sebastian",
+            "screen_name": "sebmck",
+            "indices": [
+              "22",
+              "29"
+            ],
+            "id_str": "290549888",
+            "id": "290549888"
+          },
+          {
+            "name": "Moved to @jamiebuilds",
+            "screen_name": "thejameskyle",
+            "indices": [
+              "30",
+              "43"
+            ],
+            "id_str": "963017228940529665",
+            "id": "963017228940529665"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "119"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949700224674496512",
+      "id_str": "949720497465339904",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949720497465339904",
+      "in_reply_to_status_id": "949700224674496512",
+      "created_at": "Sat Jan 06 19:13:06 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @samccone @sebmck @thejameskyle All yarn downloads are from npm's servers so we already have yarn stats :-)",
+      "lang": "en",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949698901694545921"
+          ],
+          "editableUntil": "2018-01-06T18:47:17.373Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sam Saccone",
+            "screen_name": "samccone",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "17198118",
+            "id": "17198118"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "156"
+      ],
+      "favorite_count": "10",
+      "in_reply_to_status_id_str": "949697967023210496",
+      "id_str": "949698901694545921",
+      "in_reply_to_user_id": "17198118",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949698901694545921",
+      "in_reply_to_status_id": "949697967023210496",
+      "created_at": "Sat Jan 06 17:47:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@samccone I publicly acknowledged I made a mistake and promised to fix it when I am back from vacation which is Monday. People could be a little more chill.",
+      "lang": "en",
+      "in_reply_to_screen_name": "samccone",
+      "in_reply_to_user_id_str": "17198118"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949698253779382278"
+          ],
+          "editableUntil": "2018-01-06T18:44:42.898Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949674666049732608",
+      "id_str": "949698253779382278",
+      "in_reply_to_user_id": "14829286",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949698253779382278",
+      "in_reply_to_status_id": "949674666049732608",
+      "created_at": "Sat Jan 06 17:44:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@terronk A tuna of this size would require an enormous farm, tons of food, years to grow. I wonder if it's just fundamentally unsustainable.",
+      "lang": "en",
+      "in_reply_to_screen_name": "terronk",
+      "in_reply_to_user_id_str": "14829286"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949661632648458241"
+          ],
+          "editableUntil": "2018-01-06T16:19:11.740Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@cowperthwait@sfba.social",
+            "screen_name": "cowperthwait",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15583257",
+            "id": "15583257"
+          },
+          {
+            "name": "Adam Singer",
+            "screen_name": "AdamSinger",
+            "indices": [
+              "14",
+              "25"
+            ],
+            "id_str": "14031032",
+            "id": "14031032"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "44"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949660749948792832",
+      "id_str": "949661632648458241",
+      "in_reply_to_user_id": "15583257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949661632648458241",
+      "in_reply_to_status_id": "949660749948792832",
+      "created_at": "Sat Jan 06 15:19:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@cowperthwait @AdamSinger Dam, I already do.",
+      "lang": "en",
+      "in_reply_to_screen_name": "cowperthwait",
+      "in_reply_to_user_id_str": "15583257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949660438819618816"
+          ],
+          "editableUntil": "2018-01-06T16:14:27.109Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@cowperthwait@sfba.social",
+            "screen_name": "cowperthwait",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15583257",
+            "id": "15583257"
+          },
+          {
+            "name": "Adam Singer",
+            "screen_name": "AdamSinger",
+            "indices": [
+              "14",
+              "25"
+            ],
+            "id_str": "14031032",
+            "id": "14031032"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "62"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949659293090947072",
+      "id_str": "949660438819618816",
+      "in_reply_to_user_id": "15583257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949660438819618816",
+      "in_reply_to_status_id": "949659293090947072",
+      "created_at": "Sat Jan 06 15:14:27 +0000 2018",
+      "favorited": false,
+      "full_text": "@cowperthwait @AdamSinger Look, you can't buck this trend now.",
+      "lang": "en",
+      "in_reply_to_screen_name": "cowperthwait",
+      "in_reply_to_user_id_str": "15583257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949659115516669953"
+          ],
+          "editableUntil": "2018-01-06T16:09:11.609Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@cowperthwait@sfba.social",
+            "screen_name": "cowperthwait",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15583257",
+            "id": "15583257"
+          },
+          {
+            "name": "Adam Singer",
+            "screen_name": "AdamSinger",
+            "indices": [
+              "14",
+              "25"
+            ],
+            "id_str": "14031032",
+            "id": "14031032"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "92"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949658055922278400",
+      "id_str": "949659115516669953",
+      "in_reply_to_user_id": "15583257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949659115516669953",
+      "in_reply_to_status_id": "949658055922278400",
+      "created_at": "Sat Jan 06 15:09:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@cowperthwait @AdamSinger Don't worry about it, if I was annoyed I would have bridled at it.",
+      "lang": "en",
+      "in_reply_to_screen_name": "cowperthwait",
+      "in_reply_to_user_id_str": "15583257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949657702740910081"
+          ],
+          "editableUntil": "2018-01-06T16:03:34.777Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@cowperthwait@sfba.social",
+            "screen_name": "cowperthwait",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15583257",
+            "id": "15583257"
+          },
+          {
+            "name": "Adam Singer",
+            "screen_name": "AdamSinger",
+            "indices": [
+              "14",
+              "25"
+            ],
+            "id_str": "14031032",
+            "id": "14031032"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "40"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949656837304958979",
+      "id_str": "949657702740910081",
+      "in_reply_to_user_id": "15583257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949657702740910081",
+      "in_reply_to_status_id": "949656837304958979",
+      "created_at": "Sat Jan 06 15:03:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@cowperthwait @AdamSinger I canter even.",
+      "lang": "en",
+      "in_reply_to_screen_name": "cowperthwait",
+      "in_reply_to_user_id_str": "15583257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949656721059753984"
+          ],
+          "editableUntil": "2018-01-06T15:59:40.726Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@cowperthwait@sfba.social",
+            "screen_name": "cowperthwait",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15583257",
+            "id": "15583257"
+          },
+          {
+            "name": "Adam Singer",
+            "screen_name": "AdamSinger",
+            "indices": [
+              "14",
+              "25"
+            ],
+            "id_str": "14031032",
+            "id": "14031032"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949656238421192704",
+      "id_str": "949656721059753984",
+      "in_reply_to_user_id": "15583257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949656721059753984",
+      "in_reply_to_status_id": "949656238421192704",
+      "created_at": "Sat Jan 06 14:59:40 +0000 2018",
+      "favorited": false,
+      "full_text": "@cowperthwait @AdamSinger Whoa there.",
+      "lang": "en",
+      "in_reply_to_screen_name": "cowperthwait",
+      "in_reply_to_user_id_str": "15583257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949656635009515520"
+          ],
+          "editableUntil": "2018-01-06T15:59:20.210Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "101"
+      ],
+      "favorite_count": "51",
+      "id_str": "949656635009515520",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "949656635009515520",
+      "created_at": "Sat Jan 06 14:59:20 +0000 2018",
+      "favorited": false,
+      "full_text": "Nothing says \"like, really smart\" like being unable to come up with an adjective meaning \"extremely\".",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949656157576093696"
+          ],
+          "editableUntil": "2018-01-06T15:57:26.381Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@cowperthwait@sfba.social",
+            "screen_name": "cowperthwait",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "15583257",
+            "id": "15583257"
+          },
+          {
+            "name": "Adam Singer",
+            "screen_name": "AdamSinger",
+            "indices": [
+              "14",
+              "25"
+            ],
+            "id_str": "14031032",
+            "id": "14031032"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "57"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949655846077718528",
+      "id_str": "949656157576093696",
+      "in_reply_to_user_id": "15583257",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949656157576093696",
+      "in_reply_to_status_id": "949655846077718528",
+      "created_at": "Sat Jan 06 14:57:26 +0000 2018",
+      "favorited": false,
+      "full_text": "@cowperthwait @AdamSinger It's time to rein this in, Jon.",
+      "lang": "en",
+      "in_reply_to_screen_name": "cowperthwait",
+      "in_reply_to_user_id_str": "15583257"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949653889485127681"
+          ],
+          "editableUntil": "2018-01-06T15:48:25.626Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "42"
+      ],
+      "favorite_count": "58",
+      "id_str": "949653889485127681",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949653889485127681",
+      "created_at": "Sat Jan 06 14:48:25 +0000 2018",
+      "favorited": false,
+      "full_text": "I regret to inform you that the president.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949649580022382592"
+          ],
+          "editableUntil": "2018-01-06T15:31:18.170Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Donald J. Trump",
+            "screen_name": "realDonaldTrump",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "25073877",
+            "id": "25073877"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "89"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949619270631256064",
+      "id_str": "949649580022382592",
+      "in_reply_to_user_id": "25073877",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949649580022382592",
+      "in_reply_to_status_id": "949619270631256064",
+      "created_at": "Sat Jan 06 14:31:18 +0000 2018",
+      "favorited": false,
+      "full_text": "@realDonaldTrump It wasn't your first try, you've been trying to get nominated for years.",
+      "lang": "en",
+      "in_reply_to_screen_name": "realDonaldTrump",
+      "in_reply_to_user_id_str": "25073877"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949649300220346368"
+          ],
+          "editableUntil": "2018-01-06T15:30:11.460Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Donald J. Trump",
+            "screen_name": "realDonaldTrump",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "25073877",
+            "id": "25073877"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "949616329463615489",
+      "id_str": "949649300220346368",
+      "in_reply_to_user_id": "25073877",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949649300220346368",
+      "in_reply_to_status_id": "949616329463615489",
+      "created_at": "Sat Jan 06 14:30:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@realDonaldTrump Proven by who, when? That's not proven at all. There's tons of evidence your campaign collaborated with Russia.",
+      "lang": "en",
+      "in_reply_to_screen_name": "realDonaldTrump",
+      "in_reply_to_user_id_str": "25073877"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949544738012545025"
+          ],
+          "editableUntil": "2018-01-06T08:34:41.887Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "keith kurson",
+            "screen_name": "keithkurson",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "3285511",
+            "id": "3285511"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "47"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "949544627215876097",
+      "id_str": "949544738012545025",
+      "in_reply_to_user_id": "3285511",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949544738012545025",
+      "in_reply_to_status_id": "949544627215876097",
+      "created_at": "Sat Jan 06 07:34:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@keithkurson Stop negating my self-image Keith.",
+      "lang": "en",
+      "in_reply_to_screen_name": "keithkurson",
+      "in_reply_to_user_id_str": "3285511"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949544110108557312"
+          ],
+          "editableUntil": "2018-01-06T08:32:12.183Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949544110108557312/photo/1",
+            "indices": [
+              "12",
+              "35"
+            ],
+            "url": "https://t.co/ETpv8ZEtJS",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DS11UAmU0AMZ9cO.jpg",
+            "id_str": "949544083063623683",
+            "id": "949544083063623683",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DS11UAmU0AMZ9cO.jpg",
+            "sizes": {
+              "small": {
+                "w": "500",
+                "h": "204",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "500",
+                "h": "204",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "500",
+                "h": "204",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/ETpv8ZEtJS"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "25",
+      "in_reply_to_status_id_str": "949544063056752640",
+      "id_str": "949544110108557312",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949544110108557312",
+      "in_reply_to_status_id": "949544063056752640",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 06 07:32:12 +0000 2018",
+      "favorited": false,
+      "full_text": "Me in 2018: https://t.co/ETpv8ZEtJS",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949544110108557312/photo/1",
+            "indices": [
+              "12",
+              "35"
+            ],
+            "url": "https://t.co/ETpv8ZEtJS",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DS11UAmU0AMZ9cO.jpg",
+            "id_str": "949544083063623683",
+            "video_info": {
+              "aspect_ratio": [
+                "125",
+                "51"
+              ],
+              "variants": [
+                {
+                  "bitrate": "0",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/tweet_video/DS11UAmU0AMZ9cO.mp4"
+                }
+              ]
+            },
+            "id": "949544083063623683",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DS11UAmU0AMZ9cO.jpg",
+            "sizes": {
+              "small": {
+                "w": "500",
+                "h": "204",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "500",
+                "h": "204",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "500",
+                "h": "204",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "animated_gif",
+            "display_url": "pic.twitter.com/ETpv8ZEtJS"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949544063056752640"
+          ],
+          "editableUntil": "2018-01-06T08:32:00.965Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949544063056752640/photo/1",
+            "indices": [
+              "12",
+              "35"
+            ],
+            "url": "https://t.co/PUMO1bnn2L",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DS11RLFVoAE3e3F.jpg",
+            "id_str": "949544034338447361",
+            "id": "949544034338447361",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DS11RLFVoAE3e3F.jpg",
+            "sizes": {
+              "medium": {
+                "w": "500",
+                "h": "214",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "500",
+                "h": "214",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "500",
+                "h": "214",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/PUMO1bnn2L"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "35"
+      ],
+      "favorite_count": "17",
+      "id_str": "949544063056752640",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949544063056752640",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 06 07:32:00 +0000 2018",
+      "favorited": false,
+      "full_text": "Me in 2017: https://t.co/PUMO1bnn2L",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949544063056752640/photo/1",
+            "indices": [
+              "12",
+              "35"
+            ],
+            "url": "https://t.co/PUMO1bnn2L",
+            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DS11RLFVoAE3e3F.jpg",
+            "id_str": "949544034338447361",
+            "video_info": {
+              "aspect_ratio": [
+                "250",
+                "107"
+              ],
+              "variants": [
+                {
+                  "bitrate": "0",
+                  "content_type": "video/mp4",
+                  "url": "https://video.twimg.com/tweet_video/DS11RLFVoAE3e3F.mp4"
+                }
+              ]
+            },
+            "id": "949544034338447361",
+            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DS11RLFVoAE3e3F.jpg",
+            "sizes": {
+              "medium": {
+                "w": "500",
+                "h": "214",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "500",
+                "h": "214",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "500",
+                "h": "214",
+                "resize": "fit"
+              }
+            },
+            "type": "animated_gif",
+            "display_url": "pic.twitter.com/PUMO1bnn2L"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949525777061564424"
+          ],
+          "editableUntil": "2018-01-06T07:19:21.244Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🏳️‍🌈 Sam Kimbrel | @skimbrel@tech.lgbt",
+            "screen_name": "skimbrel",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "17934129",
+            "id": "17934129"
+          },
+          {
+            "name": "Ceej \"oh well\" Silverio",
+            "screen_name": "ceejbot",
+            "indices": [
+              "10",
+              "18"
+            ],
+            "id_str": "78663",
+            "id": "78663"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "119"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949525329961402369",
+      "id_str": "949525777061564424",
+      "in_reply_to_user_id": "17934129",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949525777061564424",
+      "in_reply_to_status_id": "949525329961402369",
+      "created_at": "Sat Jan 06 06:19:21 +0000 2018",
+      "favorited": false,
+      "full_text": "@skimbrel @ceejbot It's quite readable if you enjoy gossip that makes Trump look like an idiot and I most certainly do.",
+      "lang": "en",
+      "in_reply_to_screen_name": "skimbrel",
+      "in_reply_to_user_id_str": "17934129"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949520967541211136"
+          ],
+          "editableUntil": "2018-01-06T07:00:14.565Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "not here anymore / @besha@goblin.camp",
+            "screen_name": "besha",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "14270043",
+            "id": "14270043"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "22"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949520788834598912",
+      "id_str": "949520967541211136",
+      "in_reply_to_user_id": "14270043",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949520967541211136",
+      "in_reply_to_status_id": "949520788834598912",
+      "created_at": "Sat Jan 06 06:00:14 +0000 2018",
+      "favorited": false,
+      "full_text": "@besha It me every day",
+      "lang": "en",
+      "in_reply_to_screen_name": "besha",
+      "in_reply_to_user_id_str": "14270043"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949515645263253510"
+          ],
+          "editableUntil": "2018-01-06T06:39:05.635Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rat king 🐀",
+            "screen_name": "MikeIsaac",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "19040598",
+            "id": "19040598"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "70"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "949515345169039360",
+      "id_str": "949515645263253510",
+      "in_reply_to_user_id": "19040598",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949515645263253510",
+      "in_reply_to_status_id": "949515345169039360",
+      "created_at": "Sat Jan 06 05:39:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@MikeIsaac I wish we would stop competing to be the best at bad ideas.",
+      "lang": "en",
+      "in_reply_to_screen_name": "MikeIsaac",
+      "in_reply_to_user_id_str": "19040598"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949515037923688448"
+          ],
+          "editableUntil": "2018-01-06T06:36:40.834Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rat king 🐀",
+            "screen_name": "MikeIsaac",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "19040598",
+            "id": "19040598"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "79"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "949512069392433152",
+      "id_str": "949515037923688448",
+      "in_reply_to_user_id": "19040598",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949515037923688448",
+      "in_reply_to_status_id": "949512069392433152",
+      "created_at": "Sat Jan 06 05:36:40 +0000 2018",
+      "favorited": false,
+      "full_text": "@MikeIsaac ...is there a need for a Coinbase competitor? Do we need that thing?",
+      "lang": "en",
+      "in_reply_to_screen_name": "MikeIsaac",
+      "in_reply_to_user_id_str": "19040598"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949514437169500160"
+          ],
+          "editableUntil": "2018-01-06T06:34:17.603Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kassian Wren",
+            "screen_name": "nodebotanist",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "31204696",
+            "id": "31204696"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949513147479621632",
+      "id_str": "949514437169500160",
+      "in_reply_to_user_id": "31204696",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949514437169500160",
+      "in_reply_to_status_id": "949513147479621632",
+      "created_at": "Sat Jan 06 05:34:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@nodebotanist Programming! *laugh track, theme music plays*",
+      "lang": "en",
+      "in_reply_to_screen_name": "nodebotanist",
+      "in_reply_to_user_id_str": "31204696"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949512695065317376"
+          ],
+          "editableUntil": "2018-01-06T06:27:22.253Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "is_author_jack",
+            "screen_name": "developerjack",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "969275161",
+            "id": "969275161"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949451992614649856",
+      "id_str": "949512695065317376",
+      "in_reply_to_user_id": "969275161",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949512695065317376",
+      "in_reply_to_status_id": "949451992614649856",
+      "created_at": "Sat Jan 06 05:27:22 +0000 2018",
+      "favorited": false,
+      "full_text": "@developerjack They have a monopoly on routes in the Caribbean :-(",
+      "lang": "en",
+      "in_reply_to_screen_name": "developerjack",
+      "in_reply_to_user_id_str": "969275161"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949512484267986944"
+          ],
+          "editableUntil": "2018-01-06T06:26:31.995Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "85"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949511609369669637",
+      "id_str": "949512484267986944",
+      "in_reply_to_user_id": "2198738964",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949512484267986944",
+      "in_reply_to_status_id": "949511609369669637",
+      "created_at": "Sat Jan 06 05:26:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@_ugotsoul For a political book being loudly denounced is better than an ad campaign.",
+      "lang": "en",
+      "in_reply_to_screen_name": "u_got_soul",
+      "in_reply_to_user_id_str": "2198738964"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949510138771189760"
+          ],
+          "editableUntil": "2018-01-06T06:17:12.785Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/w9OsdDGY2S",
+            "expanded_url": "https://twitter.com/realdonaldtrump/status/949498795074736129",
+            "display_url": "twitter.com/realdonaldtrum…",
+            "indices": [
+              "44",
+              "67"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "67"
+      ],
+      "favorite_count": "40",
+      "id_str": "949510138771189760",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "949510138771189760",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 06 05:17:12 +0000 2018",
+      "favorited": false,
+      "full_text": "This book is going to sell infinity copies. https://t.co/w9OsdDGY2S",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949510129828888576"
+          ],
+          "editableUntil": "2018-01-06T06:17:10.653Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zeke Sikelianos",
+            "screen_name": "zeke",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "2157621",
+            "id": "2157621"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "10"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949499914844758016",
+      "id_str": "949510129828888576",
+      "in_reply_to_user_id": "2157621",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949510129828888576",
+      "in_reply_to_status_id": "949499914844758016",
+      "created_at": "Sat Jan 06 05:17:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@zeke CJ 🙂",
+      "lang": "und",
+      "in_reply_to_screen_name": "zeke",
+      "in_reply_to_user_id_str": "2157621"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949466726240018432"
+          ],
+          "editableUntil": "2018-01-06T03:24:42.431Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "203"
+      ],
+      "favorite_count": "12",
+      "in_reply_to_status_id_str": "949464483218550785",
+      "id_str": "949466726240018432",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949466726240018432",
+      "in_reply_to_status_id": "949464483218550785",
+      "created_at": "Sat Jan 06 02:24:42 +0000 2018",
+      "favorited": false,
+      "full_text": "Policy making with Trump was “like trying to figure out what a child wants”. People would make policies, show them to Trump and see if he liked them, then convince him he’d come up with the idea himself.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949464483218550785"
+          ],
+          "editableUntil": "2018-01-06T03:15:47.653Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "238"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "949458087982829568",
+      "id_str": "949464483218550785",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949464483218550785",
+      "in_reply_to_status_id": "949458087982829568",
+      "created_at": "Sat Jan 06 02:15:47 +0000 2018",
+      "favorited": false,
+      "full_text": "“Everybody strove to be in every meeting ... Bannon invariably round some reason to study papers in the corner ... Priebus kept his eye on Bannon; Kushner kept his eye on both.” Hicks, Conway and Omarosa were also in nearly every meeting.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949458087982829568"
+          ],
+          "editableUntil": "2018-01-06T02:50:22.910Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "76"
+      ],
+      "favorite_count": "10",
+      "in_reply_to_status_id_str": "949457333289209858",
+      "id_str": "949458087982829568",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949458087982829568",
+      "in_reply_to_status_id": "949457333289209858",
+      "created_at": "Sat Jan 06 01:50:22 +0000 2018",
+      "favorited": false,
+      "full_text": "Trump on how the media is unfair to him: “my exaggerations are exaggerated.”",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949457333289209858"
+          ],
+          "editableUntil": "2018-01-06T02:47:22.977Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "246"
+      ],
+      "favorite_count": "31",
+      "in_reply_to_status_id_str": "949445786483425282",
+      "id_str": "949457333289209858",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949457333289209858",
+      "in_reply_to_status_id": "949445786483425282",
+      "created_at": "Sat Jan 06 01:47:22 +0000 2018",
+      "favorited": false,
+      "full_text": "The book makes pretty interesting case that the media’s obsession with taking down Trump is partly driven by self-loathing that they created him in the first place. It’s a surprisingly nuanced take given the gossipy tenor of the rest of the book.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949456763484606465"
+          ],
+          "editableUntil": "2018-01-06T02:45:07.125Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Daniel Bond",
+            "screen_name": "danielwbond",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "2437305636",
+            "id": "2437305636"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "39"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949451797868920832",
+      "id_str": "949456763484606465",
+      "in_reply_to_user_id": "2437305636",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949456763484606465",
+      "in_reply_to_status_id": "949451797868920832",
+      "created_at": "Sat Jan 06 01:45:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@danielwbond I took a break for dinner.",
+      "lang": "en",
+      "in_reply_to_screen_name": "danielwbond",
+      "in_reply_to_user_id_str": "2437305636"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949451749152251904"
+          ],
+          "editableUntil": "2018-01-06T02:25:11.615Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "33"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949451359690088448",
+      "id_str": "949451749152251904",
+      "in_reply_to_user_id": "14789935",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949451749152251904",
+      "in_reply_to_status_id": "949451359690088448",
+      "created_at": "Sat Jan 06 01:25:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@brkattk No this is just a thing.",
+      "lang": "en",
+      "in_reply_to_screen_name": "erkattak",
+      "in_reply_to_user_id_str": "14789935"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949451551717953536"
+          ],
+          "editableUntil": "2018-01-06T02:24:24.543Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Patriotic Vet Meagan",
+            "screen_name": "1981meagan",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "26657087",
+            "id": "26657087"
+          },
+          {
+            "name": "Rain_nxght",
+            "screen_name": "NxghtRain",
+            "indices": [
+              "12",
+              "22"
+            ],
+            "id_str": "1434550318805577731",
+            "id": "1434550318805577731"
+          },
+          {
+            "name": "Target",
+            "screen_name": "Target",
+            "indices": [
+              "23",
+              "30"
+            ],
+            "id_str": "89084561",
+            "id": "89084561"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "83"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949333574846767104",
+      "id_str": "949451551717953536",
+      "in_reply_to_user_id": "26657087",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949451551717953536",
+      "in_reply_to_status_id": "949333574846767104",
+      "created_at": "Sat Jan 06 01:24:24 +0000 2018",
+      "favorited": false,
+      "full_text": "@1981meagan @NxghTrain @Target Trans people exist, Megun. You can’t wish them away.",
+      "lang": "en",
+      "in_reply_to_screen_name": "1981meagan",
+      "in_reply_to_user_id_str": "26657087"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949450979388329985"
+          ],
+          "editableUntil": "2018-01-06T02:22:08.089Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "246"
+      ],
+      "favorite_count": "36",
+      "id_str": "949450979388329985",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "949450979388329985",
+      "created_at": "Sat Jan 06 01:22:08 +0000 2018",
+      "favorited": false,
+      "full_text": "A malignant growth hacker has been at work at American Airlines. There is an obnoxious, live informercial spoken by cabin crew for their credit card on every flight, and the seat-back screen runs a video ad before it will give you the flight map.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949445786483425282"
+          ],
+          "editableUntil": "2018-01-06T02:01:30.004Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "151"
+      ],
+      "favorite_count": "10",
+      "in_reply_to_status_id_str": "949445384912494592",
+      "id_str": "949445786483425282",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949445786483425282",
+      "in_reply_to_status_id": "949445384912494592",
+      "created_at": "Sat Jan 06 01:01:30 +0000 2018",
+      "favorited": false,
+      "full_text": "Trump’s bedroom has 3 tv screens and by 6.30 if he’s not having dinner with Steve Bannon he’s in bed with a cheeseburger making phone calls to friends.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949445384912494592"
+          ],
+          "editableUntil": "2018-01-06T01:59:54.262Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "136"
+      ],
+      "favorite_count": "10",
+      "in_reply_to_status_id_str": "949392504650194946",
+      "id_str": "949445384912494592",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949445384912494592",
+      "in_reply_to_status_id": "949392504650194946",
+      "created_at": "Sat Jan 06 00:59:54 +0000 2018",
+      "favorited": false,
+      "full_text": "The book portrays Jared as a rich kid supremely unaware of his own privilege, oblivious to how out of touch he is with the normal world.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949444958964068352"
+          ],
+          "editableUntil": "2018-01-06T01:58:12.708Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "@chaosmonster@mastodon.online (Martin)",
+            "screen_name": "chaos_monster",
+            "indices": [
+              "12",
+              "26"
+            ],
+            "id_str": "268960747",
+            "id": "268960747"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "94"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949441934782742529",
+      "id_str": "949444958964068352",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949444958964068352",
+      "in_reply_to_status_id": "949441934782742529",
+      "created_at": "Sat Jan 06 00:58:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @chaos_monster If you have some numbers on how many I would be interested to know.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949441780658909185"
+          ],
+          "editableUntil": "2018-01-06T01:45:34.941Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          },
+          {
+            "name": "Grindr",
+            "screen_name": "Grindr",
+            "indices": [
+              "13",
+              "20"
+            ],
+            "id_str": "28549816",
+            "id": "28549816"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "65"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949441575444103168",
+      "id_str": "949441780658909185",
+      "in_reply_to_user_id": "69426451",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949441780658909185",
+      "in_reply_to_status_id": "949441575444103168",
+      "created_at": "Sat Jan 06 00:45:34 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseyNewton @Grindr Wow, Grindr is a lot smaller than I thought.",
+      "lang": "en",
+      "in_reply_to_screen_name": "CaseyNewton",
+      "in_reply_to_user_id_str": "69426451"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949441560562847744"
+          ],
+          "editableUntil": "2018-01-06T01:44:42.466Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zeke Sikelianos",
+            "screen_name": "zeke",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "2157621",
+            "id": "2157621"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "63"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949440019206254593",
+      "id_str": "949441560562847744",
+      "in_reply_to_user_id": "2157621",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949441560562847744",
+      "in_reply_to_status_id": "949440019206254593",
+      "created_at": "Sat Jan 06 00:44:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@zeke I honestly can’t remember for sure, but I don’t think so.",
+      "lang": "en",
+      "in_reply_to_screen_name": "zeke",
+      "in_reply_to_user_id_str": "2157621"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949441386004262913"
+          ],
+          "editableUntil": "2018-01-06T01:44:00.848Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          },
+          {
+            "name": "Grindr",
+            "screen_name": "Grindr",
+            "indices": [
+              "13",
+              "20"
+            ],
+            "id_str": "28549816",
+            "id": "28549816"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/VaIUcrALxQ",
+            "expanded_url": "https://www.advocate.com/love-and-sex/2016/3/17/chinese-gays-have-grindr-little-else",
+            "display_url": "advocate.com/love-and-sex/2…",
+            "indices": [
+              "81",
+              "104"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "104"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "949439450597113856",
+      "id_str": "949441386004262913",
+      "in_reply_to_user_id": "69426451",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "949441386004262913",
+      "in_reply_to_status_id": "949439450597113856",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 06 00:44:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseyNewton @Grindr TIL Grindr is not even the biggest gay dating app in China: https://t.co/VaIUcrALxQ",
+      "lang": "en",
+      "in_reply_to_screen_name": "CaseyNewton",
+      "in_reply_to_user_id_str": "69426451"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949439249698476032"
+          ],
+          "editableUntil": "2018-01-06T01:35:31.513Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          },
+          {
+            "name": "Grindr",
+            "screen_name": "Grindr",
+            "indices": [
+              "13",
+              "20"
+            ],
+            "id_str": "28549816",
+            "id": "28549816"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "70"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "949438480379101185",
+      "id_str": "949439249698476032",
+      "in_reply_to_user_id": "69426451",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949439249698476032",
+      "in_reply_to_status_id": "949438480379101185",
+      "created_at": "Sat Jan 06 00:35:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseyNewton @Grindr This was and continues to be such a strange deal.",
+      "lang": "en",
+      "in_reply_to_screen_name": "CaseyNewton",
+      "in_reply_to_user_id_str": "69426451"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949438954645966850"
+          ],
+          "editableUntil": "2018-01-06T01:34:21.167Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/2k5B18BEXt",
+            "expanded_url": "https://twitter.com/tompodolec/status/949429223642554371",
+            "display_url": "twitter.com/tompodolec/sta…",
+            "indices": [
+              "7",
+              "30"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "30"
+      ],
+      "favorite_count": "5",
+      "id_str": "949438954645966850",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949438954645966850",
+      "possibly_sensitive": false,
+      "created_at": "Sat Jan 06 00:34:21 +0000 2018",
+      "favorited": false,
+      "full_text": "Yikes. https://t.co/2k5B18BEXt",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949437415529250816"
+          ],
+          "editableUntil": "2018-01-06T01:28:14.213Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "BenEncodes",
+            "screen_name": "BenEncodes",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "1065837607735545857",
+            "id": "1065837607735545857"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "27"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949436313064783872",
+      "id_str": "949437415529250816",
+      "in_reply_to_user_id": "154189594",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949437415529250816",
+      "in_reply_to_status_id": "949436313064783872",
+      "created_at": "Sat Jan 06 00:28:14 +0000 2018",
+      "favorited": false,
+      "full_text": "@BenEncodes Get his number.",
+      "lang": "en",
+      "in_reply_to_screen_name": "tandemNuclei",
+      "in_reply_to_user_id_str": "154189594"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949429322208759813"
+          ],
+          "editableUntil": "2018-01-06T00:56:04.615Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "11",
+              "22"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "23",
+              "29"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "210"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949425628599562240",
+      "id_str": "949429322208759813",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949429322208759813",
+      "in_reply_to_status_id": "949425628599562240",
+      "created_at": "Fri Jan 05 23:56:04 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @jeffbcross @npmjs From a glance at the numbers for the ng2 package I think the size will increase but the trend will probably be unchanged, FYI. I need to plug the numbers into the graph to be sure.",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949428537634820096"
+          ],
+          "editableUntil": "2018-01-06T00:52:57.558Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sam Pullara",
+            "screen_name": "sampullara",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "668473",
+            "id": "668473"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "18"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949425032744255488",
+      "id_str": "949428537634820096",
+      "in_reply_to_user_id": "668473",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949428537634820096",
+      "in_reply_to_status_id": "949425032744255488",
+      "created_at": "Fri Jan 05 23:52:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@sampullara Oh my.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sampullara",
+      "in_reply_to_user_id_str": "668473"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949421926207934465"
+          ],
+          "editableUntil": "2018-01-06T00:26:41.271Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Igor Minar",
+            "screen_name": "IgorMinar",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "8300112",
+            "id": "8300112"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "11",
+              "22"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "23",
+              "29"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "98"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949418685747183616",
+      "id_str": "949421926207934465",
+      "in_reply_to_user_id": "8300112",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949421926207934465",
+      "in_reply_to_status_id": "949418685747183616",
+      "created_at": "Fri Jan 05 23:26:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@IgorMinar @jeffbcross @npmjs I’m about to be on a plane for six hours but I’ll see what I can do.",
+      "lang": "en",
+      "in_reply_to_screen_name": "IgorMinar",
+      "in_reply_to_user_id_str": "8300112"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949396196329738240"
+          ],
+          "editableUntil": "2018-01-05T22:44:26.790Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@schuyler@metasocial.com",
+            "screen_name": "schuyler",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "745213",
+            "id": "745213"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949378979584139264",
+      "id_str": "949396196329738240",
+      "in_reply_to_user_id": "745213",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949396196329738240",
+      "in_reply_to_status_id": "949378979584139264",
+      "created_at": "Fri Jan 05 21:44:26 +0000 2018",
+      "favorited": false,
+      "full_text": "@schuyler In fairness it was never able to do that.",
+      "lang": "en",
+      "in_reply_to_screen_name": "schuyler",
+      "in_reply_to_user_id_str": "745213"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949392504650194946"
+          ],
+          "editableUntil": "2018-01-05T22:29:46.625Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "194"
+      ],
+      "favorite_count": "13",
+      "in_reply_to_status_id_str": "949372290965393409",
+      "id_str": "949392504650194946",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949392504650194946",
+      "in_reply_to_status_id": "949372290965393409",
+      "created_at": "Fri Jan 05 21:29:46 +0000 2018",
+      "favorited": false,
+      "full_text": "A former competitor on Bannon: \"He's mean, dishonest, and incapable of caring about other people. His eyes dart around like he's always looking for a weapon with which to bludgeon or gouge you.\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949385988685664256"
+          ],
+          "editableUntil": "2018-01-05T22:03:53.098Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Allie Richards",
+            "screen_name": "hpuxgirl",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "712444010950832128",
+            "id": "712444010950832128"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "23"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949385837111889920",
+      "id_str": "949385988685664256",
+      "in_reply_to_user_id": "712444010950832128",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949385988685664256",
+      "in_reply_to_status_id": "949385837111889920",
+      "created_at": "Fri Jan 05 21:03:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@hpuxgirl It really is!",
+      "lang": "en",
+      "in_reply_to_screen_name": "hpuxgirl",
+      "in_reply_to_user_id_str": "712444010950832128"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949385096599101441"
+          ],
+          "editableUntil": "2018-01-05T22:00:20.408Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "",
+            "screen_name": "mspowahs",
+            "indices": [
+              "3",
+              "12"
+            ],
+            "id_str": "-1",
+            "id": "-1"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/7lNrn04mhC",
+            "expanded_url": "https://twitter.com/JennMUA/status/949050453974814720",
+            "display_url": "twitter.com/JennMUA/status…",
+            "indices": [
+              "71",
+              "94"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "94"
+      ],
+      "favorite_count": "0",
+      "id_str": "949385096599101441",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949385096599101441",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 05 21:00:20 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @mspowahs: Pictured: the difference between diversity and inclusion https://t.co/7lNrn04mhC",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949379707086262272"
+          ],
+          "editableUntil": "2018-01-05T21:38:55.448Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Shlomi Ben Haim",
+            "screen_name": "ShlomiBenHaim",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "41995246",
+            "id": "41995246"
+          },
+          {
+            "name": "JBaruch 🎩",
+            "screen_name": "jbaruch",
+            "indices": [
+              "15",
+              "23"
+            ],
+            "id_str": "16887172",
+            "id": "16887172"
+          },
+          {
+            "name": "@chaosmonster@mastodon.online (Martin)",
+            "screen_name": "chaos_monster",
+            "indices": [
+              "24",
+              "38"
+            ],
+            "id_str": "268960747",
+            "id": "268960747"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "109"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949378481871179776",
+      "id_str": "949379707086262272",
+      "in_reply_to_user_id": "41995246",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949379707086262272",
+      "in_reply_to_status_id": "949378481871179776",
+      "created_at": "Fri Jan 05 20:38:55 +0000 2018",
+      "favorited": false,
+      "full_text": "@ShlomiBenHaim @jbaruch @chaos_monster Well then I sincerely apologize, we remember that meeting differently.",
+      "lang": "en",
+      "in_reply_to_screen_name": "ShlomiBenHaim",
+      "in_reply_to_user_id_str": "41995246"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949376136135561217"
+          ],
+          "editableUntil": "2018-01-05T21:24:44.067Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@aaronfriel@hachyderm.io",
+            "screen_name": "AaronFriel",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "184674078",
+            "id": "184674078"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "50"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949375560114896897",
+      "id_str": "949376136135561217",
+      "in_reply_to_user_id": "184674078",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949376136135561217",
+      "in_reply_to_status_id": "949375560114896897",
+      "created_at": "Fri Jan 05 20:24:44 +0000 2018",
+      "favorited": false,
+      "full_text": "@AaronFriel You are quite close on the second one.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AaronFriel",
+      "in_reply_to_user_id_str": "184674078"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949372290965393409"
+          ],
+          "editableUntil": "2018-01-05T21:09:27.307Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "94"
+      ],
+      "favorite_count": "29",
+      "in_reply_to_status_id_str": "949370019816886272",
+      "id_str": "949372290965393409",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "949372290965393409",
+      "in_reply_to_status_id": "949370019816886272",
+      "created_at": "Fri Jan 05 20:09:27 +0000 2018",
+      "favorited": false,
+      "full_text": "I don't often run into new words but this book has taught me two: \"hortatory\" and \"myrmidons\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949370019816886272"
+          ],
+          "editableUntil": "2018-01-05T21:00:25.823Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "230"
+      ],
+      "favorite_count": "23",
+      "in_reply_to_status_id_str": "949368643636342784",
+      "id_str": "949370019816886272",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949370019816886272",
+      "in_reply_to_status_id": "949368643636342784",
+      "created_at": "Fri Jan 05 20:00:25 +0000 2018",
+      "favorited": false,
+      "full_text": "\"If you fuck with the intel community,\" a senior republican warned Kushner, \"they will figure out a way to get back at you and you'll have two or three years of a Russian investigation, and every day something else will leak out.\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949368643636342784"
+          ],
+          "editableUntil": "2018-01-05T20:54:57.716Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/68VS8vNWy2",
+            "expanded_url": "http://nymag.com/daily/intelligencer/2018/01/michael-wolff-fire-and-fury-book-donald-trump.html",
+            "display_url": "nymag.com/daily/intellig…",
+            "indices": [
+              "91",
+              "114"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "114"
+      ],
+      "favorite_count": "16",
+      "in_reply_to_status_id_str": "949359711010414593",
+      "id_str": "949368643636342784",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "949368643636342784",
+      "in_reply_to_status_id": "949359711010414593",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 05 19:54:57 +0000 2018",
+      "favorited": false,
+      "full_text": "A huge chunk of the best parts of this book are all in this article that I read yesterday: https://t.co/68VS8vNWy2",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949359711010414593"
+          ],
+          "editableUntil": "2018-01-05T20:19:28.012Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "238"
+      ],
+      "favorite_count": "21",
+      "in_reply_to_status_id_str": "949357052240986112",
+      "id_str": "949359711010414593",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "949359711010414593",
+      "in_reply_to_status_id": "949357052240986112",
+      "created_at": "Fri Jan 05 19:19:28 +0000 2018",
+      "favorited": false,
+      "full_text": "Trump attempts to persuade a friend and his model date to visit Atlantic City. The friend says Atlantic City is overrun by white trash.\n\"What is this 'white trash'?\" asks the model.\nTrump: \"They're people just like me, only they're poor.\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949357052240986112"
+          ],
+          "editableUntil": "2018-01-05T20:08:54.112Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "257"
+      ],
+      "favorite_count": "22",
+      "in_reply_to_status_id_str": "949343323759751168",
+      "id_str": "949357052240986112",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "949357052240986112",
+      "in_reply_to_status_id": "949343323759751168",
+      "created_at": "Fri Jan 05 19:08:54 +0000 2018",
+      "favorited": false,
+      "full_text": "First insight: the reason they were so dirty -- money from Russia, no tax returns, nobody vetted -- is because they never thought they were going to win. None of that stuff was a problem because it was a Potemkin campaign right up until the moment they won.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949349515131346946"
+          ],
+          "editableUntil": "2018-01-05T19:38:57.125Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rat king 🐀",
+            "screen_name": "MikeIsaac",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "19040598",
+            "id": "19040598"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "54"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "949348722948808705",
+      "id_str": "949349515131346946",
+      "in_reply_to_user_id": "19040598",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949349515131346946",
+      "in_reply_to_status_id": "949348722948808705",
+      "created_at": "Fri Jan 05 18:38:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@MikeIsaac I'm still gonna live tweet the book though.",
+      "lang": "en",
+      "in_reply_to_screen_name": "MikeIsaac",
+      "in_reply_to_user_id_str": "19040598"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949343323759751168"
+          ],
+          "editableUntil": "2018-01-05T19:14:20.987Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "195"
+      ],
+      "favorite_count": "36",
+      "in_reply_to_status_id_str": "949342507049078786",
+      "id_str": "949343323759751168",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "949343323759751168",
+      "in_reply_to_status_id": "949342507049078786",
+      "created_at": "Fri Jan 05 18:14:20 +0000 2018",
+      "favorited": false,
+      "full_text": "The magnitude of the fuckup the Trump administration made here can't be overstated. He treated every conversation as being on the record unless otherwise stated, and they never bothered to state.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949342507049078786"
+          ],
+          "editableUntil": "2018-01-05T19:11:06.268Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "263"
+      ],
+      "favorite_count": "69",
+      "in_reply_to_status_id_str": "949341884996079617",
+      "id_str": "949342507049078786",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "7",
+      "id": "949342507049078786",
+      "in_reply_to_status_id": "949341884996079617",
+      "created_at": "Fri Jan 05 18:11:06 +0000 2018",
+      "favorited": false,
+      "full_text": "Author's note, paraphrased: \"The White House was too disorganized to notice that I didn't really have permission to be there. Nobody remembered to lay down rules about what I could write, but everybody thought somebody else had, so they all spoke with no filter.\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949341884996079617"
+          ],
+          "editableUntil": "2018-01-05T19:08:37.959Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "157"
+      ],
+      "favorite_count": "64",
+      "in_reply_to_status_id_str": "949337475369132033",
+      "id_str": "949341884996079617",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "949341884996079617",
+      "in_reply_to_status_id": "949337475369132033",
+      "created_at": "Fri Jan 05 18:08:37 +0000 2018",
+      "favorited": false,
+      "full_text": "Oh you bet your ass I am live tweeting this book I am trapped in an airport with literally nothing better to do. Mute this thread or forever hold your peace.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949341548080238593"
+          ],
+          "editableUntil": "2018-01-05T19:07:17.632Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Josh Thomas @ ChainReact",
+            "screen_name": "jthoms1",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "15965108",
+            "id": "15965108"
+          },
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "9",
+              "20"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "21",
+              "27"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "162"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949338942737920001",
+      "id_str": "949341548080238593",
+      "in_reply_to_user_id": "15965108",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949341548080238593",
+      "in_reply_to_status_id": "949338942737920001",
+      "created_at": "Fri Jan 05 18:07:17 +0000 2018",
+      "favorited": false,
+      "full_text": "@jthoms1 @jeffbcross @npmjs Yes. Because every library is getting bigger in absolute terms, absolute growth is less meaningful in determining relative popularity.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jthoms1",
+      "in_reply_to_user_id_str": "15965108"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949337957546319877"
+          ],
+          "editableUntil": "2018-01-05T18:53:01.582Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "12",
+              "18"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "190"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949336829706186752",
+      "id_str": "949337957546319877",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949337957546319877",
+      "in_reply_to_status_id": "949336829706186752",
+      "created_at": "Fri Jan 05 17:53:01 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @npmjs That seems very much in line with my numbers. Share of registry is a metric it's taking everyone a while to get their head around. All absolute numbers go up all the time.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949337475369132033"
+          ],
+          "editableUntil": "2018-01-05T18:51:06.622Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "91"
+      ],
+      "favorite_count": "126",
+      "id_str": "949337475369132033",
+      "truncated": false,
+      "retweet_count": "9",
+      "id": "949337475369132033",
+      "created_at": "Fri Jan 05 17:51:06 +0000 2018",
+      "favorited": false,
+      "full_text": "I have a 5 hour layover and a piping hot copy of Fire and Fury on my kindle. Let's do this.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949335169617551360"
+          ],
+          "editableUntil": "2018-01-05T18:41:56.888Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "130"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "949332457156988928",
+      "id_str": "949335169617551360",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "949335169617551360",
+      "in_reply_to_status_id": "949332457156988928",
+      "created_at": "Fri Jan 05 17:41:56 +0000 2018",
+      "favorited": false,
+      "full_text": "One time my stuff went through the machine on a bootleg SecureTray and my luggage caught fire so I’m glad they’re locking it down.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949334841807593473"
+          ],
+          "editableUntil": "2018-01-05T18:40:38.732Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "117"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949333399738646531",
+      "id_str": "949334841807593473",
+      "in_reply_to_user_id": "102568309",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949334841807593473",
+      "in_reply_to_status_id": "949333399738646531",
+      "created_at": "Fri Jan 05 17:40:38 +0000 2018",
+      "favorited": false,
+      "full_text": "@_austinfrey I’m sure it won’t be in the least controversial! What back end frameworks would you hope to see covered?",
+      "lang": "en",
+      "in_reply_to_user_id_str": "102568309"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949334627361189888"
+          ],
+          "editableUntil": "2018-01-05T18:39:47.604Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jeff Cross",
+            "screen_name": "jeffbcross",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16616694",
+            "id": "16616694"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "12",
+              "18"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "147"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "949322892294041601",
+      "id_str": "949334627361189888",
+      "in_reply_to_user_id": "16616694",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949334627361189888",
+      "in_reply_to_status_id": "949322892294041601",
+      "created_at": "Fri Jan 05 17:39:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@jeffbcross @npmjs Yes, somebody already pointed this out. It’s only angular 1; I will update it to include angular 2 when I am back from vacation.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jeffbcross",
+      "in_reply_to_user_id_str": "16616694"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949332457156988928"
+          ],
+          "editableUntil": "2018-01-05T18:31:10.187Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949332457156988928/photo/1",
+            "indices": [
+              "158",
+              "181"
+            ],
+            "url": "https://t.co/Npyl2ibpBf",
+            "media_url": "http://pbs.twimg.com/media/DSy01L9U8AAzute.jpg",
+            "id_str": "949332447304413184",
+            "id": "949332447304413184",
+            "media_url_https": "https://pbs.twimg.com/media/DSy01L9U8AAzute.jpg",
+            "sizes": {
+              "large": {
+                "w": "2048",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/Npyl2ibpBf"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "181"
+      ],
+      "favorite_count": "4",
+      "id_str": "949332457156988928",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949332457156988928",
+      "possibly_sensitive": false,
+      "created_at": "Fri Jan 05 17:31:10 +0000 2018",
+      "favorited": false,
+      "full_text": "Rest easy, folks. The people who sell the government plastic trays to hold your stuff as it goes through the x-ray machine have registered it as a trademark. https://t.co/Npyl2ibpBf",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949332457156988928/photo/1",
+            "indices": [
+              "158",
+              "181"
+            ],
+            "url": "https://t.co/Npyl2ibpBf",
+            "media_url": "http://pbs.twimg.com/media/DSy01L9U8AAzute.jpg",
+            "id_str": "949332447304413184",
+            "id": "949332447304413184",
+            "media_url_https": "https://pbs.twimg.com/media/DSy01L9U8AAzute.jpg",
+            "sizes": {
+              "large": {
+                "w": "2048",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/Npyl2ibpBf"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949328167898030080"
+          ],
+          "editableUntil": "2018-01-05T18:14:07.548Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "JBaruch 🎩",
+            "screen_name": "jbaruch",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "16887172",
+            "id": "16887172"
+          },
+          {
+            "name": "@chaosmonster@mastodon.online (Martin)",
+            "screen_name": "chaos_monster",
+            "indices": [
+              "9",
+              "23"
+            ],
+            "id_str": "268960747",
+            "id": "268960747"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "71"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949327799743004672",
+      "id_str": "949328167898030080",
+      "in_reply_to_user_id": "16887172",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949328167898030080",
+      "in_reply_to_status_id": "949327799743004672",
+      "created_at": "Fri Jan 05 17:14:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@jbaruch @chaos_monster I mean the CEO of jFrog, makers of Artifactory.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jbaruch",
+      "in_reply_to_user_id_str": "16887172"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949327968756752384"
+          ],
+          "editableUntil": "2018-01-05T18:13:20.069Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@RickyRomero@mstdn.social",
+            "screen_name": "RickyRomero",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "6271872",
+            "id": "6271872"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "58"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949325116697067520",
+      "id_str": "949327968756752384",
+      "in_reply_to_user_id": "6271872",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949327968756752384",
+      "in_reply_to_status_id": "949325116697067520",
+      "created_at": "Fri Jan 05 17:13:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@RickyRomero I have applied! I may get it later this year.",
+      "lang": "en",
+      "in_reply_to_screen_name": "RickyRomero",
+      "in_reply_to_user_id_str": "6271872"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949324871657558016"
+          ],
+          "editableUntil": "2018-01-05T18:01:01.663Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Mikeal Rogers",
+            "screen_name": "mikeal",
+            "indices": [
+              "3",
+              "10"
+            ],
+            "id_str": "668423",
+            "id": "668423"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "949324871657558016",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949324871657558016",
+      "created_at": "Fri Jan 05 17:01:01 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @mikeal: Ripple creating rumors to inflate their price would only make sense if each rumor made them millions of dollars because their t…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949320624081686528"
+          ],
+          "editableUntil": "2018-01-05T17:44:08.962Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "19"
+      ],
+      "favorite_count": "49",
+      "in_reply_to_status_id_str": "949308418933837824",
+      "id_str": "949320624081686528",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949320624081686528",
+      "in_reply_to_status_id": "949308418933837824",
+      "created_at": "Fri Jan 05 16:44:08 +0000 2018",
+      "favorited": false,
+      "full_text": "They let me in! 🎉🎉🎉",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949320276520644610"
+          ],
+          "editableUntil": "2018-01-05T17:42:46.097Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "JBaruch 🎩",
+            "screen_name": "jbaruch",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "16887172",
+            "id": "16887172"
+          },
+          {
+            "name": "@chaosmonster@mastodon.online (Martin)",
+            "screen_name": "chaos_monster",
+            "indices": [
+              "9",
+              "23"
+            ],
+            "id_str": "268960747",
+            "id": "268960747"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "74"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949318530297556993",
+      "id_str": "949320276520644610",
+      "in_reply_to_user_id": "16887172",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949320276520644610",
+      "in_reply_to_status_id": "949318530297556993",
+      "created_at": "Fri Jan 05 16:42:46 +0000 2018",
+      "favorited": false,
+      "full_text": "@jbaruch @chaos_monster We met with the CEO of Artifactory and he told us.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jbaruch",
+      "in_reply_to_user_id_str": "16887172"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949319666534625280"
+          ],
+          "editableUntil": "2018-01-05T17:40:20.665Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949315964687998978",
+      "id_str": "949319666534625280",
+      "in_reply_to_user_id": "69426451",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949319666534625280",
+      "in_reply_to_status_id": "949315964687998978",
+      "created_at": "Fri Jan 05 16:40:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseyNewton A dangerous combination.",
+      "lang": "fr",
+      "in_reply_to_screen_name": "CaseyNewton",
+      "in_reply_to_user_id_str": "69426451"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949310990843301888"
+          ],
+          "editableUntil": "2018-01-05T17:05:52.219Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "michael",
+            "screen_name": "mpchlets",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1170686755",
+            "id": "1170686755"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "124"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949310367154475008",
+      "id_str": "949310990843301888",
+      "in_reply_to_user_id": "1170686755",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949310990843301888",
+      "in_reply_to_status_id": "949310367154475008",
+      "created_at": "Fri Jan 05 16:05:52 +0000 2018",
+      "favorited": false,
+      "full_text": "@mpchlets Houston decided that green card holders don't get to use the permanent residents line so I hate going via Houston.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mpchlets",
+      "in_reply_to_user_id_str": "1170686755"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949309707063316480"
+          ],
+          "editableUntil": "2018-01-05T17:00:46.142Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Andrew Betts",
+            "screen_name": "triblondon",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "7311232",
+            "id": "7311232"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949309600016183296",
+      "id_str": "949309707063316480",
+      "in_reply_to_user_id": "7311232",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949309707063316480",
+      "in_reply_to_status_id": "949309600016183296",
+      "created_at": "Fri Jan 05 16:00:46 +0000 2018",
+      "favorited": false,
+      "full_text": "@triblondon It is complicated to do mid-naturalization.",
+      "lang": "en",
+      "in_reply_to_screen_name": "triblondon",
+      "in_reply_to_user_id_str": "7311232"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949308418933837824"
+          ],
+          "editableUntil": "2018-01-05T16:55:39.028Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "22",
+      "id_str": "949308418933837824",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949308418933837824",
+      "created_at": "Fri Jan 05 15:55:39 +0000 2018",
+      "favorited": false,
+      "full_text": "I am on the ground in Miami, waiting for a gate. Commence gut-churning fear as to whether immigration will respect my green card or decide they hate me.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949307313776680961"
+          ],
+          "editableUntil": "2018-01-05T16:51:15.538Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sarah Drasner",
+            "screen_name": "sarah_edo",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "813333008",
+            "id": "813333008"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "112"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "949306705749291008",
+      "id_str": "949307313776680961",
+      "in_reply_to_user_id": "813333008",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949307313776680961",
+      "in_reply_to_status_id": "949306705749291008",
+      "created_at": "Fri Jan 05 15:51:15 +0000 2018",
+      "favorited": false,
+      "full_text": "@sarah_edo @_jwerner_ I've recently done a small project with nuxt.js (like next.js but Vue) and liked it a lot.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sarah_edo",
+      "in_reply_to_user_id_str": "813333008"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949304999103942656"
+          ],
+          "editableUntil": "2018-01-05T16:42:03.677Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@chaosmonster@mastodon.online (Martin)",
+            "screen_name": "chaos_monster",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "268960747",
+            "id": "268960747"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "121"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "949304606416408576",
+      "id_str": "949304999103942656",
+      "in_reply_to_user_id": "268960747",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949304999103942656",
+      "in_reply_to_status_id": "949304606416408576",
+      "created_at": "Fri Jan 05 15:42:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@chaos_monster I know roughly how many global users artifactory has and they are less than half a percent of npm's users.",
+      "lang": "en",
+      "in_reply_to_screen_name": "chaos_monster",
+      "in_reply_to_user_id_str": "268960747"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949304658849337347"
+          ],
+          "editableUntil": "2018-01-05T16:40:42.554Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Metaprompter 🇺🇦",
+            "screen_name": "metapgmr",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "216668208",
+            "id": "216668208"
+          },
+          {
+            "name": "☄︎",
+            "screen_name": "0xca0a",
+            "indices": [
+              "10",
+              "17"
+            ],
+            "id_str": "835209520200699909",
+            "id": "835209520200699909"
+          },
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "18",
+              "29"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          },
+          {
+            "name": "Jason Miller 🦊⚛",
+            "screen_name": "_developit",
+            "indices": [
+              "30",
+              "41"
+            ],
+            "id_str": "16495353",
+            "id": "16495353"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "252"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949259423150518272",
+      "id_str": "949304658849337347",
+      "in_reply_to_user_id": "216668208",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949304658849337347",
+      "in_reply_to_status_id": "949259423150518272",
+      "created_at": "Fri Jan 05 15:40:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@metapgmr @0xca0a @AdamRackis @_developit I'm sorry I left jQuery out of the time graph but I promise it was oversight and not malice. jQuery isn't really a framework, so I didn't include it in my first draft and forgot to include it in all the graphs.",
+      "lang": "en",
+      "in_reply_to_screen_name": "metapgmr",
+      "in_reply_to_user_id_str": "216668208"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949303976457134081"
+          ],
+          "editableUntil": "2018-01-05T16:37:59.859Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@chaosmonster@mastodon.online (Martin)",
+            "screen_name": "chaos_monster",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "268960747",
+            "id": "268960747"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "96"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949196335042957312",
+      "id_str": "949303976457134081",
+      "in_reply_to_user_id": "268960747",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949303976457134081",
+      "in_reply_to_status_id": "949196335042957312",
+      "created_at": "Fri Jan 05 15:37:59 +0000 2018",
+      "favorited": false,
+      "full_text": "@chaos_monster They aren't, but that usage is pretty negligible relative to the global registry.",
+      "lang": "en",
+      "in_reply_to_screen_name": "chaos_monster",
+      "in_reply_to_user_id_str": "268960747"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949303810094182401"
+          ],
+          "editableUntil": "2018-01-05T16:37:20.195Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kevin Marks 🏠kevinmarks.com xoxo.zone/@KevinMarks",
+            "screen_name": "kevinmarks",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "57203",
+            "id": "57203"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "36"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949245065867689984",
+      "id_str": "949303810094182401",
+      "in_reply_to_user_id": "57203",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949303810094182401",
+      "in_reply_to_status_id": "949245065867689984",
+      "created_at": "Fri Jan 05 15:37:20 +0000 2018",
+      "favorited": false,
+      "full_text": "@kevinmarks An editing oversight :-)",
+      "lang": "en",
+      "in_reply_to_screen_name": "kevinmarks",
+      "in_reply_to_user_id_str": "57203"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949111158140792837"
+          ],
+          "editableUntil": "2018-01-05T03:51:48.390Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "156"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949110931967049728",
+      "id_str": "949111158140792837",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949111158140792837",
+      "in_reply_to_status_id": "949110931967049728",
+      "created_at": "Fri Jan 05 02:51:48 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZChapple @robwormald (We always stored stats for scoped packages, we just didn't have a way to safely share them until recently as some scopes are private)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949110931967049728"
+          ],
+          "editableUntil": "2018-01-05T03:50:54.466Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Zed Chapple",
+            "screen_name": "ZChapple",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1290959646505594880",
+            "id": "1290959646505594880"
+          },
+          {
+            "name": "robwormald",
+            "screen_name": "robwormald",
+            "indices": [
+              "10",
+              "21"
+            ],
+            "id_str": "14103865",
+            "id": "14103865"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "150"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "949086540818509824",
+      "id_str": "949110931967049728",
+      "in_reply_to_user_id": "887912305",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949110931967049728",
+      "in_reply_to_status_id": "949086540818509824",
+      "created_at": "Fri Jan 05 02:50:54 +0000 2018",
+      "favorited": false,
+      "full_text": "@ZChapple @robwormald These stats are for 'angular'. If I should have been combining angular with @angular/core that's a big mistake I should correct!",
+      "lang": "en",
+      "in_reply_to_user_id_str": "887912305"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949052757247438848"
+          ],
+          "editableUntil": "2018-01-04T23:59:44.532Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jason Miller 🦊⚛",
+            "screen_name": "_developit",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "16495353",
+            "id": "16495353"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "69"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949051309637894144",
+      "id_str": "949052757247438848",
+      "in_reply_to_user_id": "16495353",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949052757247438848",
+      "in_reply_to_status_id": "949051309637894144",
+      "created_at": "Thu Jan 04 22:59:44 +0000 2018",
+      "favorited": false,
+      "full_text": "@_developit Downloads as a percentage of all downloads, per the post.",
+      "lang": "en",
+      "in_reply_to_screen_name": "_developit",
+      "in_reply_to_user_id_str": "16495353"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949052535125544961"
+          ],
+          "editableUntil": "2018-01-04T23:58:51.574Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "📦🛠👷🏻‍♂️Sean Larkin",
+            "screen_name": "TheLarkInn",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "17607249",
+            "id": "17607249"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "29"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949048491354898432",
+      "id_str": "949052535125544961",
+      "in_reply_to_user_id": "17607249",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949052535125544961",
+      "in_reply_to_status_id": "949048491354898432",
+      "created_at": "Thu Jan 04 22:58:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@TheLarkInn Coming in part 3!",
+      "lang": "en",
+      "in_reply_to_screen_name": "TheLarkInn",
+      "in_reply_to_user_id_str": "17607249"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949047131356237824"
+          ],
+          "editableUntil": "2018-01-04T23:37:23.215Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Olivia Computer",
+            "screen_name": "oliviacpu",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "861116848686809088",
+            "id": "861116848686809088"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "19"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949045082623066112",
+      "id_str": "949047131356237824",
+      "in_reply_to_user_id": "861116848686809088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949047131356237824",
+      "in_reply_to_status_id": "949045082623066112",
+      "created_at": "Thu Jan 04 22:37:23 +0000 2018",
+      "favorited": false,
+      "full_text": "@oliviacpu *hearts*",
+      "lang": "en",
+      "in_reply_to_screen_name": "oliviacpu",
+      "in_reply_to_user_id_str": "861116848686809088"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949046936228810752"
+          ],
+          "editableUntil": "2018-01-04T23:36:36.693Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "171"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "949040322167877632",
+      "id_str": "949046936228810752",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949046936228810752",
+      "in_reply_to_status_id": "949040322167877632",
+      "created_at": "Thu Jan 04 22:36:36 +0000 2018",
+      "favorited": false,
+      "full_text": "Growing up, the green flash was a mythical thing like Santa Claus that everybody talked about but you doubted was real. The first time I saw it I was very, very surprised.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949046410439208960"
+          ],
+          "editableUntil": "2018-01-04T23:34:31.335Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Rob Marquardt @sometoast@mstdn.social",
+            "screen_name": "someToast",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "669033",
+            "id": "669033"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "92"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949044986858762240",
+      "id_str": "949046410439208960",
+      "in_reply_to_user_id": "669033",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949046410439208960",
+      "in_reply_to_status_id": "949044986858762240",
+      "created_at": "Thu Jan 04 22:34:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@someToast It’s only the second time for me and I grew up in the tropics looking at sunsets.",
+      "lang": "en",
+      "in_reply_to_screen_name": "someToast",
+      "in_reply_to_user_id_str": "669033"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949044628887662592"
+          ],
+          "editableUntil": "2018-01-04T23:27:26.580Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "dtex@fosstodon.org",
+            "screen_name": "dtex",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "12980562",
+            "id": "12980562"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "71"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949044397118771200",
+      "id_str": "949044628887662592",
+      "in_reply_to_user_id": "12980562",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949044628887662592",
+      "in_reply_to_status_id": "949044397118771200",
+      "created_at": "Thu Jan 04 22:27:26 +0000 2018",
+      "favorited": false,
+      "full_text": "@dtex I've seen it twice in my life, the conditions are extremely rare.",
+      "lang": "en",
+      "in_reply_to_screen_name": "dtex",
+      "in_reply_to_user_id_str": "12980562"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949040322167877632"
+          ],
+          "editableUntil": "2018-01-04T23:10:19.778Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949040322167877632/photo/1",
+            "indices": [
+              "158",
+              "181"
+            ],
+            "url": "https://t.co/pIXVrM8sbC",
+            "media_url": "http://pbs.twimg.com/media/DSurIpqV4AASfHh.jpg",
+            "id_str": "949040311602372608",
+            "id": "949040311602372608",
+            "media_url_https": "https://pbs.twimg.com/media/DSurIpqV4AASfHh.jpg",
+            "sizes": {
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/pIXVrM8sbC"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "181"
+      ],
+      "favorite_count": "25",
+      "id_str": "949040322167877632",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949040322167877632",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 22:10:19 +0000 2018",
+      "favorited": false,
+      "full_text": "Saw the green flash today, very unexpectedly, since there were lots of clouds in the foreground but none on the horizon. (This is not a picture of the flash) https://t.co/pIXVrM8sbC",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949040322167877632/photo/1",
+            "indices": [
+              "158",
+              "181"
+            ],
+            "url": "https://t.co/pIXVrM8sbC",
+            "media_url": "http://pbs.twimg.com/media/DSurIpqV4AASfHh.jpg",
+            "id_str": "949040311602372608",
+            "id": "949040311602372608",
+            "media_url_https": "https://pbs.twimg.com/media/DSurIpqV4AASfHh.jpg",
+            "sizes": {
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/pIXVrM8sbC"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949034243556102144"
+          ],
+          "editableUntil": "2018-01-04T22:46:10.524Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam Rackis",
+            "screen_name": "AdamRackis",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "68567860",
+            "id": "68567860"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "61"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949033632773140485",
+      "id_str": "949034243556102144",
+      "in_reply_to_user_id": "68567860",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949034243556102144",
+      "in_reply_to_status_id": "949033632773140485",
+      "created_at": "Thu Jan 04 21:46:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@AdamRackis Also popularity, it just makes it easier to read.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AdamRackis",
+      "in_reply_to_user_id_str": "68567860"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949032941400788992"
+          ],
+          "editableUntil": "2018-01-04T22:41:00.066Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Hugo Campos",
+            "screen_name": "hugoccampos",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "1411743176",
+            "id": "1411743176"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "146"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "949032253765636097",
+      "id_str": "949032941400788992",
+      "in_reply_to_user_id": "1411743176",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949032941400788992",
+      "in_reply_to_status_id": "949032253765636097",
+      "created_at": "Thu Jan 04 21:41:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@hugoccampos Not by any means. In absolute terms it gets more users every day. But relative to the growth of other frameworks it is losing ground.",
+      "lang": "en",
+      "in_reply_to_screen_name": "hugoccampos",
+      "in_reply_to_user_id_str": "1411743176"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949030641806561280"
+          ],
+          "editableUntil": "2018-01-04T22:31:51.800Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "CNN",
+            "screen_name": "CNN",
+            "indices": [
+              "3",
+              "7"
+            ],
+            "id_str": "759251",
+            "id": "759251"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "949030641806561280",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949030641806561280",
+      "created_at": "Thu Jan 04 21:31:51 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @CNN: Hours after a personal attorney for President Trump sent a cease and desist letter to the publisher and author of a new book, dema…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949028611021033472"
+          ],
+          "editableUntil": "2018-01-04T22:23:47.623Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sarah Drasner",
+            "screen_name": "sarah_edo",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "813333008",
+            "id": "813333008"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "157"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "949028456943247365",
+      "id_str": "949028611021033472",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949028611021033472",
+      "in_reply_to_status_id": "949028456943247365",
+      "created_at": "Thu Jan 04 21:23:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@sarah_edo @griff_js We selected it as a metric because everybody's absolute download numbers always go up, because npm is getting more popular all the time.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949028456943247365"
+          ],
+          "editableUntil": "2018-01-04T22:23:10.888Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sarah Drasner",
+            "screen_name": "sarah_edo",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "813333008",
+            "id": "813333008"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "155"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "949027567528427520",
+      "id_str": "949028456943247365",
+      "in_reply_to_user_id": "813333008",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949028456943247365",
+      "in_reply_to_status_id": "949027567528427520",
+      "created_at": "Thu Jan 04 21:23:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@sarah_edo @griff_js Per the post, it's \"download counts for a package as a percentage of the download count for all packages in the registry at that time\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "sarah_edo",
+      "in_reply_to_user_id_str": "813333008"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949028172309454850"
+          ],
+          "editableUntil": "2018-01-04T22:22:03.026Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Rich Harris",
+            "screen_name": "Rich_Harris",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "19487837",
+            "id": "19487837"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "143"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949025968592687105",
+      "id_str": "949028172309454850",
+      "in_reply_to_user_id": "19487837",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949028172309454850",
+      "in_reply_to_status_id": "949025968592687105",
+      "created_at": "Thu Jan 04 21:22:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@Rich_Harris I thought that was fascinating, but also to some extent it reflects that npm was not the primary source of distribution back then.",
+      "lang": "en",
+      "in_reply_to_screen_name": "Rich_Harris",
+      "in_reply_to_user_id_str": "19487837"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949023202243743747"
+          ],
+          "editableUntil": "2018-01-04T22:02:18.070Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "75"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949022941064384519",
+      "id_str": "949023202243743747",
+      "in_reply_to_user_id": "622960227",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949023202243743747",
+      "in_reply_to_status_id": "949022941064384519",
+      "created_at": "Thu Jan 04 21:02:18 +0000 2018",
+      "favorited": false,
+      "full_text": "@bitandbang Yes. Per the post, Ember in particular is very hard to measure.",
+      "lang": "en",
+      "in_reply_to_screen_name": "bitandbang",
+      "in_reply_to_user_id_str": "622960227"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949021945592451072"
+          ],
+          "editableUntil": "2018-01-04T21:57:18.461Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949021945592451072/photo/1",
+            "indices": [
+              "35",
+              "58"
+            ],
+            "url": "https://t.co/QHqIY9pO6E",
+            "media_url": "http://pbs.twimg.com/media/DSuabHGU8AAsA3r.jpg",
+            "id_str": "949021937044353024",
+            "id": "949021937044353024",
+            "media_url_https": "https://pbs.twimg.com/media/DSuabHGU8AAsA3r.jpg",
+            "sizes": {
+              "medium": {
+                "w": "740",
+                "h": "697",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "740",
+                "h": "697",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "640",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/QHqIY9pO6E"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "58"
+      ],
+      "favorite_count": "213",
+      "in_reply_to_status_id_str": "949020917040144384",
+      "id_str": "949021945592451072",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "86",
+      "id": "949021945592451072",
+      "in_reply_to_status_id": "949020917040144384",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 20:57:18 +0000 2018",
+      "favorited": false,
+      "full_text": "TLDR: React is very, very popular. https://t.co/QHqIY9pO6E",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949021945592451072/photo/1",
+            "indices": [
+              "35",
+              "58"
+            ],
+            "url": "https://t.co/QHqIY9pO6E",
+            "media_url": "http://pbs.twimg.com/media/DSuabHGU8AAsA3r.jpg",
+            "id_str": "949021937044353024",
+            "id": "949021937044353024",
+            "media_url_https": "https://pbs.twimg.com/media/DSuabHGU8AAsA3r.jpg",
+            "sizes": {
+              "medium": {
+                "w": "740",
+                "h": "697",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "740",
+                "h": "697",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "680",
+                "h": "640",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/QHqIY9pO6E"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949021444960342017"
+          ],
+          "editableUntil": "2018-01-04T21:55:19.101Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "153"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "949021125811621890",
+      "id_str": "949021444960342017",
+      "in_reply_to_user_id": "622960227",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949021444960342017",
+      "in_reply_to_status_id": "949021125811621890",
+      "created_at": "Thu Jan 04 20:55:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@bitandbang Just the main React module. React native usage is very small relative to web usage, but if you have a proxy for it I can track it separately.",
+      "lang": "en",
+      "in_reply_to_screen_name": "bitandbang",
+      "in_reply_to_user_id_str": "622960227"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949020917040144384"
+          ],
+          "editableUntil": "2018-01-04T21:53:13.235Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/rwIpUdjsiv",
+            "expanded_url": "https://www.npmjs.com/npm/state-of-javascript-frameworks-2017-part-1",
+            "display_url": "npmjs.com/npm/state-of-j…",
+            "indices": [
+              "100",
+              "123"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "123"
+      ],
+      "favorite_count": "111",
+      "id_str": "949020917040144384",
+      "truncated": false,
+      "retweet_count": "50",
+      "id": "949020917040144384",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 20:53:13 +0000 2018",
+      "favorited": false,
+      "full_text": "An analysis of npm's data to show the relative popularity and growth of major front end frameworks: https://t.co/rwIpUdjsiv",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949020691793408001"
+          ],
+          "editableUntil": "2018-01-04T21:52:19.532Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "antony ",
+            "screen_name": "antony",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "818570",
+            "id": "818570"
+          },
+          {
+            "name": "npm",
+            "screen_name": "npmjs",
+            "indices": [
+              "8",
+              "14"
+            ],
+            "id_str": "309528017",
+            "id": "309528017"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "84"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "949019449109204992",
+      "id_str": "949020691793408001",
+      "in_reply_to_user_id": "818570",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949020691793408001",
+      "in_reply_to_status_id": "949019449109204992",
+      "created_at": "Thu Jan 04 20:52:19 +0000 2018",
+      "favorited": false,
+      "full_text": "@antony @npmjs Hence the huge disclaimer saying exactly that at the top of the post.",
+      "lang": "en",
+      "in_reply_to_screen_name": "antony",
+      "in_reply_to_user_id_str": "818570"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949016145272672257"
+          ],
+          "editableUntil": "2018-01-04T21:34:15.557Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/JAQ687afOA",
+            "expanded_url": "https://twitter.com/gsuberland/status/948907452786933762",
+            "display_url": "twitter.com/gsuberland/sta…",
+            "indices": [
+              "131",
+              "154"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "154"
+      ],
+      "favorite_count": "73",
+      "id_str": "949016145272672257",
+      "truncated": false,
+      "retweet_count": "43",
+      "id": "949016145272672257",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 20:34:15 +0000 2018",
+      "favorited": false,
+      "full_text": "This is an excellent explainer of Meltdown and Spectre that I found comprehensible even without any knowledge of OS level details: https://t.co/JAQ687afOA",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949012235170582529"
+          ],
+          "editableUntil": "2018-01-04T21:18:43.316Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/Y7xrPmFBQF",
+            "expanded_url": "https://twitter.com/gameofthrones/status/948993347963715584",
+            "display_url": "twitter.com/gameofthrones/…",
+            "indices": [
+              "81",
+              "104"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "104"
+      ],
+      "favorite_count": "22",
+      "id_str": "949012235170582529",
+      "truncated": false,
+      "retweet_count": "3",
+      "id": "949012235170582529",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 20:18:43 +0000 2018",
+      "favorited": false,
+      "full_text": "Money saving tip for 2018: you can cancel your HBO subscription until next year. https://t.co/Y7xrPmFBQF",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949010524834017280"
+          ],
+          "editableUntil": "2018-01-04T21:11:55.540Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949010524834017280/photo/1",
+            "indices": [
+              "11",
+              "34"
+            ],
+            "url": "https://t.co/iOPi2YKnoc",
+            "media_url": "http://pbs.twimg.com/media/DSuQCMlUMAAMzFF.jpg",
+            "id_str": "949010513903497216",
+            "id": "949010513903497216",
+            "media_url_https": "https://pbs.twimg.com/media/DSuQCMlUMAAMzFF.jpg",
+            "sizes": {
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/iOPi2YKnoc"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "34"
+      ],
+      "favorite_count": "7",
+      "id_str": "949010524834017280",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949010524834017280",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 20:11:55 +0000 2018",
+      "favorited": false,
+      "full_text": "Final day. https://t.co/iOPi2YKnoc",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/949010524834017280/photo/1",
+            "indices": [
+              "11",
+              "34"
+            ],
+            "url": "https://t.co/iOPi2YKnoc",
+            "media_url": "http://pbs.twimg.com/media/DSuQCMlUMAAMzFF.jpg",
+            "id_str": "949010513903497216",
+            "id": "949010513903497216",
+            "media_url_https": "https://pbs.twimg.com/media/DSuQCMlUMAAMzFF.jpg",
+            "sizes": {
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/iOPi2YKnoc"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493681871171256320"
+          ],
+          "editableUntil": "2022-02-15T21:21:24.011Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "60",
+      "id_str": "1493681871171256320",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1493681871171256320",
+      "created_at": "Tue Feb 15 20:21:24 +0000 2022",
+      "favorited": false,
+      "full_text": "My primary route to serenity through forgiveness is forgetting things happened and usually that the people involved even exist.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493648626576285696"
+          ],
+          "editableUntil": "2022-02-15T19:09:17.882Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/zocSTKOCLb",
+            "expanded_url": "https://www.bbc.com/news/uk-60393843",
+            "display_url": "bbc.com/news/uk-603938…",
+            "indices": [
+              "243",
+              "266"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "266"
+      ],
+      "favorite_count": "19",
+      "id_str": "1493648626576285696",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "1493648626576285696",
+      "possibly_sensitive": false,
+      "created_at": "Tue Feb 15 18:09:17 +0000 2022",
+      "favorited": false,
+      "full_text": "Andrew has settled out of court, admitting *in the statement of the settlement* that Giuffre \"suffered both as an established victim of abuse and as a result of unfair public attacks\"; you don't get closer to \"he definitely did it\" than that. https://t.co/zocSTKOCLb",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493608721515167744"
+          ],
+          "editableUntil": "2022-02-15T16:30:43.774Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "144"
+      ],
+      "favorite_count": "47",
+      "id_str": "1493608721515167744",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493608721515167744",
+      "created_at": "Tue Feb 15 15:30:43 +0000 2022",
+      "favorited": false,
+      "full_text": "I wonder if the bouyant market for tech people buying weird ergonomic shoes has fallen off a cliff since nobody can see anybody's feet any more.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493605297088352262"
+          ],
+          "editableUntil": "2022-02-15T16:17:07.327Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "167"
+      ],
+      "favorite_count": "21",
+      "in_reply_to_status_id_str": "1493604922482384899",
+      "id_str": "1493605297088352262",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493605297088352262",
+      "in_reply_to_status_id": "1493604922482384899",
+      "created_at": "Tue Feb 15 15:17:07 +0000 2022",
+      "favorited": false,
+      "full_text": "\"Valentine's plants!\" (Same 5 plants, plus a teddy bear)\n\"Christmas plants!\" (Same 5 plants, snowflake background)\n\"Halloween plants!\" (Same 5 plants, spooky lighting)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493604922482384899"
+          ],
+          "editableUntil": "2022-02-15T16:15:38.014Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/ZwsmeRBwuJ",
+            "expanded_url": "http://plants.com",
+            "display_url": "plants.com",
+            "indices": [
+              "55",
+              "78"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "182"
+      ],
+      "favorite_count": "69",
+      "id_str": "1493604922482384899",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "1493604922482384899",
+      "possibly_sensitive": false,
+      "created_at": "Tue Feb 15 15:15:38 +0000 2022",
+      "favorited": false,
+      "full_text": "My personal hero is the copywriter for the emails from https://t.co/ZwsmeRBwuJ, who has been finding new things to say about the same 5 basic plants every single day for 2 years now.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493594640951521292"
+          ],
+          "editableUntil": "2022-02-15T15:34:46.706Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/3XbTgAsUaw",
+            "expanded_url": "https://twitter.com/memeorandum/status/1493591220882317312",
+            "display_url": "twitter.com/memeorandum/st…",
+            "indices": [
+              "97",
+              "120"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "120"
+      ],
+      "favorite_count": "31",
+      "id_str": "1493594640951521292",
+      "truncated": false,
+      "retweet_count": "5",
+      "id": "1493594640951521292",
+      "possibly_sensitive": false,
+      "created_at": "Tue Feb 15 14:34:46 +0000 2022",
+      "favorited": false,
+      "full_text": "The remaining 3 in 4 were prevented from answering by the threat of a filibuster by Joe Manchin. https://t.co/3XbTgAsUaw",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493594286515908608"
+          ],
+          "editableUntil": "2022-02-15T15:33:22.202Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John Kapetaneas",
+            "screen_name": "JohnKapetaneas",
+            "indices": [
+              "3",
+              "18"
+            ],
+            "id_str": "444725879",
+            "id": "444725879"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "1493594286515908608",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493594286515908608",
+      "created_at": "Tue Feb 15 14:33:22 +0000 2022",
+      "favorited": false,
+      "full_text": "RT @JohnKapetaneas: NYT: No, we did not make Wordle harder. We promise. \n\nAlso NYT: Today’s Wordle is KHYBX — which everyone knows is a pop…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493446225227489282"
+          ],
+          "editableUntil": "2022-02-15T05:45:01.640Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@snotskie@queer.party",
+            "screen_name": "snotskie",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "173448317",
+            "id": "173448317"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "34"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "1493446008507969536",
+      "id_str": "1493446225227489282",
+      "in_reply_to_user_id": "173448317",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493446225227489282",
+      "in_reply_to_status_id": "1493446008507969536",
+      "created_at": "Tue Feb 15 04:45:01 +0000 2022",
+      "favorited": false,
+      "full_text": "@snotskie I love magic eye posters",
+      "lang": "en",
+      "in_reply_to_screen_name": "snotskie",
+      "in_reply_to_user_id_str": "173448317"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493432708583673856"
+          ],
+          "editableUntil": "2022-02-15T04:51:19.021Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493432708583673856/photo/1",
+            "indices": [
+              "43",
+              "66"
+            ],
+            "url": "https://t.co/miGMKa4kBo",
+            "media_url": "http://pbs.twimg.com/media/FLm9IhPUYAM4Nq1.jpg",
+            "id_str": "1493432705509253123",
+            "id": "1493432705509253123",
+            "media_url_https": "https://pbs.twimg.com/media/FLm9IhPUYAM4Nq1.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "510",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "900",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "2048",
+                "h": "1536",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/miGMKa4kBo"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "66"
+      ],
+      "favorite_count": "43",
+      "id_str": "1493432708583673856",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493432708583673856",
+      "possibly_sensitive": false,
+      "created_at": "Tue Feb 15 03:51:19 +0000 2022",
+      "favorited": false,
+      "full_text": "Sunsets are getting later and that's good. https://t.co/miGMKa4kBo",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493432708583673856/photo/1",
+            "indices": [
+              "43",
+              "66"
+            ],
+            "url": "https://t.co/miGMKa4kBo",
+            "media_url": "http://pbs.twimg.com/media/FLm9IhPUYAM4Nq1.jpg",
+            "id_str": "1493432705509253123",
+            "id": "1493432705509253123",
+            "media_url_https": "https://pbs.twimg.com/media/FLm9IhPUYAM4Nq1.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "510",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "900",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "2048",
+                "h": "1536",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/miGMKa4kBo"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493431255437758465"
+          ],
+          "editableUntil": "2022-02-15T04:45:32.564Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "253"
+      ],
+      "favorite_count": "13",
+      "id_str": "1493431255437758465",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1493431255437758465",
+      "created_at": "Tue Feb 15 03:45:32 +0000 2022",
+      "favorited": false,
+      "full_text": "The thing about a Minard diagram is that while it's a very clever visualization of that specific event it is really not generalizable to any other kind of event, and believe me I have tried to come up with excuses for Minard diagrams all over the place.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493419254758064131"
+          ],
+          "editableUntil": "2022-02-15T03:57:51.379Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493419254758064131/photo/1",
+            "indices": [
+              "200",
+              "223"
+            ],
+            "url": "https://t.co/HYaOQvBQmE",
+            "media_url": "http://pbs.twimg.com/media/FLmwmWWVIAU6DVk.jpg",
+            "id_str": "1493418924330786821",
+            "id": "1493418924330786821",
+            "media_url_https": "https://pbs.twimg.com/media/FLmwmWWVIAU6DVk.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "509",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "2003",
+                "h": "1500",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "899",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/HYaOQvBQmE"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "223"
+      ],
+      "favorite_count": "34",
+      "in_reply_to_status_id_str": "1493048429869604866",
+      "id_str": "1493419254758064131",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493419254758064131",
+      "in_reply_to_status_id": "1493048429869604866",
+      "possibly_sensitive": false,
+      "created_at": "Tue Feb 15 02:57:51 +0000 2022",
+      "favorited": false,
+      "full_text": "P.S. I, data person that I am, somehow managed to talk about Napoleon's disastrous march on Moscow without including the world's most famous data visualization, the Minard Diagram, which is about it. https://t.co/HYaOQvBQmE",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493419254758064131/photo/1",
+            "indices": [
+              "200",
+              "223"
+            ],
+            "url": "https://t.co/HYaOQvBQmE",
+            "media_url": "http://pbs.twimg.com/media/FLmwmWWVIAU6DVk.jpg",
+            "id_str": "1493418924330786821",
+            "id": "1493418924330786821",
+            "media_url_https": "https://pbs.twimg.com/media/FLmwmWWVIAU6DVk.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "509",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "2003",
+                "h": "1500",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "899",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/HYaOQvBQmE"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493406687138516993"
+          ],
+          "editableUntil": "2022-02-15T03:07:55.025Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/WokvSX0vxk",
+            "expanded_url": "https://twitter.com/tarstarr/status/1493395983128014857",
+            "display_url": "twitter.com/tarstarr/statu…",
+            "indices": [
+              "107",
+              "130"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "130"
+      ],
+      "favorite_count": "38",
+      "id_str": "1493406687138516993",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "1493406687138516993",
+      "possibly_sensitive": false,
+      "created_at": "Tue Feb 15 02:07:55 +0000 2022",
+      "favorited": false,
+      "full_text": "You can call it We're All Going To Make It, which will also be the catchphrase and the name of the finale. https://t.co/WokvSX0vxk",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493358401509740546"
+          ],
+          "editableUntil": "2022-02-14T23:56:02.834Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "emily freeman",
+            "screen_name": "editingemily",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "1066151600",
+            "id": "1066151600"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "143"
+      ],
+      "favorite_count": "27",
+      "in_reply_to_status_id_str": "1493357946151055364",
+      "id_str": "1493358401509740546",
+      "in_reply_to_user_id": "1066151600",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493358401509740546",
+      "in_reply_to_status_id": "1493357946151055364",
+      "created_at": "Mon Feb 14 22:56:02 +0000 2022",
+      "favorited": false,
+      "full_text": "@editingemily This is one of those situations where I've arbitrarily decided the spelling is correct but we are all pronouncing it incorrectly.",
+      "lang": "en",
+      "in_reply_to_screen_name": "editingemily",
+      "in_reply_to_user_id_str": "1066151600"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493348014802432000"
+          ],
+          "editableUntil": "2022-02-14T23:14:46.450Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Fayyad AL Hadaad",
+            "screen_name": "hadaad",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "1602789309299531789",
+            "id": "1602789309299531789"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "20"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1493347828185264128",
+      "id_str": "1493348014802432000",
+      "in_reply_to_user_id": "16041639",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493348014802432000",
+      "in_reply_to_status_id": "1493347828185264128",
+      "created_at": "Mon Feb 14 22:14:46 +0000 2022",
+      "favorited": false,
+      "full_text": "@hadaad 337 million!",
+      "lang": "en",
+      "in_reply_to_user_id_str": "16041639"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493347862465310722"
+          ],
+          "editableUntil": "2022-02-14T23:14:10.130Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sarah Emerson",
+            "screen_name": "_loveallthis",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "64853040",
+            "id": "64853040"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "37"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "1493346222475661312",
+      "id_str": "1493347862465310722",
+      "in_reply_to_user_id": "64853040",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493347862465310722",
+      "in_reply_to_status_id": "1493346222475661312",
+      "created_at": "Mon Feb 14 22:14:10 +0000 2022",
+      "favorited": false,
+      "full_text": "@_loveallthis I love that newsletter.",
+      "lang": "en",
+      "in_reply_to_screen_name": "_loveallthis",
+      "in_reply_to_user_id_str": "64853040"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493345882242125824"
+          ],
+          "editableUntil": "2022-02-14T23:06:18.008Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Philip Renich - mastodon.nz/@mez",
+            "screen_name": "philiprenich",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "13443702",
+            "id": "13443702"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "50"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "1493344352239697922",
+      "id_str": "1493345882242125824",
+      "in_reply_to_user_id": "13443702",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493345882242125824",
+      "in_reply_to_status_id": "1493344352239697922",
+      "created_at": "Mon Feb 14 22:06:18 +0000 2022",
+      "favorited": false,
+      "full_text": "@philiprenich Vegas? You mean the capital of Utah?",
+      "lang": "en",
+      "in_reply_to_screen_name": "philiprenich",
+      "in_reply_to_user_id_str": "13443702"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493345624674029571"
+          ],
+          "editableUntil": "2022-02-14T23:05:16.599Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493345624674029571/photo/1",
+            "indices": [
+              "68",
+              "91"
+            ],
+            "url": "https://t.co/9n6pO7fSFm",
+            "media_url": "http://pbs.twimg.com/media/FLlt3YhVgAAeMOs.png",
+            "id_str": "1493345549692534784",
+            "id": "1493345549692534784",
+            "media_url_https": "https://pbs.twimg.com/media/FLlt3YhVgAAeMOs.png",
+            "sizes": {
+              "large": {
+                "w": "1254",
+                "h": "210",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "201",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "114",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/9n6pO7fSFm"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "91"
+      ],
+      "favorite_count": "23",
+      "in_reply_to_status_id_str": "1493330503365136386",
+      "id_str": "1493345624674029571",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "1493345624674029571",
+      "in_reply_to_status_id": "1493330503365136386",
+      "possibly_sensitive": false,
+      "created_at": "Mon Feb 14 22:05:16 +0000 2022",
+      "favorited": false,
+      "full_text": "I'm sorry, is it give, or is it take? I feel like that's important. https://t.co/9n6pO7fSFm",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/1493345624674029571/photo/1",
+            "indices": [
+              "68",
+              "91"
+            ],
+            "url": "https://t.co/9n6pO7fSFm",
+            "media_url": "http://pbs.twimg.com/media/FLlt3YhVgAAeMOs.png",
+            "id_str": "1493345549692534784",
+            "id": "1493345549692534784",
+            "media_url_https": "https://pbs.twimg.com/media/FLlt3YhVgAAeMOs.png",
+            "sizes": {
+              "large": {
+                "w": "1254",
+                "h": "210",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "201",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "114",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/9n6pO7fSFm"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493339932441526274"
+          ],
+          "editableUntil": "2022-02-14T22:42:39.465Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "41"
+      ],
+      "favorite_count": "31",
+      "in_reply_to_status_id_str": "1493339812173996033",
+      "id_str": "1493339932441526274",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "1493339932441526274",
+      "in_reply_to_status_id": "1493339812173996033",
+      "created_at": "Mon Feb 14 21:42:39 +0000 2022",
+      "favorited": false,
+      "full_text": "\"We DEMAND the FREEDOM to SWINDLE RUBES!\"",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493339812173996033"
+          ],
+          "editableUntil": "2022-02-14T22:42:10.791Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/q3AirdbiFL",
+            "expanded_url": "https://twitter.com/ErikVoorhees/status/1493295793150726144",
+            "display_url": "twitter.com/ErikVoorhees/s…",
+            "indices": [
+              "162",
+              "185"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "185"
+      ],
+      "favorite_count": "55",
+      "id_str": "1493339812173996033",
+      "truncated": false,
+      "retweet_count": "10",
+      "id": "1493339812173996033",
+      "possibly_sensitive": false,
+      "created_at": "Mon Feb 14 21:42:10 +0000 2022",
+      "favorited": false,
+      "full_text": "BlockFi has been fined $100m for misleadingly marketing a speculative, goes-to-zero financial product as a \"savings account\" and the bitcoin people are VERY MAD. https://t.co/q3AirdbiFL",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "1493337723561598977"
+          ],
+          "editableUntil": "2022-02-14T22:33:52.827Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "99"
+      ],
+      "favorite_count": "11",
+      "in_reply_to_status_id_str": "1493336679863623686",
+      "id_str": "1493337723561598977",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "1493337723561598977",
+      "in_reply_to_status_id": "1493336679863623686",
+      "created_at": "Mon Feb 14 21:33:52 +0000 2022",
+      "favorited": false,
+      "full_text": "Arkansas should extend down to the border and take that little bit of extra Texas, just to be sure.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "949010315177594880"
+          ],
+          "editableUntil": "2018-01-04T21:11:05.554Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lindsay Goldwert 👑",
+            "screen_name": "lindsaygoldwert",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "196540524",
+            "id": "196540524"
+          },
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "17",
+              "29"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "46"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "949008750073077760",
+      "id_str": "949010315177594880",
+      "in_reply_to_user_id": "196540524",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "949010315177594880",
+      "in_reply_to_status_id": "949008750073077760",
+      "created_at": "Thu Jan 04 20:11:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@lindsaygoldwert @CaseyNewton This is so dark.",
+      "lang": "en",
+      "in_reply_to_screen_name": "lindsaygoldwert",
+      "in_reply_to_user_id_str": "196540524"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948996712294682626"
+          ],
+          "editableUntil": "2018-01-04T20:17:02.374Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/Vi2sN9xRaX",
+            "expanded_url": "https://twitter.com/cosendem/status/948948921694302209",
+            "display_url": "twitter.com/cosendem/statu…",
+            "indices": [
+              "29",
+              "52"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "52"
+      ],
+      "favorite_count": "12",
+      "id_str": "948996712294682626",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "948996712294682626",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 19:17:02 +0000 2018",
+      "favorited": false,
+      "full_text": "2018 is already pretty wild. https://t.co/Vi2sN9xRaX",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948995182887886849"
+          ],
+          "editableUntil": "2018-01-04T20:10:57.735Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "OLYMPIANS",
+            "screen_name": "onwardolympians",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "118893267",
+            "id": "118893267"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "43"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948664226373095426",
+      "id_str": "948995182887886849",
+      "in_reply_to_user_id": "118893267",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948995182887886849",
+      "in_reply_to_status_id": "948664226373095426",
+      "created_at": "Thu Jan 04 19:10:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@onwardolympians Pretty sure that's Sum 41.",
+      "lang": "en",
+      "in_reply_to_screen_name": "onwardolympians",
+      "in_reply_to_user_id_str": "118893267"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948994972711256064"
+          ],
+          "editableUntil": "2018-01-04T20:10:07.625Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "bletchley punk",
+            "screen_name": "alicegoldfuss",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "163154809",
+            "id": "163154809"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "83"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948994108013494272",
+      "id_str": "948994972711256064",
+      "in_reply_to_user_id": "163154809",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948994972711256064",
+      "in_reply_to_status_id": "948994108013494272",
+      "created_at": "Thu Jan 04 19:10:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@alicegoldfuss To an exciting week to be having anything at all to do with infosec.",
+      "lang": "en",
+      "in_reply_to_screen_name": "alicegoldfuss",
+      "in_reply_to_user_id_str": "163154809"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948991913394360323"
+          ],
+          "editableUntil": "2018-01-04T19:57:58.227Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "123"
+      ],
+      "favorite_count": "26",
+      "id_str": "948991913394360323",
+      "truncated": false,
+      "retweet_count": "9",
+      "id": "948991913394360323",
+      "created_at": "Thu Jan 04 18:57:58 +0000 2018",
+      "favorited": false,
+      "full_text": "I predict there will be a rogue ad that exploits either Meltdown or Spectre to steal credentials in the wild within 7 days.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948991674730139649"
+          ],
+          "editableUntil": "2018-01-04T19:57:01.325Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Louis Virtel",
+            "screen_name": "louisvirtel",
+            "indices": [
+              "3",
+              "15"
+            ],
+            "id_str": "16245840",
+            "id": "16245840"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "948991674730139649",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948991674730139649",
+      "created_at": "Thu Jan 04 18:57:01 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @louisvirtel: Dear Academy voters who are resistant to Call Me By Your Name \"because we picked [a gay story] last year\": You'll be blown…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948991538067070976"
+          ],
+          "editableUntil": "2018-01-04T19:56:28.742Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Nick Sweeting @ DWebCamp",
+            "screen_name": "thesquashSH",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "262147093",
+            "id": "262147093"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "68"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948990320695435264",
+      "id_str": "948991538067070976",
+      "in_reply_to_user_id": "262147093",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948991538067070976",
+      "in_reply_to_status_id": "948990320695435264",
+      "created_at": "Thu Jan 04 18:56:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@thesquashSH Not enough for remote execution, so bad but not a worm.",
+      "lang": "en",
+      "in_reply_to_screen_name": "thesquashSH",
+      "in_reply_to_user_id_str": "262147093"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948980494502432769"
+          ],
+          "editableUntil": "2018-01-04T19:12:35.751Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Rey Bango 🇺🇦🌻",
+            "screen_name": "reybango",
+            "indices": [
+              "3",
+              "12"
+            ],
+            "id_str": "1589691",
+            "id": "1589691"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "948980494502432769",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948980494502432769",
+      "created_at": "Thu Jan 04 18:12:35 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @reybango: Serious security PSA: everyone regardless of OS should be applying patches to the Meltdown and Spectre Intel CPU Security iss…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948976472852779008"
+          ],
+          "editableUntil": "2018-01-04T18:56:36.915Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "michael",
+            "screen_name": "mpchlets",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "1170686755",
+            "id": "1170686755"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "111"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948975774610132993",
+      "id_str": "948976472852779008",
+      "in_reply_to_user_id": "1170686755",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948976472852779008",
+      "in_reply_to_status_id": "948975774610132993",
+      "created_at": "Thu Jan 04 17:56:36 +0000 2018",
+      "favorited": false,
+      "full_text": "@mpchlets I tried my very best but 8 redirects and a pointless web UI later google will not show me that video.",
+      "lang": "en",
+      "in_reply_to_screen_name": "mpchlets",
+      "in_reply_to_user_id_str": "1170686755"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948975269334876161"
+          ],
+          "editableUntil": "2018-01-04T18:51:49.974Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "196"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948974807592271872",
+      "id_str": "948975269334876161",
+      "in_reply_to_user_id": "69426451",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948975269334876161",
+      "in_reply_to_status_id": "948974807592271872",
+      "created_at": "Thu Jan 04 17:51:49 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseyNewton I never actually empty my inbox. If an email is unread I’ve not dealt with it, if it’s read it is effectively archived. There is no in between state. My “inbox” == my unread messages.",
+      "lang": "en",
+      "in_reply_to_screen_name": "CaseyNewton",
+      "in_reply_to_user_id_str": "69426451"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948974857651400704"
+          ],
+          "editableUntil": "2018-01-04T18:50:11.821Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sargun Dhillon",
+            "screen_name": "sargun",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "981701",
+            "id": "981701"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "169"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948974505829044226",
+      "id_str": "948974857651400704",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948974857651400704",
+      "in_reply_to_status_id": "948974505829044226",
+      "created_at": "Thu Jan 04 17:50:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@sargun If it can steal your SSH key it can execute arbitrary commands on remote machines but only ones you have access to. A worm requires a much broader vulnerability.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948974505829044226"
+          ],
+          "editableUntil": "2018-01-04T18:48:47.940Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sargun Dhillon",
+            "screen_name": "sargun",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "981701",
+            "id": "981701"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948973591298695168",
+      "id_str": "948974505829044226",
+      "in_reply_to_user_id": "981701",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948974505829044226",
+      "in_reply_to_status_id": "948973591298695168",
+      "created_at": "Thu Jan 04 17:48:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@sargun That’s not enough for remote command execution, no.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sargun",
+      "in_reply_to_user_id_str": "981701"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948974130493317121"
+          ],
+          "editableUntil": "2018-01-04T18:47:18.453Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "207"
+      ],
+      "favorite_count": "9",
+      "in_reply_to_status_id_str": "948971603085242368",
+      "id_str": "948974130493317121",
+      "in_reply_to_user_id": "69426451",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948974130493317121",
+      "in_reply_to_status_id": "948971603085242368",
+      "created_at": "Thu Jan 04 17:47:18 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseyNewton I have been inbox zero religiously for literally 2 decades. It’s a matter of being extremely willing to say “I will never get around to this” and, as you say, keeping to-dos separate from email.",
+      "lang": "en",
+      "in_reply_to_screen_name": "CaseyNewton",
+      "in_reply_to_user_id_str": "69426451"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948973831561142272"
+          ],
+          "editableUntil": "2018-01-04T18:46:07.182Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dan Levy",
+            "screen_name": "justsml",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "34569742",
+            "id": "34569742"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "106"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948971527558615040",
+      "id_str": "948973831561142272",
+      "in_reply_to_user_id": "34569742",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948973831561142272",
+      "in_reply_to_status_id": "948971527558615040",
+      "created_at": "Thu Jan 04 17:46:07 +0000 2018",
+      "favorited": false,
+      "full_text": "@justsml Sure, but that would be a new bug, and not universally applicable. Not good but limited in scope.",
+      "lang": "en",
+      "in_reply_to_screen_name": "justsml",
+      "in_reply_to_user_id_str": "34569742"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948971301120761867"
+          ],
+          "editableUntil": "2018-01-04T18:36:03.878Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Casey Newton",
+            "screen_name": "CaseyNewton",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "69426451",
+            "id": "69426451"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "50"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "948970611530874880",
+      "id_str": "948971301120761867",
+      "in_reply_to_user_id": "69426451",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948971301120761867",
+      "in_reply_to_status_id": "948970611530874880",
+      "created_at": "Thu Jan 04 17:36:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@CaseyNewton I’m with you except for the last one.",
+      "lang": "en",
+      "in_reply_to_screen_name": "CaseyNewton",
+      "in_reply_to_user_id_str": "69426451"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948970473827831808"
+          ],
+          "editableUntil": "2018-01-04T18:32:46.636Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "@aaronfriel@hachyderm.io",
+            "screen_name": "AaronFriel",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "184674078",
+            "id": "184674078"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "142"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948970101763661824",
+      "id_str": "948970473827831808",
+      "in_reply_to_user_id": "184674078",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948970473827831808",
+      "in_reply_to_status_id": "948970101763661824",
+      "created_at": "Thu Jan 04 17:32:46 +0000 2018",
+      "favorited": false,
+      "full_text": "@AaronFriel Fundamentally Spectre is one-way with no mechanism for injecting code into memory so I don't see it turning into that kind of bug.",
+      "lang": "en",
+      "in_reply_to_screen_name": "AaronFriel",
+      "in_reply_to_user_id_str": "184674078"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948970123142025217"
+          ],
+          "editableUntil": "2018-01-04T18:31:23.026Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Emily Gorcenski",
+            "screen_name": "EmilyGorcenski",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "1483064670",
+            "id": "1483064670"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "29"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "948969633683558401",
+      "id_str": "948970123142025217",
+      "in_reply_to_user_id": "1483064670",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948970123142025217",
+      "in_reply_to_status_id": "948969633683558401",
+      "created_at": "Thu Jan 04 17:31:23 +0000 2018",
+      "favorited": false,
+      "full_text": "@EmilyGorcenski Good summary.",
+      "lang": "en",
+      "in_reply_to_screen_name": "EmilyGorcenski",
+      "in_reply_to_user_id_str": "1483064670"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948969910948024320"
+          ],
+          "editableUntil": "2018-01-04T18:30:32.435Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "rachel",
+            "screen_name": "ohhoe",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "2141321",
+            "id": "2141321"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "30"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948953083001925632",
+      "id_str": "948969910948024320",
+      "in_reply_to_user_id": "2141321",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948969910948024320",
+      "in_reply_to_status_id": "948953083001925632",
+      "created_at": "Thu Jan 04 17:30:32 +0000 2018",
+      "favorited": false,
+      "full_text": "@ohhoe Dat bombogenesis action",
+      "lang": "en",
+      "in_reply_to_screen_name": "ohhoe",
+      "in_reply_to_user_id_str": "2141321"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948968542703144963"
+          ],
+          "editableUntil": "2018-01-04T18:25:06.220Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "138"
+      ],
+      "favorite_count": "10",
+      "id_str": "948968542703144963",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948968542703144963",
+      "created_at": "Thu Jan 04 17:25:06 +0000 2018",
+      "favorited": false,
+      "full_text": "The only good news about Spectre is that it allows data inspection, not command execution. That means you can't make a worm/virus with it.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948966301296480258"
+          ],
+          "editableUntil": "2018-01-04T18:16:11.827Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🏳️‍🌈 Sam Kimbrel | @skimbrel@tech.lgbt",
+            "screen_name": "skimbrel",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "17934129",
+            "id": "17934129"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "107"
+      ],
+      "favorite_count": "0",
+      "id_str": "948966301296480258",
+      "in_reply_to_user_id": "17934129",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948966301296480258",
+      "created_at": "Thu Jan 04 17:16:11 +0000 2018",
+      "favorited": false,
+      "full_text": "@skimbrel btw th Intel CEO sold many more shares than I realized, so I think it probably is actionable now.",
+      "lang": "en",
+      "in_reply_to_screen_name": "skimbrel",
+      "in_reply_to_user_id_str": "17934129"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948963334606540800"
+          ],
+          "editableUntil": "2018-01-04T18:04:24.513Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Subhasish Das | ভুতো | bhuto@mastodon.social",
+            "screen_name": "bhuto",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "10652272",
+            "id": "10652272"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "12"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948962822200877056",
+      "id_str": "948963334606540800",
+      "in_reply_to_user_id": "10652272",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948963334606540800",
+      "in_reply_to_status_id": "948962822200877056",
+      "created_at": "Thu Jan 04 17:04:24 +0000 2018",
+      "favorited": false,
+      "full_text": "@bhuto 😭😭😭😭😭",
+      "lang": "qme",
+      "in_reply_to_screen_name": "bhuto",
+      "in_reply_to_user_id_str": "10652272"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948963115424800768"
+          ],
+          "editableUntil": "2018-01-04T18:03:32.256Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/948963115424800768/photo/1",
+            "indices": [
+              "51",
+              "74"
+            ],
+            "url": "https://t.co/z0xjGq4ws8",
+            "media_url": "http://pbs.twimg.com/media/DStk6yjVoAAkZYC.jpg",
+            "id_str": "948963107656802304",
+            "id": "948963107656802304",
+            "media_url_https": "https://pbs.twimg.com/media/DStk6yjVoAAkZYC.jpg",
+            "sizes": {
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/z0xjGq4ws8"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "74"
+      ],
+      "favorite_count": "50",
+      "id_str": "948963115424800768",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948963115424800768",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 17:03:32 +0000 2018",
+      "favorited": false,
+      "full_text": "Hello to everyone in New York tweeting about snow. https://t.co/z0xjGq4ws8",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/948963115424800768/photo/1",
+            "indices": [
+              "51",
+              "74"
+            ],
+            "url": "https://t.co/z0xjGq4ws8",
+            "media_url": "http://pbs.twimg.com/media/DStk6yjVoAAkZYC.jpg",
+            "id_str": "948963107656802304",
+            "id": "948963107656802304",
+            "media_url_https": "https://pbs.twimg.com/media/DStk6yjVoAAkZYC.jpg",
+            "sizes": {
+              "medium": {
+                "w": "900",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "1536",
+                "h": "2048",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/z0xjGq4ws8"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948958894176587777"
+          ],
+          "editableUntil": "2018-01-04T17:46:45.832Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dr. Bluman* (also @drbluman@mstdn.social)",
+            "screen_name": "drbluman",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "8389142",
+            "id": "8389142"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "32"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948956076069785601",
+      "id_str": "948958894176587777",
+      "in_reply_to_user_id": "8389142",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948958894176587777",
+      "in_reply_to_status_id": "948956076069785601",
+      "created_at": "Thu Jan 04 16:46:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@drbluman I would take that bet.",
+      "lang": "en",
+      "in_reply_to_screen_name": "drbluman",
+      "in_reply_to_user_id_str": "8389142"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948958557592006656"
+          ],
+          "editableUntil": "2018-01-04T17:45:25.584Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Subhasish Das | ভুতো | bhuto@mastodon.social",
+            "screen_name": "bhuto",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "10652272",
+            "id": "10652272"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "41"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948951661749260288",
+      "id_str": "948958557592006656",
+      "in_reply_to_user_id": "10652272",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948958557592006656",
+      "in_reply_to_status_id": "948951661749260288",
+      "created_at": "Thu Jan 04 16:45:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@bhuto WHERE IT IS VITAL THAT YOU TELL ME",
+      "lang": "en",
+      "in_reply_to_screen_name": "bhuto",
+      "in_reply_to_user_id_str": "10652272"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948949714564796416"
+          ],
+          "editableUntil": "2018-01-04T17:10:17.242Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/948949714564796416/photo/1",
+            "indices": [
+              "105",
+              "128"
+            ],
+            "url": "https://t.co/EePDeIQyVH",
+            "media_url": "http://pbs.twimg.com/media/DStYufdUMAA-9hQ.jpg",
+            "id_str": "948949702233305088",
+            "id": "948949702233305088",
+            "media_url_https": "https://pbs.twimg.com/media/DStYufdUMAA-9hQ.jpg",
+            "sizes": {
+              "medium": {
+                "w": "899",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1535",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/EePDeIQyVH"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "128"
+      ],
+      "favorite_count": "41",
+      "id_str": "948949714564796416",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948949714564796416",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 16:10:17 +0000 2018",
+      "favorited": false,
+      "full_text": "🎵 It's beef and curry roti time \n🎵 beef and curry roti time\n\n(To the tune of \"peanut butter jelly time\") https://t.co/EePDeIQyVH",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/948949714564796416/photo/1",
+            "indices": [
+              "105",
+              "128"
+            ],
+            "url": "https://t.co/EePDeIQyVH",
+            "media_url": "http://pbs.twimg.com/media/DStYufdUMAA-9hQ.jpg",
+            "id_str": "948949702233305088",
+            "id": "948949702233305088",
+            "media_url_https": "https://pbs.twimg.com/media/DStYufdUMAA-9hQ.jpg",
+            "sizes": {
+              "medium": {
+                "w": "899",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1535",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "small": {
+                "w": "510",
+                "h": "680",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/EePDeIQyVH"
+          },
+          {
+            "expanded_url": "https://twitter.com/seldo/status/948949714564796416/photo/1",
+            "indices": [
+              "105",
+              "128"
+            ],
+            "url": "https://t.co/EePDeIQyVH",
+            "media_url": "http://pbs.twimg.com/media/DStYufcUQAAHR6J.jpg",
+            "id_str": "948949702229114880",
+            "id": "948949702229114880",
+            "media_url_https": "https://pbs.twimg.com/media/DStYufcUQAAHR6J.jpg",
+            "sizes": {
+              "small": {
+                "w": "680",
+                "h": "621",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "2048",
+                "h": "1871",
+                "resize": "fit"
+              },
+              "medium": {
+                "w": "1200",
+                "h": "1096",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/EePDeIQyVH"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948947894878572544"
+          ],
+          "editableUntil": "2018-01-04T17:03:03.395Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/ooJURgJkRS",
+            "expanded_url": "https://twitter.com/find_evil/status/948921096522358784",
+            "display_url": "twitter.com/find_evil/stat…",
+            "indices": [
+              "64",
+              "87"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "87"
+      ],
+      "favorite_count": "5",
+      "in_reply_to_status_id_str": "948303644281200640",
+      "id_str": "948947894878572544",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948947894878572544",
+      "in_reply_to_status_id": "948303644281200640",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 16:03:03 +0000 2018",
+      "favorited": false,
+      "full_text": "More of that collaborative, blameless retro from the Linux guy: https://t.co/ooJURgJkRS",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948946479577739265"
+          ],
+          "editableUntil": "2018-01-04T16:57:25.961Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Peter Schamerhorn",
+            "screen_name": "RandChange",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "88464884",
+            "id": "88464884"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "99"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948945579744399360",
+      "id_str": "948946479577739265",
+      "in_reply_to_user_id": "88464884",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948946479577739265",
+      "in_reply_to_status_id": "948945579744399360",
+      "created_at": "Thu Jan 04 15:57:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@RandChange Yes, but there's a lot of shit in there like saved passwords and stuff. Still very bad.",
+      "lang": "en",
+      "in_reply_to_screen_name": "RandChange",
+      "in_reply_to_user_id_str": "88464884"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948942178235150337"
+          ],
+          "editableUntil": "2018-01-04T16:40:20.441Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/948942178235150337/photo/1",
+            "indices": [
+              "45",
+              "68"
+            ],
+            "url": "https://t.co/AfmplOu0U9",
+            "media_url": "http://pbs.twimg.com/media/DStR4MZU0AE0Fld.jpg",
+            "id_str": "948942172333592577",
+            "id": "948942172333592577",
+            "media_url_https": "https://pbs.twimg.com/media/DStR4MZU0AE0Fld.jpg",
+            "sizes": {
+              "medium": {
+                "w": "784",
+                "h": "455",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "395",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "784",
+                "h": "455",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/AfmplOu0U9"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "68"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "948941883945996291",
+      "id_str": "948942178235150337",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "948942178235150337",
+      "in_reply_to_status_id": "948941883945996291",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 15:40:20 +0000 2018",
+      "favorited": false,
+      "full_text": "This is your brain on Sports. Any questions? https://t.co/AfmplOu0U9",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/948942178235150337/photo/1",
+            "indices": [
+              "45",
+              "68"
+            ],
+            "url": "https://t.co/AfmplOu0U9",
+            "media_url": "http://pbs.twimg.com/media/DStR4MZU0AE0Fld.jpg",
+            "id_str": "948942172333592577",
+            "id": "948942172333592577",
+            "media_url_https": "https://pbs.twimg.com/media/DStR4MZU0AE0Fld.jpg",
+            "sizes": {
+              "medium": {
+                "w": "784",
+                "h": "455",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "680",
+                "h": "395",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              },
+              "large": {
+                "w": "784",
+                "h": "455",
+                "resize": "fit"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/AfmplOu0U9"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948941883945996291"
+          ],
+          "editableUntil": "2018-01-04T16:39:10.277Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "22"
+      ],
+      "favorite_count": "19",
+      "in_reply_to_status_id_str": "948941799929929728",
+      "id_str": "948941883945996291",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948941883945996291",
+      "in_reply_to_status_id": "948941799929929728",
+      "created_at": "Thu Jan 04 15:39:10 +0000 2018",
+      "favorited": false,
+      "full_text": "Sports: Not Even Once.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948941799929929728"
+          ],
+          "editableUntil": "2018-01-04T16:38:50.246Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "32"
+      ],
+      "favorite_count": "7",
+      "in_reply_to_status_id_str": "948941225230561281",
+      "id_str": "948941799929929728",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948941799929929728",
+      "in_reply_to_status_id": "948941225230561281",
+      "created_at": "Thu Jan 04 15:38:50 +0000 2018",
+      "favorited": false,
+      "full_text": "Remember, kids: don't do Sports.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948941225230561281"
+          ],
+          "editableUntil": "2018-01-04T16:36:33.227Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "205"
+      ],
+      "favorite_count": "21",
+      "id_str": "948941225230561281",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948941225230561281",
+      "created_at": "Thu Jan 04 15:36:33 +0000 2018",
+      "favorited": false,
+      "full_text": "Today I engaged in exactly 60 seconds of ocean sporting activity and then faceplanted into a rock. Luckily it was a glancing blow so I'm only a little scraped up. I return to my usual sitting on a lounger.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948940268115517440"
+          ],
+          "editableUntil": "2018-01-04T16:32:45.033Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Dr. Bluman* (also @drbluman@mstdn.social)",
+            "screen_name": "drbluman",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "8389142",
+            "id": "8389142"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "45"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948932200526942209",
+      "id_str": "948940268115517440",
+      "in_reply_to_user_id": "8389142",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948940268115517440",
+      "in_reply_to_status_id": "948932200526942209",
+      "created_at": "Thu Jan 04 15:32:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@drbluman Pretty different court in 2005, no?",
+      "lang": "en",
+      "in_reply_to_screen_name": "drbluman",
+      "in_reply_to_user_id_str": "8389142"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948931685441245184"
+          ],
+          "editableUntil": "2018-01-04T15:58:38.764Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/3R77uIZP0o",
+            "expanded_url": "https://twitter.com/edkrassen/status/948916306908205056",
+            "display_url": "twitter.com/edkrassen/stat…",
+            "indices": [
+              "152",
+              "175"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "175"
+      ],
+      "favorite_count": "31",
+      "id_str": "948931685441245184",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "948931685441245184",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 14:58:38 +0000 2018",
+      "favorited": false,
+      "full_text": "This is going to be the usual kind of rearguard action stupidity on the right that triggers a Supreme Court case that makes marijuana legal nationwide. https://t.co/3R77uIZP0o",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948915566072430592"
+          ],
+          "editableUntil": "2018-01-04T14:54:35.607Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "",
+            "screen_name": "alexburnsNYT",
+            "indices": [
+              "3",
+              "16"
+            ],
+            "id_str": "-1",
+            "id": "-1"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/NBqRrFLaQ0",
+            "expanded_url": "https://twitter.com/JakeSherman/status/948912370029559808",
+            "display_url": "twitter.com/JakeSherman/st…",
+            "indices": [
+              "57",
+              "80"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "80"
+      ],
+      "favorite_count": "0",
+      "id_str": "948915566072430592",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948915566072430592",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 13:54:35 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @alexburnsNYT: Dem youth turnout strategy for 2018 ✔️ https://t.co/NBqRrFLaQ0",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948911053429264389"
+          ],
+          "editableUntil": "2018-01-04T14:36:39.709Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Bryan Liles",
+            "screen_name": "bryanl",
+            "indices": [
+              "0",
+              "7"
+            ],
+            "id_str": "659933",
+            "id": "659933"
+          },
+          {
+            "name": "Visual Studio Code",
+            "screen_name": "code",
+            "indices": [
+              "8",
+              "13"
+            ],
+            "id_str": "3167734591",
+            "id": "3167734591"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "69"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "948909851744358401",
+      "id_str": "948911053429264389",
+      "in_reply_to_user_id": "659933",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948911053429264389",
+      "in_reply_to_status_id": "948909851744358401",
+      "created_at": "Thu Jan 04 13:36:39 +0000 2018",
+      "favorited": false,
+      "full_text": "@bryanl @code Save your money to buy a new computer without Spectre 💀",
+      "lang": "en",
+      "in_reply_to_screen_name": "bryanl",
+      "in_reply_to_user_id_str": "659933"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948907670584676353"
+          ],
+          "editableUntil": "2018-01-04T14:23:13.176Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Chad",
+            "screen_name": "kitation",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "17732267",
+            "id": "17732267"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "127"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948906657278582784",
+      "id_str": "948907670584676353",
+      "in_reply_to_user_id": "17732267",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948907670584676353",
+      "in_reply_to_status_id": "948906657278582784",
+      "created_at": "Thu Jan 04 13:23:13 +0000 2018",
+      "favorited": false,
+      "full_text": "@kitation Mine used to break at the cable so I'm hoping my AirPods will be more reliable simply by not having a cable to break.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kitation",
+      "in_reply_to_user_id_str": "17732267"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948903813758537730"
+          ],
+          "editableUntil": "2018-01-04T14:07:53.637Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/6zuixRID2M",
+            "expanded_url": "https://twitter.com/josephfcox/status/948846916133117953",
+            "display_url": "twitter.com/josephfcox/sta…",
+            "indices": [
+              "103",
+              "126"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "126"
+      ],
+      "favorite_count": "36",
+      "in_reply_to_status_id_str": "948740045577576448",
+      "id_str": "948903813758537730",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "21",
+      "id": "948903813758537730",
+      "in_reply_to_status_id": "948740045577576448",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 13:07:53 +0000 2018",
+      "favorited": false,
+      "full_text": "🎵 Remotely exploitable if you visit a malicious web page 🎵 this truly is the worst bug I've ever seen. https://t.co/6zuixRID2M",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948876562732060672"
+          ],
+          "editableUntil": "2018-01-04T12:19:36.486Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/eDJsEbVk1W",
+            "expanded_url": "https://mobile.nytimes.com/2018/01/03/us/politics/trump-voter-fraud-commission.html?mc_cid=2590536fc5&mc_eid=0a91fadb73&_r=0&referer=",
+            "display_url": "mobile.nytimes.com/2018/01/03/us/…",
+            "indices": [
+              "136",
+              "159"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "159"
+      ],
+      "favorite_count": "5",
+      "id_str": "948876562732060672",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948876562732060672",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 11:19:36 +0000 2018",
+      "favorited": false,
+      "full_text": "Maybe this is why he was so grumpy: Trump's commission on voter fraud found no evidence of voter fraud anywhere and has been shut down: https://t.co/eDJsEbVk1W",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948874417534373888"
+          ],
+          "editableUntil": "2018-01-04T12:11:05.031Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/NeMWvDrsJC",
+            "expanded_url": "https://twitter.com/bradheath/status/948333473332432896",
+            "display_url": "twitter.com/bradheath/stat…",
+            "indices": [
+              "76",
+              "99"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "99"
+      ],
+      "favorite_count": "21",
+      "id_str": "948874417534373888",
+      "truncated": false,
+      "retweet_count": "6",
+      "id": "948874417534373888",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 11:11:05 +0000 2018",
+      "favorited": false,
+      "full_text": "Remember kids, only white men are capable of delivering impartial verdicts. https://t.co/NeMWvDrsJC",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948802262259916800"
+          ],
+          "editableUntil": "2018-01-04T07:24:21.873Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Gab-o 🚀",
+            "screen_name": "gaboesquivel",
+            "indices": [
+              "0",
+              "13"
+            ],
+            "id_str": "44968138",
+            "id": "44968138"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "59"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948789831089434624",
+      "id_str": "948802262259916800",
+      "in_reply_to_user_id": "44968138",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948802262259916800",
+      "in_reply_to_status_id": "948789831089434624",
+      "created_at": "Thu Jan 04 06:24:21 +0000 2018",
+      "favorited": false,
+      "full_text": "@gaboesquivel Yes, just email support@npmjs.com and ask :-)",
+      "lang": "en",
+      "in_reply_to_screen_name": "gaboesquivel",
+      "in_reply_to_user_id_str": "44968138"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948746503669108737"
+          ],
+          "editableUntil": "2018-01-04T03:42:47.989Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "💥 Marco Stipek",
+            "screen_name": "codeprophet",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "1464495715",
+            "id": "1464495715"
+          },
+          {
+            "name": "Firefox 🔥",
+            "screen_name": "firefox",
+            "indices": [
+              "13",
+              "21"
+            ],
+            "id_str": "2142731",
+            "id": "2142731"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "157"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948745635615903745",
+      "id_str": "948746503669108737",
+      "in_reply_to_user_id": "1464495715",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948746503669108737",
+      "in_reply_to_status_id": "948745635615903745",
+      "created_at": "Thu Jan 04 02:42:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@codeprophet @firefox We are about to slow every computer in the world down by a third. The fact that browsers are slightly slower will hardly be noticeable.",
+      "lang": "en",
+      "in_reply_to_screen_name": "codeprophet",
+      "in_reply_to_user_id_str": "1464495715"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948744741226733569"
+          ],
+          "editableUntil": "2018-01-04T03:35:47.790Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "💥 Marco Stipek",
+            "screen_name": "codeprophet",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "1464495715",
+            "id": "1464495715"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "88"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948743209634713600",
+      "id_str": "948744741226733569",
+      "in_reply_to_user_id": "1464495715",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948744741226733569",
+      "in_reply_to_status_id": "948743209634713600",
+      "created_at": "Thu Jan 04 02:35:47 +0000 2018",
+      "favorited": false,
+      "full_text": "@codeprophet Ho Ho Ho fucked. Chrome and Firefox have already released patches at least.",
+      "lang": "en",
+      "in_reply_to_screen_name": "codeprophet",
+      "in_reply_to_user_id_str": "1464495715"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948741461109035008"
+          ],
+          "editableUntil": "2018-01-04T03:22:45.749Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Félix Saparelli",
+            "screen_name": "passcod",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "92200252",
+            "id": "92200252"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "179"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948741023424892928",
+      "id_str": "948741461109035008",
+      "in_reply_to_user_id": "92200252",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948741461109035008",
+      "in_reply_to_status_id": "948741023424892928",
+      "created_at": "Thu Jan 04 02:22:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@passcod Intel, AMD and ARM. I do not know nearly enough about processors to say for certain but anything with speculative execution (i.e. almost everything) seems to be affected.",
+      "lang": "en",
+      "in_reply_to_screen_name": "passcod",
+      "in_reply_to_user_id_str": "92200252"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948740202268446721"
+          ],
+          "editableUntil": "2018-01-04T03:17:45.618Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "meat.io on bluesky",
+            "screen_name": "meat",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "21006515",
+            "id": "21006515"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "9"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948739764215209985",
+      "id_str": "948740202268446721",
+      "in_reply_to_user_id": "21006515",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948740202268446721",
+      "in_reply_to_status_id": "948739764215209985",
+      "created_at": "Thu Jan 04 02:17:45 +0000 2018",
+      "favorited": false,
+      "full_text": "@meat Oy.",
+      "lang": "und",
+      "in_reply_to_screen_name": "meat",
+      "in_reply_to_user_id_str": "21006515"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948740045577576448"
+          ],
+          "editableUntil": "2018-01-04T03:17:08.260Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [
+          {
+            "text": "spectre",
+            "indices": [
+              "26",
+              "34"
+            ]
+          }
+        ],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "137"
+      ],
+      "favorite_count": "13",
+      "in_reply_to_status_id_str": "948736470768025600",
+      "id_str": "948740045577576448",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948740045577576448",
+      "in_reply_to_status_id": "948736470768025600",
+      "created_at": "Thu Jan 04 02:17:08 +0000 2018",
+      "favorited": false,
+      "full_text": "All of the above is about #spectre. Meltdown is already being patched and will probably not be too big a deal. Spectre is huge and scary.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948739770447998977"
+          ],
+          "editableUntil": "2018-01-04T03:16:02.664Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "meat.io on bluesky",
+            "screen_name": "meat",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "21006515",
+            "id": "21006515"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "41"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948739474627870721",
+      "id_str": "948739770447998977",
+      "in_reply_to_user_id": "21006515",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948739770447998977",
+      "in_reply_to_status_id": "948739474627870721",
+      "created_at": "Thu Jan 04 02:16:02 +0000 2018",
+      "favorited": false,
+      "full_text": "@meat Somebody is going to figure it out.",
+      "lang": "en",
+      "in_reply_to_screen_name": "meat",
+      "in_reply_to_user_id_str": "21006515"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948739124940374016"
+          ],
+          "editableUntil": "2018-01-04T03:13:28.763Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "meat.io on bluesky",
+            "screen_name": "meat",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "21006515",
+            "id": "21006515"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "87"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948737027083612166",
+      "id_str": "948739124940374016",
+      "in_reply_to_user_id": "21006515",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948739124940374016",
+      "in_reply_to_status_id": "948737027083612166",
+      "created_at": "Thu Jan 04 02:13:28 +0000 2018",
+      "favorited": false,
+      "full_text": "@meat Everything I'm reading suggests Spectre allows the same thing but is much harder.",
+      "lang": "en",
+      "in_reply_to_screen_name": "meat",
+      "in_reply_to_user_id_str": "21006515"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948737603309854720"
+          ],
+          "editableUntil": "2018-01-04T03:07:25.978Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sacha Sayan",
+            "screen_name": "sachasayan",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "48093353",
+            "id": "48093353"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "47"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948736685252096006",
+      "id_str": "948737603309854720",
+      "in_reply_to_user_id": "48093353",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948737603309854720",
+      "in_reply_to_status_id": "948736685252096006",
+      "created_at": "Thu Jan 04 02:07:25 +0000 2018",
+      "favorited": false,
+      "full_text": "@sachasayan Spectre affects Intel, AMD and ARM.",
+      "lang": "en",
+      "in_reply_to_screen_name": "sachasayan",
+      "in_reply_to_user_id_str": "48093353"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948737373441019904"
+          ],
+          "editableUntil": "2018-01-04T03:06:31.173Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "💥 Marco Stipek",
+            "screen_name": "codeprophet",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "1464495715",
+            "id": "1464495715"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "162"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948736168924991493",
+      "id_str": "948737373441019904",
+      "in_reply_to_user_id": "1464495715",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948737373441019904",
+      "in_reply_to_status_id": "948736168924991493",
+      "created_at": "Thu Jan 04 02:06:31 +0000 2018",
+      "favorited": false,
+      "full_text": "@codeprophet JS can do meltdown but I don't *think* JS can do Spectre, which is the longer term threat. Meltdown is being patched as we speak; Spectre has no fix.",
+      "lang": "en",
+      "in_reply_to_screen_name": "codeprophet",
+      "in_reply_to_user_id_str": "1464495715"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948736470768025600"
+          ],
+          "editableUntil": "2018-01-04T03:02:55.959Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "217"
+      ],
+      "favorite_count": "10",
+      "in_reply_to_status_id_str": "948736091863044097",
+      "id_str": "948736470768025600",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "948736470768025600",
+      "in_reply_to_status_id": "948736091863044097",
+      "created_at": "Thu Jan 04 02:02:55 +0000 2018",
+      "favorited": false,
+      "full_text": "In the medium term, say the next 12 months, things are going to be very bumpy security wise. A lot of systems are going to need to be redesigned to account for this and some may not be fixed before they are exploited.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948736091863044097"
+          ],
+          "editableUntil": "2018-01-04T03:01:25.621Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "222"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "948735598579404800",
+      "id_str": "948736091863044097",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948736091863044097",
+      "in_reply_to_status_id": "948735598579404800",
+      "created_at": "Thu Jan 04 02:01:25 +0000 2018",
+      "favorited": false,
+      "full_text": "In the short term: nothing is going to happen. Your laptop will still boot, your email will work. Long term, the problem will be fixed. Everyone will buy new hardware that doesn't have this bug (once somebody builds some).",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948735598579404800"
+          ],
+          "editableUntil": "2018-01-04T02:59:28.013Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "168"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948735077458079744",
+      "id_str": "948735598579404800",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "948735598579404800",
+      "in_reply_to_status_id": "948735077458079744",
+      "created_at": "Thu Jan 04 01:59:28 +0000 2018",
+      "favorited": false,
+      "full_text": "This is an even bigger problem because there is no fix anyone knows of yet short of redesigning nearly all computer chips in the world and everyone buying new hardware.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948735077458079744"
+          ],
+          "editableUntil": "2018-01-04T02:57:23.768Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "227"
+      ],
+      "favorite_count": "8",
+      "in_reply_to_status_id_str": "948734711379251201",
+      "id_str": "948735077458079744",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "948735077458079744",
+      "in_reply_to_status_id": "948734711379251201",
+      "created_at": "Thu Jan 04 01:57:23 +0000 2018",
+      "favorited": false,
+      "full_text": "This is especially a problem for cloud computing, serverless, etc where your software is running on hardware shared by many strangers. They can see everything on the machine, not just in their VM. They can steal *your* secrets.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948734711379251201"
+          ],
+          "editableUntil": "2018-01-04T02:55:56.488Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "171"
+      ],
+      "favorite_count": "14",
+      "in_reply_to_status_id_str": "948720087204290560",
+      "id_str": "948734711379251201",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "2",
+      "id": "948734711379251201",
+      "in_reply_to_status_id": "948720087204290560",
+      "created_at": "Thu Jan 04 01:55:56 +0000 2018",
+      "favorited": false,
+      "full_text": "TLDR: all modern computers -- your phone, your laptop, your server -- are vulnerable to data theft if untrustworthy software runs on them. This is not supposed to be true.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948723617898131456"
+          ],
+          "editableUntil": "2018-01-04T02:11:51.596Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Sasha Aickin",
+            "screen_name": "xander76",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "5837912",
+            "id": "5837912"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "72"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948722128433463296",
+      "id_str": "948723617898131456",
+      "in_reply_to_user_id": "5837912",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948723617898131456",
+      "in_reply_to_status_id": "948722128433463296",
+      "created_at": "Thu Jan 04 01:11:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@xander76 Not just new hardware but entirely new processor architecture.",
+      "lang": "en",
+      "in_reply_to_screen_name": "xander76",
+      "in_reply_to_user_id_str": "5837912"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948720087204290560"
+          ],
+          "editableUntil": "2018-01-04T01:57:49.813Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/PKAZ5r0A2J",
+            "expanded_url": "https://twitter.com/marknca/status/948706918591287296",
+            "display_url": "twitter.com/marknca/status…",
+            "indices": [
+              "62",
+              "85"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "85"
+      ],
+      "favorite_count": "84",
+      "id_str": "948720087204290560",
+      "truncated": false,
+      "retweet_count": "47",
+      "id": "948720087204290560",
+      "possibly_sensitive": false,
+      "created_at": "Thu Jan 04 00:57:49 +0000 2018",
+      "favorited": false,
+      "full_text": "So it turns out all computers in the world are broken. Oh my. https://t.co/PKAZ5r0A2J",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948687639737192448"
+          ],
+          "editableUntil": "2018-01-03T23:48:53.734Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Andrew Betts",
+            "screen_name": "triblondon",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "7311232",
+            "id": "7311232"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "47"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948687260421148673",
+      "id_str": "948687639737192448",
+      "in_reply_to_user_id": "7311232",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948687639737192448",
+      "in_reply_to_status_id": "948687260421148673",
+      "created_at": "Wed Jan 03 22:48:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@triblondon I'm close to nature. Very... close.",
+      "lang": "en",
+      "in_reply_to_screen_name": "triblondon",
+      "in_reply_to_user_id_str": "7311232"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948683180592201728"
+          ],
+          "editableUntil": "2018-01-03T23:31:10.591Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "lauraolin dot com slash newsletter",
+            "screen_name": "lauraolin",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "14069365",
+            "id": "14069365"
+          },
+          {
+            "name": "sarah jeong",
+            "screen_name": "sarahjeong",
+            "indices": [
+              "11",
+              "22"
+            ],
+            "id_str": "47509268",
+            "id": "47509268"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "61"
+      ],
+      "favorite_count": "9",
+      "in_reply_to_status_id_str": "948679606923616256",
+      "id_str": "948683180592201728",
+      "in_reply_to_user_id": "14069365",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948683180592201728",
+      "in_reply_to_status_id": "948679606923616256",
+      "created_at": "Wed Jan 03 22:31:10 +0000 2018",
+      "favorited": false,
+      "full_text": "@lauraolin @sarahjeong - ban handguns\n- use the metric system",
+      "lang": "en",
+      "in_reply_to_screen_name": "lauraolin",
+      "in_reply_to_user_id_str": "14069365"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948676690938679296"
+          ],
+          "editableUntil": "2018-01-03T23:05:23.337Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "zeddy",
+            "screen_name": "Zeddary",
+            "indices": [
+              "3",
+              "11"
+            ],
+            "id_str": "322735335",
+            "id": "322735335"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "948676690938679296",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948676690938679296",
+      "created_at": "Wed Jan 03 22:05:23 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @Zeddary: If the 25th Amendment wasn't created to stop a sundowning rageaholic currently jerking off in public to visions of a nuclear h…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948661497705705472"
+          ],
+          "editableUntil": "2018-01-03T22:05:00.988Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "136"
+      ],
+      "favorite_count": "16",
+      "in_reply_to_status_id_str": "948629834229567489",
+      "id_str": "948661497705705472",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948661497705705472",
+      "in_reply_to_status_id": "948629834229567489",
+      "created_at": "Wed Jan 03 21:05:00 +0000 2018",
+      "favorited": false,
+      "full_text": "True story: I tried taking this selfie with iPhone X portrait filter and it cannot work out where my hair begins and ends so it gave up.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948661276372361218"
+          ],
+          "editableUntil": "2018-01-03T22:04:08.218Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Revin Guillen",
+            "screen_name": "revin",
+            "indices": [
+              "0",
+              "6"
+            ],
+            "id_str": "14496796",
+            "id": "14496796"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "119"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948659876644896768",
+      "id_str": "948661276372361218",
+      "in_reply_to_user_id": "14496796",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948661276372361218",
+      "in_reply_to_status_id": "948659876644896768",
+      "created_at": "Wed Jan 03 21:04:08 +0000 2018",
+      "favorited": false,
+      "full_text": "@revin No joke I took like 40 selfies and this was the only one where I didn’t hate my expression so neck fronds it is.",
+      "lang": "en",
+      "in_reply_to_screen_name": "revin",
+      "in_reply_to_user_id_str": "14496796"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948651819202416640"
+          ],
+          "editableUntil": "2018-01-03T21:26:33.453Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "tierney cyren",
+            "screen_name": "bitandbang",
+            "indices": [
+              "0",
+              "11"
+            ],
+            "id_str": "622960227",
+            "id": "622960227"
+          },
+          {
+            "name": "@brianleroux@indieweb.social 💙",
+            "screen_name": "brianleroux",
+            "indices": [
+              "12",
+              "24"
+            ],
+            "id_str": "676363",
+            "id": "676363"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "94"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "948651266787463168",
+      "id_str": "948651819202416640",
+      "in_reply_to_user_id": "622960227",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948651819202416640",
+      "in_reply_to_status_id": "948651266787463168",
+      "created_at": "Wed Jan 03 20:26:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@bitandbang @brianleroux I do but I’m not digging data until I am back from vacation (Monday).",
+      "lang": "en",
+      "in_reply_to_screen_name": "bitandbang",
+      "in_reply_to_user_id_str": "622960227"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948649956327526401"
+          ],
+          "editableUntil": "2018-01-03T21:19:09.309Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "51"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948646712754683904",
+      "id_str": "948649956327526401",
+      "in_reply_to_user_id": "633793",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948649956327526401",
+      "in_reply_to_status_id": "948646712754683904",
+      "created_at": "Wed Jan 03 20:19:09 +0000 2018",
+      "favorited": false,
+      "full_text": "@flipzagging Not past tense. He continues to do so.",
+      "lang": "en",
+      "in_reply_to_screen_name": "NeilKNet",
+      "in_reply_to_user_id_str": "633793"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948641354854420482"
+          ],
+          "editableUntil": "2018-01-03T20:44:58.558Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "melanie ehrenkranz",
+            "screen_name": "MelanieHannah",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "182171680",
+            "id": "182171680"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "45"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948640934912241664",
+      "id_str": "948641354854420482",
+      "in_reply_to_user_id": "182171680",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948641354854420482",
+      "in_reply_to_status_id": "948640934912241664",
+      "created_at": "Wed Jan 03 19:44:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@MelanieHannah Who buys a DVD player in 2018?",
+      "lang": "en",
+      "in_reply_to_screen_name": "MelanieHannah",
+      "in_reply_to_user_id_str": "182171680"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948640279774531584"
+          ],
+          "editableUntil": "2018-01-03T20:40:42.239Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/#!/download/ipad\" rel=\"nofollow\">Twitter for iPad</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Glockymolo Enjoyer",
+            "screen_name": "ysaw",
+            "indices": [
+              "0",
+              "5"
+            ],
+            "id_str": "8340382",
+            "id": "8340382"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "11"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948639830790963200",
+      "id_str": "948640279774531584",
+      "in_reply_to_user_id": "8340382",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948640279774531584",
+      "in_reply_to_status_id": "948639830790963200",
+      "created_at": "Wed Jan 03 19:40:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@ysaw Oh no",
+      "lang": "en",
+      "in_reply_to_screen_name": "ysaw",
+      "in_reply_to_user_id_str": "8340382"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948633234438582272"
+          ],
+          "editableUntil": "2018-01-03T20:12:42.500Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Kelly Sommers",
+            "screen_name": "kellabyte",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "47494539",
+            "id": "47494539"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "133"
+      ],
+      "favorite_count": "6",
+      "in_reply_to_status_id_str": "948632313042104320",
+      "id_str": "948633234438582272",
+      "in_reply_to_user_id": "47494539",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948633234438582272",
+      "in_reply_to_status_id": "948632313042104320",
+      "created_at": "Wed Jan 03 19:12:42 +0000 2018",
+      "favorited": false,
+      "full_text": "@kellabyte You'd think anybody selling a machine without this bug would be shouting it to the heavens but I haven't seen any ads yet.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kellabyte",
+      "in_reply_to_user_id_str": "47494539"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948632328535986176"
+          ],
+          "editableUntil": "2018-01-03T20:09:06.516Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "206"
+      ],
+      "favorite_count": "19",
+      "id_str": "948632328535986176",
+      "truncated": false,
+      "retweet_count": "4",
+      "id": "948632328535986176",
+      "created_at": "Wed Jan 03 19:09:06 +0000 2018",
+      "favorited": false,
+      "full_text": "Trump's favorite tactic when somebody turns on him is to pretend he doesn't know them (he did this with Tiffany). Trying to do it with Bannon is going to make him look like an idiot, but that's nothing new.",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948630075238506496"
+          ],
+          "editableUntil": "2018-01-03T20:00:09.288Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "AJ+",
+            "screen_name": "ajplus",
+            "indices": [
+              "3",
+              "10"
+            ],
+            "id_str": "110396781",
+            "id": "110396781"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "139"
+      ],
+      "favorite_count": "0",
+      "id_str": "948630075238506496",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948630075238506496",
+      "created_at": "Wed Jan 03 19:00:09 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @ajplus: President Trump released this official statement on his former chief strategist: “Steve Bannon has nothing to do with me or my…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948629834229567489"
+          ],
+          "editableUntil": "2018-01-03T19:59:11.827Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "user_mentions": [],
+        "urls": [],
+        "symbols": [],
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/948629834229567489/photo/1",
+            "indices": [
+              "32",
+              "55"
+            ],
+            "url": "https://t.co/2Dg0pSGSps",
+            "media_url": "http://pbs.twimg.com/media/DSo1zJoVQAAK2Xr.jpg",
+            "id_str": "948629824389595136",
+            "id": "948629824389595136",
+            "media_url_https": "https://pbs.twimg.com/media/DSo1zJoVQAAK2Xr.jpg",
+            "sizes": {
+              "medium": {
+                "w": "901",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "511",
+                "h": "680",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1538",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/2Dg0pSGSps"
+          }
+        ],
+        "hashtags": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "80",
+      "id_str": "948629834229567489",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948629834229567489",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 03 18:59:11 +0000 2018",
+      "favorited": false,
+      "full_text": "Island selfie feat. beach hair. https://t.co/2Dg0pSGSps",
+      "lang": "en",
+      "extended_entities": {
+        "media": [
+          {
+            "expanded_url": "https://twitter.com/seldo/status/948629834229567489/photo/1",
+            "indices": [
+              "32",
+              "55"
+            ],
+            "url": "https://t.co/2Dg0pSGSps",
+            "media_url": "http://pbs.twimg.com/media/DSo1zJoVQAAK2Xr.jpg",
+            "id_str": "948629824389595136",
+            "id": "948629824389595136",
+            "media_url_https": "https://pbs.twimg.com/media/DSo1zJoVQAAK2Xr.jpg",
+            "sizes": {
+              "medium": {
+                "w": "901",
+                "h": "1200",
+                "resize": "fit"
+              },
+              "small": {
+                "w": "511",
+                "h": "680",
+                "resize": "fit"
+              },
+              "large": {
+                "w": "1538",
+                "h": "2048",
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": "150",
+                "h": "150",
+                "resize": "crop"
+              }
+            },
+            "type": "photo",
+            "display_url": "pic.twitter.com/2Dg0pSGSps"
+          }
+        ]
+      }
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948619960401752065"
+          ],
+          "editableUntil": "2018-01-03T19:19:57.723Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Harshal Mehra",
+            "screen_name": "Harshal_Mehra",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "43594984",
+            "id": "43594984"
+          },
+          {
+            "name": "Pranay Gupta",
+            "screen_name": "PranayG",
+            "indices": [
+              "15",
+              "23"
+            ],
+            "id_str": "19174226",
+            "id": "19174226"
+          },
+          {
+            "name": "Mukund Mohan",
+            "screen_name": "mukund",
+            "indices": [
+              "24",
+              "31"
+            ],
+            "id_str": "893431",
+            "id": "893431"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "125"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948615769604018176",
+      "id_str": "948619960401752065",
+      "in_reply_to_user_id": "43594984",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948619960401752065",
+      "in_reply_to_status_id": "948615769604018176",
+      "created_at": "Wed Jan 03 18:19:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@Harshal_Mehra @PranayG @mukund With the huge caveat that I used the term \"unit economics\" incorrectly for that whole thread.",
+      "lang": "en",
+      "in_reply_to_screen_name": "Harshal_Mehra",
+      "in_reply_to_user_id_str": "43594984"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948607361056477185"
+          ],
+          "editableUntil": "2018-01-03T18:29:53.805Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "parker",
+            "screen_name": "pt",
+            "indices": [
+              "0",
+              "3"
+            ],
+            "id_str": "9571702",
+            "id": "9571702"
+          },
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "4",
+              "12"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          },
+          {
+            "name": "moonmaster9000",
+            "screen_name": "moonmaster9000",
+            "indices": [
+              "13",
+              "28"
+            ],
+            "id_str": "14391298",
+            "id": "14391298"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "183"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948605952869085184",
+      "id_str": "948607361056477185",
+      "in_reply_to_user_id": "9571702",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948607361056477185",
+      "in_reply_to_status_id": "948605952869085184",
+      "created_at": "Wed Jan 03 17:29:53 +0000 2018",
+      "favorited": false,
+      "full_text": "@pt @terronk @moonmaster9000 I wasn't really thinking in the context of Twitter, but more broadly. Kicking Trump off Twitter or any other changes at Twitter would not fix the problem.",
+      "lang": "en",
+      "in_reply_to_screen_name": "pt",
+      "in_reply_to_user_id_str": "9571702"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948604834147717120"
+          ],
+          "editableUntil": "2018-01-03T18:19:51.343Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Lee Edwards",
+            "screen_name": "terronk",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "14829286",
+            "id": "14829286"
+          },
+          {
+            "name": "parker",
+            "screen_name": "pt",
+            "indices": [
+              "9",
+              "12"
+            ],
+            "id_str": "9571702",
+            "id": "9571702"
+          },
+          {
+            "name": "moonmaster9000",
+            "screen_name": "moonmaster9000",
+            "indices": [
+              "13",
+              "28"
+            ],
+            "id_str": "14391298",
+            "id": "14391298"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "184"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948601757373902853",
+      "id_str": "948604834147717120",
+      "in_reply_to_user_id": "14829286",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948604834147717120",
+      "in_reply_to_status_id": "948601757373902853",
+      "created_at": "Wed Jan 03 17:19:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@terronk @pt @moonmaster9000 What should they do instead? The thing that actually stopped Hitler was a gigantic war, so if you've got a better suggestion now is the fucking time buddy.",
+      "lang": "en",
+      "in_reply_to_screen_name": "terronk",
+      "in_reply_to_user_id_str": "14829286"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948601270646005761"
+          ],
+          "editableUntil": "2018-01-03T18:05:41.738Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "John Collison",
+            "screen_name": "collision",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "5418912",
+            "id": "5418912"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "55"
+      ],
+      "favorite_count": "48",
+      "in_reply_to_status_id_str": "948575483624505344",
+      "id_str": "948601270646005761",
+      "in_reply_to_user_id": "5418912",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948601270646005761",
+      "in_reply_to_status_id": "948575483624505344",
+      "created_at": "Wed Jan 03 17:05:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@collision Finance jokes are like next-level dad jokes.",
+      "lang": "en",
+      "in_reply_to_screen_name": "collision",
+      "in_reply_to_user_id_str": "5418912"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948600744663486464"
+          ],
+          "editableUntil": "2018-01-03T18:03:36.334Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "parker",
+            "screen_name": "pt",
+            "indices": [
+              "0",
+              "3"
+            ],
+            "id_str": "9571702",
+            "id": "9571702"
+          },
+          {
+            "name": "moonmaster9000",
+            "screen_name": "moonmaster9000",
+            "indices": [
+              "4",
+              "19"
+            ],
+            "id_str": "14391298",
+            "id": "14391298"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "120"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948598929683173376",
+      "id_str": "948600744663486464",
+      "in_reply_to_user_id": "9571702",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948600744663486464",
+      "in_reply_to_status_id": "948598929683173376",
+      "created_at": "Wed Jan 03 17:03:36 +0000 2018",
+      "favorited": false,
+      "full_text": "@pt @moonmaster9000 I agree. I certainly am not spending a lot of time on getting them to ban Trump vs the other things.",
+      "lang": "en",
+      "in_reply_to_screen_name": "pt",
+      "in_reply_to_user_id_str": "9571702"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948597998795284481"
+          ],
+          "editableUntil": "2018-01-03T17:52:41.668Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "parker",
+            "screen_name": "pt",
+            "indices": [
+              "0",
+              "3"
+            ],
+            "id_str": "9571702",
+            "id": "9571702"
+          },
+          {
+            "name": "moonmaster9000",
+            "screen_name": "moonmaster9000",
+            "indices": [
+              "4",
+              "19"
+            ],
+            "id_str": "14391298",
+            "id": "14391298"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "72"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948597814178828288",
+      "id_str": "948597998795284481",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948597998795284481",
+      "in_reply_to_status_id": "948597814178828288",
+      "created_at": "Wed Jan 03 16:52:41 +0000 2018",
+      "favorited": false,
+      "full_text": "@pt @moonmaster9000 (He'd go to FB too but it would work much less well)",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948597814178828288"
+          ],
+          "editableUntil": "2018-01-03T17:51:57.652Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "parker",
+            "screen_name": "pt",
+            "indices": [
+              "0",
+              "3"
+            ],
+            "id_str": "9571702",
+            "id": "9571702"
+          },
+          {
+            "name": "moonmaster9000",
+            "screen_name": "moonmaster9000",
+            "indices": [
+              "4",
+              "19"
+            ],
+            "id_str": "14391298",
+            "id": "14391298"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "101"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948597586423943169",
+      "id_str": "948597814178828288",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948597814178828288",
+      "in_reply_to_status_id": "948597586423943169",
+      "created_at": "Wed Jan 03 16:51:57 +0000 2018",
+      "favorited": false,
+      "full_text": "@pt @moonmaster9000 If you banned Trump from Twitter he'd just shut the fuck up. That's the positive.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948597586423943169"
+          ],
+          "editableUntil": "2018-01-03T17:51:03.351Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "parker",
+            "screen_name": "pt",
+            "indices": [
+              "0",
+              "3"
+            ],
+            "id_str": "9571702",
+            "id": "9571702"
+          },
+          {
+            "name": "moonmaster9000",
+            "screen_name": "moonmaster9000",
+            "indices": [
+              "4",
+              "19"
+            ],
+            "id_str": "14391298",
+            "id": "14391298"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "173"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "948597073368178688",
+      "id_str": "948597586423943169",
+      "in_reply_to_user_id": "9571702",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948597586423943169",
+      "in_reply_to_status_id": "948597073368178688",
+      "created_at": "Wed Jan 03 16:51:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@pt @moonmaster9000 Trump will not go to Gab, and if he did Gab would collapse immediately. They're not very good at engineering, which is why they had to pivot into racism.",
+      "lang": "en",
+      "in_reply_to_screen_name": "pt",
+      "in_reply_to_user_id_str": "9571702"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948595920773570561"
+          ],
+          "editableUntil": "2018-01-03T17:44:26.229Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "parker",
+            "screen_name": "pt",
+            "indices": [
+              "0",
+              "3"
+            ],
+            "id_str": "9571702",
+            "id": "9571702"
+          },
+          {
+            "name": "moonmaster9000",
+            "screen_name": "moonmaster9000",
+            "indices": [
+              "4",
+              "19"
+            ],
+            "id_str": "14391298",
+            "id": "14391298"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "152"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948595098257731584",
+      "id_str": "948595920773570561",
+      "in_reply_to_user_id": "9571702",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948595920773570561",
+      "in_reply_to_status_id": "948595098257731584",
+      "created_at": "Wed Jan 03 16:44:26 +0000 2018",
+      "favorited": false,
+      "full_text": "@pt @moonmaster9000 Strongly disagree. Preventing broadcast of extremists prevents the vulnerable from being radicalized. Lots of precedent on this one.",
+      "lang": "en",
+      "in_reply_to_screen_name": "pt",
+      "in_reply_to_user_id_str": "9571702"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948568625476263938"
+          ],
+          "editableUntil": "2018-01-03T15:55:58.523Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "There must be a pony in here somewhere",
+            "screen_name": "abmartinson",
+            "indices": [
+              "0",
+              "12"
+            ],
+            "id_str": "15591476",
+            "id": "15591476"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "45"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948564830734114817",
+      "id_str": "948568625476263938",
+      "in_reply_to_user_id": "15591476",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948568625476263938",
+      "in_reply_to_status_id": "948564830734114817",
+      "created_at": "Wed Jan 03 14:55:58 +0000 2018",
+      "favorited": false,
+      "full_text": "@abmartinson That's the iPhone app scaled up.",
+      "lang": "en",
+      "in_reply_to_screen_name": "abmartinson",
+      "in_reply_to_user_id_str": "15591476"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948557555999092736"
+          ],
+          "editableUntil": "2018-01-03T15:11:59.354Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🏳️‍🌈 Sam Kimbrel | @skimbrel@tech.lgbt",
+            "screen_name": "skimbrel",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "17934129",
+            "id": "17934129"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "230"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948554442046980096",
+      "id_str": "948557555999092736",
+      "in_reply_to_user_id": "17934129",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948557555999092736",
+      "in_reply_to_status_id": "948554442046980096",
+      "created_at": "Wed Jan 03 14:11:59 +0000 2018",
+      "favorited": false,
+      "full_text": "@skimbrel I looked at this story but I don't think there's anything there. The minimum required is quite high; he sold less than half of his holdings. It shows a lack of confidence in Intel but he's not bailing out before a crash.",
+      "lang": "en",
+      "in_reply_to_screen_name": "skimbrel",
+      "in_reply_to_user_id_str": "17934129"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948544234424098816"
+          ],
+          "editableUntil": "2018-01-03T14:19:03.243Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jdecked",
+            "screen_name": "jdecked",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "190799800",
+            "id": "190799800"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "17"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948543333193859072",
+      "id_str": "948544234424098816",
+      "in_reply_to_user_id": "190799800",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948544234424098816",
+      "in_reply_to_status_id": "948543333193859072",
+      "created_at": "Wed Jan 03 13:19:03 +0000 2018",
+      "favorited": false,
+      "full_text": "@jdecked My word.",
+      "lang": "en",
+      "in_reply_to_screen_name": "jdecked",
+      "in_reply_to_user_id_str": "190799800"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948540588286148608"
+          ],
+          "editableUntil": "2018-01-03T14:04:33.936Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "jdecked",
+            "screen_name": "jdecked",
+            "indices": [
+              "0",
+              "8"
+            ],
+            "id_str": "190799800",
+            "id": "190799800"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "61"
+      ],
+      "favorite_count": "0",
+      "in_reply_to_status_id_str": "948539229537124353",
+      "id_str": "948540588286148608",
+      "in_reply_to_user_id": "190799800",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948540588286148608",
+      "in_reply_to_status_id": "948539229537124353",
+      "created_at": "Wed Jan 03 13:04:33 +0000 2018",
+      "favorited": false,
+      "full_text": "@jdecked They are teaching you scrum development in college??",
+      "lang": "en",
+      "in_reply_to_screen_name": "jdecked",
+      "in_reply_to_user_id_str": "190799800"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948540318449917952"
+          ],
+          "editableUntil": "2018-01-03T14:03:29.602Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Joshua Cohen",
+            "screen_name": "heyjoshua",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "14203080",
+            "id": "14203080"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "83"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948536478287753216",
+      "id_str": "948540318449917952",
+      "in_reply_to_user_id": "14203080",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948540318449917952",
+      "in_reply_to_status_id": "948536478287753216",
+      "created_at": "Wed Jan 03 13:03:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@heyjoshua I mean, let's not get started on all the opportunities missed by Flickr.",
+      "lang": "en",
+      "in_reply_to_screen_name": "heyjoshua",
+      "in_reply_to_user_id_str": "14203080"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948516288669896704"
+          ],
+          "editableUntil": "2018-01-03T12:28:00.456Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Leszek Karlik 🇵🇱 🇺🇦🇪🇺",
+            "screen_name": "Leszek_Karlik",
+            "indices": [
+              "0",
+              "14"
+            ],
+            "id_str": "715825871693733889",
+            "id": "715825871693733889"
+          },
+          {
+            "name": "@LittleMxSurly@yharnam.singles",
+            "screen_name": "LittleMxSurly",
+            "indices": [
+              "15",
+              "29"
+            ],
+            "id_str": "22009627",
+            "id": "22009627"
+          }
+        ],
+        "urls": [
+          {
+            "url": "https://t.co/GA3PrUWL0t",
+            "expanded_url": "https://twitter.com/seldo/status/921912048564371456",
+            "display_url": "twitter.com/seldo/status/9…",
+            "indices": [
+              "55",
+              "78"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "78"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948496458927484928",
+      "id_str": "948516288669896704",
+      "in_reply_to_user_id": "715825871693733889",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948516288669896704",
+      "in_reply_to_status_id": "948496458927484928",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 03 11:28:00 +0000 2018",
+      "favorited": false,
+      "full_text": "@Leszek_Karlik @LittleMxSurly As I've said previously: https://t.co/GA3PrUWL0t",
+      "lang": "en",
+      "in_reply_to_screen_name": "Leszek_Karlik",
+      "in_reply_to_user_id_str": "715825871693733889"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948515245336793088"
+          ],
+          "editableUntil": "2018-01-03T12:23:51.706Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Adam",
+            "screen_name": "adamadzp",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "21006323",
+            "id": "21006323"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "124"
+      ],
+      "favorite_count": "1",
+      "in_reply_to_status_id_str": "948312209767137280",
+      "id_str": "948515245336793088",
+      "in_reply_to_user_id": "21006323",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948515245336793088",
+      "in_reply_to_status_id": "948312209767137280",
+      "created_at": "Wed Jan 03 11:23:51 +0000 2018",
+      "favorited": false,
+      "full_text": "@adamadzp The whole series is \"the dysfunctional Skywalker family fucks up the entire galaxy in their attempts to get laid\".",
+      "lang": "en",
+      "in_reply_to_screen_name": "adamadzp",
+      "in_reply_to_user_id_str": "21006323"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948370622060683264"
+          ],
+          "editableUntil": "2018-01-03T02:49:10.830Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Jake Tapper",
+            "screen_name": "jaketapper",
+            "indices": [
+              "3",
+              "14"
+            ],
+            "id_str": "14529929",
+            "id": "14529929"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "140"
+      ],
+      "favorite_count": "0",
+      "id_str": "948370622060683264",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948370622060683264",
+      "created_at": "Wed Jan 03 01:49:10 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @jaketapper: \"Every man, woman and child lives under a nuclear sword of Damocles, hanging by the slenderest of threads, capable of being…",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948367131803922432"
+          ],
+          "editableUntil": "2018-01-03T02:35:18.688Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Burrito Justice",
+            "screen_name": "burritojustice",
+            "indices": [
+              "3",
+              "18"
+            ],
+            "id_str": "16944165",
+            "id": "16944165"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "70"
+      ],
+      "favorite_count": "0",
+      "id_str": "948367131803922432",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948367131803922432",
+      "created_at": "Wed Jan 03 01:35:18 +0000 2018",
+      "favorited": false,
+      "full_text": "RT @burritojustice: so basically substitute \"Penis\" for \"Button\" right",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948367109410652161"
+          ],
+          "editableUntil": "2018-01-03T02:35:13.349Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Burrito Justice",
+            "screen_name": "burritojustice",
+            "indices": [
+              "0",
+              "15"
+            ],
+            "id_str": "16944165",
+            "id": "16944165"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "32"
+      ],
+      "favorite_count": "3",
+      "in_reply_to_status_id_str": "948367003986767872",
+      "id_str": "948367109410652161",
+      "in_reply_to_user_id": "16944165",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948367109410652161",
+      "in_reply_to_status_id": "948367003986767872",
+      "created_at": "Wed Jan 03 01:35:13 +0000 2018",
+      "favorited": false,
+      "full_text": "@burritojustice It's not subtle.",
+      "lang": "en",
+      "in_reply_to_screen_name": "burritojustice",
+      "in_reply_to_user_id_str": "16944165"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948362071896461312"
+          ],
+          "editableUntil": "2018-01-03T02:15:12.312Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Olivia Computer",
+            "screen_name": "oliviacpu",
+            "indices": [
+              "0",
+              "10"
+            ],
+            "id_str": "861116848686809088",
+            "id": "861116848686809088"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "23"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948361444180897792",
+      "id_str": "948362071896461312",
+      "in_reply_to_user_id": "861116848686809088",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948362071896461312",
+      "in_reply_to_status_id": "948361444180897792",
+      "created_at": "Wed Jan 03 01:15:12 +0000 2018",
+      "favorited": false,
+      "full_text": "@oliviacpu Damn guuuurl",
+      "lang": "tl",
+      "in_reply_to_screen_name": "oliviacpu",
+      "in_reply_to_user_id_str": "861116848686809088"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948360380551782400"
+          ],
+          "editableUntil": "2018-01-03T02:08:29.064Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "🏳️‍🌈🏳️‍⚧️👊Marco👊🏳️‍⚧️🏳️‍🌈",
+            "screen_name": "TheMarco",
+            "indices": [
+              "0",
+              "9"
+            ],
+            "id_str": "6875652",
+            "id": "6875652"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "124"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948360023347900416",
+      "id_str": "948360380551782400",
+      "in_reply_to_user_id": "6875652",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948360380551782400",
+      "in_reply_to_status_id": "948360023347900416",
+      "created_at": "Wed Jan 03 01:08:29 +0000 2018",
+      "favorited": false,
+      "full_text": "@TheMarco I started thinking carefully about non-US concerned parties and voting adults etc and gave up and picked a number.",
+      "lang": "en",
+      "in_reply_to_screen_name": "TheMarco",
+      "in_reply_to_user_id_str": "6875652"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948359245786992640"
+          ],
+          "editableUntil": "2018-01-03T02:03:58.515Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": [
+          {
+            "url": "https://t.co/f1i4S4iUKX",
+            "expanded_url": "https://twitter.com/realdonaldtrump/status/948355557022420992",
+            "display_url": "twitter.com/realdonaldtrum…",
+            "indices": [
+              "82",
+              "105"
+            ]
+          }
+        ]
+      },
+      "display_text_range": [
+        "0",
+        "105"
+      ],
+      "favorite_count": "56",
+      "id_str": "948359245786992640",
+      "truncated": false,
+      "retweet_count": "9",
+      "id": "948359245786992640",
+      "possibly_sensitive": false,
+      "created_at": "Wed Jan 03 01:03:58 +0000 2018",
+      "favorited": false,
+      "full_text": "That noise you just heard was 300 million people all facepalming at the same time https://t.co/f1i4S4iUKX",
+      "lang": "en"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948352227122524161"
+          ],
+          "editableUntil": "2018-01-03T01:36:05.135Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "Matthew Green",
+            "screen_name": "matthew_d_green",
+            "indices": [
+              "0",
+              "16"
+            ],
+            "id_str": "106234268",
+            "id": "106234268"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "177"
+      ],
+      "favorite_count": "2",
+      "in_reply_to_status_id_str": "948351505761030149",
+      "id_str": "948352227122524161",
+      "in_reply_to_user_id": "106234268",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948352227122524161",
+      "in_reply_to_status_id": "948351505761030149",
+      "created_at": "Wed Jan 03 00:36:05 +0000 2018",
+      "favorited": false,
+      "full_text": "@matthew_d_green There's overhead in each city, and not all rides are profitable. Especially for Uberpool, you need a density of customers to make the thing worth anyone's time.",
+      "lang": "en",
+      "in_reply_to_screen_name": "matthew_d_green",
+      "in_reply_to_user_id_str": "106234268"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948341074262667264"
+          ],
+          "editableUntil": "2018-01-03T00:51:46.086Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [
+          {
+            "name": "kenneth 🌞",
+            "screen_name": "kpk",
+            "indices": [
+              "0",
+              "4"
+            ],
+            "id_str": "22915745",
+            "id": "22915745"
+          }
+        ],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "169"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "948340637333622784",
+      "id_str": "948341074262667264",
+      "in_reply_to_user_id": "22915745",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948341074262667264",
+      "in_reply_to_status_id": "948340637333622784",
+      "created_at": "Tue Jan 02 23:51:46 +0000 2018",
+      "favorited": false,
+      "full_text": "@kpk Uber is a very, very poorly run company. I do not think they can pull off something this complicated unless Dara manages to change the fundamental DNA of the place.",
+      "lang": "en",
+      "in_reply_to_screen_name": "kpk",
+      "in_reply_to_user_id_str": "22915745"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948338658997923840"
+          ],
+          "editableUntil": "2018-01-03T00:42:10.242Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "240"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "948337520735150080",
+      "id_str": "948338658997923840",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948338658997923840",
+      "in_reply_to_status_id": "948337520735150080",
+      "created_at": "Tue Jan 02 23:42:10 +0000 2018",
+      "favorited": false,
+      "full_text": "If profitability does require self-driving cars then it's unlikely the high fidelity mapping needed will be profitable outside of, yes, large, dense cities. So the self-driving car outcome is my \"smaller, profitable, lower valuation\" model.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948337520735150080"
+          ],
+          "editableUntil": "2018-01-03T00:37:38.859Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "273"
+      ],
+      "favorite_count": "10",
+      "in_reply_to_status_id_str": "948337158183628800",
+      "id_str": "948337520735150080",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "1",
+      "id": "948337520735150080",
+      "in_reply_to_status_id": "948337158183628800",
+      "created_at": "Tue Jan 02 23:37:38 +0000 2018",
+      "favorited": false,
+      "full_text": "An even more pessimistic model would be that the service can only be profitable if Uber invents self-driving cars. I don't think they know how to do this -- they fired the guy who did and it turns out he stole the tech anyway. Uber is not going to invent self-driving cars.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    },
+    {
+      "edit_info": {
+        "initial": {
+          "editTweetIds": [
+            "948337158183628800"
+          ],
+          "editableUntil": "2018-01-03T00:36:12.420Z",
+          "editsRemaining": "5",
+          "isEditEligible": true
+        }
+      },
+      "retweeted": false,
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "user_mentions": [],
+        "urls": []
+      },
+      "display_text_range": [
+        "0",
+        "277"
+      ],
+      "favorite_count": "4",
+      "in_reply_to_status_id_str": "948336620138352645",
+      "id_str": "948337158183628800",
+      "in_reply_to_user_id": "15453",
+      "truncated": false,
+      "retweet_count": "0",
+      "id": "948337158183628800",
+      "in_reply_to_status_id": "948336620138352645",
+      "created_at": "Tue Jan 02 23:36:12 +0000 2018",
+      "favorited": false,
+      "full_text": "This model means Uber matures into a real, steady, profitable service available in major cities around the world. It's a good outcome but it doesn't justify their current massive valuation - they better IPO before that reality becomes apparent, and buying at IPO would be dumb.",
+      "lang": "en",
+      "in_reply_to_screen_name": "seldo",
+      "in_reply_to_user_id_str": "15453"
+    }
+]
diff --git a/apps/simple/CHANGELOG.md b/apps/simple/CHANGELOG.md
index 517f545e68d0a32917708bd5e91a1d2c28ea0878..d0cbd0053235b3ef3a5203164a474dcb6503d3ed 100644
--- a/apps/simple/CHANGELOG.md
+++ b/apps/simple/CHANGELOG.md
@@ -1,5 +1,12 @@
 # simple
 
+## 0.0.33
+
+### Patch Changes
+
+- Updated dependencies [63f2108]
+  - llamaindex@0.0.35
+
 ## 0.0.32
 
 ### Patch Changes
diff --git a/apps/simple/anthropic.ts b/apps/simple/anthropic.ts
index ae4eab14be13006b9f5b40987254c431ec663539..ee12d722740d680aea6640cb36653b50fcfa7c10 100644
--- a/apps/simple/anthropic.ts
+++ b/apps/simple/anthropic.ts
@@ -4,8 +4,6 @@ import { Anthropic } from "llamaindex";
   const anthropic = new Anthropic();
   const result = await anthropic.chat([
     { content: "You want to talk in rhymes.", role: "system" },
-    { content: "Hello, world!", role: "user" },
-    { content: "Hello!", role: "assistant" },
     {
       content:
         "How much wood would a woodchuck chuck if a woodchuck could chuck wood?",
diff --git a/apps/simple/gptllama.ts b/apps/simple/gptllama.ts
index 5497b5e492c3c93a37a454085fe1d211435c07d4..1ecb2a1b01d63d6d854559c95bb118fecccf3b6e 100644
--- a/apps/simple/gptllama.ts
+++ b/apps/simple/gptllama.ts
@@ -6,7 +6,7 @@ import readline from "node:readline/promises";
 import { ChatMessage, LlamaDeuce, OpenAI } from "llamaindex";
 
 (async () => {
-  const gpt4 = new OpenAI({ model: "gpt-4-vision-preview", temperature: 0.9 });
+  const gpt4 = new OpenAI({ model: "gpt-4", temperature: 0.9 });
   const l2 = new LlamaDeuce({
     model: "Llama-2-70b-chat-4bit",
     temperature: 0.9,
diff --git a/apps/simple/llmStream.ts b/apps/simple/llmStream.ts
deleted file mode 100644
index e9ebce4441cb2849d534947061114999a5e3a980..0000000000000000000000000000000000000000
--- a/apps/simple/llmStream.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { ChatMessage, OpenAI, SimpleChatEngine } from "llamaindex";
-import {Anthropic} from "../../packages/core/src/llm/LLM";
-import { stdin as input, stdout as output } from "node:process";
-import readline from "node:readline/promises";
-
-async function main() {
-  const query: string = `
-Where is Istanbul?
-  `;
-
-  // const llm = new OpenAI({ model: "gpt-3.5-turbo", temperature: 0.1 });
-  const llm = new Anthropic();
-  const message: ChatMessage = { content: query, role: "user" };
-
-  //TODO: Add callbacks later
-
-  //Stream Complete
-  //Note: Setting streaming flag to true or false will auto-set your return type to
-  //either an AsyncGenerator or a Response.
-  // Omitting the streaming flag automatically sets streaming to false
-
-  const chatEngine: SimpleChatEngine = new SimpleChatEngine({
-    chatHistory: undefined,
-    llm: llm,
-  });
-
-  const rl = readline.createInterface({ input, output });
-  while (true) {
-    const query = await rl.question("Query: ");
-
-    if (!query) {
-      break;
-    }
-
-    //Case 1: .chat(query, undefined, true) => Stream
-    //Case 2: .chat(query, undefined, false) => Response object
-    //Case 3: .chat(query, undefined) => Response object
-    const chatStream = await chatEngine.chat(query, undefined, true);
-    var accumulated_result = "";
-    for await (const part of chatStream) {
-      accumulated_result += part;
-      process.stdout.write(part);
-    }
-  }
-}
-
-main();
diff --git a/apps/simple/package.json b/apps/simple/package.json
index a10489a92d4f4528bb4f451279d1e48e4948f993..30e41c57338df351f30878b9bf095e0a4b333ef3 100644
--- a/apps/simple/package.json
+++ b/apps/simple/package.json
@@ -1,5 +1,5 @@
 {
-  "version": "0.0.32",
+  "version": "0.0.33",
   "private": true,
   "name": "simple",
   "dependencies": {
diff --git a/apps/simple/portkey.ts b/apps/simple/portkey.ts
index 4221b4b16650ea0ca1cf122c84fcbc20f23fba70..f5dfff2e8f50ebca340812f0f62c48344b46ebd3 100644
--- a/apps/simple/portkey.ts
+++ b/apps/simple/portkey.ts
@@ -1,23 +1,23 @@
 import { Portkey } from "llamaindex";
 
 (async () => {
-  const llms = [{
-
-  }]
+  const llms = [{}];
   const portkey = new Portkey({
     mode: "single",
-    llms: [{
-      provider:"anyscale",
-      virtual_key:"anyscale-3b3c04",
-      model: "meta-llama/Llama-2-13b-chat-hf",
-      max_tokens: 2000
-    }]
+    llms: [
+      {
+        provider: "anyscale",
+        virtual_key: "anyscale-3b3c04",
+        model: "meta-llama/Llama-2-13b-chat-hf",
+        max_tokens: 2000,
+      },
+    ],
   });
   const result = portkey.stream_chat([
     { role: "system", content: "You are a helpful assistant." },
-    { role: "user", content: "Tell me a joke." }
+    { role: "user", content: "Tell me a joke." },
   ]);
   for await (const res of result) {
-    process.stdout.write(res)
+    process.stdout.write(res);
   }
 })();
diff --git a/apps/simple/vectorIndexAnthropic.ts b/apps/simple/vectorIndexAnthropic.ts
index 6dc807cd012d9ec53c109fd2061cfa86b586b474..c979900b285d6807c2dd6f8f030810973be70c70 100644
--- a/apps/simple/vectorIndexAnthropic.ts
+++ b/apps/simple/vectorIndexAnthropic.ts
@@ -2,7 +2,10 @@ import fs from "node:fs/promises";
 
 import {
   Anthropic,
+  anthropicTextQaPrompt,
+  CompactAndRefine,
   Document,
+  ResponseSynthesizer,
   serviceContextFromDefaults,
   VectorStoreIndex,
 } from "llamaindex";
@@ -18,12 +21,20 @@ async function main() {
 
   // Split text and create embeddings. Store them in a VectorStoreIndex
   const serviceContext = serviceContextFromDefaults({ llm: new Anthropic() });
+
+  const responseSynthesizer = new ResponseSynthesizer({
+    responseBuilder: new CompactAndRefine(
+      serviceContext,
+      anthropicTextQaPrompt,
+    ),
+  });
+
   const index = await VectorStoreIndex.fromDocuments([document], {
     serviceContext,
   });
 
   // Query the index
-  const queryEngine = index.asQueryEngine();
+  const queryEngine = index.asQueryEngine({ responseSynthesizer });
   const response = await queryEngine.query(
     "What did the author do in college?",
   );
diff --git a/examples/anthropic.ts b/examples/anthropic.ts
index ae4eab14be13006b9f5b40987254c431ec663539..ee12d722740d680aea6640cb36653b50fcfa7c10 100644
--- a/examples/anthropic.ts
+++ b/examples/anthropic.ts
@@ -4,8 +4,6 @@ import { Anthropic } from "llamaindex";
   const anthropic = new Anthropic();
   const result = await anthropic.chat([
     { content: "You want to talk in rhymes.", role: "system" },
-    { content: "Hello, world!", role: "user" },
-    { content: "Hello!", role: "assistant" },
     {
       content:
         "How much wood would a woodchuck chuck if a woodchuck could chuck wood?",
diff --git a/examples/clip.ts b/examples/clip.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6d02b7ea9622c40de6eac9f599666df26daddef5
--- /dev/null
+++ b/examples/clip.ts
@@ -0,0 +1,33 @@
+import { ClipEmbedding, similarity, SimilarityType } from "llamaindex";
+
+async function main() {
+  const clip = new ClipEmbedding();
+
+  // Get text embeddings
+  const text1 = "a car";
+  const textEmbedding1 = await clip.getTextEmbedding(text1);
+  const text2 = "a football match";
+  const textEmbedding2 = await clip.getTextEmbedding(text2);
+
+  // Get image embedding
+  const image =
+    "https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg";
+  const imageEmbedding = await clip.getImageEmbedding(image);
+
+  // Calc similarity
+  const sim1 = similarity(
+    textEmbedding1,
+    imageEmbedding,
+    SimilarityType.DEFAULT,
+  );
+  const sim2 = similarity(
+    textEmbedding2,
+    imageEmbedding,
+    SimilarityType.DEFAULT,
+  );
+
+  console.log(`Similarity between "${text1}" and the image is ${sim1}`);
+  console.log(`Similarity between "${text2}" and the image is ${sim2}`);
+}
+
+main();
diff --git a/examples/directory.ts b/examples/directory.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bc4dd592b88c78bf3de53f552108a8b2977aa540
--- /dev/null
+++ b/examples/directory.ts
@@ -0,0 +1,24 @@
+import { SimpleDirectoryReader } from "llamaindex";
+
+function callback(
+  category: string,
+  name: string,
+  status: any,
+  message?: string,
+): boolean {
+  console.log(category, name, status, message);
+  if (name.endsWith(".pdf")) {
+    console.log("I DON'T WANT PDF FILES!");
+    return false;
+  }
+  return true;
+}
+
+async function main() {
+  // Load page
+  const reader = new SimpleDirectoryReader(callback);
+  const params = { directoryPath: "./data" };
+  await reader.loadData(params);
+}
+
+main().catch(console.error);
diff --git a/examples/html.ts b/examples/html.ts
new file mode 100644
index 0000000000000000000000000000000000000000..76672986180590d13a4b42c9912428ffe7598bb1
--- /dev/null
+++ b/examples/html.ts
@@ -0,0 +1,21 @@
+import { HTMLReader, VectorStoreIndex } from "llamaindex";
+
+async function main() {
+  // Load page
+  const reader = new HTMLReader();
+  const documents = await reader.loadData("data/18-1_Changelog.html");
+
+  // Split text and create embeddings. Store them in a VectorStoreIndex
+  const index = await VectorStoreIndex.fromDocuments(documents);
+
+  // Query the index
+  const queryEngine = index.asQueryEngine();
+  const response = await queryEngine.query(
+    "What were the notable changes in 18.1?",
+  );
+
+  // Output response
+  console.log(response.toString());
+}
+
+main().catch(console.error);
diff --git a/examples/mongo.ts b/examples/mongo.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cf32a0af8070a5c90237377b2fb3d095136c238d
--- /dev/null
+++ b/examples/mongo.ts
@@ -0,0 +1,68 @@
+import { MongoClient } from "mongodb";
+import { VectorStoreIndex } from "../../packages/core/src/indices";
+import { Document } from "../../packages/core/src/Node";
+import { SimpleMongoReader } from "../../packages/core/src/readers/SimpleMongoReader";
+
+import { stdin as input, stdout as output } from "node:process";
+import readline from "node:readline/promises";
+
+async function main() {
+  //Dummy test code
+  const query: object = { _id: "waldo" };
+  const options: object = {};
+  const projections: object = { embedding: 0 };
+  const limit: number = Infinity;
+  const uri: string = process.env.MONGODB_URI ?? "fake_uri";
+  const client: MongoClient = new MongoClient(uri);
+
+  //Where the real code starts
+  const MR = new SimpleMongoReader(client);
+  const documents: Document[] = await MR.loadData(
+    "data",
+    "posts",
+    1,
+    {},
+    options,
+    projections,
+  );
+
+  //
+  //If you need to look at low-level details of
+  // a queryEngine (for example, needing to check each individual node)
+  //
+
+  // Split text and create embeddings. Store them in a VectorStoreIndex
+  // var storageContext = await storageContextFromDefaults({});
+  // var serviceContext = serviceContextFromDefaults({});
+  // const docStore = storageContext.docStore;
+
+  // for (const doc of documents) {
+  //   docStore.setDocumentHash(doc.id_, doc.hash);
+  // }
+  // const nodes = serviceContext.nodeParser.getNodesFromDocuments(documents);
+  // console.log(nodes);
+
+  //
+  //Making Vector Store from documents
+  //
+
+  const index = await VectorStoreIndex.fromDocuments(documents);
+  // Create query engine
+  const queryEngine = index.asQueryEngine();
+
+  const rl = readline.createInterface({ input, output });
+  while (true) {
+    const query = await rl.question("Query: ");
+
+    if (!query) {
+      break;
+    }
+
+    const response = await queryEngine.query(query);
+
+    // Output response
+    console.log(response.toString());
+  }
+}
+
+main();
diff --git a/examples/portkey.ts b/examples/portkey.ts
index 4221b4b16650ea0ca1cf122c84fcbc20f23fba70..f5dfff2e8f50ebca340812f0f62c48344b46ebd3 100644
--- a/examples/portkey.ts
+++ b/examples/portkey.ts
@@ -1,23 +1,23 @@
 import { Portkey } from "llamaindex";
 
 (async () => {
-  const llms = [{
-
-  }]
+  const llms = [{}];
   const portkey = new Portkey({
     mode: "single",
-    llms: [{
-      provider:"anyscale",
-      virtual_key:"anyscale-3b3c04",
-      model: "meta-llama/Llama-2-13b-chat-hf",
-      max_tokens: 2000
-    }]
+    llms: [
+      {
+        provider: "anyscale",
+        virtual_key: "anyscale-3b3c04",
+        model: "meta-llama/Llama-2-13b-chat-hf",
+        max_tokens: 2000,
+      },
+    ],
   });
   const result = portkey.stream_chat([
     { role: "system", content: "You are a helpful assistant." },
-    { role: "user", content: "Tell me a joke." }
+    { role: "user", content: "Tell me a joke." },
   ]);
   for await (const res of result) {
-    process.stdout.write(res)
+    process.stdout.write(res);
   }
 })();
diff --git a/examples/vectorIndexAnthropic.ts b/examples/vectorIndexAnthropic.ts
index 6dc807cd012d9ec53c109fd2061cfa86b586b474..c979900b285d6807c2dd6f8f030810973be70c70 100644
--- a/examples/vectorIndexAnthropic.ts
+++ b/examples/vectorIndexAnthropic.ts
@@ -2,7 +2,10 @@ import fs from "node:fs/promises";
 
 import {
   Anthropic,
+  anthropicTextQaPrompt,
+  CompactAndRefine,
   Document,
+  ResponseSynthesizer,
   serviceContextFromDefaults,
   VectorStoreIndex,
 } from "llamaindex";
@@ -18,12 +21,20 @@ async function main() {
 
   // Split text and create embeddings. Store them in a VectorStoreIndex
   const serviceContext = serviceContextFromDefaults({ llm: new Anthropic() });
+
+  const responseSynthesizer = new ResponseSynthesizer({
+    responseBuilder: new CompactAndRefine(
+      serviceContext,
+      anthropicTextQaPrompt,
+    ),
+  });
+
   const index = await VectorStoreIndex.fromDocuments([document], {
     serviceContext,
   });
 
   // Query the index
-  const queryEngine = index.asQueryEngine();
+  const queryEngine = index.asQueryEngine({ responseSynthesizer });
   const response = await queryEngine.query(
     "What did the author do in college?",
   );
diff --git a/examples/vectorIndexCustomize.ts b/examples/vectorIndexCustomize.ts
index 5ad55cff6c50defaca130c1e1cefe43857564741..b24e91416b0de23f97feb2659af0c9b55fbe57e7 100644
--- a/examples/vectorIndexCustomize.ts
+++ b/examples/vectorIndexCustomize.ts
@@ -3,6 +3,7 @@ import {
   OpenAI,
   RetrieverQueryEngine,
   serviceContextFromDefaults,
+  SimilarityPostprocessor,
   VectorStoreIndex,
 } from "llamaindex";
 import essay from "./essay";
@@ -21,8 +22,16 @@ async function main() {
 
   const retriever = index.asRetriever();
   retriever.similarityTopK = 5;
+  const nodePostprocessor = new SimilarityPostprocessor({
+    similarityCutoff: 0.7,
+  });
   // TODO: cannot pass responseSynthesizer into retriever query engine
-  const queryEngine = new RetrieverQueryEngine(retriever);
+  const queryEngine = new RetrieverQueryEngine(
+    retriever,
+    undefined,
+    undefined,
+    [nodePostprocessor],
+  );
 
   const response = await queryEngine.query(
     "What did the author do growing up?",
diff --git a/examples/vectorIndexFromVectorStore.ts b/examples/vectorIndexFromVectorStore.ts
new file mode 100644
index 0000000000000000000000000000000000000000..311bc8c72225e73b1b2cc6f116b1899de22ed796
--- /dev/null
+++ b/examples/vectorIndexFromVectorStore.ts
@@ -0,0 +1,197 @@
+import {
+  OpenAI,
+  ResponseSynthesizer,
+  RetrieverQueryEngine,
+  serviceContextFromDefaults,
+  TextNode,
+  TreeSummarize,
+  VectorIndexRetriever,
+  VectorStore,
+  VectorStoreIndex,
+  VectorStoreQuery,
+  VectorStoreQueryResult,
+} from "llamaindex";
+
+import { Index, Pinecone, RecordMetadata } from "@pinecone-database/pinecone";
+
+/**
+ * Please do not use this class in production; it's only for demonstration purposes.
+ */
+class PineconeVectorStore<T extends RecordMetadata = RecordMetadata>
+  implements VectorStore
+{
+  storesText = true;
+  isEmbeddingQuery = false;
+
+  indexName!: string;
+  pineconeClient!: Pinecone;
+  index!: Index<T>;
+
+  constructor({ indexName, client }: { indexName: string; client: Pinecone }) {
+    this.indexName = indexName;
+    this.pineconeClient = client;
+    this.index = client.index<T>(indexName);
+  }
+
+  client() {
+    return this.pineconeClient;
+  }
+
+  async query(
+    query: VectorStoreQuery,
+    kwargs?: any,
+  ): Promise<VectorStoreQueryResult> {
+    let queryEmbedding: number[] = [];
+    if (query.queryEmbedding) {
+      if (typeof query.alpha === "number") {
+        const alpha = query.alpha;
+        queryEmbedding = query.queryEmbedding.map((v) => v * alpha);
+      } else {
+        queryEmbedding = query.queryEmbedding;
+      }
+    }
+
+    // Current LlamaIndexTS implementation only support exact match filter, so we use kwargs instead.
+    const filter = kwargs?.filter || {};
+
+    const response = await this.index.query({
+      filter,
+      vector: queryEmbedding,
+      topK: query.similarityTopK,
+      includeValues: true,
+      includeMetadata: true,
+    });
+
+    console.log(
+      `Numbers of vectors returned by Pinecone after preFilters are applied: ${
+        response?.matches?.length || 0
+      }.`,
+    );
+
+    const topKIds: string[] = [];
+    const topKNodes: TextNode[] = [];
+    const topKScores: number[] = [];
+
+    const metadataToNode = (metadata?: T): Partial<TextNode> => {
+      if (!metadata) {
+        throw new Error("metadata is undefined.");
+      }
+
+      const nodeContent = metadata["_node_content"];
+      if (!nodeContent) {
+        throw new Error("nodeContent is undefined.");
+      }
+
+      if (typeof nodeContent !== "string") {
+        throw new Error("nodeContent is not a string.");
+      }
+
+      return JSON.parse(nodeContent);
+    };
+
+    if (response.matches) {
+      for (const match of response.matches) {
+        const node = new TextNode({
+          ...metadataToNode(match.metadata),
+          embedding: match.values,
+        });
+
+        topKIds.push(match.id);
+        topKNodes.push(node);
+        topKScores.push(match.score ?? 0);
+      }
+    }
+
+    const result = {
+      ids: topKIds,
+      nodes: topKNodes,
+      similarities: topKScores,
+    };
+
+    return result;
+  }
+
+  add(): Promise<string[]> {
+    return Promise.resolve([]);
+  }
+
+  delete(): Promise<void> {
+    throw new Error("Method `delete` not implemented.");
+  }
+
+  persist(): Promise<void> {
+    throw new Error("Method `persist` not implemented.");
+  }
+}
+
+/**
+ * The goal of this example is to show how to use Pinecone as a vector store
+ * for LlamaIndexTS with(out) preFilters.
+ *
+ * It should not be used in production like that,
+ * as you might want to find a proper PineconeVectorStore implementation.
+ */
+async function main() {
+  process.env.PINECONE_API_KEY = "Your Pinecone API Key.";
+  process.env.PINECONE_ENVIRONMENT = "Your Pinecone Environment.";
+  process.env.PINECONE_PROJECT_ID = "Your Pinecone Project ID.";
+  process.env.PINECONE_INDEX_NAME = "Your Pinecone Index Name.";
+  process.env.OPENAI_API_KEY = "Your OpenAI API Key.";
+  process.env.OPENAI_API_ORGANIZATION = "Your OpenAI API Organization.";
+
+  const getPineconeVectorStore = async () => {
+    return new PineconeVectorStore({
+      indexName: process.env.PINECONE_INDEX_NAME || "index-name",
+      client: new Pinecone(),
+    });
+  };
+
+  const getServiceContext = () => {
+    const openAI = new OpenAI({
+      model: "gpt-4",
+      apiKey: process.env.OPENAI_API_KEY,
+    });
+
+    return serviceContextFromDefaults({
+      llm: openAI,
+    });
+  };
+
+  const getQueryEngine = async (filter: unknown) => {
+    const vectorStore = await getPineconeVectorStore();
+    const serviceContext = getServiceContext();
+
+    const vectorStoreIndex = await VectorStoreIndex.fromVectorStore(
+      vectorStore,
+      serviceContext,
+    );
+
+    const retriever = new VectorIndexRetriever({
+      index: vectorStoreIndex,
+      similarityTopK: 500,
+    });
+
+    const responseSynthesizer = new ResponseSynthesizer({
+      serviceContext,
+      responseBuilder: new TreeSummarize(serviceContext),
+    });
+
+    return new RetrieverQueryEngine(retriever, responseSynthesizer, {
+      filter,
+    });
+  };
+
+  // whatever is a key from your metadata
+  const queryEngine = await getQueryEngine({
+    whatever: {
+      $gte: 1,
+      $lte: 100,
+    },
+  });
+
+  const response = await queryEngine.query("How many results do you have?");
+
+  console.log(response.toString());
+}
+
+main().catch(console.error);
diff --git a/examples/vision.ts b/examples/vision.ts
new file mode 100644
index 0000000000000000000000000000000000000000..27797d00dbc1e40ebc9e696747ab5d92fa58e31d
--- /dev/null
+++ b/examples/vision.ts
@@ -0,0 +1,15 @@
+import { OpenAI } from "llamaindex";
+
+(async () => {
+  const llm = new OpenAI({ model: "gpt-4-vision-preview", temperature: 0.1 });
+
+  // complete api
+  const response1 = await llm.complete("How are you?");
+  console.log(response1.message.content);
+
+  // chat api
+  const response2 = await llm.chat([
+    { content: "Tell me a joke!", role: "user" },
+  ]);
+  console.log(response2.message.content);
+})();
diff --git a/package.json b/package.json
index b344807e573312521310524ae2626777b52cdee4..bad62f6d2f87ce5dafec03cfa55693c30d12a163 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
   "scripts": {
     "build": "turbo run build",
     "dev": "turbo run dev",
-    "format": "prettier --write \"**/*.{ts,tsx,md}\"",
+    "format": "prettier --write \"**/*.{js,jsx,ts,tsx,md}\"",
     "lint": "turbo run lint",
     "prepare": "husky install",
     "test": "turbo run test",
@@ -11,25 +11,27 @@
     "publish-snapshot": "turbo run build lint test && changeset version --snapshot && changeset publish"
   },
   "devDependencies": {
+    "@changesets/cli": "^2.26.2",
     "@turbo/gen": "^1.10.16",
-    "@types/jest": "^29.5.6",
-    "eslint": "^8.52.0",
+    "@types/jest": "^29.5.10",
+    "eslint": "^8.54.0",
     "eslint-config-custom": "workspace:*",
     "husky": "^8.0.3",
     "jest": "^29.7.0",
-    "prettier": "^3.0.3",
-    "prettier-plugin-organize-imports": "^3.2.3",
+    "lint-staged": "^15.1.0",
+    "prettier": "^3.1.0",
+    "prettier-plugin-organize-imports": "^3.2.4",
     "ts-jest": "^29.1.1",
     "turbo": "^1.10.16"
   },
-  "packageManager": "pnpm@7.15.0",
-  "dependencies": {
-    "@changesets/cli": "^2.26.2"
-  },
+  "packageManager": "pnpm@8.10.5+sha256.a4bd9bb7b48214bbfcd95f264bd75bb70d100e5d4b58808f5cd6ab40c6ac21c5",
   "pnpm": {
     "overrides": {
       "trim": "1.0.1",
       "@babel/traverse": "7.23.2"
     }
+  },
+  "lint-staged": {
+    "*.{js,jsx,ts,tsx,md}": "prettier --write"
   }
 }
diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md
index efa3821f91c5b2241815a7625acea7b636ba1488..3744f43c8c0f9b2b6c5cc893f729c03617cbf543 100644
--- a/packages/core/CHANGELOG.md
+++ b/packages/core/CHANGELOG.md
@@ -1,5 +1,11 @@
 # llamaindex
 
+## 0.0.35
+
+### Patch Changes
+
+- 63f2108: Add multimodal support (thanks @marcusschiesser)
+
 ## 0.0.34
 
 ### Patch Changes
diff --git a/packages/core/package.json b/packages/core/package.json
index b0adc6b842111e281961d465421791f10dcc1184..3b6de230894dd1c3c973b474980b89d3f026ad96 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,38 +1,41 @@
 {
   "name": "llamaindex",
-  "version": "0.0.34",
+  "version": "0.0.35",
   "license": "MIT",
   "dependencies": {
-    "@anthropic-ai/sdk": "^0.9.0",
+    "@anthropic-ai/sdk": "^0.9.1",
     "@notionhq/client": "^2.2.13",
-    "js-tiktoken": "^1.0.7",
+    "@xenova/transformers": "^2.8.0",
+    "crypto-js": "^4.2.0",
+    "js-tiktoken": "^1.0.8",
     "lodash": "^4.17.21",
     "mammoth": "^1.6.0",
     "md-utils-ts": "^2.0.0",
-    "mongodb": "^6.2.0",
+    "mongodb": "^6.3.0",
     "notion-md-crawler": "^0.0.2",
-    "openai": "^4.16.1",
+    "openai": "^4.19.1",
     "papaparse": "^5.4.1",
     "pdf-parse": "^1.1.1",
     "pg": "^8.11.3",
     "pgvector": "^0.1.5",
     "portkey-ai": "^0.1.16",
     "rake-modified": "^1.0.8",
-    "replicate": "^0.20.1",
+    "replicate": "^0.21.1",
     "string-strip-html": "^13.4.3",
     "uuid": "^9.0.1",
     "wink-nlp": "^1.14.3"
   },
   "devDependencies": {
-    "@types/lodash": "^4.14.200",
-    "@types/node": "^18.18.8",
-    "@types/papaparse": "^5.3.10",
-    "@types/pdf-parse": "^1.1.3",
+    "@types/crypto-js": "^4.2.1",
+    "@types/lodash": "^4.14.202",
+    "@types/node": "^18.18.12",
+    "@types/papaparse": "^5.3.13",
+    "@types/pdf-parse": "^1.1.4",
     "@types/pg": "^8.10.7",
-    "@types/uuid": "^9.0.6",
+    "@types/uuid": "^9.0.7",
     "node-stdlib-browser": "^1.2.0",
     "tsup": "^7.2.0",
-    "typescript": "^5.2.2"
+    "typescript": "^5.3.2"
   },
   "engines": {
     "node": ">=18.0.0"
@@ -46,5 +49,12 @@
     "test": "jest",
     "build": "tsup src/index.ts --format esm,cjs --dts",
     "dev": "tsup src/index.ts --format esm,cjs --dts --watch"
+  },
+  "exports": {
+    ".": {
+      "require": "./dist/index.js",
+      "import": "./dist/index.mjs",
+      "types": "./dist/index.d.ts"
+    }
   }
-}
+}
\ No newline at end of file
diff --git a/packages/core/src/GlobalsHelper.ts b/packages/core/src/GlobalsHelper.ts
index 3e57a274f03021f9d41e3e33f48b528de0621226..d1d82280d35234575d681d770b74284cc1aae332 100644
--- a/packages/core/src/GlobalsHelper.ts
+++ b/packages/core/src/GlobalsHelper.ts
@@ -1,4 +1,4 @@
-import { encodingForModel, TiktokenModel } from "js-tiktoken";
+import { encodingForModel } from "js-tiktoken";
 
 import { v4 as uuidv4 } from "uuid";
 import { Event, EventTag, EventType } from "./callbacks/CallbackManager";
@@ -27,7 +27,7 @@ class GlobalsHelper {
         const numberArray = Array.from(tokens);
         const text = encoding.decode(numberArray);
         const uint8Array = new TextEncoder().encode(text);
-        return new TextDecoder().decode(uint8Array);      
+        return new TextDecoder().decode(uint8Array);
       },
     };
   }
@@ -39,10 +39,10 @@ class GlobalsHelper {
     if (!this.defaultTokenizer) {
       this.initDefaultTokenizer();
     }
-  
+
     return this.defaultTokenizer!.encode.bind(this.defaultTokenizer);
   }
-  
+
   tokenizerDecoder(encoding?: string) {
     if (encoding && encoding !== Tokenizers.CL100K_BASE) {
       throw new Error(`Tokenizer encoding ${encoding} not yet supported`);
@@ -50,7 +50,7 @@ class GlobalsHelper {
     if (!this.defaultTokenizer) {
       this.initDefaultTokenizer();
     }
-  
+
     return this.defaultTokenizer!.decode.bind(this.defaultTokenizer);
   }
 
diff --git a/packages/core/src/Node.ts b/packages/core/src/Node.ts
index 1908e67248a6945774b2e0728583ecd3ac676f8b..d60f358e4bc364e52d9a15b8ee27adaac0535e12 100644
--- a/packages/core/src/Node.ts
+++ b/packages/core/src/Node.ts
@@ -1,4 +1,4 @@
-import crypto from "crypto"; // TODO Node dependency
+import CryptoJS from "crypto-js";
 import { v4 as uuidv4 } from "uuid";
 
 export enum NodeRelationship {
@@ -175,13 +175,13 @@ export class TextNode<T extends Metadata = Metadata> extends BaseNode<T> {
    * @returns
    */
   generateHash() {
-    const hashFunction = crypto.createHash("sha256");
+    const hashFunction = CryptoJS.algo.SHA256.create();
     hashFunction.update(`type=${this.getType()}`);
     hashFunction.update(
       `startCharIdx=${this.startCharIdx} endCharIdx=${this.endCharIdx}`,
     );
     hashFunction.update(this.getContent(MetadataMode.ALL));
-    return hashFunction.digest("base64");
+    return hashFunction.finalize().toString(CryptoJS.enc.Base64);
   }
 
   getType(): ObjectType {
@@ -272,12 +272,13 @@ export class Document<T extends Metadata = Metadata> extends TextNode<T> {
   }
 }
 
-export function jsonToNode(json: any) {
-  if (!json.type) {
+export function jsonToNode(json: any, type?: ObjectType) {
+  if (!json.type && !type) {
     throw new Error("Node type not found");
   }
+  const nodeType = type || json.type;
 
-  switch (json.type) {
+  switch (nodeType) {
     case ObjectType.TEXT:
       return new TextNode(json);
     case ObjectType.INDEX:
@@ -285,7 +286,7 @@ export function jsonToNode(json: any) {
     case ObjectType.DOCUMENT:
       return new Document(json);
     default:
-      throw new Error(`Invalid node type: ${json.type}`);
+      throw new Error(`Invalid node type: ${nodeType}`);
   }
 }
 
diff --git a/packages/core/src/Prompt.ts b/packages/core/src/Prompt.ts
index ef0ff0845f28a78c1e0f71e63806ae943f602c60..be03ef76c775d21cbbcb900a21d0e6118cc774d7 100644
--- a/packages/core/src/Prompt.ts
+++ b/packages/core/src/Prompt.ts
@@ -36,6 +36,15 @@ Answer:`;
 
 export type TextQaPrompt = typeof defaultTextQaPrompt;
 
+export const anthropicTextQaPrompt = ({ context = "", query = "" }) => {
+  return `Context information:
+<context>
+${context}
+</context>
+Given the context information and not prior knowledge, answer the query.
+Query: ${query}`;
+};
+
 /*
 DEFAULT_SUMMARY_PROMPT_TMPL = (
     "Write a summary of the following. Try to use only the "
diff --git a/packages/core/src/ServiceContext.ts b/packages/core/src/ServiceContext.ts
index efefd319b268af54f279b25dde3af2b1ce4980a7..e1490a1995f8dd699f4dcb09cb37a5d968b86ecb 100644
--- a/packages/core/src/ServiceContext.ts
+++ b/packages/core/src/ServiceContext.ts
@@ -1,8 +1,8 @@
-import { BaseEmbedding, OpenAIEmbedding } from "./Embedding";
-import { NodeParser, SimpleNodeParser } from "./NodeParser";
-import { PromptHelper } from "./PromptHelper";
 import { CallbackManager } from "./callbacks/CallbackManager";
+import { BaseEmbedding, OpenAIEmbedding } from "./embeddings";
 import { LLM, OpenAI } from "./llm/LLM";
+import { NodeParser, SimpleNodeParser } from "./NodeParser";
+import { PromptHelper } from "./PromptHelper";
 
 /**
  * The ServiceContext is a collection of components that are used in different parts of the application.
diff --git a/packages/core/src/embeddings/ClipEmbedding.ts b/packages/core/src/embeddings/ClipEmbedding.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b75b4b879c502b9f255b719985f3c0392e49f027
--- /dev/null
+++ b/packages/core/src/embeddings/ClipEmbedding.ts
@@ -0,0 +1,78 @@
+import { MultiModalEmbedding } from "./MultiModalEmbedding";
+import { ImageType, readImage } from "./utils";
+
+export enum ClipEmbeddingModelType {
+  XENOVA_CLIP_VIT_BASE_PATCH32 = "Xenova/clip-vit-base-patch32",
+  XENOVA_CLIP_VIT_BASE_PATCH16 = "Xenova/clip-vit-base-patch16",
+}
+
+export class ClipEmbedding extends MultiModalEmbedding {
+  modelType: ClipEmbeddingModelType =
+    ClipEmbeddingModelType.XENOVA_CLIP_VIT_BASE_PATCH16;
+
+  private tokenizer: any;
+  private processor: any;
+  private visionModel: any;
+  private textModel: any;
+
+  async getTokenizer() {
+    if (!this.tokenizer) {
+      const { AutoTokenizer } = await import("@xenova/transformers");
+      this.tokenizer = await AutoTokenizer.from_pretrained(this.modelType);
+    }
+    return this.tokenizer;
+  }
+
+  async getProcessor() {
+    if (!this.processor) {
+      const { AutoProcessor } = await import("@xenova/transformers");
+      this.processor = await AutoProcessor.from_pretrained(this.modelType);
+    }
+    return this.processor;
+  }
+
+  async getVisionModel() {
+    if (!this.visionModel) {
+      const { CLIPVisionModelWithProjection } = await import(
+        "@xenova/transformers"
+      );
+      this.visionModel = await CLIPVisionModelWithProjection.from_pretrained(
+        this.modelType,
+      );
+    }
+
+    return this.visionModel;
+  }
+
+  async getTextModel() {
+    if (!this.textModel) {
+      const { CLIPTextModelWithProjection } = await import(
+        "@xenova/transformers"
+      );
+      this.textModel = await CLIPTextModelWithProjection.from_pretrained(
+        this.modelType,
+      );
+    }
+
+    return this.textModel;
+  }
+
+  async getImageEmbedding(image: ImageType): Promise<number[]> {
+    const loadedImage = await readImage(image);
+    const imageInputs = await (await this.getProcessor())(loadedImage);
+    const { image_embeds } = await (await this.getVisionModel())(imageInputs);
+    return image_embeds.data;
+  }
+
+  async getTextEmbedding(text: string): Promise<number[]> {
+    const textInputs = await (
+      await this.getTokenizer()
+    )([text], { padding: true, truncation: true });
+    const { text_embeds } = await (await this.getTextModel())(textInputs);
+    return text_embeds.data;
+  }
+
+  async getQueryEmbedding(query: string): Promise<number[]> {
+    return this.getTextEmbedding(query);
+  }
+}
diff --git a/packages/core/src/embeddings/MultiModalEmbedding.ts b/packages/core/src/embeddings/MultiModalEmbedding.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c86ba07211ba54b157b043252324270549889502
--- /dev/null
+++ b/packages/core/src/embeddings/MultiModalEmbedding.ts
@@ -0,0 +1,17 @@
+import { BaseEmbedding } from "./types";
+import { ImageType } from "./utils";
+
+/*
+ * Base class for Multi Modal embeddings.
+ */
+
+export abstract class MultiModalEmbedding extends BaseEmbedding {
+  abstract getImageEmbedding(images: ImageType): Promise<number[]>;
+
+  async getImageEmbeddings(images: ImageType[]): Promise<number[][]> {
+    // Embed the input sequence of images asynchronously.
+    return Promise.all(
+      images.map((imgFilePath) => this.getImageEmbedding(imgFilePath)),
+    );
+  }
+}
diff --git a/packages/core/src/embeddings/OpenAIEmbedding.ts b/packages/core/src/embeddings/OpenAIEmbedding.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ecc2509a75b93226cb34e6ecb0a810bfc0b49a6b
--- /dev/null
+++ b/packages/core/src/embeddings/OpenAIEmbedding.ts
@@ -0,0 +1,92 @@
+import { ClientOptions as OpenAIClientOptions } from "openai";
+import {
+  AzureOpenAIConfig,
+  getAzureBaseUrl,
+  getAzureConfigFromEnv,
+  getAzureModel,
+  shouldUseAzure,
+} from "../llm/azure";
+import { getOpenAISession, OpenAISession } from "../llm/openai";
+import { BaseEmbedding } from "./types";
+
+export enum OpenAIEmbeddingModelType {
+  TEXT_EMBED_ADA_002 = "text-embedding-ada-002",
+}
+
+export class OpenAIEmbedding extends BaseEmbedding {
+  model: OpenAIEmbeddingModelType;
+
+  // OpenAI session params
+  apiKey?: string = undefined;
+  maxRetries: number;
+  timeout?: number;
+  additionalSessionOptions?: Omit<
+    Partial<OpenAIClientOptions>,
+    "apiKey" | "maxRetries" | "timeout"
+  >;
+
+  session: OpenAISession;
+
+  constructor(init?: Partial<OpenAIEmbedding> & { azure?: AzureOpenAIConfig }) {
+    super();
+
+    this.model = OpenAIEmbeddingModelType.TEXT_EMBED_ADA_002;
+
+    this.maxRetries = init?.maxRetries ?? 10;
+    this.timeout = init?.timeout ?? 60 * 1000; // Default is 60 seconds
+    this.additionalSessionOptions = init?.additionalSessionOptions;
+
+    if (init?.azure || shouldUseAzure()) {
+      const azureConfig = getAzureConfigFromEnv({
+        ...init?.azure,
+        model: getAzureModel(this.model),
+      });
+
+      if (!azureConfig.apiKey) {
+        throw new Error(
+          "Azure API key is required for OpenAI Azure models. Please set the AZURE_OPENAI_KEY environment variable.",
+        );
+      }
+
+      this.apiKey = azureConfig.apiKey;
+      this.session =
+        init?.session ??
+        getOpenAISession({
+          azure: true,
+          apiKey: this.apiKey,
+          baseURL: getAzureBaseUrl(azureConfig),
+          maxRetries: this.maxRetries,
+          timeout: this.timeout,
+          defaultQuery: { "api-version": azureConfig.apiVersion },
+          ...this.additionalSessionOptions,
+        });
+    } else {
+      this.apiKey = init?.apiKey ?? undefined;
+      this.session =
+        init?.session ??
+        getOpenAISession({
+          apiKey: this.apiKey,
+          maxRetries: this.maxRetries,
+          timeout: this.timeout,
+          ...this.additionalSessionOptions,
+        });
+    }
+  }
+
+  private async getOpenAIEmbedding(input: string) {
+    const { data } = await this.session.openai.embeddings.create({
+      model: this.model,
+      input,
+    });
+
+    return data[0].embedding;
+  }
+
+  async getTextEmbedding(text: string): Promise<number[]> {
+    return this.getOpenAIEmbedding(text);
+  }
+
+  async getQueryEmbedding(query: string): Promise<number[]> {
+    return this.getOpenAIEmbedding(query);
+  }
+}
diff --git a/packages/core/src/embeddings/index.ts b/packages/core/src/embeddings/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1a6a4df04ef2225f44049e2819660afbc0e2b836
--- /dev/null
+++ b/packages/core/src/embeddings/index.ts
@@ -0,0 +1,5 @@
+export * from "./ClipEmbedding";
+export * from "./MultiModalEmbedding";
+export * from "./OpenAIEmbedding";
+export * from "./types";
+export * from "./utils";
diff --git a/packages/core/src/embeddings/types.ts b/packages/core/src/embeddings/types.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e500f94522a4b729a47650f0d6c21099fc79d0e1
--- /dev/null
+++ b/packages/core/src/embeddings/types.ts
@@ -0,0 +1,24 @@
+import { similarity } from "./utils";
+
+/**
+ * Similarity type
+ * Default is cosine similarity. Dot product and negative Euclidean distance are also supported.
+ */
+export enum SimilarityType {
+  DEFAULT = "cosine",
+  DOT_PRODUCT = "dot_product",
+  EUCLIDEAN = "euclidean",
+}
+
+export abstract class BaseEmbedding {
+  similarity(
+    embedding1: number[],
+    embedding2: number[],
+    mode: SimilarityType = SimilarityType.DEFAULT,
+  ): number {
+    return similarity(embedding1, embedding2, mode);
+  }
+
+  abstract getTextEmbedding(text: string): Promise<number[]>;
+  abstract getQueryEmbedding(query: string): Promise<number[]>;
+}
diff --git a/packages/core/src/Embedding.ts b/packages/core/src/embeddings/utils.ts
similarity index 63%
rename from packages/core/src/Embedding.ts
rename to packages/core/src/embeddings/utils.ts
index 5723f888cbeb1d746e80da3d99b6566a4c77d21b..cd192c3d4faa08a5b4f81c6a796de1e89233ca45 100644
--- a/packages/core/src/Embedding.ts
+++ b/packages/core/src/embeddings/utils.ts
@@ -1,33 +1,16 @@
-import { ClientOptions as OpenAIClientOptions } from "openai";
-
-import { DEFAULT_SIMILARITY_TOP_K } from "./constants";
-import {
-  AzureOpenAIConfig,
-  getAzureBaseUrl,
-  getAzureConfigFromEnv,
-  getAzureModel,
-  shouldUseAzure,
-} from "./llm/azure";
-import { OpenAISession, getOpenAISession } from "./llm/openai";
-import { VectorStoreQueryMode } from "./storage/vectorStore/types";
-
-/**
- * Similarity type
- * Default is cosine similarity. Dot product and negative Euclidean distance are also supported.
- */
-export enum SimilarityType {
-  DEFAULT = "cosine",
-  DOT_PRODUCT = "dot_product",
-  EUCLIDEAN = "euclidean",
-}
+import _ from "lodash";
+import { DEFAULT_SIMILARITY_TOP_K } from "../constants";
+import { VectorStoreQueryMode } from "../storage";
+import { SimilarityType } from "./types";
 
 /**
  * The similarity between two embeddings.
  * @param embedding1
  * @param embedding2
  * @param mode
- * @returns similartiy score with higher numbers meaning the two embeddings are more similar
+ * @returns similarity score with higher numbers meaning the two embeddings are more similar
  */
+
 export function similarity(
   embedding1: number[],
   embedding2: number[],
@@ -42,7 +25,6 @@ export function similarity(
   // will probably cause some avoidable loss of floating point precision
   // ml-distance is worth watching although they currently also use the naive
   // formulas
-
   function norm(x: number[]): number {
     let result = 0;
     for (let i = 0; i < x.length; i++) {
@@ -201,98 +183,14 @@ export function getTopKMMREmbeddings(
 
   return [resultSimilarities, resultIds];
 }
-
-export abstract class BaseEmbedding {
-  similarity(
-    embedding1: number[],
-    embedding2: number[],
-    mode: SimilarityType = SimilarityType.DEFAULT,
-  ): number {
-    return similarity(embedding1, embedding2, mode);
-  }
-
-  abstract getTextEmbedding(text: string): Promise<number[]>;
-  abstract getQueryEmbedding(query: string): Promise<number[]>;
-}
-
-enum OpenAIEmbeddingModelType {
-  TEXT_EMBED_ADA_002 = "text-embedding-ada-002",
-}
-
-export class OpenAIEmbedding extends BaseEmbedding {
-  model: OpenAIEmbeddingModelType;
-
-  // OpenAI session params
-  apiKey?: string = undefined;
-  maxRetries: number;
-  timeout?: number;
-  additionalSessionOptions?: Omit<
-    Partial<OpenAIClientOptions>,
-    "apiKey" | "maxRetries" | "timeout"
-  >;
-
-  session: OpenAISession;
-
-  constructor(init?: Partial<OpenAIEmbedding> & { azure?: AzureOpenAIConfig }) {
-    super();
-
-    this.model = OpenAIEmbeddingModelType.TEXT_EMBED_ADA_002;
-
-    this.maxRetries = init?.maxRetries ?? 10;
-    this.timeout = init?.timeout ?? 60 * 1000; // Default is 60 seconds
-    this.additionalSessionOptions = init?.additionalSessionOptions;
-
-    if (init?.azure || shouldUseAzure()) {
-      const azureConfig = getAzureConfigFromEnv({
-        ...init?.azure,
-        model: getAzureModel(this.model),
-      });
-
-      if (!azureConfig.apiKey) {
-        throw new Error(
-          "Azure API key is required for OpenAI Azure models. Please set the AZURE_OPENAI_KEY environment variable.",
-        );
-      }
-
-      this.apiKey = azureConfig.apiKey;
-      this.session =
-        init?.session ??
-        getOpenAISession({
-          azure: true,
-          apiKey: this.apiKey,
-          baseURL: getAzureBaseUrl(azureConfig),
-          maxRetries: this.maxRetries,
-          timeout: this.timeout,
-          defaultQuery: { "api-version": azureConfig.apiVersion },
-          ...this.additionalSessionOptions,
-        });
-    } else {
-      this.apiKey = init?.apiKey ?? undefined;
-      this.session =
-        init?.session ??
-        getOpenAISession({
-          apiKey: this.apiKey,
-          maxRetries: this.maxRetries,
-          timeout: this.timeout,
-          ...this.additionalSessionOptions,
-        });
-    }
-  }
-
-  private async getOpenAIEmbedding(input: string) {
-    const { data } = await this.session.openai.embeddings.create({
-      model: this.model,
-      input,
-    });
-
-    return data[0].embedding;
-  }
-
-  async getTextEmbedding(text: string): Promise<number[]> {
-    return this.getOpenAIEmbedding(text);
-  }
-
-  async getQueryEmbedding(query: string): Promise<number[]> {
-    return this.getOpenAIEmbedding(query);
+export async function readImage(input: ImageType) {
+  const { RawImage } = await import("@xenova/transformers");
+  if (input instanceof Blob) {
+    return await RawImage.fromBlob(input);
+  } else if (_.isString(input) || input instanceof URL) {
+    return await RawImage.fromURL(input);
+  } else {
+    throw new Error(`Unsupported input type: ${typeof input}`);
   }
 }
+export type ImageType = string | Blob | URL;
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
index f428f99bc933851690a515ba560e5e54e67b3e4f..a0d4b6d7551a18feefd6c5fbd0b326ec70c9b3af 100644
--- a/packages/core/src/index.ts
+++ b/packages/core/src/index.ts
@@ -2,7 +2,7 @@ export * from "./callbacks/CallbackManager";
 export * from "./ChatEngine";
 export * from "./ChatHistory";
 export * from "./constants";
-export * from "./Embedding";
+export * from "./embeddings";
 export * from "./GlobalsHelper";
 export * from "./indices";
 export * from "./llm/LLM";
@@ -15,11 +15,12 @@ export * from "./QueryEngine";
 export * from "./QuestionGenerator";
 export * from "./readers/base";
 export * from "./readers/CSVReader";
+export * from "./readers/HTMLReader";
 export * from "./readers/MarkdownReader";
 export * from "./readers/NotionReader";
 export * from "./readers/PDFReader";
-export * from "./readers/HTMLReader";
 export * from "./readers/SimpleDirectoryReader";
+export * from "./readers/SimpleMongoReader";
 export * from "./Response";
 export * from "./ResponseSynthesizer";
 export * from "./Retriever";
diff --git a/packages/core/src/indices/vectorStore/VectorIndexRetriever.ts b/packages/core/src/indices/vectorStore/VectorIndexRetriever.ts
index 8e3bff9270c42b1a4e89a678a21beb4ce2959c35..1cfa454e1482e1e8268e9fb1e0ca469e6dfcd551 100644
--- a/packages/core/src/indices/vectorStore/VectorIndexRetriever.ts
+++ b/packages/core/src/indices/vectorStore/VectorIndexRetriever.ts
@@ -32,7 +32,11 @@ export class VectorIndexRetriever implements BaseRetriever {
     this.similarityTopK = similarityTopK ?? DEFAULT_SIMILARITY_TOP_K;
   }
 
-  async retrieve(query: string, parentEvent?: Event, preFilters?: unknown): Promise<NodeWithScore[]> {
+  async retrieve(
+    query: string,
+    parentEvent?: Event,
+    preFilters?: unknown,
+  ): Promise<NodeWithScore[]> {
     const queryEmbedding =
       await this.serviceContext.embedModel.getQueryEmbedding(query);
 
diff --git a/packages/core/src/llm/LLM.ts b/packages/core/src/llm/LLM.ts
index 6b46b7bc9a6d558455d9b395e84c25d4cf7c6e98..ef505224aff529071212daa6bb7cffcdd0cbf901 100644
--- a/packages/core/src/llm/LLM.ts
+++ b/packages/core/src/llm/LLM.ts
@@ -12,9 +12,9 @@ import { ChatCompletionMessageParam } from "openai/resources";
 import { LLMOptions } from "portkey-ai";
 import { globalsHelper, Tokenizers } from "../GlobalsHelper";
 import {
+  AnthropicSession,
   ANTHROPIC_AI_PROMPT,
   ANTHROPIC_HUMAN_PROMPT,
-  AnthropicSession,
   getAnthropicSession,
 } from "./anthropic";
 import {
@@ -377,10 +377,10 @@ export const ALL_AVAILABLE_LLAMADEUCE_MODELS = {
   "Llama-2-70b-chat-4bit": {
     contextWindow: 4096,
     replicateApi:
-      "replicate/llama70b-v2-chat:2c1608e18606fad2812020dc541930f2d0495ce32eee50074220b87300bc16e1",
+      "meta/llama-2-70b-chat:02e509c789964a7ea8736978a43525956ef40397be9033abf9fd2badfe68c9e3",
     //^ Model is based off of exllama 4bit.
   },
-  "Llama-2-13b-chat": {
+  "Llama-2-13b-chat-old": {
     contextWindow: 4096,
     replicateApi:
       "a16z-infra/llama13b-v2-chat:df7690f1994d94e96ad9d568eac121aecf50684a0b0963b25a41cc40061269e5",
@@ -389,9 +389,9 @@ export const ALL_AVAILABLE_LLAMADEUCE_MODELS = {
   "Llama-2-13b-chat-4bit": {
     contextWindow: 4096,
     replicateApi:
-      "a16z-infra/llama13b-v2-chat:2a7f981751ec7fdf87b5b91ad4db53683a98082e9ff7bfd12c8cd5ea85980a52",
+      "meta/llama-2-13b-chat:f4e2de70d66816a838a89eeeb621910adffb0dd0baba3976c96980970978018d",
   },
-  "Llama-2-7b-chat": {
+  "Llama-2-7b-chat-old": {
     contextWindow: 4096,
     replicateApi:
       "a16z-infra/llama7b-v2-chat:4f0a4744c7295c024a1de15e1a63c880d3da035fa1f49bfd344fe076074c8eea",
@@ -403,7 +403,7 @@ export const ALL_AVAILABLE_LLAMADEUCE_MODELS = {
   "Llama-2-7b-chat-4bit": {
     contextWindow: 4096,
     replicateApi:
-      "a16z-infra/llama7b-v2-chat:4f0b260b6a13eb53a6b1891f089d57c08f41003ae79458be5011303d81a394dc",
+      "meta/llama-2-7b-chat:13c3cdee13ee059ab779f0291d29054dab00a47dad8261375654de5540165fb0",
   },
 };
 
@@ -415,6 +415,8 @@ export enum DeuceChatStrategy {
   // Unfortunately any string only API won't support these properly.
   REPLICATE4BIT = "replicate4bit",
   //^ To satisfy Replicate's 4 bit models' requirements where they also insert some INST tags
+  REPLICATE4BITWNEWLINES = "replicate4bitwnewlines",
+  //^ Replicate's documentation recommends using newlines: https://replicate.com/blog/how-to-prompt-llama
 }
 
 /**
@@ -434,7 +436,7 @@ export class LlamaDeuce implements LLM {
     this.chatStrategy =
       init?.chatStrategy ??
       (this.model.endsWith("4bit")
-        ? DeuceChatStrategy.REPLICATE4BIT // With the newer A16Z/Replicate models they do the system message themselves.
+        ? DeuceChatStrategy.REPLICATE4BITWNEWLINES // With the newer Replicate models they do the system message themselves.
         : DeuceChatStrategy.METAWBOS); // With BOS and EOS seems to work best, although they all have problems past a certain point
     this.temperature = init?.temperature ?? 0.1; // minimum temperature is 0.01 for Replicate endpoint
     this.topP = init?.topP ?? 1;
@@ -468,7 +470,15 @@ export class LlamaDeuce implements LLM {
     } else if (this.chatStrategy === DeuceChatStrategy.METAWBOS) {
       return this.mapMessagesToPromptMeta(messages, { withBos: true });
     } else if (this.chatStrategy === DeuceChatStrategy.REPLICATE4BIT) {
-      return this.mapMessagesToPromptMeta(messages, { replicate4Bit: true });
+      return this.mapMessagesToPromptMeta(messages, {
+        replicate4Bit: true,
+        withNewlines: true,
+      });
+    } else if (this.chatStrategy === DeuceChatStrategy.REPLICATE4BITWNEWLINES) {
+      return this.mapMessagesToPromptMeta(messages, {
+        replicate4Bit: true,
+        withNewlines: true,
+      });
     } else {
       return this.mapMessagesToPromptMeta(messages);
     }
@@ -503,9 +513,17 @@ export class LlamaDeuce implements LLM {
 
   mapMessagesToPromptMeta(
     messages: ChatMessage[],
-    opts?: { withBos?: boolean; replicate4Bit?: boolean },
+    opts?: {
+      withBos?: boolean;
+      replicate4Bit?: boolean;
+      withNewlines?: boolean;
+    },
   ) {
-    const { withBos = false, replicate4Bit = false } = opts ?? {};
+    const {
+      withBos = false,
+      replicate4Bit = false,
+      withNewlines = false,
+    } = opts ?? {};
     const DEFAULT_SYSTEM_PROMPT = `You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature.
 
 If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don't know the answer to a question, please don't share false information.`;
@@ -553,11 +571,18 @@ If a question does not make any sense, or is not factually coherent, explain why
     return {
       prompt: messages.reduce((acc, message, index) => {
         if (index % 2 === 0) {
-          return `${acc}${
-            withBos ? BOS : ""
-          }${B_INST} ${message.content.trim()} ${E_INST}`;
+          return (
+            `${acc}${
+              withBos ? BOS : ""
+            }${B_INST} ${message.content.trim()} ${E_INST}` +
+            (withNewlines ? "\n" : "")
+          );
         } else {
-          return `${acc} ${message.content.trim()} ` + (withBos ? EOS : ""); // Yes, the EOS comes after the space. This is not a mistake.
+          return (
+            `${acc} ${message.content.trim()}` +
+            (withNewlines ? "\n" : " ") +
+            (withBos ? EOS : "")
+          ); // Yes, the EOS comes after the space. This is not a mistake.
         }
       }, ""),
       systemPrompt,
@@ -614,7 +639,7 @@ If a question does not make any sense, or is not factually coherent, explain why
 
 export const ALL_AVAILABLE_ANTHROPIC_MODELS = {
   // both models have 100k context window, see https://docs.anthropic.com/claude/reference/selecting-a-model
-  "claude-2": { contextWindow: 100000 },
+  "claude-2": { contextWindow: 200000 },
   "claude-instant-1": { contextWindow: 100000 },
 };
 
@@ -680,10 +705,12 @@ export class Anthropic implements LLM {
         return (
           acc +
           `${
-            message.role === "assistant"
-              ? ANTHROPIC_AI_PROMPT
-              : ANTHROPIC_HUMAN_PROMPT
-          } ${message.content} `
+            message.role === "system"
+              ? ""
+              : message.role === "assistant"
+                ? ANTHROPIC_AI_PROMPT + " "
+                : ANTHROPIC_HUMAN_PROMPT + " "
+          }${message.content.trim()}`
         );
       }, "") + ANTHROPIC_AI_PROMPT
     );
@@ -704,6 +731,7 @@ export class Anthropic implements LLM {
       }
       return this.streamChat(messages, parentEvent) as R;
     }
+
     //Non-streaming
     const response = await this.session.anthropic.completions.create({
       model: this.model,
diff --git a/packages/core/src/llm/portkey.ts b/packages/core/src/llm/portkey.ts
index b4a5a326a2eda760572a22324b55818f8b8a5b55..92e65b1a3ebcfebc1d464578687f4705f35ead68 100644
--- a/packages/core/src/llm/portkey.ts
+++ b/packages/core/src/llm/portkey.ts
@@ -1,9 +1,12 @@
 import _ from "lodash";
 import { LLMOptions, Portkey } from "portkey-ai";
 
-export const readEnv = (env: string, default_val?: string): string | undefined => {
-  if (typeof process !== 'undefined') {
-      return process.env?.[env] ?? default_val;
+export const readEnv = (
+  env: string,
+  default_val?: string,
+): string | undefined => {
+  if (typeof process !== "undefined") {
+    return process.env?.[env] ?? default_val;
   }
   return default_val;
 };
@@ -12,23 +15,23 @@ interface PortkeyOptions {
   apiKey?: string;
   baseURL?: string;
   mode?: string;
-  llms?: [LLMOptions] | null
+  llms?: [LLMOptions] | null;
 }
 
 export class PortkeySession {
   portkey: Portkey;
 
-  constructor(options:PortkeyOptions = {}) {
+  constructor(options: PortkeyOptions = {}) {
     if (!options.apiKey) {
-      options.apiKey = readEnv('PORTKEY_API_KEY')
+      options.apiKey = readEnv("PORTKEY_API_KEY");
     }
 
     if (!options.baseURL) {
-      options.baseURL = readEnv('PORTKEY_BASE_URL', "https://api.portkey.ai")
+      options.baseURL = readEnv("PORTKEY_BASE_URL", "https://api.portkey.ai");
     }
 
     this.portkey = new Portkey({});
-    this.portkey.llms = [{}]
+    this.portkey.llms = [{}];
     if (!options.apiKey) {
       throw new Error("Set Portkey ApiKey in PORTKEY_API_KEY env variable");
     }
@@ -59,4 +62,3 @@ export function getPortkeySession(options: PortkeyOptions = {}) {
   }
   return session;
 }
-
diff --git a/packages/core/src/readers/SimpleMongoReader.ts b/packages/core/src/readers/SimpleMongoReader.ts
index 90ecf4d036bbf18c5b673722e4d577e1690257b4..1c2b0dc76f4c59c7aa6a8ad3749d02e0aa89d5fa 100644
--- a/packages/core/src/readers/SimpleMongoReader.ts
+++ b/packages/core/src/readers/SimpleMongoReader.ts
@@ -1,5 +1,5 @@
 import { MongoClient } from "mongodb";
-import { Document } from "../Node";
+import { Document, Metadata } from "../Node";
 import { BaseReader } from "./base";
 
 /**
@@ -12,40 +12,71 @@ export class SimpleMongoReader implements BaseReader {
     this.client = client;
   }
 
+  /**
+   * Flattens an array of strings or string arrays into a single-dimensional array of strings.
+   * @param texts - The array of strings or string arrays to flatten.
+   * @returns The flattened array of strings.
+   */
+  private flatten(texts: Array<string | string[]>): string[] {
+    return texts.reduce<string[]>(
+      (result, text) => result.concat(text instanceof Array ? text : [text]),
+      [],
+    );
+  }
+
   /**
    * Loads data from MongoDB collection
-   * @param {string} db_name - The name of the database to load.
-   * @param {string} collection_name - The name of the collection to load.
-   * @param {Number} [max_docs = 0] - Maximum number of documents to return. 0 means no limit.
-   * @param {Record<string, any>} [query_dict={}] - Specific query, as specified by MongoDB NodeJS documentation.
-   * @param {Record<string, any>} [query_options={}] - Specific query options, as specified by MongoDB NodeJS documentation.
-   * @param {Record<string, any>} [projection = {}] - Projection options, as specified by MongoDB NodeJS documentation.
+   * @param {string} dbName - The name of the database to load.
+   * @param {string} collectionName - The name of the collection to load.
+   * @param {string[]} fieldNames - An array of field names to retrieve from each document. Defaults to ["text"].
+   * @param {string} separator - The separator to join multiple field values. Defaults to an empty string.
+   * @param {Record<string, any>} filterQuery - Specific query, as specified by MongoDB NodeJS documentation.
+   * @param {Number} maxDocs - The maximum number of documents to retrieve. Defaults to 0 (retrieve all documents).
+   * @param {string[]} metadataNames - An optional array of metadata field names. If specified extracts this information as metadata.
    * @returns {Promise<Document[]>}
+   * @throws If a field specified in fieldNames or metadataNames is not found in a MongoDB document.
    */
-  async loadData(
-    db_name: string,
-    collection_name: string,
-    max_docs = 0,
-    //For later: Think about whether we want to pass generic objects in...
-    query_dict: Record<string, any> = {},
-    query_options: Record<string, any> = {},
-    projection: Record<string, any> = {},
+  public async loadData(
+    dbName: string,
+    collectionName: string,
+    fieldNames: string[] = ["text"],
+    separator: string = "",
+    filterQuery: Record<string, any> = {},
+    maxDocs: number = 0,
+    metadataNames?: string[],
   ): Promise<Document[]> {
-    //Get items from collection using built-in functions
-    const cursor: Partial<Document>[] = await this.client
-      .db(db_name)
-      .collection(collection_name)
-      .find(query_dict, query_options)
-      .limit(max_docs)
-      .project(projection)
-      .toArray();
-
-    //Aggregate results and return
+    const db = this.client.db(dbName);
+    // Get items from collection
+    const cursor = db
+      .collection(collectionName)
+      .find(filterQuery)
+      .limit(maxDocs);
+
     const documents: Document[] = [];
-    cursor.forEach((element: Partial<Document>) => {
-      //For later: Metadata filtering
-      documents.push(new Document({ text: JSON.stringify(element) }));
-    });
+
+    for await (const item of cursor) {
+      try {
+        const texts: Array<string | string[]> = fieldNames.map(
+          (name) => item[name],
+        );
+        const flattenedTexts = this.flatten(texts);
+        const text = flattenedTexts.join(separator);
+
+        let metadata: Metadata = {};
+        if (metadataNames) {
+          // extract metadata if fields are specified
+          metadata = Object.fromEntries(
+            metadataNames.map((name) => [name, item[name]]),
+          );
+        }
+
+        documents.push(new Document({ text, metadata }));
+      } catch (err) {
+        throw new Error(
+          `Field not found in Mongo document: ${(err as Error).message}`,
+        );
+      }
+    }
     return documents;
   }
 }
diff --git a/packages/core/src/storage/index.ts b/packages/core/src/storage/index.ts
index b97ba04116f05926c607491e00a5764401258b05..14f8a1ac137f4e7c87560671dae6b856ae6b8287 100644
--- a/packages/core/src/storage/index.ts
+++ b/packages/core/src/storage/index.ts
@@ -1,11 +1,12 @@
-export * from "./FileSystem";
-export * from "./StorageContext";
 export * from "./constants";
 export { SimpleDocumentStore } from "./docStore/SimpleDocumentStore";
 export * from "./docStore/types";
+export * from "./FileSystem";
 export { SimpleIndexStore } from "./indexStore/SimpleIndexStore";
 export * from "./indexStore/types";
 export { SimpleKVStore } from "./kvStore/SimpleKVStore";
 export * from "./kvStore/types";
+export * from "./StorageContext";
+export { MongoDBAtlasVectorSearch } from "./vectorStore/MongoDBAtlasVectorStore";
 export { SimpleVectorStore } from "./vectorStore/SimpleVectorStore";
 export * from "./vectorStore/types";
diff --git a/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts b/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6f2ec478ba3da60eee3dfbd3c8042af77c9217f8
--- /dev/null
+++ b/packages/core/src/storage/vectorStore/MongoDBAtlasVectorStore.ts
@@ -0,0 +1,164 @@
+import { BulkWriteOptions, Collection, MongoClient } from "mongodb";
+import { BaseNode, MetadataMode } from "../../Node";
+import {
+  MetadataFilters,
+  VectorStore,
+  VectorStoreQuery,
+  VectorStoreQueryResult,
+} from "./types";
+import { metadataDictToNode, nodeToMetadata } from "./utils";
+
+// Utility function to convert metadata filters to MongoDB filter
+function toMongoDBFilter(
+  standardFilters: MetadataFilters,
+): Record<string, any> {
+  const filters: Record<string, any> = {};
+  for (const filter of standardFilters.filters) {
+    filters[filter.key] = filter.value;
+  }
+  return filters;
+}
+
+// MongoDB Atlas Vector Store class implementing VectorStore
+export class MongoDBAtlasVectorSearch implements VectorStore {
+  storesText: boolean = true;
+  flatMetadata: boolean = true;
+
+  mongodbClient: MongoClient;
+  indexName: string;
+  embeddingKey: string;
+  idKey: string;
+  textKey: string;
+  metadataKey: string;
+  insertOptions?: BulkWriteOptions;
+  private collection: Collection;
+
+  constructor(
+    init: Partial<MongoDBAtlasVectorSearch> & {
+      dbName: string;
+      collectionName: string;
+    },
+  ) {
+    if (init.mongodbClient) {
+      this.mongodbClient = init.mongodbClient;
+    } else {
+      const mongoUri = process.env.MONGODB_URI;
+      if (!mongoUri) {
+        throw new Error(
+          "Must specify MONGODB_URI via env variable if not directly passing in client.",
+        );
+      }
+      this.mongodbClient = new MongoClient(mongoUri);
+    }
+
+    this.collection = this.mongodbClient
+      .db(init.dbName ?? "default_db")
+      .collection(init.collectionName ?? "default_collection");
+    this.indexName = init.indexName ?? "default";
+    this.embeddingKey = init.embeddingKey ?? "embedding";
+    this.idKey = init.idKey ?? "id";
+    this.textKey = init.textKey ?? "text";
+    this.metadataKey = init.metadataKey ?? "metadata";
+    this.insertOptions = init.insertOptions;
+  }
+
+  async add(nodes: BaseNode[]): Promise<string[]> {
+    if (!nodes || nodes.length === 0) {
+      return [];
+    }
+    const dataToInsert = nodes.map((node) => {
+      const metadata = nodeToMetadata(
+        node,
+        true,
+        this.textKey,
+        this.flatMetadata,
+      );
+
+      return {
+        [this.idKey]: node.id_,
+        [this.embeddingKey]: node.getEmbedding(),
+        [this.textKey]: node.getContent(MetadataMode.NONE) || "",
+        [this.metadataKey]: metadata,
+      };
+    });
+
+    console.debug("Inserting data into MongoDB: ", dataToInsert);
+    const insertResult = await this.collection.insertMany(
+      dataToInsert,
+      this.insertOptions,
+    );
+    console.debug("Result of insert: ", insertResult);
+    return nodes.map((node) => node.id_);
+  }
+
+  async delete(refDocId: string, deleteOptions?: any): Promise<void> {
+    await this.collection.deleteOne(
+      {
+        [`${this.metadataKey}.ref_doc_id`]: refDocId,
+      },
+      deleteOptions,
+    );
+  }
+
+  get client(): any {
+    return this.mongodbClient;
+  }
+
+  async query(
+    query: VectorStoreQuery,
+    options?: any,
+  ): Promise<VectorStoreQueryResult> {
+    const params: any = {
+      queryVector: query.queryEmbedding,
+      path: this.embeddingKey,
+      numCandidates: query.similarityTopK * 10,
+      limit: query.similarityTopK,
+      index: this.indexName,
+    };
+
+    if (query.filters) {
+      params.filter = toMongoDBFilter(query.filters);
+    }
+
+    const queryField = { $vectorSearch: params };
+    const pipeline = [
+      queryField,
+      {
+        $project: {
+          score: { $meta: "vectorSearchScore" },
+          [this.embeddingKey]: 0,
+        },
+      },
+    ];
+
+    console.debug("Running query pipeline: ", pipeline);
+    const cursor = await this.collection.aggregate(pipeline);
+
+    const nodes: BaseNode[] = [];
+    const ids: string[] = [];
+    const similarities: number[] = [];
+
+    for await (const res of await cursor) {
+      const text = res[this.textKey];
+      const score = res.score;
+      const id = res[this.idKey];
+      const metadata = res[this.metadataKey];
+
+      const node = metadataDictToNode(metadata);
+      node.setContent(text);
+
+      ids.push(id);
+      nodes.push(node);
+      similarities.push(score);
+    }
+
+    const result = {
+      nodes,
+      similarities,
+      ids,
+    };
+
+    console.debug("Result of query (ids):", ids);
+    return result;
+  }
+}
diff --git a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts
index 1bccf12ff0579f1985d2ecd873b6e037b4497c80..f314510a32f884bcfd3bd31b2bbf7fcc97931101 100644
--- a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts
+++ b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts
@@ -4,10 +4,10 @@ import {
   getTopKEmbeddings,
   getTopKEmbeddingsLearner,
   getTopKMMREmbeddings,
-} from "../../Embedding";
+} from "../../embeddings";
 import { BaseNode } from "../../Node";
-import { GenericFileSystem, exists } from "../FileSystem";
 import { DEFAULT_FS, DEFAULT_PERSIST_DIR } from "../constants";
+import { exists, GenericFileSystem } from "../FileSystem";
 import {
   VectorStore,
   VectorStoreQuery,
diff --git a/packages/core/src/storage/vectorStore/types.ts b/packages/core/src/storage/vectorStore/types.ts
index cf98afbbb763e16636774ac91d044fe36c974808..be4bb0968607f2626f0868bcd4ded9428a575ecc 100644
--- a/packages/core/src/storage/vectorStore/types.ts
+++ b/packages/core/src/storage/vectorStore/types.ts
@@ -1,5 +1,4 @@
 import { BaseNode } from "../../Node";
-import { GenericFileSystem } from "../FileSystem";
 
 export interface VectorStoreQueryResult {
   nodes?: BaseNode[];
@@ -62,10 +61,9 @@ export interface VectorStore {
   isEmbeddingQuery?: boolean;
   client(): any;
   add(embeddingResults: BaseNode[]): Promise<string[]>;
-  delete(refDocId: string, deleteKwargs?: any): Promise<void>;
+  delete(refDocId: string, deleteOptions?: any): Promise<void>;
   query(
     query: VectorStoreQuery,
     options?: any,
   ): Promise<VectorStoreQueryResult>;
-  persist(persistPath: string, fs?: GenericFileSystem): Promise<void>;
 }
diff --git a/packages/core/src/storage/vectorStore/utils.ts b/packages/core/src/storage/vectorStore/utils.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3ad1685888c993094a6525c11a3feccecc68b96d
--- /dev/null
+++ b/packages/core/src/storage/vectorStore/utils.ts
@@ -0,0 +1,59 @@
+import { BaseNode, jsonToNode, Metadata, ObjectType } from "../../Node";
+
+const DEFAULT_TEXT_KEY = "text";
+
+export function validateIsFlat(obj: { [key: string]: any }): void {
+  for (let key in obj) {
+    if (typeof obj[key] === "object" && obj[key] !== null) {
+      throw new Error(`Value for metadata ${key} must not be another object`);
+    }
+  }
+}
+
+export function nodeToMetadata(
+  node: BaseNode,
+  removeText: boolean = false,
+  textField: string = DEFAULT_TEXT_KEY,
+  flatMetadata: boolean = false,
+): Metadata {
+  const nodeObj = node.toJSON();
+  const metadata = node.metadata;
+
+  if (flatMetadata) {
+    validateIsFlat(node.metadata);
+  }
+
+  if (removeText) {
+    nodeObj[textField] = "";
+  }
+
+  nodeObj["embedding"] = null;
+
+  metadata["_node_content"] = JSON.stringify(nodeObj);
+  metadata["_node_type"] = node.constructor.name.replace("_", ""); // remove leading underscore to be compatible with Python
+
+  metadata["document_id"] = node.sourceNode?.nodeId || "None";
+  metadata["doc_id"] = node.sourceNode?.nodeId || "None";
+  metadata["ref_doc_id"] = node.sourceNode?.nodeId || "None";
+
+  return metadata;
+}
+
+export function metadataDictToNode(metadata: Metadata): BaseNode {
+  const nodeContent = metadata["_node_content"];
+  if (!nodeContent) {
+    throw new Error("Node content not found in metadata.");
+  }
+  const nodeObj = JSON.parse(nodeContent);
+
+  // Note: we're using the name of the class stored in `_node_type`
+  // and not the type attribute to reconstruct
+  // the node. This way we're compatible with LlamaIndex Python
+  const node_type = metadata["_node_type"];
+  switch (node_type) {
+    case "IndexNode":
+      return jsonToNode(nodeObj, ObjectType.INDEX);
+    default:
+      return jsonToNode(nodeObj, ObjectType.TEXT);
+  }
+}
diff --git a/packages/core/src/tests/CallbackManager.test.ts b/packages/core/src/tests/CallbackManager.test.ts
index c3d9a98d4ac1f0f49ec64a638acea0941c9aae6f..8d1e1648a9babed0a061b6b4e8d97efb5ae98ec6 100644
--- a/packages/core/src/tests/CallbackManager.test.ts
+++ b/packages/core/src/tests/CallbackManager.test.ts
@@ -1,18 +1,18 @@
-import { OpenAIEmbedding } from "../Embedding";
-import { Document } from "../Node";
-import {
-  ResponseSynthesizer,
-  SimpleResponseBuilder,
-} from "../ResponseSynthesizer";
-import { ServiceContext, serviceContextFromDefaults } from "../ServiceContext";
 import {
   CallbackManager,
   RetrievalCallbackResponse,
   StreamCallbackResponse,
 } from "../callbacks/CallbackManager";
+import { OpenAIEmbedding } from "../embeddings";
 import { SummaryIndex } from "../indices/summary";
 import { VectorStoreIndex } from "../indices/vectorStore/VectorStoreIndex";
 import { OpenAI } from "../llm/LLM";
+import { Document } from "../Node";
+import {
+  ResponseSynthesizer,
+  SimpleResponseBuilder,
+} from "../ResponseSynthesizer";
+import { ServiceContext, serviceContextFromDefaults } from "../ServiceContext";
 import { mockEmbeddingModel, mockLlmGeneration } from "./utility/mockOpenAI";
 
 // Mock the OpenAI getOpenAISession function during testing
diff --git a/packages/core/src/tests/Embedding.test.ts b/packages/core/src/tests/Embedding.test.ts
index 492a48be1a39877b28af06736f41c0e8a2266128..132c7bfa98fb11ce1e1b220ce263a0ab6168dfbf 100644
--- a/packages/core/src/tests/Embedding.test.ts
+++ b/packages/core/src/tests/Embedding.test.ts
@@ -1,4 +1,4 @@
-import { SimilarityType, similarity } from "../Embedding";
+import { similarity, SimilarityType } from "../embeddings";
 
 describe("similarity", () => {
   test("throws error on mismatched lengths", () => {
diff --git a/packages/core/src/tests/Node.test.ts b/packages/core/src/tests/Node.test.ts
new file mode 100644
index 0000000000000000000000000000000000000000..656ad7d7cdf883839921af66db8956cb04c65543
--- /dev/null
+++ b/packages/core/src/tests/Node.test.ts
@@ -0,0 +1,15 @@
+import { TextNode } from "../Node";
+
+describe("TextNode", () => {
+  let node: TextNode;
+
+  beforeEach(() => {
+    node = new TextNode({ text: "Hello World" });
+  });
+
+  describe("generateHash", () => {
+    it("should generate a hash", () => {
+      expect(node.hash).toBe("nTSKdUTYqR52MPv/brvb4RTGeqedTEqG9QN8KSAj2Do=");
+    });
+  });
+});
diff --git a/packages/core/src/tests/utility/mockOpenAI.ts b/packages/core/src/tests/utility/mockOpenAI.ts
index 04d6cdd40d50d13e377e14a09c65023b602eace0..90976ea7b24540f084810e9533a8e6374061736f 100644
--- a/packages/core/src/tests/utility/mockOpenAI.ts
+++ b/packages/core/src/tests/utility/mockOpenAI.ts
@@ -1,6 +1,6 @@
-import { OpenAIEmbedding } from "../../Embedding";
-import { globalsHelper } from "../../GlobalsHelper";
 import { CallbackManager, Event } from "../../callbacks/CallbackManager";
+import { OpenAIEmbedding } from "../../embeddings";
+import { globalsHelper } from "../../GlobalsHelper";
 import { ChatMessage, OpenAI } from "../../llm/LLM";
 
 export function mockLlmGeneration({
diff --git a/packages/create-llama/CHANGELOG.md b/packages/create-llama/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..8ff13001f2c6ac989848eb4ed546318fedd51c85
--- /dev/null
+++ b/packages/create-llama/CHANGELOG.md
@@ -0,0 +1,49 @@
+# create-llama
+
+## 0.0.9
+
+### Patch Changes
+
+- acfe232: Deployment fixes (thanks @seldo)
+
+## 0.0.8
+
+### Patch Changes
+
+- 8cdb07f: Fix Next deployment (thanks @seldo and @marcusschiesser)
+
+## 0.0.7
+
+### Patch Changes
+
+- 9f9f293: Added more to README and made it easier to switch models (thanks @seldo)
+
+## 0.0.6
+
+### Patch Changes
+
+- 4431ec7: Label bug fix (thanks @marcusschiesser)
+
+## 0.0.5
+
+### Patch Changes
+
+- 25257f4: Fix issue where it doesn't find OpenAI Key when running npm run generate (#182) (thanks @RayFernando1337)
+
+## 0.0.4
+
+### Patch Changes
+
+- 031e926: Update create-llama readme (thanks @logan-markewich)
+
+## 0.0.3
+
+### Patch Changes
+
+- 91b42a3: change version (thanks @marcusschiesser)
+
+## 0.0.2
+
+### Patch Changes
+
+- e2a6805: Hello Create Llama (thanks @marcusschiesser)
diff --git a/packages/create-llama/LICENSE.md b/packages/create-llama/LICENSE.md
new file mode 100644
index 0000000000000000000000000000000000000000..c16e650c0ed5197b51ab46b3d4abfdee5069383b
--- /dev/null
+++ b/packages/create-llama/LICENSE.md
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+
+Copyright (c) 2023 LlamaIndex, Vercel, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/create-llama/README.md b/packages/create-llama/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..1f6ba4777256c99e0335ac3a101979232c0591cb
--- /dev/null
+++ b/packages/create-llama/README.md
@@ -0,0 +1,126 @@
+# Create LlamaIndex App
+
+The easiest way to get started with [LlamaIndex](https://www.llamaindex.ai/) is by using `create-llama`. This CLI tool enables you to quickly start building a new LlamaIndex application, with everything set up for you.
+
+Just run
+
+```bash
+npx create-llama@latest
+```
+
+to get started, or see below for more options. Once your app is generated, run
+
+```bash
+npm run dev
+```
+
+to start the development server. You can then visit [http://localhost:3000](http://localhost:3000) to see your app.
+
+## What you'll get
+
+- A Next.js-powered front-end. The app is set up as a chat interface that can answer questions about your data (see below)
+  - You can style it with HTML and CSS, or you can optionally use components from [shadcn/ui](https://ui.shadcn.com/)
+- Your choice of 3 back-ends:
+  - **Next.js**: if you select this option, you’ll have a full stack Next.js application that you can deploy to a host like [Vercel](https://vercel.com/) in just a few clicks. This uses [LlamaIndex.TS](https://www.npmjs.com/package/llamaindex), our TypeScript library.
+  - **Express**: if you want a more traditional Node.js application you can generate an Express backend. This also uses LlamaIndex.TS.
+  - **Python FastAPI**: if you select this option you’ll get a backend powered by the [llama-index python package](https://pypi.org/project/llama-index/), which you can deploy to a service like Render or fly.io.
+- The back-end has a single endpoint that allows you to send the state of your chat and receive additional responses
+- You can choose whether you want a streaming or non-streaming back-end (if you're not sure, we recommend streaming)
+- You can choose whether you want to use `ContextChatEngine` or `SimpleChatEngine`
+  - `SimpleChatEngine` will just talk to the LLM directly without using your data
+  - `ContextChatEngine` will use your data to answer questions (see below).
+- The app uses OpenAI by default, so you'll need an OpenAI API key, or you can customize it to use any of the dozens of LLMs we support.
+
+## Using your data
+
+If you've enabled `ContextChatEngine`, you can supply your own data and the app will index it and answer questions. Your generated app will have a folder called `data`:
+
+- With the Next.js backend this is `./data`
+- With the Express or Python backend this is in `./backend/data`
+
+The app will ingest any supported files you put in this directory. Your Next.js and Express apps use LlamaIndex.TS so they will be able to ingest any PDF, text, CSV, Markdown, Word and HTML files. The Python backend can read even more types, including video and audio files.
+
+Before you can use your data, you need to index it. If you're using the Next.js or Express apps, run:
+
+```bash
+npm run generate
+```
+
+Then re-start your app. Remember you'll need to re-run `generate` if you add new files to your `data` folder. If you're using the Python backend, you can trigger indexing of your data by deleting the `./storage` folder and re-starting the app.
+
+## Don't want a front-end?
+
+It's optional! If you've selected the Python or Express back-ends, just delete the `frontend` folder and you'll get an API without any front-end code.
+
+## Customizing the LLM
+
+By default the app will use OpenAI's gpt-3.5-turbo model. If you want to use GPT-4, you can modify this by editing a file:
+
+- In the Next.js backend, edit `./app/api/chat/route.ts` and replace `gpt-3.5-turbo` with `gpt-4`
+- In the Express backend, edit `./backend/src/controllers/chat.controller.ts` and likewise replace `gpt-3.5-turbo` with `gpt-4`
+- In the Python backend, edit `./backend/app/utils/index.py` and once again replace `gpt-3.5-turbo` with `gpt-4`
+
+You can also replace OpenAI with one of our [dozens of other supported LLMs](https://docs.llamaindex.ai/en/stable/module_guides/models/llms/modules.html).
+
+## Example
+
+The simplest thing to do is run `create-llama` in interactive mode:
+
+```bash
+npx create-llama@latest
+# or
+npm create llama@latest
+# or
+yarn create llama
+# or
+pnpm create llama@latest
+```
+
+You will be asked for the name of your project, along with other configuration options, something like this:
+
+```bash
+>> npm create llama@latest
+Need to install the following packages:
+  create-llama@latest
+Ok to proceed? (y) y
+✔ What is your project named? … my-app
+✔ Which template would you like to use? › Chat with streaming
+✔ Which framework would you like to use? › NextJS
+✔ Which UI would you like to use? › Just HTML
+✔ Which chat engine would you like to use? › ContextChatEngine
+✔ Please provide your OpenAI API key (leave blank to skip): …
+✔ Would you like to use ESLint? … No / Yes
+Creating a new LlamaIndex app in /home/my-app.
+```
+
+### Running non-interactively
+
+You can also pass command line arguments to set up a new project
+non-interactively. See `create-llama --help`:
+
+```bash
+create-llama <project-directory> [options]
+
+Options:
+  -V, --version                      output the version number
+
+  --use-npm
+
+    Explicitly tell the CLI to bootstrap the app using npm
+
+  --use-pnpm
+
+    Explicitly tell the CLI to bootstrap the app using pnpm
+
+  --use-yarn
+
+    Explicitly tell the CLI to bootstrap the app using Yarn
+
+```
+
+## LlamaIndex Documentation
+
+- [TS/JS docs](https://ts.llamaindex.ai/)
+- [Python docs](https://docs.llamaindex.ai/en/stable/)
+
+Inspired by and adapted from [create-next-app](https://github.com/vercel/next.js/tree/canary/packages/create-next-app)
diff --git a/packages/create-llama/create-app.ts b/packages/create-llama/create-app.ts
new file mode 100644
index 0000000000000000000000000000000000000000..25c47dbd0bcd72a01625c2fadd0b04fda7da22be
--- /dev/null
+++ b/packages/create-llama/create-app.ts
@@ -0,0 +1,109 @@
+/* eslint-disable import/no-extraneous-dependencies */
+import path from "path";
+import { green } from "picocolors";
+import { tryGitInit } from "./helpers/git";
+import { isFolderEmpty } from "./helpers/is-folder-empty";
+import { getOnline } from "./helpers/is-online";
+import { isWriteable } from "./helpers/is-writeable";
+import { makeDir } from "./helpers/make-dir";
+
+import fs from "fs";
+import terminalLink from "terminal-link";
+import type { InstallTemplateArgs } from "./templates";
+import { installTemplate } from "./templates";
+
+export async function createApp({
+  template,
+  framework,
+  engine,
+  ui,
+  appPath,
+  packageManager,
+  eslint,
+  frontend,
+  openAIKey,
+}: Omit<
+  InstallTemplateArgs,
+  "appName" | "root" | "isOnline" | "customApiPath"
+> & {
+  appPath: string;
+  frontend: boolean;
+}): Promise<void> {
+  const root = path.resolve(appPath);
+
+  if (!(await isWriteable(path.dirname(root)))) {
+    console.error(
+      "The application path is not writable, please check folder permissions and try again.",
+    );
+    console.error(
+      "It is likely you do not have write permissions for this folder.",
+    );
+    process.exit(1);
+  }
+
+  const appName = path.basename(root);
+
+  await makeDir(root);
+  if (!isFolderEmpty(root, appName)) {
+    process.exit(1);
+  }
+
+  const useYarn = packageManager === "yarn";
+  const isOnline = !useYarn || (await getOnline());
+
+  console.log(`Creating a new LlamaIndex app in ${green(root)}.`);
+  console.log();
+
+  const args = {
+    appName,
+    root,
+    template,
+    framework,
+    engine,
+    ui,
+    packageManager,
+    isOnline,
+    eslint,
+    openAIKey,
+  };
+
+  if (frontend) {
+    // install backend
+    const backendRoot = path.join(root, "backend");
+    await makeDir(backendRoot);
+    await installTemplate({ ...args, root: backendRoot, backend: true });
+    // install frontend
+    const frontendRoot = path.join(root, "frontend");
+    await makeDir(frontendRoot);
+    await installTemplate({
+      ...args,
+      root: frontendRoot,
+      framework: "nextjs",
+      customApiPath: "http://localhost:8000/api/chat",
+      backend: false,
+    });
+    // copy readme for fullstack
+    await fs.promises.copyFile(
+      path.join(__dirname, "templates", "README-fullstack.md"),
+      path.join(root, "README.md"),
+    );
+  } else {
+    await installTemplate({ ...args, backend: true, forBackend: framework });
+  }
+
+  process.chdir(root);
+  if (tryGitInit(root)) {
+    console.log("Initialized a git repository.");
+    console.log();
+  }
+
+  console.log(`${green("Success!")} Created ${appName} at ${appPath}`);
+
+  console.log(
+    `Now have a look at the ${terminalLink(
+      "README.md",
+      `file://${appName}/README.md`,
+    )} and learn how to get started.`,
+  );
+  console.log();
+}
diff --git a/packages/create-llama/helpers/copy.ts b/packages/create-llama/helpers/copy.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a5b722ba34fe41e867e686f10b1bdf725c58c0a0
--- /dev/null
+++ b/packages/create-llama/helpers/copy.ts
@@ -0,0 +1,50 @@
+/* eslint-disable import/no-extraneous-dependencies */
+import { async as glob } from "fast-glob";
+import fs from "fs";
+import path from "path";
+
+interface CopyOption {
+  cwd?: string;
+  rename?: (basename: string) => string;
+  parents?: boolean;
+}
+
+const identity = (x: string) => x;
+
+export const copy = async (
+  src: string | string[],
+  dest: string,
+  { cwd, rename = identity, parents = true }: CopyOption = {},
+) => {
+  const source = typeof src === "string" ? [src] : src;
+
+  if (source.length === 0 || !dest) {
+    throw new TypeError("`src` and `dest` are required");
+  }
+
+  const sourceFiles = await glob(source, {
+    cwd,
+    dot: true,
+    absolute: false,
+    stats: false,
+  });
+
+  const destRelativeToCwd = cwd ? path.resolve(cwd, dest) : dest;
+
+  return Promise.all(
+    sourceFiles.map(async (p) => {
+      const dirname = path.dirname(p);
+      const basename = rename(path.basename(p));
+
+      const from = cwd ? path.resolve(cwd, p) : p;
+      const to = parents
+        ? path.join(destRelativeToCwd, dirname, basename)
+        : path.join(destRelativeToCwd, basename);
+
+      // Ensure the destination directory exists
+      await fs.promises.mkdir(path.dirname(to), { recursive: true });
+
+      return fs.promises.copyFile(from, to);
+    }),
+  );
+};
diff --git a/packages/create-llama/helpers/get-pkg-manager.ts b/packages/create-llama/helpers/get-pkg-manager.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0187c88a49e67bf7aa7fe95520b3af91777987f8
--- /dev/null
+++ b/packages/create-llama/helpers/get-pkg-manager.ts
@@ -0,0 +1,15 @@
+export type PackageManager = "npm" | "pnpm" | "yarn";
+
+export function getPkgManager(): PackageManager {
+  const userAgent = process.env.npm_config_user_agent || "";
+
+  if (userAgent.startsWith("yarn")) {
+    return "yarn";
+  }
+
+  if (userAgent.startsWith("pnpm")) {
+    return "pnpm";
+  }
+
+  return "npm";
+}
diff --git a/packages/create-llama/helpers/git.ts b/packages/create-llama/helpers/git.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2cdfe8dc34baefd0c092bbefe6fe071bd4729e0c
--- /dev/null
+++ b/packages/create-llama/helpers/git.ts
@@ -0,0 +1,58 @@
+/* eslint-disable import/no-extraneous-dependencies */
+import { execSync } from "child_process";
+import fs from "fs";
+import path from "path";
+
+function isInGitRepository(): boolean {
+  try {
+    execSync("git rev-parse --is-inside-work-tree", { stdio: "ignore" });
+    return true;
+  } catch (_) {}
+  return false;
+}
+
+function isInMercurialRepository(): boolean {
+  try {
+    execSync("hg --cwd . root", { stdio: "ignore" });
+    return true;
+  } catch (_) {}
+  return false;
+}
+
+function isDefaultBranchSet(): boolean {
+  try {
+    execSync("git config init.defaultBranch", { stdio: "ignore" });
+    return true;
+  } catch (_) {}
+  return false;
+}
+
+export function tryGitInit(root: string): boolean {
+  let didInit = false;
+  try {
+    execSync("git --version", { stdio: "ignore" });
+    if (isInGitRepository() || isInMercurialRepository()) {
+      return false;
+    }
+
+    execSync("git init", { stdio: "ignore" });
+    didInit = true;
+
+    if (!isDefaultBranchSet()) {
+      execSync("git checkout -b main", { stdio: "ignore" });
+    }
+
+    execSync("git add -A", { stdio: "ignore" });
+    execSync('git commit -m "Initial commit from Create Llama"', {
+      stdio: "ignore",
+    });
+    return true;
+  } catch (e) {
+    if (didInit) {
+      try {
+        fs.rmSync(path.join(root, ".git"), { recursive: true, force: true });
+      } catch (_) {}
+    }
+    return false;
+  }
+}
diff --git a/packages/create-llama/helpers/install.ts b/packages/create-llama/helpers/install.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9f0f20356265081bbb062454b14d1c9059544900
--- /dev/null
+++ b/packages/create-llama/helpers/install.ts
@@ -0,0 +1,50 @@
+/* eslint-disable import/no-extraneous-dependencies */
+import spawn from "cross-spawn";
+import { yellow } from "picocolors";
+import type { PackageManager } from "./get-pkg-manager";
+
+/**
+ * Spawn a package manager installation based on user preference.
+ *
+ * @returns A Promise that resolves once the installation is finished.
+ */
+export async function callPackageManager(
+  /** Indicate which package manager to use. */
+  packageManager: PackageManager,
+  /** Indicate whether there is an active Internet connection.*/
+  isOnline: boolean,
+  args: string[] = ["install"],
+): Promise<void> {
+  if (!isOnline) {
+    console.log(
+      yellow("You appear to be offline.\nFalling back to the local cache."),
+    );
+    args.push("--offline");
+  }
+  /**
+   * Return a Promise that resolves once the installation is finished.
+   */
+  return new Promise((resolve, reject) => {
+    /**
+     * Spawn the installation process.
+     */
+    const child = spawn(packageManager, args, {
+      stdio: "inherit",
+      env: {
+        ...process.env,
+        ADBLOCK: "1",
+        // we set NODE_ENV to development as pnpm skips dev
+        // dependencies when production
+        NODE_ENV: "development",
+        DISABLE_OPENCOLLECTIVE: "1",
+      },
+    });
+    child.on("close", (code) => {
+      if (code !== 0) {
+        reject({ command: `${packageManager} ${args.join(" ")}` });
+        return;
+      }
+      resolve();
+    });
+  });
+}
diff --git a/packages/create-llama/helpers/is-folder-empty.ts b/packages/create-llama/helpers/is-folder-empty.ts
new file mode 100644
index 0000000000000000000000000000000000000000..927a344c00fe80bc8c906349d70ffad5bb47d15e
--- /dev/null
+++ b/packages/create-llama/helpers/is-folder-empty.ts
@@ -0,0 +1,62 @@
+/* eslint-disable import/no-extraneous-dependencies */
+import fs from "fs";
+import path from "path";
+import { blue, green } from "picocolors";
+
+export function isFolderEmpty(root: string, name: string): boolean {
+  const validFiles = [
+    ".DS_Store",
+    ".git",
+    ".gitattributes",
+    ".gitignore",
+    ".gitlab-ci.yml",
+    ".hg",
+    ".hgcheck",
+    ".hgignore",
+    ".idea",
+    ".npmignore",
+    ".travis.yml",
+    "LICENSE",
+    "Thumbs.db",
+    "docs",
+    "mkdocs.yml",
+    "npm-debug.log",
+    "yarn-debug.log",
+    "yarn-error.log",
+    "yarnrc.yml",
+    ".yarn",
+  ];
+
+  const conflicts = fs
+    .readdirSync(root)
+    .filter((file) => !validFiles.includes(file))
+    // Support IntelliJ IDEA-based editors
+    .filter((file) => !/\.iml$/.test(file));
+
+  if (conflicts.length > 0) {
+    console.log(
+      `The directory ${green(name)} contains files that could conflict:`,
+    );
+    console.log();
+    for (const file of conflicts) {
+      try {
+        const stats = fs.lstatSync(path.join(root, file));
+        if (stats.isDirectory()) {
+          console.log(`  ${blue(file)}/`);
+        } else {
+          console.log(`  ${file}`);
+        }
+      } catch {
+        console.log(`  ${file}`);
+      }
+    }
+    console.log();
+    console.log(
+      "Either try using a new directory name, or remove the files listed above.",
+    );
+    console.log();
+    return false;
+  }
+
+  return true;
+}
diff --git a/packages/create-llama/helpers/is-online.ts b/packages/create-llama/helpers/is-online.ts
new file mode 100644
index 0000000000000000000000000000000000000000..eab6980053517b8c350f537eb34ef238826909a8
--- /dev/null
+++ b/packages/create-llama/helpers/is-online.ts
@@ -0,0 +1,40 @@
+import { execSync } from "child_process";
+import dns from "dns";
+import url from "url";
+
+function getProxy(): string | undefined {
+  if (process.env.https_proxy) {
+    return process.env.https_proxy;
+  }
+
+  try {
+    const httpsProxy = execSync("npm config get https-proxy").toString().trim();
+    return httpsProxy !== "null" ? httpsProxy : undefined;
+  } catch (e) {
+    return;
+  }
+}
+
+export function getOnline(): Promise<boolean> {
+  return new Promise((resolve) => {
+    dns.lookup("registry.yarnpkg.com", (registryErr) => {
+      if (!registryErr) {
+        return resolve(true);
+      }
+
+      const proxy = getProxy();
+      if (!proxy) {
+        return resolve(false);
+      }
+
+      const { hostname } = url.parse(proxy);
+      if (!hostname) {
+        return resolve(false);
+      }
+
+      dns.lookup(hostname, (proxyErr) => {
+        resolve(proxyErr == null);
+      });
+    });
+  });
+}
diff --git a/packages/create-llama/helpers/is-url.ts b/packages/create-llama/helpers/is-url.ts
new file mode 100644
index 0000000000000000000000000000000000000000..eb87b975252f721bf596f98b628f4b6394a63516
--- /dev/null
+++ b/packages/create-llama/helpers/is-url.ts
@@ -0,0 +1,8 @@
+export function isUrl(url: string): boolean {
+  try {
+    new URL(url);
+    return true;
+  } catch (error) {
+    return false;
+  }
+}
diff --git a/packages/create-llama/helpers/is-writeable.ts b/packages/create-llama/helpers/is-writeable.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fa29d60558b33c0cd9823ec29842d48648b37901
--- /dev/null
+++ b/packages/create-llama/helpers/is-writeable.ts
@@ -0,0 +1,10 @@
+import fs from "fs";
+
+export async function isWriteable(directory: string): Promise<boolean> {
+  try {
+    await fs.promises.access(directory, (fs.constants || fs).W_OK);
+    return true;
+  } catch (err) {
+    return false;
+  }
+}
diff --git a/packages/create-llama/helpers/make-dir.ts b/packages/create-llama/helpers/make-dir.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2c258fd6b5a0d2362c13cfcbade7cac21702fb5a
--- /dev/null
+++ b/packages/create-llama/helpers/make-dir.ts
@@ -0,0 +1,8 @@
+import fs from "fs";
+
+export function makeDir(
+  root: string,
+  options = { recursive: true },
+): Promise<string | undefined> {
+  return fs.promises.mkdir(root, options);
+}
diff --git a/packages/create-llama/helpers/validate-pkg.ts b/packages/create-llama/helpers/validate-pkg.ts
new file mode 100644
index 0000000000000000000000000000000000000000..68317653c8e455aec9ce6d192f725a74b8199cfd
--- /dev/null
+++ b/packages/create-llama/helpers/validate-pkg.ts
@@ -0,0 +1,20 @@
+// eslint-disable-next-line import/no-extraneous-dependencies
+import validateProjectName from "validate-npm-package-name";
+
+export function validateNpmName(name: string): {
+  valid: boolean;
+  problems?: string[];
+} {
+  const nameValidation = validateProjectName(name);
+  if (nameValidation.validForNewPackages) {
+    return { valid: true };
+  }
+
+  return {
+    valid: false,
+    problems: [
+      ...(nameValidation.errors || []),
+      ...(nameValidation.warnings || []),
+    ],
+  };
+}
diff --git a/packages/create-llama/index.ts b/packages/create-llama/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..14571b74b651992c937279a5a0cff365d33de6c3
--- /dev/null
+++ b/packages/create-llama/index.ts
@@ -0,0 +1,402 @@
+#!/usr/bin/env node
+/* eslint-disable import/no-extraneous-dependencies */
+import ciInfo from "ci-info";
+import Commander from "commander";
+import Conf from "conf";
+import fs from "fs";
+import path from "path";
+import { blue, bold, cyan, green, red, yellow } from "picocolors";
+import prompts from "prompts";
+import checkForUpdate from "update-check";
+import { createApp } from "./create-app";
+import { getPkgManager } from "./helpers/get-pkg-manager";
+import { isFolderEmpty } from "./helpers/is-folder-empty";
+import { validateNpmName } from "./helpers/validate-pkg";
+import packageJson from "./package.json";
+
+let projectPath: string = "";
+
+const handleSigTerm = () => process.exit(0);
+
+process.on("SIGINT", handleSigTerm);
+process.on("SIGTERM", handleSigTerm);
+
+const onPromptState = (state: any) => {
+  if (state.aborted) {
+    // If we don't re-enable the terminal cursor before exiting
+    // the program, the cursor will remain hidden
+    process.stdout.write("\x1B[?25h");
+    process.stdout.write("\n");
+    process.exit(1);
+  }
+};
+
+const program = new Commander.Command(packageJson.name)
+  .version(packageJson.version)
+  .arguments("<project-directory>")
+  .usage(`${green("<project-directory>")} [options]`)
+  .action((name) => {
+    projectPath = name;
+  })
+  .option(
+    "--eslint",
+    `
+
+  Initialize with eslint config.
+`,
+  )
+  .option(
+    "--use-npm",
+    `
+
+  Explicitly tell the CLI to bootstrap the application using npm
+`,
+  )
+  .option(
+    "--use-pnpm",
+    `
+
+  Explicitly tell the CLI to bootstrap the application using pnpm
+`,
+  )
+  .option(
+    "--use-yarn",
+    `
+
+  Explicitly tell the CLI to bootstrap the application using Yarn
+`,
+  )
+  .option(
+    "--reset-preferences",
+    `
+
+  Explicitly tell the CLI to reset any stored preferences
+`,
+  )
+  .allowUnknownOption()
+  .parse(process.argv);
+
+const packageManager = !!program.useNpm
+  ? "npm"
+  : !!program.usePnpm
+    ? "pnpm"
+    : !!program.useYarn
+      ? "yarn"
+      : getPkgManager();
+
+async function run(): Promise<void> {
+  const conf = new Conf({ projectName: "create-llama" });
+
+  if (program.resetPreferences) {
+    conf.clear();
+    console.log(`Preferences reset successfully`);
+    return;
+  }
+
+  if (typeof projectPath === "string") {
+    projectPath = projectPath.trim();
+  }
+
+  if (!projectPath) {
+    const res = await prompts({
+      onState: onPromptState,
+      type: "text",
+      name: "path",
+      message: "What is your project named?",
+      initial: "my-app",
+      validate: (name) => {
+        const validation = validateNpmName(path.basename(path.resolve(name)));
+        if (validation.valid) {
+          return true;
+        }
+        return "Invalid project name: " + validation.problems![0];
+      },
+    });
+
+    if (typeof res.path === "string") {
+      projectPath = res.path.trim();
+    }
+  }
+
+  if (!projectPath) {
+    console.log(
+      "\nPlease specify the project directory:\n" +
+        `  ${cyan(program.name())} ${green("<project-directory>")}\n` +
+        "For example:\n" +
+        `  ${cyan(program.name())} ${green("my-next-app")}\n\n` +
+        `Run ${cyan(`${program.name()} --help`)} to see all options.`,
+    );
+    process.exit(1);
+  }
+
+  const resolvedProjectPath = path.resolve(projectPath);
+  const projectName = path.basename(resolvedProjectPath);
+
+  const { valid, problems } = validateNpmName(projectName);
+  if (!valid) {
+    console.error(
+      `Could not create a project called ${red(
+        `"${projectName}"`,
+      )} because of npm naming restrictions:`,
+    );
+
+    problems!.forEach((p) => console.error(`    ${red(bold("*"))} ${p}`));
+    process.exit(1);
+  }
+
+  /**
+   * Verify the project dir is empty or doesn't exist
+   */
+  const root = path.resolve(resolvedProjectPath);
+  const appName = path.basename(root);
+  const folderExists = fs.existsSync(root);
+
+  if (folderExists && !isFolderEmpty(root, appName)) {
+    process.exit(1);
+  }
+
+  const preferences = (conf.get("preferences") || {}) as Record<
+    string,
+    boolean | string
+  >;
+
+  const defaults: typeof preferences = {
+    template: "simple",
+    framework: "nextjs",
+    engine: "simple",
+    ui: "html",
+    eslint: true,
+    frontend: false,
+    openAIKey: "",
+  };
+  const getPrefOrDefault = (field: string) =>
+    preferences[field] ?? defaults[field];
+
+  const handlers = {
+    onCancel: () => {
+      console.error("Exiting.");
+      process.exit(1);
+    },
+  };
+
+  if (!program.template) {
+    if (ciInfo.isCI) {
+      program.template = getPrefOrDefault("template");
+    } else {
+      const { template } = await prompts(
+        {
+          type: "select",
+          name: "template",
+          message: "Which template would you like to use?",
+          choices: [
+            { title: "Chat without streaming", value: "simple" },
+            { title: "Chat with streaming", value: "streaming" },
+          ],
+          initial: 1,
+        },
+        handlers,
+      );
+      program.template = template;
+      preferences.template = template;
+    }
+  }
+
+  if (!program.framework) {
+    if (ciInfo.isCI) {
+      program.framework = getPrefOrDefault("framework");
+    } else {
+      const { framework } = await prompts(
+        {
+          type: "select",
+          name: "framework",
+          message: "Which framework would you like to use?",
+          choices: [
+            { title: "NextJS", value: "nextjs" },
+            { title: "Express", value: "express" },
+            { title: "FastAPI (Python)", value: "fastapi" },
+          ],
+          initial: 0,
+        },
+        handlers,
+      );
+      program.framework = framework;
+      preferences.framework = framework;
+    }
+  }
+
+  if (program.framework === "express" || program.framework === "fastapi") {
+    // if a backend-only framework is selected, ask whether we should create a frontend
+    if (!program.frontend) {
+      if (ciInfo.isCI) {
+        program.frontend = getPrefOrDefault("frontend");
+      } else {
+        const styledNextJS = blue("NextJS");
+        const styledBackend = green(
+          program.framework === "express"
+            ? "Express "
+            : program.framework === "fastapi"
+              ? "FastAPI (Python) "
+              : "",
+        );
+        const { frontend } = await prompts({
+          onState: onPromptState,
+          type: "toggle",
+          name: "frontend",
+          message: `Would you like to generate a ${styledNextJS} frontend for your ${styledBackend}backend?`,
+          initial: getPrefOrDefault("frontend"),
+          active: "Yes",
+          inactive: "No",
+        });
+        program.frontend = Boolean(frontend);
+        preferences.frontend = Boolean(frontend);
+      }
+    }
+  }
+
+  if (program.framework === "nextjs" || program.frontend) {
+    if (!program.ui) {
+      if (ciInfo.isCI) {
+        program.ui = getPrefOrDefault("ui");
+      } else {
+        const { ui } = await prompts(
+          {
+            type: "select",
+            name: "ui",
+            message: "Which UI would you like to use?",
+            choices: [
+              { title: "Just HTML", value: "html" },
+              { title: "Shadcn", value: "shadcn" },
+            ],
+            initial: 0,
+          },
+          handlers,
+        );
+        program.ui = ui;
+        preferences.ui = ui;
+      }
+    }
+  }
+
+  if (program.framework === "express" || program.framework === "nextjs") {
+    if (!program.engine) {
+      if (ciInfo.isCI) {
+        program.engine = getPrefOrDefault("engine");
+      } else {
+        const { engine } = await prompts(
+          {
+            type: "select",
+            name: "engine",
+            message: "Which chat engine would you like to use?",
+            choices: [
+              { title: "ContextChatEngine", value: "context" },
+              {
+                title: "SimpleChatEngine (no data, just chat)",
+                value: "simple",
+              },
+            ],
+            initial: 0,
+          },
+          handlers,
+        );
+        program.engine = engine;
+        preferences.engine = engine;
+      }
+    }
+  }
+
+  if (!program.openAIKey) {
+    const { key } = await prompts(
+      {
+        type: "text",
+        name: "key",
+        message: "Please provide your OpenAI API key (leave blank to skip):",
+      },
+      handlers,
+    );
+    program.openAIKey = key;
+    preferences.openAIKey = key;
+  }
+
+  if (
+    program.framework !== "fastapi" &&
+    !process.argv.includes("--eslint") &&
+    !process.argv.includes("--no-eslint")
+  ) {
+    if (ciInfo.isCI) {
+      program.eslint = getPrefOrDefault("eslint");
+    } else {
+      const styledEslint = blue("ESLint");
+      const { eslint } = await prompts({
+        onState: onPromptState,
+        type: "toggle",
+        name: "eslint",
+        message: `Would you like to use ${styledEslint}?`,
+        initial: getPrefOrDefault("eslint"),
+        active: "Yes",
+        inactive: "No",
+      });
+      program.eslint = Boolean(eslint);
+      preferences.eslint = Boolean(eslint);
+    }
+  }
+
+  await createApp({
+    template: program.template,
+    framework: program.framework,
+    engine: program.engine,
+    ui: program.ui,
+    appPath: resolvedProjectPath,
+    packageManager,
+    eslint: program.eslint,
+    frontend: program.frontend,
+    openAIKey: program.openAIKey,
+  });
+  conf.set("preferences", preferences);
+}
+
+const update = checkForUpdate(packageJson).catch(() => null);
+
+async function notifyUpdate(): Promise<void> {
+  try {
+    const res = await update;
+    if (res?.latest) {
+      const updateMessage =
+        packageManager === "yarn"
+          ? "yarn global add create-llama@latest"
+          : packageManager === "pnpm"
+            ? "pnpm add -g create-llama@latest"
+            : "npm i -g create-llama@latest";
+
+      console.log(
+        yellow(bold("A new version of `create-llama` is available!")) +
+          "\n" +
+          "You can update by running: " +
+          cyan(updateMessage) +
+          "\n",
+      );
+    }
+    process.exit();
+  } catch {
+    // ignore error
+  }
+}
+
+run()
+  .then(notifyUpdate)
+  .catch(async (reason) => {
+    console.log();
+    console.log("Aborting installation.");
+    if (reason.command) {
+      console.log(`  ${cyan(reason.command)} has failed.`);
+    } else {
+      console.log(
+        red("Unexpected error. Please report it as a bug:") + "\n",
+        reason,
+      );
+    }
+    console.log();
+
+    await notifyUpdate();
+
+    process.exit(1);
+  });
diff --git a/packages/create-llama/package.json b/packages/create-llama/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..d2425267b1ecd9760377caeb2c6d2ab5e345b541
--- /dev/null
+++ b/packages/create-llama/package.json
@@ -0,0 +1,55 @@
+{
+  "name": "create-llama",
+  "version": "0.0.9",
+  "keywords": [
+    "rag",
+    "llamaindex",
+    "next.js"
+  ],
+  "description": "Create LlamaIndex-powered apps with one command",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/run-llama/LlamaIndexTS",
+    "directory": "packages/create-llama"
+  },
+  "license": "MIT",
+  "bin": {
+    "create-llama": "./dist/index.js"
+  },
+  "files": [
+    "dist"
+  ],
+  "scripts": {
+    "dev": "ncc build ./index.ts -w -o dist/",
+    "build": "ncc build ./index.ts -o ./dist/ --minify --no-cache --no-source-map-register",
+    "lint": "eslint . --ignore-pattern dist",
+    "prepublishOnly": "cd ../../ && turbo run build"
+  },
+  "devDependencies": {
+    "@types/async-retry": "1.4.2",
+    "@types/ci-info": "2.0.0",
+    "@types/cross-spawn": "6.0.0",
+    "@types/node": "^20.9.0",
+    "@types/prompts": "2.0.1",
+    "@types/tar": "6.1.5",
+    "@types/validate-npm-package-name": "3.0.0",
+    "@vercel/ncc": "0.34.0",
+    "async-retry": "1.3.1",
+    "async-sema": "3.0.1",
+    "ci-info": "github:watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540",
+    "commander": "2.20.0",
+    "conf": "10.2.0",
+    "cross-spawn": "7.0.3",
+    "fast-glob": "3.3.1",
+    "got": "10.7.0",
+    "picocolors": "1.0.0",
+    "prompts": "2.1.0",
+    "tar": "6.1.15",
+    "terminal-link": "^3.0.0",
+    "update-check": "1.5.4",
+    "validate-npm-package-name": "3.0.0"
+  },
+  "engines": {
+    "node": ">=16.14.0"
+  }
+}
diff --git a/packages/create-llama/templates/.gitignore b/packages/create-llama/templates/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ec6c67b630467343abb46cfeea0535ce4b339554
--- /dev/null
+++ b/packages/create-llama/templates/.gitignore
@@ -0,0 +1,3 @@
+__pycache__
+poetry.lock
+storage
diff --git a/packages/create-llama/templates/README-fullstack.md b/packages/create-llama/templates/README-fullstack.md
new file mode 100644
index 0000000000000000000000000000000000000000..5a41b8cfc370f4fe99269331065bdee8b6aa8e8c
--- /dev/null
+++ b/packages/create-llama/templates/README-fullstack.md
@@ -0,0 +1,18 @@
+This is a [LlamaIndex](https://www.llamaindex.ai/) project bootstrapped with [`create-llama`](https://github.com/run-llama/LlamaIndexTS/tree/main/packages/create-llama).
+
+## Getting Started
+
+First, startup the backend as described in the [backend README](./backend/README.md).
+
+Second, run the development server of the frontend as described in the [frontend README](./frontend/README.md).
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+## Learn More
+
+To learn more about LlamaIndex, take a look at the following resources:
+
+- [LlamaIndex Documentation](https://docs.llamaindex.ai) - learn about LlamaIndex (Python features).
+- [LlamaIndexTS Documentation](https://ts.llamaindex.ai) - learn about LlamaIndex (Typescript features).
+
+You can check out [the LlamaIndexTS GitHub repository](https://github.com/run-llama/LlamaIndexTS) - your feedback and contributions are welcome!
diff --git a/packages/create-llama/templates/components/data/101.pdf b/packages/create-llama/templates/components/data/101.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..ae5acffd5398b7c59e2df9e6dead2d99128b719c
Binary files /dev/null and b/packages/create-llama/templates/components/data/101.pdf differ
diff --git a/packages/create-llama/templates/components/engines/context/constants.mjs b/packages/create-llama/templates/components/engines/context/constants.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..8cfb403c3790b0c5088a802071896d2fdca98ded
--- /dev/null
+++ b/packages/create-llama/templates/components/engines/context/constants.mjs
@@ -0,0 +1,4 @@
+export const STORAGE_DIR = "./data";
+export const STORAGE_CACHE_DIR = "./cache";
+export const CHUNK_SIZE = 512;
+export const CHUNK_OVERLAP = 20;
diff --git a/packages/create-llama/templates/components/engines/context/generate.mjs b/packages/create-llama/templates/components/engines/context/generate.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..8420dd5f81eab52574ec51770cf0e09ccb139563
--- /dev/null
+++ b/packages/create-llama/templates/components/engines/context/generate.mjs
@@ -0,0 +1,48 @@
+import {
+  serviceContextFromDefaults,
+  SimpleDirectoryReader,
+  storageContextFromDefaults,
+  VectorStoreIndex,
+} from "llamaindex";
+
+import {
+  CHUNK_OVERLAP,
+  CHUNK_SIZE,
+  STORAGE_CACHE_DIR,
+  STORAGE_DIR,
+} from "./constants.mjs";
+
+async function getRuntime(func) {
+  const start = Date.now();
+  await func();
+  const end = Date.now();
+  return end - start;
+}
+
+async function generateDatasource(serviceContext) {
+  console.log(`Generating storage context...`);
+  // Split documents, create embeddings and store them in the storage context
+  const ms = await getRuntime(async () => {
+    const storageContext = await storageContextFromDefaults({
+      persistDir: STORAGE_CACHE_DIR,
+    });
+    const documents = await new SimpleDirectoryReader().loadData({
+      directoryPath: STORAGE_DIR,
+    });
+    await VectorStoreIndex.fromDocuments(documents, {
+      storageContext,
+      serviceContext,
+    });
+  });
+  console.log(`Storage context successfully generated in ${ms / 1000}s.`);
+}
+
+(async () => {
+  const serviceContext = serviceContextFromDefaults({
+    chunkSize: CHUNK_SIZE,
+    chunkOverlap: CHUNK_OVERLAP,
+  });
+
+  await generateDatasource(serviceContext);
+  console.log("Finished generating storage.");
+})();
diff --git a/packages/create-llama/templates/components/engines/context/index.ts b/packages/create-llama/templates/components/engines/context/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cdd93809dcd7d9939aba8798fdac3639151e4ac5
--- /dev/null
+++ b/packages/create-llama/templates/components/engines/context/index.ts
@@ -0,0 +1,44 @@
+import {
+  ContextChatEngine,
+  LLM,
+  serviceContextFromDefaults,
+  SimpleDocumentStore,
+  storageContextFromDefaults,
+  VectorStoreIndex,
+} from "llamaindex";
+import { CHUNK_OVERLAP, CHUNK_SIZE, STORAGE_CACHE_DIR } from "./constants.mjs";
+
+async function getDataSource(llm: LLM) {
+  const serviceContext = serviceContextFromDefaults({
+    llm,
+    chunkSize: CHUNK_SIZE,
+    chunkOverlap: CHUNK_OVERLAP,
+  });
+  let storageContext = await storageContextFromDefaults({
+    persistDir: `${STORAGE_CACHE_DIR}`,
+  });
+
+  const numberOfDocs = Object.keys(
+    (storageContext.docStore as SimpleDocumentStore).toDict(),
+  ).length;
+  if (numberOfDocs === 0) {
+    throw new Error(
+      `StorageContext is empty - call 'npm run generate' to generate the storage first`,
+    );
+  }
+  return await VectorStoreIndex.init({
+    storageContext,
+    serviceContext,
+  });
+}
+
+export async function createChatEngine(llm: LLM) {
+  const index = await getDataSource(llm);
+  const retriever = index.asRetriever();
+  retriever.similarityTopK = 5;
+
+  return new ContextChatEngine({
+    chatModel: llm,
+    retriever,
+  });
+}
diff --git a/packages/create-llama/templates/components/ui/shadcn/README-template.md b/packages/create-llama/templates/components/ui/shadcn/README-template.md
new file mode 100644
index 0000000000000000000000000000000000000000..ebfcf48c999ef8e040b282adfd4312767f731bb5
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/README-template.md
@@ -0,0 +1 @@
+Using the chat component from https://github.com/marcusschiesser/ui (based on https://ui.shadcn.com/)
diff --git a/packages/create-llama/templates/components/ui/shadcn/button.tsx b/packages/create-llama/templates/components/ui/shadcn/button.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..662b0404d83445eb7fca1ead6724e944610fdf25
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/button.tsx
@@ -0,0 +1,56 @@
+import { Slot } from "@radix-ui/react-slot";
+import { cva, type VariantProps } from "class-variance-authority";
+import * as React from "react";
+
+import { cn } from "./lib/utils";
+
+const buttonVariants = cva(
+  "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
+  {
+    variants: {
+      variant: {
+        default: "bg-primary text-primary-foreground hover:bg-primary/90",
+        destructive:
+          "bg-destructive text-destructive-foreground hover:bg-destructive/90",
+        outline:
+          "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
+        secondary:
+          "bg-secondary text-secondary-foreground hover:bg-secondary/80",
+        ghost: "hover:bg-accent hover:text-accent-foreground",
+        link: "text-primary underline-offset-4 hover:underline",
+      },
+      size: {
+        default: "h-10 px-4 py-2",
+        sm: "h-9 rounded-md px-3",
+        lg: "h-11 rounded-md px-8",
+        icon: "h-10 w-10",
+      },
+    },
+    defaultVariants: {
+      variant: "default",
+      size: "default",
+    },
+  },
+);
+
+export interface ButtonProps
+  extends React.ButtonHTMLAttributes<HTMLButtonElement>,
+    VariantProps<typeof buttonVariants> {
+  asChild?: boolean;
+}
+
+const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
+  ({ className, variant, size, asChild = false, ...props }, ref) => {
+    const Comp = asChild ? Slot : "button";
+    return (
+      <Comp
+        className={cn(buttonVariants({ variant, size, className }))}
+        ref={ref}
+        {...props}
+      />
+    );
+  },
+);
+Button.displayName = "Button";
+
+export { Button, buttonVariants };
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/chat-actions.tsx b/packages/create-llama/templates/components/ui/shadcn/chat/chat-actions.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..151ef61a945c49cacfd44c77cbdf7287b5967861
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/chat-actions.tsx
@@ -0,0 +1,28 @@
+import { PauseCircle, RefreshCw } from "lucide-react";
+
+import { Button } from "../button";
+import { ChatHandler } from "./chat.interface";
+
+export default function ChatActions(
+  props: Pick<ChatHandler, "stop" | "reload"> & {
+    showReload?: boolean;
+    showStop?: boolean;
+  },
+) {
+  return (
+    <div className="space-x-4">
+      {props.showStop && (
+        <Button variant="outline" size="sm" onClick={props.stop}>
+          <PauseCircle className="mr-2 h-4 w-4" />
+          Stop generating
+        </Button>
+      )}
+      {props.showReload && (
+        <Button variant="outline" size="sm" onClick={props.reload}>
+          <RefreshCw className="mr-2 h-4 w-4" />
+          Regenerate
+        </Button>
+      )}
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/chat-avatar.tsx b/packages/create-llama/templates/components/ui/shadcn/chat/chat-avatar.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..ce04e306a7164e49e7ea6950a55c4f5cedc2ee2a
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/chat-avatar.tsx
@@ -0,0 +1,25 @@
+import { User2 } from "lucide-react";
+import Image from "next/image";
+
+export default function ChatAvatar({ role }: { role: string }) {
+  if (role === "user") {
+    return (
+      <div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border bg-background shadow">
+        <User2 className="h-4 w-4" />
+      </div>
+    );
+  }
+
+  return (
+    <div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border bg-black text-white shadow">
+      <Image
+        className="rounded-md"
+        src="/llama.png"
+        alt="Llama Logo"
+        width={24}
+        height={24}
+        priority
+      />
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/chat-input.tsx b/packages/create-llama/templates/components/ui/shadcn/chat/chat-input.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..1a0cc3e0cc6d92178bafce5e8d573586e024e3f6
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/chat-input.tsx
@@ -0,0 +1,29 @@
+import { Button } from "../button";
+import { Input } from "../input";
+import { ChatHandler } from "./chat.interface";
+
+export default function ChatInput(
+  props: Pick<
+    ChatHandler,
+    "isLoading" | "handleSubmit" | "handleInputChange" | "input"
+  >,
+) {
+  return (
+    <form
+      onSubmit={props.handleSubmit}
+      className="flex w-full items-start justify-between gap-4 rounded-xl bg-white p-4 shadow-xl"
+    >
+      <Input
+        autoFocus
+        name="message"
+        placeholder="Type a message"
+        className="flex-1"
+        value={props.input}
+        onChange={props.handleInputChange}
+      />
+      <Button type="submit" disabled={props.isLoading}>
+        Send message
+      </Button>
+    </form>
+  );
+}
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/chat-message.tsx b/packages/create-llama/templates/components/ui/shadcn/chat/chat-message.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..9ada08a3d7498a204ef3403b2148007f302936bf
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/chat-message.tsx
@@ -0,0 +1,33 @@
+import { Check, Copy } from "lucide-react";
+
+import { Button } from "../button";
+import ChatAvatar from "./chat-avatar";
+import { Message } from "./chat.interface";
+import Markdown from "./markdown";
+import { useCopyToClipboard } from "./use-copy-to-clipboard";
+
+export default function ChatMessage(chatMessage: Message) {
+  const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2000 });
+  return (
+    <div className="flex items-start gap-4 pr-5 pt-5">
+      <ChatAvatar role={chatMessage.role} />
+      <div className="group flex flex-1 justify-between gap-2">
+        <div className="flex-1">
+          <Markdown content={chatMessage.content} />
+        </div>
+        <Button
+          onClick={() => copyToClipboard(chatMessage.content)}
+          size="icon"
+          variant="ghost"
+          className="h-8 w-8 opacity-0 group-hover:opacity-100"
+        >
+          {isCopied ? (
+            <Check className="h-4 w-4" />
+          ) : (
+            <Copy className="h-4 w-4" />
+          )}
+        </Button>
+      </div>
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/chat-messages.tsx b/packages/create-llama/templates/components/ui/shadcn/chat/chat-messages.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..dd0a442b6cd567094f6393bf2ccf221ee1eb178d
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/chat-messages.tsx
@@ -0,0 +1,51 @@
+import { useEffect, useRef } from "react";
+
+import ChatActions from "./chat-actions";
+import ChatMessage from "./chat-message";
+import { ChatHandler } from "./chat.interface";
+
+export default function ChatMessages(
+  props: Pick<ChatHandler, "messages" | "isLoading" | "reload" | "stop">,
+) {
+  const scrollableChatContainerRef = useRef<HTMLDivElement>(null);
+  const messageLength = props.messages.length;
+  const lastMessage = props.messages[messageLength - 1];
+
+  const scrollToBottom = () => {
+    if (scrollableChatContainerRef.current) {
+      scrollableChatContainerRef.current.scrollTop =
+        scrollableChatContainerRef.current.scrollHeight;
+    }
+  };
+
+  const isLastMessageFromAssistant =
+    messageLength > 0 && lastMessage?.role !== "user";
+  const showReload =
+    props.reload && !props.isLoading && isLastMessageFromAssistant;
+  const showStop = props.stop && props.isLoading;
+
+  useEffect(() => {
+    scrollToBottom();
+  }, [messageLength, lastMessage]);
+
+  return (
+    <div className="w-full rounded-xl bg-white p-4 shadow-xl pb-0">
+      <div
+        className="flex h-[50vh] flex-col gap-5 divide-y overflow-y-auto pb-4"
+        ref={scrollableChatContainerRef}
+      >
+        {props.messages.map((m) => (
+          <ChatMessage key={m.id} {...m} />
+        ))}
+      </div>
+      <div className="flex justify-end py-4">
+        <ChatActions
+          reload={props.reload}
+          stop={props.stop}
+          showReload={showReload}
+          showStop={showStop}
+        />
+      </div>
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/chat.interface.ts b/packages/create-llama/templates/components/ui/shadcn/chat/chat.interface.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3256f7f031b42114f192f3375632654dc21f78d8
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/chat.interface.ts
@@ -0,0 +1,15 @@
+export interface Message {
+  id: string;
+  content: string;
+  role: string;
+}
+
+export interface ChatHandler {
+  messages: Message[];
+  input: string;
+  isLoading: boolean;
+  handleSubmit: (e: React.FormEvent<HTMLFormElement>) => void;
+  handleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
+  reload?: () => void;
+  stop?: () => void;
+}
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/codeblock.tsx b/packages/create-llama/templates/components/ui/shadcn/chat/codeblock.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..014a0fc3afb58366508bf2ab5d4314b6bfc4abc7
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/codeblock.tsx
@@ -0,0 +1,139 @@
+"use client";
+
+import { Check, Copy, Download } from "lucide-react";
+import { FC, memo } from "react";
+import { Prism, SyntaxHighlighterProps } from "react-syntax-highlighter";
+import { coldarkDark } from "react-syntax-highlighter/dist/cjs/styles/prism";
+
+import { Button } from "../button";
+import { useCopyToClipboard } from "./use-copy-to-clipboard";
+
+// TODO: Remove this when @type/react-syntax-highlighter is updated
+const SyntaxHighlighter = Prism as unknown as FC<SyntaxHighlighterProps>;
+
+interface Props {
+  language: string;
+  value: string;
+}
+
+interface languageMap {
+  [key: string]: string | undefined;
+}
+
+export const programmingLanguages: languageMap = {
+  javascript: ".js",
+  python: ".py",
+  java: ".java",
+  c: ".c",
+  cpp: ".cpp",
+  "c++": ".cpp",
+  "c#": ".cs",
+  ruby: ".rb",
+  php: ".php",
+  swift: ".swift",
+  "objective-c": ".m",
+  kotlin: ".kt",
+  typescript: ".ts",
+  go: ".go",
+  perl: ".pl",
+  rust: ".rs",
+  scala: ".scala",
+  haskell: ".hs",
+  lua: ".lua",
+  shell: ".sh",
+  sql: ".sql",
+  html: ".html",
+  css: ".css",
+  // add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component
+};
+
+export const generateRandomString = (length: number, lowercase = false) => {
+  const chars = "ABCDEFGHJKLMNPQRSTUVWXY3456789"; // excluding similar looking characters like Z, 2, I, 1, O, 0
+  let result = "";
+  for (let i = 0; i < length; i++) {
+    result += chars.charAt(Math.floor(Math.random() * chars.length));
+  }
+  return lowercase ? result.toLowerCase() : result;
+};
+
+const CodeBlock: FC<Props> = memo(({ language, value }) => {
+  const { isCopied, copyToClipboard } = useCopyToClipboard({ timeout: 2000 });
+
+  const downloadAsFile = () => {
+    if (typeof window === "undefined") {
+      return;
+    }
+    const fileExtension = programmingLanguages[language] || ".file";
+    const suggestedFileName = `file-${generateRandomString(
+      3,
+      true,
+    )}${fileExtension}`;
+    const fileName = window.prompt("Enter file name" || "", suggestedFileName);
+
+    if (!fileName) {
+      // User pressed cancel on prompt.
+      return;
+    }
+
+    const blob = new Blob([value], { type: "text/plain" });
+    const url = URL.createObjectURL(blob);
+    const link = document.createElement("a");
+    link.download = fileName;
+    link.href = url;
+    link.style.display = "none";
+    document.body.appendChild(link);
+    link.click();
+    document.body.removeChild(link);
+    URL.revokeObjectURL(url);
+  };
+
+  const onCopy = () => {
+    if (isCopied) return;
+    copyToClipboard(value);
+  };
+
+  return (
+    <div className="codeblock relative w-full bg-zinc-950 font-sans">
+      <div className="flex w-full items-center justify-between bg-zinc-800 px-6 py-2 pr-4 text-zinc-100">
+        <span className="text-xs lowercase">{language}</span>
+        <div className="flex items-center space-x-1">
+          <Button variant="ghost" onClick={downloadAsFile} size="icon">
+            <Download />
+            <span className="sr-only">Download</span>
+          </Button>
+          <Button variant="ghost" size="icon" onClick={onCopy}>
+            {isCopied ? (
+              <Check className="h-4 w-4" />
+            ) : (
+              <Copy className="h-4 w-4" />
+            )}
+            <span className="sr-only">Copy code</span>
+          </Button>
+        </div>
+      </div>
+      <SyntaxHighlighter
+        language={language}
+        style={coldarkDark}
+        PreTag="div"
+        showLineNumbers
+        customStyle={{
+          width: "100%",
+          background: "transparent",
+          padding: "1.5rem 1rem",
+          borderRadius: "0.5rem",
+        }}
+        codeTagProps={{
+          style: {
+            fontSize: "0.9rem",
+            fontFamily: "var(--font-mono)",
+          },
+        }}
+      >
+        {value}
+      </SyntaxHighlighter>
+    </div>
+  );
+});
+CodeBlock.displayName = "CodeBlock";
+
+export { CodeBlock };
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/index.ts b/packages/create-llama/templates/components/ui/shadcn/chat/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c7990f9c13fff2f6cc17faf0a87c7d42f5326471
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/index.ts
@@ -0,0 +1,5 @@
+import ChatInput from "./chat-input";
+import ChatMessages from "./chat-messages";
+
+export { type ChatHandler, type Message } from "./chat.interface";
+export { ChatInput, ChatMessages };
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/markdown.tsx b/packages/create-llama/templates/components/ui/shadcn/chat/markdown.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..3ca538051d69aac03135b367c8d8a7d01d7be592
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/markdown.tsx
@@ -0,0 +1,59 @@
+import { FC, memo } from "react";
+import ReactMarkdown, { Options } from "react-markdown";
+import remarkGfm from "remark-gfm";
+import remarkMath from "remark-math";
+
+import { CodeBlock } from "./codeblock";
+
+const MemoizedReactMarkdown: FC<Options> = memo(
+  ReactMarkdown,
+  (prevProps, nextProps) =>
+    prevProps.children === nextProps.children &&
+    prevProps.className === nextProps.className,
+);
+
+export default function Markdown({ content }: { content: string }) {
+  return (
+    <MemoizedReactMarkdown
+      className="prose dark:prose-invert prose-p:leading-relaxed prose-pre:p-0 break-words"
+      remarkPlugins={[remarkGfm, remarkMath]}
+      components={{
+        p({ children }) {
+          return <p className="mb-2 last:mb-0">{children}</p>;
+        },
+        code({ node, inline, className, children, ...props }) {
+          if (children.length) {
+            if (children[0] == "▍") {
+              return (
+                <span className="mt-1 animate-pulse cursor-default">▍</span>
+              );
+            }
+
+            children[0] = (children[0] as string).replace("`▍`", "▍");
+          }
+
+          const match = /language-(\w+)/.exec(className || "");
+
+          if (inline) {
+            return (
+              <code className={className} {...props}>
+                {children}
+              </code>
+            );
+          }
+
+          return (
+            <CodeBlock
+              key={Math.random()}
+              language={(match && match[1]) || ""}
+              value={String(children).replace(/\n$/, "")}
+              {...props}
+            />
+          );
+        },
+      }}
+    >
+      {content}
+    </MemoizedReactMarkdown>
+  );
+}
diff --git a/packages/create-llama/templates/components/ui/shadcn/chat/use-copy-to-clipboard.tsx b/packages/create-llama/templates/components/ui/shadcn/chat/use-copy-to-clipboard.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..e011d69bdc2a3c0e2a2c187fa29b00f429e1c947
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/chat/use-copy-to-clipboard.tsx
@@ -0,0 +1,33 @@
+"use client";
+
+import * as React from "react";
+
+export interface useCopyToClipboardProps {
+  timeout?: number;
+}
+
+export function useCopyToClipboard({
+  timeout = 2000,
+}: useCopyToClipboardProps) {
+  const [isCopied, setIsCopied] = React.useState<Boolean>(false);
+
+  const copyToClipboard = (value: string) => {
+    if (typeof window === "undefined" || !navigator.clipboard?.writeText) {
+      return;
+    }
+
+    if (!value) {
+      return;
+    }
+
+    navigator.clipboard.writeText(value).then(() => {
+      setIsCopied(true);
+
+      setTimeout(() => {
+        setIsCopied(false);
+      }, timeout);
+    });
+  };
+
+  return { isCopied, copyToClipboard };
+}
diff --git a/packages/create-llama/templates/components/ui/shadcn/input.tsx b/packages/create-llama/templates/components/ui/shadcn/input.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..edfa129e623cca64fa706d7750e3635fecd1d628
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/input.tsx
@@ -0,0 +1,25 @@
+import * as React from "react";
+
+import { cn } from "./lib/utils";
+
+export interface InputProps
+  extends React.InputHTMLAttributes<HTMLInputElement> {}
+
+const Input = React.forwardRef<HTMLInputElement, InputProps>(
+  ({ className, type, ...props }, ref) => {
+    return (
+      <input
+        type={type}
+        className={cn(
+          "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
+          className,
+        )}
+        ref={ref}
+        {...props}
+      />
+    );
+  },
+);
+Input.displayName = "Input";
+
+export { Input };
diff --git a/packages/create-llama/templates/components/ui/shadcn/lib/utils.ts b/packages/create-llama/templates/components/ui/shadcn/lib/utils.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a5ef193506d07d0459fec4f187af08283094d7c8
--- /dev/null
+++ b/packages/create-llama/templates/components/ui/shadcn/lib/utils.ts
@@ -0,0 +1,6 @@
+import { clsx, type ClassValue } from "clsx";
+import { twMerge } from "tailwind-merge";
+
+export function cn(...inputs: ClassValue[]) {
+  return twMerge(clsx(inputs));
+}
diff --git a/packages/create-llama/templates/index.ts b/packages/create-llama/templates/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a9f0998eb2315ee1e2166904e548d14db7fb5b00
--- /dev/null
+++ b/packages/create-llama/templates/index.ts
@@ -0,0 +1,328 @@
+import { copy } from "../helpers/copy";
+import { callPackageManager } from "../helpers/install";
+
+import fs from "fs/promises";
+import os from "os";
+import path from "path";
+import { bold, cyan } from "picocolors";
+import { version } from "../../core/package.json";
+
+import { PackageManager } from "../helpers/get-pkg-manager";
+import {
+  InstallTemplateArgs,
+  TemplateEngine,
+  TemplateFramework,
+} from "./types";
+
+const envFileNameMap: Record<TemplateFramework, string> = {
+  nextjs: ".env.local",
+  express: ".env",
+  fastapi: ".env",
+};
+
+const createEnvLocalFile = async (
+  root: string,
+  framework: TemplateFramework,
+  openAIKey?: string,
+) => {
+  if (openAIKey) {
+    const envFileName = envFileNameMap[framework];
+    if (!envFileName) return;
+    await fs.writeFile(
+      path.join(root, envFileName),
+      `OPENAI_API_KEY=${openAIKey}\n`,
+    );
+    console.log(`Created '${envFileName}' file containing OPENAI_API_KEY`);
+    process.env["OPENAI_API_KEY"] = openAIKey;
+  }
+};
+
+const copyTestData = async (
+  root: string,
+  framework: TemplateFramework,
+  packageManager?: PackageManager,
+  engine?: TemplateEngine,
+) => {
+  if (engine === "context" || framework === "fastapi") {
+    const srcPath = path.join(__dirname, "components", "data");
+    const destPath = path.join(root, "data");
+    console.log(`\nCopying test data to ${cyan(destPath)}\n`);
+    await copy("**", destPath, {
+      parents: true,
+      cwd: srcPath,
+    });
+  }
+
+  if (packageManager && engine === "context") {
+    if (process.env["OPENAI_API_KEY"]) {
+      console.log(
+        `\nRunning ${cyan(
+          `${packageManager} run generate`,
+        )} to generate the context data.\n`,
+      );
+      await callPackageManager(packageManager, true, ["run", "generate"]);
+      console.log();
+    } else {
+      console.log(
+        `\nAfter setting your OpenAI key, run ${cyan(
+          `${packageManager} run generate`,
+        )} to generate the context data.\n`,
+      );
+    }
+  }
+};
+
+const rename = (name: string) => {
+  switch (name) {
+    case "gitignore":
+    case "eslintrc.json": {
+      return `.${name}`;
+    }
+    // README.md is ignored by webpack-asset-relocator-loader used by ncc:
+    // https://github.com/vercel/webpack-asset-relocator-loader/blob/e9308683d47ff507253e37c9bcbb99474603192b/src/asset-relocator.js#L227
+    case "README-template.md": {
+      return "README.md";
+    }
+    default: {
+      return name;
+    }
+  }
+};
+
+/**
+ * Install a LlamaIndex internal template to a given `root` directory.
+ */
+const installTSTemplate = async ({
+  appName,
+  root,
+  packageManager,
+  isOnline,
+  template,
+  framework,
+  engine,
+  ui,
+  eslint,
+  customApiPath,
+  forBackend,
+}: InstallTemplateArgs) => {
+  console.log(bold(`Using ${packageManager}.`));
+
+  /**
+   * Copy the template files to the target directory.
+   */
+  console.log("\nInitializing project with template:", template, "\n");
+  const templatePath = path.join(__dirname, "types", template, framework);
+  const copySource = ["**"];
+  if (!eslint) copySource.push("!eslintrc.json");
+
+  await copy(copySource, root, {
+    parents: true,
+    cwd: templatePath,
+    rename,
+  });
+
+  /**
+   * If the backend is next.js, rename next.config.app.js to next.config.js
+   * If not, rename next.config.static.js to next.config.js
+   */
+  if (framework == "nextjs" && forBackend === "nextjs") {
+    const nextConfigAppPath = path.join(root, "next.config.app.js");
+    const nextConfigPath = path.join(root, "next.config.js");
+    await fs.rename(nextConfigAppPath, nextConfigPath);
+    // delete next.config.static.js
+    const nextConfigStaticPath = path.join(root, "next.config.static.js");
+    await fs.rm(nextConfigStaticPath);
+  } else if (framework == "nextjs" && typeof forBackend === "undefined") {
+    const nextConfigStaticPath = path.join(root, "next.config.static.js");
+    const nextConfigPath = path.join(root, "next.config.js");
+    await fs.rename(nextConfigStaticPath, nextConfigPath);
+    // delete next.config.app.js
+    const nextConfigAppPath = path.join(root, "next.config.app.js");
+    await fs.rm(nextConfigAppPath);
+  }
+
+  /**
+   * Copy the selected chat engine files to the target directory and reference it.
+   */
+  let relativeEngineDestPath;
+  const compPath = path.join(__dirname, "components");
+  if (engine && (framework === "express" || framework === "nextjs")) {
+    console.log("\nUsing chat engine:", engine, "\n");
+    const enginePath = path.join(compPath, "engines", engine);
+    relativeEngineDestPath =
+      framework === "nextjs"
+        ? path.join("app", "api", "chat")
+        : path.join("src", "controllers");
+    await copy("**", path.join(root, relativeEngineDestPath, "engine"), {
+      parents: true,
+      cwd: enginePath,
+    });
+  }
+
+  /**
+   * Copy the selected UI files to the target directory and reference it.
+   */
+  if (framework === "nextjs" && ui !== "html") {
+    console.log("\nUsing UI:", ui, "\n");
+    const uiPath = path.join(compPath, "ui", ui);
+    const destUiPath = path.join(root, "app", "components", "ui");
+    // remove the default ui folder
+    await fs.rm(destUiPath, { recursive: true });
+    // copy the selected ui folder
+    await copy("**", destUiPath, {
+      parents: true,
+      cwd: uiPath,
+      rename,
+    });
+  }
+
+  /**
+   * Update the package.json scripts.
+   */
+  const packageJsonFile = path.join(root, "package.json");
+  const packageJson: any = JSON.parse(
+    await fs.readFile(packageJsonFile, "utf8"),
+  );
+  packageJson.name = appName;
+  packageJson.version = "0.1.0";
+
+  packageJson.dependencies = {
+    ...packageJson.dependencies,
+    llamaindex: version,
+  };
+
+  if (framework === "nextjs" && customApiPath) {
+    console.log(
+      "\nUsing external API with custom API path:",
+      customApiPath,
+      "\n",
+    );
+    // remove the default api folder
+    const apiPath = path.join(root, "app", "api");
+    await fs.rm(apiPath, { recursive: true });
+    // modify the dev script to use the custom api path
+    packageJson.scripts = {
+      ...packageJson.scripts,
+      dev: `NEXT_PUBLIC_CHAT_API=${customApiPath} next dev`,
+    };
+  }
+
+  if (engine === "context" && relativeEngineDestPath) {
+    // add generate script if using context engine
+    packageJson.scripts = {
+      ...packageJson.scripts,
+      generate: `node ${path.join(
+        relativeEngineDestPath,
+        "engine",
+        "generate.mjs",
+      )}`,
+    };
+  }
+
+  if (framework === "nextjs" && ui === "shadcn") {
+    // add shadcn dependencies to package.json
+    packageJson.dependencies = {
+      ...packageJson.dependencies,
+      "tailwind-merge": "^2",
+      "@radix-ui/react-slot": "^1",
+      "class-variance-authority": "^0.7",
+      "lucide-react": "^0.291",
+      remark: "^14.0.3",
+      "remark-code-import": "^1.2.0",
+      "remark-gfm": "^3.0.1",
+      "remark-math": "^5.1.1",
+      "react-markdown": "^8.0.7",
+      "react-syntax-highlighter": "^15.5.0",
+    };
+
+    packageJson.devDependencies = {
+      ...packageJson.devDependencies,
+      "@types/react-syntax-highlighter": "^15.5.6",
+    };
+  }
+
+  if (!eslint) {
+    // Remove packages starting with "eslint" from devDependencies
+    packageJson.devDependencies = Object.fromEntries(
+      Object.entries(packageJson.devDependencies).filter(
+        ([key]) => !key.startsWith("eslint"),
+      ),
+    );
+  }
+  await fs.writeFile(
+    packageJsonFile,
+    JSON.stringify(packageJson, null, 2) + os.EOL,
+  );
+
+  console.log("\nInstalling dependencies:");
+  for (const dependency in packageJson.dependencies)
+    console.log(`- ${cyan(dependency)}`);
+
+  console.log("\nInstalling devDependencies:");
+  for (const dependency in packageJson.devDependencies)
+    console.log(`- ${cyan(dependency)}`);
+
+  console.log();
+
+  await callPackageManager(packageManager, isOnline);
+};
+
+const installPythonTemplate = async ({
+  root,
+  template,
+  framework,
+}: Pick<InstallTemplateArgs, "root" | "framework" | "template">) => {
+  console.log("\nInitializing Python project with template:", template, "\n");
+  const templatePath = path.join(__dirname, "types", template, framework);
+  await copy("**", root, {
+    parents: true,
+    cwd: templatePath,
+    rename(name) {
+      switch (name) {
+        case "gitignore": {
+          return `.${name}`;
+        }
+        // README.md is ignored by webpack-asset-relocator-loader used by ncc:
+        // https://github.com/vercel/webpack-asset-relocator-loader/blob/e9308683d47ff507253e37c9bcbb99474603192b/src/asset-relocator.js#L227
+        case "README-template.md": {
+          return "README.md";
+        }
+        default: {
+          return name;
+        }
+      }
+    },
+  });
+
+  console.log(
+    "\nPython project, dependencies won't be installed automatically.\n",
+  );
+};
+
+export const installTemplate = async (
+  props: InstallTemplateArgs & { backend: boolean },
+) => {
+  process.chdir(props.root);
+  if (props.framework === "fastapi") {
+    await installPythonTemplate(props);
+  } else {
+    await installTSTemplate(props);
+  }
+
+  if (props.backend) {
+    // This is a backend, so we need to copy the test data and create the env file.
+
+    // Copy the environment file to the target directory.
+    await createEnvLocalFile(props.root, props.framework, props.openAIKey);
+
+    // Copy test pdf file
+    await copyTestData(
+      props.root,
+      props.framework,
+      props.packageManager,
+      props.engine,
+    );
+  }
+};
+
+export * from "./types";
diff --git a/packages/create-llama/templates/types.ts b/packages/create-llama/templates/types.ts
new file mode 100644
index 0000000000000000000000000000000000000000..926dddd5d97899e0886f6c2fc788906d168363e4
--- /dev/null
+++ b/packages/create-llama/templates/types.ts
@@ -0,0 +1,21 @@
+import { PackageManager } from "../helpers/get-pkg-manager";
+
+export type TemplateType = "simple" | "streaming";
+export type TemplateFramework = "nextjs" | "express" | "fastapi";
+export type TemplateEngine = "simple" | "context";
+export type TemplateUI = "html" | "shadcn";
+
+export interface InstallTemplateArgs {
+  appName: string;
+  root: string;
+  packageManager: PackageManager;
+  isOnline: boolean;
+  template: TemplateType;
+  framework: TemplateFramework;
+  engine?: TemplateEngine;
+  ui: TemplateUI;
+  eslint: boolean;
+  customApiPath?: string;
+  openAIKey?: string;
+  forBackend?: string;
+}
diff --git a/packages/create-llama/templates/types/simple/express/README-template.md b/packages/create-llama/templates/types/simple/express/README-template.md
new file mode 100644
index 0000000000000000000000000000000000000000..7ea94ab755535aefd4d5edc9f20a5908d7fedead
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/express/README-template.md
@@ -0,0 +1,50 @@
+This is a [LlamaIndex](https://www.llamaindex.ai/) project using [Express](https://expressjs.com/) bootstrapped with [`create-llama`](https://github.com/run-llama/LlamaIndexTS/tree/main/packages/create-llama).
+
+## Getting Started
+
+First, install the dependencies:
+
+```
+npm install
+```
+
+Second, run the development server:
+
+```
+npm run dev
+```
+
+Then call the express API endpoint `/api/chat` to see the result:
+
+```
+curl --location 'localhost:8000/api/chat' \
+--header 'Content-Type: application/json' \
+--data '{ "messages": [{ "role": "user", "content": "Hello" }] }'
+```
+
+You can start editing the API by modifying `src/controllers/chat.controller.ts`. The endpoint auto-updates as you save the file.
+
+## Production
+
+First, build the project:
+
+```
+npm run build
+```
+
+You can then run the production server:
+
+```
+NODE_ENV=production npm run start
+```
+
+> Note that the `NODE_ENV` environment variable is set to `production`. This disables CORS for all origins.
+
+## Learn More
+
+To learn more about LlamaIndex, take a look at the following resources:
+
+- [LlamaIndex Documentation](https://docs.llamaindex.ai) - learn about LlamaIndex (Python features).
+- [LlamaIndexTS Documentation](https://ts.llamaindex.ai) - learn about LlamaIndex (Typescript features).
+
+You can check out [the LlamaIndexTS GitHub repository](https://github.com/run-llama/LlamaIndexTS) - your feedback and contributions are welcome!
diff --git a/packages/create-llama/templates/types/simple/express/eslintrc.json b/packages/create-llama/templates/types/simple/express/eslintrc.json
new file mode 100644
index 0000000000000000000000000000000000000000..c19581799d886ce5be17def8ad268c2f4b175109
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/express/eslintrc.json
@@ -0,0 +1,3 @@
+{
+  "extends": "eslint:recommended"
+}
\ No newline at end of file
diff --git a/packages/create-llama/templates/types/simple/express/gitignore b/packages/create-llama/templates/types/simple/express/gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..15c3d3d576346a73d81d193ffc345f814cc291ca
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/express/gitignore
@@ -0,0 +1,2 @@
+# local env files
+.env
diff --git a/packages/create-llama/templates/types/simple/express/index.ts b/packages/create-llama/templates/types/simple/express/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..daf5d8b6e82599243a1becc1d8e85c0de769e9dd
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/express/index.ts
@@ -0,0 +1,38 @@
+import cors from "cors";
+import "dotenv/config";
+import express, { Express, Request, Response } from "express";
+import chatRouter from "./src/routes/chat.route";
+
+const app: Express = express();
+const port = 8000;
+
+const env = process.env["NODE_ENV"];
+const isDevelopment = !env || env === "development";
+const prodCorsOrigin = process.env["PROD_CORS_ORIGIN"];
+
+if (isDevelopment) {
+  console.warn("Running in development mode - allowing CORS for all origins");
+  app.use(cors());
+} else if (prodCorsOrigin) {
+  console.log(
+    `Running in production mode - allowing CORS for domain: ${prodCorsOrigin}`,
+  );
+  const corsOptions = {
+    origin: prodCorsOrigin, // Restrict to production domain
+  };
+  app.use(cors(corsOptions));
+} else {
+  console.warn("Production CORS origin not set, defaulting to no CORS.");
+}
+
+app.use(express.text());
+
+app.get("/", (req: Request, res: Response) => {
+  res.send("LlamaIndex Express Server");
+});
+
+app.use("/api/chat", chatRouter);
+
+app.listen(port, () => {
+  console.log(`⚡️[server]: Server is running at http://localhost:${port}`);
+});
diff --git a/packages/create-llama/templates/types/simple/express/package.json b/packages/create-llama/templates/types/simple/express/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..55902071463959a02df82ad72ae516d0e385bc78
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/express/package.json
@@ -0,0 +1,27 @@
+{
+  "name": "llama-index-express",
+  "version": "1.0.0",
+  "main": "dist/index.js",
+  "type": "module",
+  "scripts": {
+    "build": "tsup index.ts --format esm --dts",
+    "start": "node dist/index.js",
+    "dev": "concurrently \"tsup index.ts --format esm --dts --watch\" \"nodemon -q dist/index.js\""
+  },
+  "dependencies": {
+    "cors": "^2.8.5",
+    "dotenv": "^16.3.1",
+    "express": "^4",
+    "llamaindex": "0.0.31"
+  },
+  "devDependencies": {
+    "@types/cors": "^2.8.16",
+    "@types/express": "^4",
+    "@types/node": "^20",
+    "concurrently": "^8",
+    "eslint": "^8",
+    "nodemon": "^3",
+    "tsup": "^7",
+    "typescript": "^5"
+  }
+}
diff --git a/packages/create-llama/templates/types/simple/express/src/controllers/chat.controller.ts b/packages/create-llama/templates/types/simple/express/src/controllers/chat.controller.ts
new file mode 100644
index 0000000000000000000000000000000000000000..dd4532ffde1f611545a0b406899eb73c657ca11b
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/express/src/controllers/chat.controller.ts
@@ -0,0 +1,37 @@
+import { NextFunction, Request, Response } from "express";
+import { ChatMessage, OpenAI } from "llamaindex";
+import { createChatEngine } from "./engine";
+
+export const chat = async (req: Request, res: Response, next: NextFunction) => {
+  try {
+    const { messages }: { messages: ChatMessage[] } = JSON.parse(req.body);
+    const lastMessage = messages.pop();
+    if (!messages || !lastMessage || lastMessage.role !== "user") {
+      return res.status(400).json({
+        error:
+          "messages are required in the request body and the last message must be from the user",
+      });
+    }
+
+    const llm = new OpenAI({
+      model: "gpt-3.5-turbo",
+    });
+
+    const chatEngine = await createChatEngine(llm);
+
+    const response = await chatEngine.chat(lastMessage.content, messages);
+    const result: ChatMessage = {
+      role: "assistant",
+      content: response.response,
+    };
+
+    return res.status(200).json({
+      result,
+    });
+  } catch (error) {
+    console.error("[LlamaIndex]", error);
+    return res.status(500).json({
+      error: (error as Error).message,
+    });
+  }
+};
diff --git a/packages/create-llama/templates/types/simple/express/src/controllers/engine/index.ts b/packages/create-llama/templates/types/simple/express/src/controllers/engine/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..abb02e90cd2ce91096791bf10c4665afcbe11d38
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/express/src/controllers/engine/index.ts
@@ -0,0 +1,7 @@
+import { LLM, SimpleChatEngine } from "llamaindex";
+
+export async function createChatEngine(llm: LLM) {
+  return new SimpleChatEngine({
+    llm,
+  });
+}
diff --git a/packages/create-llama/templates/types/simple/express/src/routes/chat.route.ts b/packages/create-llama/templates/types/simple/express/src/routes/chat.route.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bdfeb08534b9a2c987c4d23a4bb5c6df50075908
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/express/src/routes/chat.route.ts
@@ -0,0 +1,8 @@
+import express from "express";
+import { chat } from "../controllers/chat.controller";
+
+const llmRouter = express.Router();
+
+llmRouter.route("/").post(chat);
+
+export default llmRouter;
diff --git a/packages/create-llama/templates/types/simple/express/tsconfig.json b/packages/create-llama/templates/types/simple/express/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..e886da1ef324ab02d14102f3a4a36c8f90f70eef
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/express/tsconfig.json
@@ -0,0 +1,10 @@
+{
+  "compilerOptions": {
+    "target": "es2016",
+    "esModuleInterop": true,
+    "forceConsistentCasingInFileNames": true,
+    "strict": true,
+    "skipLibCheck": true,
+    "moduleResolution": "node"
+  }
+}
\ No newline at end of file
diff --git a/packages/create-llama/templates/types/simple/fastapi/README-template.md b/packages/create-llama/templates/types/simple/fastapi/README-template.md
new file mode 100644
index 0000000000000000000000000000000000000000..f0bfa5e089a960e2327b6ccdd4548948952b36f3
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/fastapi/README-template.md
@@ -0,0 +1,50 @@
+This is a [LlamaIndex](https://www.llamaindex.ai/) project using [FastAPI](https://fastapi.tiangolo.com/) bootstrapped with [`create-llama`](https://github.com/run-llama/LlamaIndexTS/tree/main/packages/create-llama).
+
+## Getting Started
+
+First, setup the environment:
+
+```
+poetry install
+poetry shell
+```
+
+By default, we use the OpenAI LLM (though you can customize, see app/api/routers/chat.py). As a result you need to specify an `OPENAI_API_KEY` in an .env file in this directory.
+
+Example `backend/.env` file:
+
+```
+OPENAI_API_KEY=<openai_api_key>
+```
+
+Second, run the development server:
+
+```
+python main.py
+```
+
+Then call the API endpoint `/api/chat` to see the result:
+
+```
+curl --location 'localhost:8000/api/chat' \
+--header 'Content-Type: application/json' \
+--data '{ "messages": [{ "role": "user", "content": "Hello" }] }'
+```
+
+You can start editing the API by modifying `app/api/routers/chat.py`. The endpoint auto-updates as you save the file.
+
+Open [http://localhost:8000/docs](http://localhost:8000/docs) with your browser to see the Swagger UI of the API.
+
+The API allows CORS for all origins to simplify development. You can change this behavior by setting the `ENVIRONMENT` environment variable to `prod`:
+
+```
+ENVIRONMENT=prod uvicorn main:app
+```
+
+## Learn More
+
+To learn more about LlamaIndex, take a look at the following resources:
+
+- [LlamaIndex Documentation](https://docs.llamaindex.ai) - learn about LlamaIndex.
+
+You can check out [the LlamaIndex GitHub repository](https://github.com/run-llama/llama_index) - your feedback and contributions are welcome!
diff --git a/packages/create-llama/templates/types/simple/fastapi/app/__init__.py b/packages/create-llama/templates/types/simple/fastapi/app/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/simple/fastapi/app/api/__init__.py b/packages/create-llama/templates/types/simple/fastapi/app/api/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/simple/fastapi/app/api/routers/__init__.py b/packages/create-llama/templates/types/simple/fastapi/app/api/routers/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/simple/fastapi/app/api/routers/chat.py b/packages/create-llama/templates/types/simple/fastapi/app/api/routers/chat.py
new file mode 100644
index 0000000000000000000000000000000000000000..81f602edbeae66c5850b30a6183c009ab4b1e014
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/fastapi/app/api/routers/chat.py
@@ -0,0 +1,56 @@
+from typing import List
+
+from app.utils.index import get_index
+from fastapi import APIRouter, Depends, HTTPException, status
+from llama_index import VectorStoreIndex
+from llama_index.llms.base import MessageRole, ChatMessage
+from pydantic import BaseModel
+
+chat_router = r = APIRouter()
+
+
+class _Message(BaseModel):
+    role: MessageRole
+    content: str
+
+
+class _ChatData(BaseModel):
+    messages: List[_Message]
+
+
+class _Result(BaseModel):
+    result: _Message
+
+
+@r.post("")
+async def chat(
+    data: _ChatData,
+    index: VectorStoreIndex = Depends(get_index),
+) -> _Result:
+    # check preconditions and get last message
+    if len(data.messages) == 0:
+        raise HTTPException(
+            status_code=status.HTTP_400_BAD_REQUEST,
+            detail="No messages provided",
+        )
+    lastMessage = data.messages.pop()
+    if lastMessage.role != MessageRole.USER:
+        raise HTTPException(
+            status_code=status.HTTP_400_BAD_REQUEST,
+            detail="Last message must be from user",
+        )
+    # convert messages coming from the request to type ChatMessage
+    messages = [
+        ChatMessage(
+            role=m.role,
+            content=m.content,
+        )
+        for m in data.messages
+    ]
+
+    # query chat engine
+    chat_engine = index.as_chat_engine()
+    response = chat_engine.chat(lastMessage.content, messages)
+    return _Result(
+        result=_Message(role=MessageRole.ASSISTANT, content=response.response)
+    )
diff --git a/packages/create-llama/templates/types/simple/fastapi/app/utils/__init__.py b/packages/create-llama/templates/types/simple/fastapi/app/utils/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/simple/fastapi/app/utils/index.py b/packages/create-llama/templates/types/simple/fastapi/app/utils/index.py
new file mode 100644
index 0000000000000000000000000000000000000000..530935b7ec84c93bafee5e4d37265f4e4411fd65
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/fastapi/app/utils/index.py
@@ -0,0 +1,39 @@
+import logging
+import os
+
+from llama_index import (
+    SimpleDirectoryReader,
+    StorageContext,
+    VectorStoreIndex,
+    load_index_from_storage,
+    ServiceContext,
+)
+from llama_index.llms import OpenAI
+
+
+STORAGE_DIR = "./storage"  # directory to cache the generated index
+DATA_DIR = "./data"  # directory containing the documents to index
+
+service_context = ServiceContext.from_defaults(
+    llm=OpenAI(model="gpt-3.5-turbo")
+)
+
+
+def get_index():
+    logger = logging.getLogger("uvicorn")
+    # check if storage already exists
+    if not os.path.exists(STORAGE_DIR):
+        logger.info("Creating new index")
+        # load the documents and create the index
+        documents = SimpleDirectoryReader(DATA_DIR).load_data()
+        index = VectorStoreIndex.from_documents(documents,service_context=service_context)
+        # store it for later
+        index.storage_context.persist(STORAGE_DIR)
+        logger.info(f"Finished creating new index. Stored in {STORAGE_DIR}")
+    else:
+        # load the existing index
+        logger.info(f"Loading index from {STORAGE_DIR}...")
+        storage_context = StorageContext.from_defaults(persist_dir=STORAGE_DIR)
+        index = load_index_from_storage(storage_context,service_context=service_context)
+        logger.info(f"Finished loading index from {STORAGE_DIR}")
+    return index
diff --git a/packages/create-llama/templates/types/simple/fastapi/gitignore b/packages/create-llama/templates/types/simple/fastapi/gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..a6ad564cd45eee8c8bd1fdc633d733d17b4a777a
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/fastapi/gitignore
@@ -0,0 +1,3 @@
+__pycache__
+storage
+.env
diff --git a/packages/create-llama/templates/types/simple/fastapi/main.py b/packages/create-llama/templates/types/simple/fastapi/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..00cb79c44d58f4819243b8ee16c3108bef950382
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/fastapi/main.py
@@ -0,0 +1,31 @@
+from dotenv import load_dotenv
+load_dotenv()
+
+import logging
+import os
+import uvicorn
+from app.api.routers.chat import chat_router
+from fastapi import FastAPI
+from fastapi.middleware.cors import CORSMiddleware
+
+app = FastAPI()
+
+environment = os.getenv("ENVIRONMENT", "dev")  # Default to 'development' if not set
+
+
+if environment == "dev":
+    logger = logging.getLogger("uvicorn")
+    logger.warning("Running in development mode - allowing CORS for all origins")
+    app.add_middleware(
+        CORSMiddleware,
+        allow_origins=["*"],
+        allow_credentials=True,
+        allow_methods=["*"],
+        allow_headers=["*"],
+    )
+
+app.include_router(chat_router, prefix="/api/chat")
+
+
+if __name__ == "__main__":
+    uvicorn.run(app="main:app", host="0.0.0.0", reload=True)
diff --git a/packages/create-llama/templates/types/simple/fastapi/pyproject.toml b/packages/create-llama/templates/types/simple/fastapi/pyproject.toml
new file mode 100644
index 0000000000000000000000000000000000000000..59d182bbb47a8d0ee06de3550f2c7fbf954a3901
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/fastapi/pyproject.toml
@@ -0,0 +1,19 @@
+[tool.poetry]
+name = "llamaindex-fastapi"
+version = "0.1.0"
+description = ""
+authors = ["Marcus Schiesser <mail@marcusschiesser.de>"]
+readme = "README.md"
+
+[tool.poetry.dependencies]
+python = "^3.11,<3.12"
+fastapi = "^0.104.1"
+uvicorn = { extras = ["standard"], version = "^0.23.2" }
+llama-index = "^0.8.56"
+pypdf = "^3.17.0"
+python-dotenv = "^1.0.0"
+
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
diff --git a/packages/create-llama/templates/types/simple/fastapi/tests/__init__.py b/packages/create-llama/templates/types/simple/fastapi/tests/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/simple/nextjs/.env.example b/packages/create-llama/templates/types/simple/nextjs/.env.example
new file mode 100644
index 0000000000000000000000000000000000000000..7ac0a01551a65a68003c2615d510269b5d6a77f6
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/.env.example
@@ -0,0 +1,3 @@
+# Rename this file to `.env.local` to use environment variables locally with `next dev`
+# https://nextjs.org/docs/pages/building-your-application/configuring/environment-variables
+MY_HOST="example.com"
diff --git a/packages/create-llama/templates/types/simple/nextjs/README-template.md b/packages/create-llama/templates/types/simple/nextjs/README-template.md
new file mode 100644
index 0000000000000000000000000000000000000000..1509ded7c3be489d369b94d6d6a286d496f488d8
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/README-template.md
@@ -0,0 +1,30 @@
+This is a [LlamaIndex](https://www.llamaindex.ai/) project using [Next.js](https://nextjs.org/) bootstrapped with [`create-llama`](https://github.com/run-llama/LlamaIndexTS/tree/main/packages/create-llama).
+
+## Getting Started
+
+First, install the dependencies:
+
+```
+npm install
+```
+
+Second, run the development server:
+
+```
+npm run dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
+
+This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
+
+## Learn More
+
+To learn more about LlamaIndex, take a look at the following resources:
+
+- [LlamaIndex Documentation](https://docs.llamaindex.ai) - learn about LlamaIndex (Python features).
+- [LlamaIndexTS Documentation](https://ts.llamaindex.ai) - learn about LlamaIndex (Typescript features).
+
+You can check out [the LlamaIndexTS GitHub repository](https://github.com/run-llama/LlamaIndexTS) - your feedback and contributions are welcome!
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/api/chat/engine/index.ts b/packages/create-llama/templates/types/simple/nextjs/app/api/chat/engine/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..abb02e90cd2ce91096791bf10c4665afcbe11d38
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/api/chat/engine/index.ts
@@ -0,0 +1,7 @@
+import { LLM, SimpleChatEngine } from "llamaindex";
+
+export async function createChatEngine(llm: LLM) {
+  return new SimpleChatEngine({
+    llm,
+  });
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/api/chat/route.ts b/packages/create-llama/templates/types/simple/nextjs/app/api/chat/route.ts
new file mode 100644
index 0000000000000000000000000000000000000000..097341ab43922058b9d06b53c215feb16a2a7e23
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/api/chat/route.ts
@@ -0,0 +1,47 @@
+import { ChatMessage, OpenAI } from "llamaindex";
+import { NextRequest, NextResponse } from "next/server";
+import { createChatEngine } from "./engine";
+
+export const runtime = "nodejs";
+export const dynamic = "force-dynamic";
+
+export async function POST(request: NextRequest) {
+  try {
+    const body = await request.json();
+    const { messages }: { messages: ChatMessage[] } = body;
+    const lastMessage = messages.pop();
+    if (!messages || !lastMessage || lastMessage.role !== "user") {
+      return NextResponse.json(
+        {
+          error:
+            "messages are required in the request body and the last message must be from the user",
+        },
+        { status: 400 },
+      );
+    }
+
+    const llm = new OpenAI({
+      model: "gpt-3.5-turbo",
+    });
+
+    const chatEngine = await createChatEngine(llm);
+
+    const response = await chatEngine.chat(lastMessage.content, messages);
+    const result: ChatMessage = {
+      role: "assistant",
+      content: response.response,
+    };
+
+    return NextResponse.json({ result });
+  } catch (error) {
+    console.error("[LlamaIndex]", error);
+    return NextResponse.json(
+      {
+        error: (error as Error).message,
+      },
+      {
+        status: 500,
+      },
+    );
+  }
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/chat-section.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/chat-section.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..133a0a884bb82fb1ed3c78553852b8ae9b169cd5
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/components/chat-section.tsx
@@ -0,0 +1,80 @@
+"use client";
+
+import { nanoid } from "nanoid";
+import { useState } from "react";
+import { ChatInput, ChatInputProps, ChatMessages, Message } from "./ui/chat";
+
+function useChat(): ChatInputProps & { messages: Message[] } {
+  const [messages, setMessages] = useState<Message[]>([]);
+  const [isLoading, setIsLoading] = useState(false);
+  const [input, setInput] = useState("");
+
+  const getAssistantMessage = async (messages: Message[]) => {
+    const response = await fetch(
+      process.env.NEXT_PUBLIC_CHAT_API ?? "/api/chat",
+      {
+        method: "POST",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        body: JSON.stringify({
+          messages,
+        }),
+      },
+    );
+    const data = await response.json();
+    const assistantMessage = data.result as Message;
+    return assistantMessage;
+  };
+
+  const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {
+    e.preventDefault();
+    if (!input) return;
+
+    setIsLoading(true);
+
+    try {
+      const newMessages = [
+        ...messages,
+        { id: nanoid(), content: input, role: "user" },
+      ];
+      setMessages(newMessages);
+      setInput("");
+      const assistantMessage = await getAssistantMessage(newMessages);
+      setMessages([...newMessages, { ...assistantMessage, id: nanoid() }]);
+    } catch (error: any) {
+      console.log(error);
+      alert(error.message);
+    } finally {
+      setIsLoading(false);
+    }
+  };
+
+  const handleInputChange = (e: any): void => {
+    setInput(e.target.value);
+  };
+
+  return {
+    messages,
+    isLoading,
+    input,
+    handleSubmit,
+    handleInputChange,
+  };
+}
+
+export default function ChatSection() {
+  const { messages, isLoading, input, handleSubmit, handleInputChange } =
+    useChat();
+  return (
+    <div className="space-y-4 max-w-5xl w-full">
+      <ChatMessages messages={messages} />
+      <ChatInput
+        handleSubmit={handleSubmit}
+        isLoading={isLoading}
+        input={input}
+        handleInputChange={handleInputChange}
+      />
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/header.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/header.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..2b0e488f769eff6700a282c2a6a77dd8d0a4dac8
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/components/header.tsx
@@ -0,0 +1,28 @@
+import Image from "next/image";
+
+export default function Header() {
+  return (
+    <div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex">
+      <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto  lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
+        Get started by editing&nbsp;
+        <code className="font-mono font-bold">app/page.tsx</code>
+      </p>
+      <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
+        <a
+          href="https://www.llamaindex.ai/"
+          className="flex items-center justify-center font-nunito text-lg font-bold gap-2"
+        >
+          <span>Built by LlamaIndex</span>
+          <Image
+            className="rounded-xl"
+            src="/llama.png"
+            alt="Llama Logo"
+            width={40}
+            height={40}
+            priority
+          />
+        </a>
+      </div>
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-avatar.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-avatar.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..cd241104e4ef210c728aec47a1ab8b0161ad6538
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-avatar.tsx
@@ -0,0 +1,34 @@
+"use client";
+
+import Image from "next/image";
+import { Message } from "./chat-messages";
+
+export default function ChatAvatar(message: Message) {
+  if (message.role === "user") {
+    return (
+      <div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow bg-background">
+        <svg
+          xmlns="http://www.w3.org/2000/svg"
+          viewBox="0 0 256 256"
+          fill="currentColor"
+          className="h-4 w-4"
+        >
+          <path d="M230.92 212c-15.23-26.33-38.7-45.21-66.09-54.16a72 72 0 1 0-73.66 0c-27.39 8.94-50.86 27.82-66.09 54.16a8 8 0 1 0 13.85 8c18.84-32.56 52.14-52 89.07-52s70.23 19.44 89.07 52a8 8 0 1 0 13.85-8ZM72 96a56 56 0 1 1 56 56 56.06 56.06 0 0 1-56-56Z"></path>
+        </svg>
+      </div>
+    );
+  }
+
+  return (
+    <div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border  bg-black text-white">
+      <Image
+        className="rounded-md"
+        src="/llama.png"
+        alt="Llama Logo"
+        width={24}
+        height={24}
+        priority
+      />
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-input.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-input.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..3eb979b02735943f3f11290c78b84f0e37709438
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-input.tsx
@@ -0,0 +1,42 @@
+"use client";
+
+export interface ChatInputProps {
+  /** The current value of the input */
+  input?: string;
+  /** An input/textarea-ready onChange handler to control the value of the input */
+  handleInputChange?: (
+    e:
+      | React.ChangeEvent<HTMLInputElement>
+      | React.ChangeEvent<HTMLTextAreaElement>,
+  ) => void;
+  /** Form submission handler to automatically reset input and append a user message  */
+  handleSubmit: (e: React.FormEvent<HTMLFormElement>) => void;
+  isLoading: boolean;
+}
+
+export default function ChatInput(props: ChatInputProps) {
+  return (
+    <>
+      <form
+        onSubmit={props.handleSubmit}
+        className="flex items-start justify-between w-full max-w-5xl p-4 bg-white rounded-xl shadow-xl gap-4"
+      >
+        <input
+          autoFocus
+          name="message"
+          placeholder="Type a message"
+          className="w-full p-4 rounded-xl shadow-inner flex-1"
+          value={props.input}
+          onChange={props.handleInputChange}
+        />
+        <button
+          disabled={props.isLoading}
+          type="submit"
+          className="p-4 text-white rounded-xl shadow-xl bg-gradient-to-r from-cyan-500 to-sky-500 disabled:opacity-50 disabled:cursor-not-allowed"
+        >
+          Send message
+        </button>
+      </form>
+    </>
+  );
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-item.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-item.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..2244f729a8ba668121ab5ec0842963d22153ef92
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-item.tsx
@@ -0,0 +1,13 @@
+"use client";
+
+import ChatAvatar from "./chat-avatar";
+import { Message } from "./chat-messages";
+
+export default function ChatItem(message: Message) {
+  return (
+    <div className="flex items-start gap-4 pt-5">
+      <ChatAvatar {...message} />
+      <p className="break-words">{message.content}</p>
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-messages.tsx b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-messages.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..65eacabbfb1b7bc99950b43e7fd07ba56b3ecdb0
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/chat-messages.tsx
@@ -0,0 +1,38 @@
+"use client";
+
+import { useEffect, useRef } from "react";
+import ChatItem from "./chat-item";
+
+export interface Message {
+  id: string;
+  content: string;
+  role: string;
+}
+
+export default function ChatMessages({ messages }: { messages: Message[] }) {
+  const scrollableChatContainerRef = useRef<HTMLDivElement>(null);
+
+  const scrollToBottom = () => {
+    if (scrollableChatContainerRef.current) {
+      scrollableChatContainerRef.current.scrollTop =
+        scrollableChatContainerRef.current.scrollHeight;
+    }
+  };
+
+  useEffect(() => {
+    scrollToBottom();
+  }, [messages.length]);
+
+  return (
+    <div className="w-full max-w-5xl p-4 bg-white rounded-xl shadow-xl">
+      <div
+        className="flex flex-col gap-5 divide-y h-[50vh] overflow-auto"
+        ref={scrollableChatContainerRef}
+      >
+        {messages.map((m: Message) => (
+          <ChatItem key={m.id} {...m} />
+        ))}
+      </div>
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/index.ts b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5de7dce47fc1e2330759171db291eedbca19e722
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/components/ui/chat/index.ts
@@ -0,0 +1,6 @@
+import ChatInput from "./chat-input";
+import ChatMessages from "./chat-messages";
+
+export type { ChatInputProps } from "./chat-input";
+export type { Message } from "./chat-messages";
+export { ChatInput, ChatMessages };
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/favicon.ico b/packages/create-llama/templates/types/simple/nextjs/app/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a1eaef62f2dfa895f1bbffc6595bb53d9604963e
Binary files /dev/null and b/packages/create-llama/templates/types/simple/nextjs/app/favicon.ico differ
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/globals.css b/packages/create-llama/templates/types/simple/nextjs/app/globals.css
new file mode 100644
index 0000000000000000000000000000000000000000..09b85ed2c912e25518ddebbfebaba69090f889f4
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/globals.css
@@ -0,0 +1,94 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+  :root {
+    --background: 0 0% 100%;
+    --foreground: 222.2 47.4% 11.2%;
+
+    --muted: 210 40% 96.1%;
+    --muted-foreground: 215.4 16.3% 46.9%;
+
+    --popover: 0 0% 100%;
+    --popover-foreground: 222.2 47.4% 11.2%;
+
+    --border: 214.3 31.8% 91.4%;
+    --input: 214.3 31.8% 91.4%;
+
+    --card: 0 0% 100%;
+    --card-foreground: 222.2 47.4% 11.2%;
+
+    --primary: 222.2 47.4% 11.2%;
+    --primary-foreground: 210 40% 98%;
+
+    --secondary: 210 40% 96.1%;
+    --secondary-foreground: 222.2 47.4% 11.2%;
+
+    --accent: 210 40% 96.1%;
+    --accent-foreground: 222.2 47.4% 11.2%;
+
+    --destructive: 0 100% 50%;
+    --destructive-foreground: 210 40% 98%;
+
+    --ring: 215 20.2% 65.1%;
+
+    --radius: 0.5rem;
+  }
+
+  .dark {
+    --background: 224 71% 4%;
+    --foreground: 213 31% 91%;
+
+    --muted: 223 47% 11%;
+    --muted-foreground: 215.4 16.3% 56.9%;
+
+    --accent: 216 34% 17%;
+    --accent-foreground: 210 40% 98%;
+
+    --popover: 224 71% 4%;
+    --popover-foreground: 215 20.2% 65.1%;
+
+    --border: 216 34% 17%;
+    --input: 216 34% 17%;
+
+    --card: 224 71% 4%;
+    --card-foreground: 213 31% 91%;
+
+    --primary: 210 40% 98%;
+    --primary-foreground: 222.2 47.4% 1.2%;
+
+    --secondary: 222.2 47.4% 11.2%;
+    --secondary-foreground: 210 40% 98%;
+
+    --destructive: 0 63% 31%;
+    --destructive-foreground: 210 40% 98%;
+
+    --ring: 216 34% 17%;
+
+    --radius: 0.5rem;
+  }
+}
+
+@layer base {
+  * {
+    @apply border-border;
+  }
+  body {
+    @apply bg-background text-foreground;
+    font-feature-settings:
+      "rlig" 1,
+      "calt" 1;
+  }
+  .background-gradient {
+    background-color: #fff;
+    background-image: radial-gradient(
+        at 21% 11%,
+        rgba(186, 186, 233, 0.53) 0,
+        transparent 50%
+      ),
+      radial-gradient(at 85% 0, hsla(46, 57%, 78%, 0.52) 0, transparent 50%),
+      radial-gradient(at 91% 36%, rgba(194, 213, 255, 0.68) 0, transparent 50%),
+      radial-gradient(at 8% 40%, rgba(251, 218, 239, 0.46) 0, transparent 50%);
+  }
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/layout.tsx b/packages/create-llama/templates/types/simple/nextjs/app/layout.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..fb097706274bdfe4690e4953bba24d7acea0a021
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/layout.tsx
@@ -0,0 +1,22 @@
+import type { Metadata } from "next";
+import { Inter } from "next/font/google";
+import "./globals.css";
+
+const inter = Inter({ subsets: ["latin"] });
+
+export const metadata: Metadata = {
+  title: "Create Llama App",
+  description: "Generated by create-llama",
+};
+
+export default function RootLayout({
+  children,
+}: {
+  children: React.ReactNode;
+}) {
+  return (
+    <html lang="en">
+      <body className={inter.className}>{children}</body>
+    </html>
+  );
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/app/page.tsx b/packages/create-llama/templates/types/simple/nextjs/app/page.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..31f51facb248687cf7e7c6b34493778634a8c59c
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/app/page.tsx
@@ -0,0 +1,11 @@
+import ChatSection from "@/app/components/chat-section";
+import Header from "@/app/components/header";
+
+export default function Home() {
+  return (
+    <main className="flex min-h-screen flex-col items-center gap-10 p-24 background-gradient">
+      <Header />
+      <ChatSection />
+    </main>
+  );
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/eslintrc.json b/packages/create-llama/templates/types/simple/nextjs/eslintrc.json
new file mode 100644
index 0000000000000000000000000000000000000000..bffb357a7122523ec94045523758c4b825b448ef
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/eslintrc.json
@@ -0,0 +1,3 @@
+{
+  "extends": "next/core-web-vitals"
+}
diff --git a/packages/create-llama/templates/types/simple/nextjs/gitignore b/packages/create-llama/templates/types/simple/nextjs/gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..8f322f0d8f49570a594b865ef8916c428a01afc1
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/gitignore
@@ -0,0 +1,35 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/packages/create-llama/templates/types/simple/nextjs/next-env.d.ts b/packages/create-llama/templates/types/simple/nextjs/next-env.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4f11a03dc6cc37f2b5105c08f2e7b24c603ab2f4
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/next-env.d.ts
@@ -0,0 +1,5 @@
+/// <reference types="next" />
+/// <reference types="next/image-types/global" />
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/packages/create-llama/templates/types/simple/nextjs/next.config.app.js b/packages/create-llama/templates/types/simple/nextjs/next.config.app.js
new file mode 100644
index 0000000000000000000000000000000000000000..74655207e206e9efa7215e79ea163e8ae2052361
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/next.config.app.js
@@ -0,0 +1,11 @@
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+  experimental: {
+    serverComponentsExternalPackages: ["llamaindex"],
+    outputFileTracingIncludes: {
+      "/*": ["./cache/**/*"],
+    },
+  },
+};
+
+module.exports = nextConfig;
diff --git a/packages/create-llama/templates/types/simple/nextjs/next.config.static.js b/packages/create-llama/templates/types/simple/nextjs/next.config.static.js
new file mode 100644
index 0000000000000000000000000000000000000000..166b3e67d75ddc6d594b1c3d0960cc51f54b13b9
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/next.config.static.js
@@ -0,0 +1,13 @@
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+  output: "export",
+  images: { unoptimized: true },
+  experimental: {
+    serverComponentsExternalPackages: ["llamaindex"],
+    outputFileTracingIncludes: {
+      "/*": ["./cache/**/*"],
+    },
+  },
+};
+
+module.exports = nextConfig;
diff --git a/packages/create-llama/templates/types/simple/nextjs/package.json b/packages/create-llama/templates/types/simple/nextjs/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..990b41c832c69b81883c88b2d078c55bef15b42c
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/package.json
@@ -0,0 +1,28 @@
+{
+  "name": "llama-index-nextjs",
+  "version": "1.0.0",
+  "scripts": {
+    "dev": "next dev",
+    "build": "next build",
+    "start": "next start",
+    "lint": "next lint"
+  },
+  "dependencies": {
+    "llamaindex": "0.0.31",
+    "nanoid": "^5",
+    "next": "^13",
+    "react": "^18",
+    "react-dom": "^18"
+  },
+  "devDependencies": {
+    "@types/node": "^20",
+    "@types/react": "^18",
+    "@types/react-dom": "^18",
+    "autoprefixer": "^10",
+    "eslint": "^8",
+    "eslint-config-next": "^13",
+    "postcss": "^8",
+    "tailwindcss": "^3",
+    "typescript": "^5"
+  }
+}
\ No newline at end of file
diff --git a/packages/create-llama/templates/types/simple/nextjs/postcss.config.js b/packages/create-llama/templates/types/simple/nextjs/postcss.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..12a703d900da8159c30e75acbd2c4d87ae177f62
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+  plugins: {
+    tailwindcss: {},
+    autoprefixer: {},
+  },
+};
diff --git a/packages/create-llama/templates/types/simple/nextjs/public/llama.png b/packages/create-llama/templates/types/simple/nextjs/public/llama.png
new file mode 100644
index 0000000000000000000000000000000000000000..d4efba3b816bf765439c6d01b322b02684e946c3
Binary files /dev/null and b/packages/create-llama/templates/types/simple/nextjs/public/llama.png differ
diff --git a/packages/create-llama/templates/types/simple/nextjs/tailwind.config.ts b/packages/create-llama/templates/types/simple/nextjs/tailwind.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..aa5580affac868255fedb5a8ddc0dde7a105c454
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/tailwind.config.ts
@@ -0,0 +1,78 @@
+import type { Config } from "tailwindcss";
+import { fontFamily } from "tailwindcss/defaultTheme";
+
+const config: Config = {
+  darkMode: ["class"],
+  content: ["app/**/*.{ts,tsx}", "components/**/*.{ts,tsx}"],
+  theme: {
+    container: {
+      center: true,
+      padding: "2rem",
+      screens: {
+        "2xl": "1400px",
+      },
+    },
+    extend: {
+      colors: {
+        border: "hsl(var(--border))",
+        input: "hsl(var(--input))",
+        ring: "hsl(var(--ring))",
+        background: "hsl(var(--background))",
+        foreground: "hsl(var(--foreground))",
+        primary: {
+          DEFAULT: "hsl(var(--primary))",
+          foreground: "hsl(var(--primary-foreground))",
+        },
+        secondary: {
+          DEFAULT: "hsl(var(--secondary))",
+          foreground: "hsl(var(--secondary-foreground))",
+        },
+        destructive: {
+          DEFAULT: "hsl(var(--destructive) / <alpha-value>)",
+          foreground: "hsl(var(--destructive-foreground) / <alpha-value>)",
+        },
+        muted: {
+          DEFAULT: "hsl(var(--muted))",
+          foreground: "hsl(var(--muted-foreground))",
+        },
+        accent: {
+          DEFAULT: "hsl(var(--accent))",
+          foreground: "hsl(var(--accent-foreground))",
+        },
+        popover: {
+          DEFAULT: "hsl(var(--popover))",
+          foreground: "hsl(var(--popover-foreground))",
+        },
+        card: {
+          DEFAULT: "hsl(var(--card))",
+          foreground: "hsl(var(--card-foreground))",
+        },
+      },
+      borderRadius: {
+        xl: `calc(var(--radius) + 4px)`,
+        lg: `var(--radius)`,
+        md: `calc(var(--radius) - 2px)`,
+        sm: "calc(var(--radius) - 4px)",
+      },
+      fontFamily: {
+        sans: ["var(--font-sans)", ...fontFamily.sans],
+      },
+      keyframes: {
+        "accordion-down": {
+          from: { height: "0" },
+          to: { height: "var(--radix-accordion-content-height)" },
+        },
+        "accordion-up": {
+          from: { height: "var(--radix-accordion-content-height)" },
+          to: { height: "0" },
+        },
+      },
+      animation: {
+        "accordion-down": "accordion-down 0.2s ease-out",
+        "accordion-up": "accordion-up 0.2s ease-out",
+      },
+    },
+  },
+  plugins: [],
+};
+export default config;
diff --git a/packages/create-llama/templates/types/simple/nextjs/tsconfig.json b/packages/create-llama/templates/types/simple/nextjs/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..c7146963787144d4861e149d8d233049b7daefc7
--- /dev/null
+++ b/packages/create-llama/templates/types/simple/nextjs/tsconfig.json
@@ -0,0 +1,27 @@
+{
+  "compilerOptions": {
+    "target": "es5",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "noEmit": true,
+    "esModuleInterop": true,
+    "module": "esnext",
+    "moduleResolution": "bundler",
+    "resolveJsonModule": true,
+    "isolatedModules": true,
+    "jsx": "preserve",
+    "incremental": true,
+    "plugins": [
+      {
+        "name": "next"
+      }
+    ],
+    "paths": {
+      "@/*": ["./*"]
+    }
+  },
+  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+  "exclude": ["node_modules"]
+}
diff --git a/packages/create-llama/templates/types/streaming/express/README-template.md b/packages/create-llama/templates/types/streaming/express/README-template.md
new file mode 100644
index 0000000000000000000000000000000000000000..7ea94ab755535aefd4d5edc9f20a5908d7fedead
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/README-template.md
@@ -0,0 +1,50 @@
+This is a [LlamaIndex](https://www.llamaindex.ai/) project using [Express](https://expressjs.com/) bootstrapped with [`create-llama`](https://github.com/run-llama/LlamaIndexTS/tree/main/packages/create-llama).
+
+## Getting Started
+
+First, install the dependencies:
+
+```
+npm install
+```
+
+Second, run the development server:
+
+```
+npm run dev
+```
+
+Then call the express API endpoint `/api/chat` to see the result:
+
+```
+curl --location 'localhost:8000/api/chat' \
+--header 'Content-Type: application/json' \
+--data '{ "messages": [{ "role": "user", "content": "Hello" }] }'
+```
+
+You can start editing the API by modifying `src/controllers/chat.controller.ts`. The endpoint auto-updates as you save the file.
+
+## Production
+
+First, build the project:
+
+```
+npm run build
+```
+
+You can then run the production server:
+
+```
+NODE_ENV=production npm run start
+```
+
+> Note that the `NODE_ENV` environment variable is set to `production`. This disables CORS for all origins.
+
+## Learn More
+
+To learn more about LlamaIndex, take a look at the following resources:
+
+- [LlamaIndex Documentation](https://docs.llamaindex.ai) - learn about LlamaIndex (Python features).
+- [LlamaIndexTS Documentation](https://ts.llamaindex.ai) - learn about LlamaIndex (Typescript features).
+
+You can check out [the LlamaIndexTS GitHub repository](https://github.com/run-llama/LlamaIndexTS) - your feedback and contributions are welcome!
diff --git a/packages/create-llama/templates/types/streaming/express/eslintrc.json b/packages/create-llama/templates/types/streaming/express/eslintrc.json
new file mode 100644
index 0000000000000000000000000000000000000000..c19581799d886ce5be17def8ad268c2f4b175109
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/eslintrc.json
@@ -0,0 +1,3 @@
+{
+  "extends": "eslint:recommended"
+}
\ No newline at end of file
diff --git a/packages/create-llama/templates/types/streaming/express/gitignore b/packages/create-llama/templates/types/streaming/express/gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..15c3d3d576346a73d81d193ffc345f814cc291ca
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/gitignore
@@ -0,0 +1,2 @@
+# local env files
+.env
diff --git a/packages/create-llama/templates/types/streaming/express/index.ts b/packages/create-llama/templates/types/streaming/express/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..daf5d8b6e82599243a1becc1d8e85c0de769e9dd
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/index.ts
@@ -0,0 +1,38 @@
+import cors from "cors";
+import "dotenv/config";
+import express, { Express, Request, Response } from "express";
+import chatRouter from "./src/routes/chat.route";
+
+const app: Express = express();
+const port = 8000;
+
+const env = process.env["NODE_ENV"];
+const isDevelopment = !env || env === "development";
+const prodCorsOrigin = process.env["PROD_CORS_ORIGIN"];
+
+if (isDevelopment) {
+  console.warn("Running in development mode - allowing CORS for all origins");
+  app.use(cors());
+} else if (prodCorsOrigin) {
+  console.log(
+    `Running in production mode - allowing CORS for domain: ${prodCorsOrigin}`,
+  );
+  const corsOptions = {
+    origin: prodCorsOrigin, // Restrict to production domain
+  };
+  app.use(cors(corsOptions));
+} else {
+  console.warn("Production CORS origin not set, defaulting to no CORS.");
+}
+
+app.use(express.text());
+
+app.get("/", (req: Request, res: Response) => {
+  res.send("LlamaIndex Express Server");
+});
+
+app.use("/api/chat", chatRouter);
+
+app.listen(port, () => {
+  console.log(`⚡️[server]: Server is running at http://localhost:${port}`);
+});
diff --git a/packages/create-llama/templates/types/streaming/express/package.json b/packages/create-llama/templates/types/streaming/express/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..72f127b407a8c7ce675bf4d634a42f57af78bb4c
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/package.json
@@ -0,0 +1,28 @@
+{
+  "name": "llama-index-express-streaming",
+  "version": "1.0.0",
+  "main": "dist/index.js",
+  "type": "module",
+  "scripts": {
+    "build": "tsup index.ts --format esm --dts",
+    "start": "node dist/index.js",
+    "dev": "concurrently \"tsup index.ts --format esm --dts --watch\" \"nodemon -q dist/index.js\""
+  },
+  "dependencies": {
+    "ai": "^2",
+    "cors": "^2.8.5",
+    "dotenv": "^16.3.1",
+    "express": "^4",
+    "llamaindex": "0.0.31"
+  },
+  "devDependencies": {
+    "@types/cors": "^2.8.16",
+    "@types/express": "^4",
+    "@types/node": "^20",
+    "concurrently": "^8",
+    "eslint": "^8",
+    "nodemon": "^3",
+    "tsup": "^7",
+    "typescript": "^5"
+  }
+}
diff --git a/packages/create-llama/templates/types/streaming/express/src/controllers/chat.controller.ts b/packages/create-llama/templates/types/streaming/express/src/controllers/chat.controller.ts
new file mode 100644
index 0000000000000000000000000000000000000000..efa05479614fcb36de52e90fa47a0026b73db468
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/src/controllers/chat.controller.ts
@@ -0,0 +1,36 @@
+import { streamToResponse } from "ai";
+import { NextFunction, Request, Response } from "express";
+import { ChatMessage, OpenAI } from "llamaindex";
+import { createChatEngine } from "./engine";
+import { LlamaIndexStream } from "./llamaindex-stream";
+
+export const chat = async (req: Request, res: Response, next: NextFunction) => {
+  try {
+    const { messages }: { messages: ChatMessage[] } = JSON.parse(req.body);
+    const lastMessage = messages.pop();
+    if (!messages || !lastMessage || lastMessage.role !== "user") {
+      return res.status(400).json({
+        error:
+          "messages are required in the request body and the last message must be from the user",
+      });
+    }
+
+    const llm = new OpenAI({
+      model: "gpt-3.5-turbo",
+    });
+
+    const chatEngine = await createChatEngine(llm);
+
+    const response = await chatEngine.chat(lastMessage.content, messages, true);
+
+    // Transform the response into a readable stream
+    const stream = LlamaIndexStream(response);
+
+    streamToResponse(stream, res);
+  } catch (error) {
+    console.error("[LlamaIndex]", error);
+    return res.status(500).json({
+      error: (error as Error).message,
+    });
+  }
+};
diff --git a/packages/create-llama/templates/types/streaming/express/src/controllers/engine/index.ts b/packages/create-llama/templates/types/streaming/express/src/controllers/engine/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..abb02e90cd2ce91096791bf10c4665afcbe11d38
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/src/controllers/engine/index.ts
@@ -0,0 +1,7 @@
+import { LLM, SimpleChatEngine } from "llamaindex";
+
+export async function createChatEngine(llm: LLM) {
+  return new SimpleChatEngine({
+    llm,
+  });
+}
diff --git a/packages/create-llama/templates/types/streaming/express/src/controllers/llamaindex-stream.ts b/packages/create-llama/templates/types/streaming/express/src/controllers/llamaindex-stream.ts
new file mode 100644
index 0000000000000000000000000000000000000000..12328de875d8a59a5501db7fbf2aa0d763a3dbaa
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/src/controllers/llamaindex-stream.ts
@@ -0,0 +1,35 @@
+import {
+  createCallbacksTransformer,
+  createStreamDataTransformer,
+  trimStartOfStreamHelper,
+  type AIStreamCallbacksAndOptions,
+} from "ai";
+
+function createParser(res: AsyncGenerator<any>) {
+  const trimStartOfStream = trimStartOfStreamHelper();
+  return new ReadableStream<string>({
+    async pull(controller): Promise<void> {
+      const { value, done } = await res.next();
+      if (done) {
+        controller.close();
+        return;
+      }
+
+      const text = trimStartOfStream(value ?? "");
+      if (text) {
+        controller.enqueue(text);
+      }
+    },
+  });
+}
+
+export function LlamaIndexStream(
+  res: AsyncGenerator<any>,
+  callbacks?: AIStreamCallbacksAndOptions,
+): ReadableStream {
+  return createParser(res)
+    .pipeThrough(createCallbacksTransformer(callbacks))
+    .pipeThrough(
+      createStreamDataTransformer(callbacks?.experimental_streamData),
+    );
+}
diff --git a/packages/create-llama/templates/types/streaming/express/src/routes/chat.route.ts b/packages/create-llama/templates/types/streaming/express/src/routes/chat.route.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bdfeb08534b9a2c987c4d23a4bb5c6df50075908
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/src/routes/chat.route.ts
@@ -0,0 +1,8 @@
+import express from "express";
+import { chat } from "../controllers/chat.controller";
+
+const llmRouter = express.Router();
+
+llmRouter.route("/").post(chat);
+
+export default llmRouter;
diff --git a/packages/create-llama/templates/types/streaming/express/tsconfig.json b/packages/create-llama/templates/types/streaming/express/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..e886da1ef324ab02d14102f3a4a36c8f90f70eef
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/express/tsconfig.json
@@ -0,0 +1,10 @@
+{
+  "compilerOptions": {
+    "target": "es2016",
+    "esModuleInterop": true,
+    "forceConsistentCasingInFileNames": true,
+    "strict": true,
+    "skipLibCheck": true,
+    "moduleResolution": "node"
+  }
+}
\ No newline at end of file
diff --git a/packages/create-llama/templates/types/streaming/fastapi/README-template.md b/packages/create-llama/templates/types/streaming/fastapi/README-template.md
new file mode 100644
index 0000000000000000000000000000000000000000..f0bfa5e089a960e2327b6ccdd4548948952b36f3
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/fastapi/README-template.md
@@ -0,0 +1,50 @@
+This is a [LlamaIndex](https://www.llamaindex.ai/) project using [FastAPI](https://fastapi.tiangolo.com/) bootstrapped with [`create-llama`](https://github.com/run-llama/LlamaIndexTS/tree/main/packages/create-llama).
+
+## Getting Started
+
+First, setup the environment:
+
+```
+poetry install
+poetry shell
+```
+
+By default, we use the OpenAI LLM (though you can customize, see app/api/routers/chat.py). As a result you need to specify an `OPENAI_API_KEY` in an .env file in this directory.
+
+Example `backend/.env` file:
+
+```
+OPENAI_API_KEY=<openai_api_key>
+```
+
+Second, run the development server:
+
+```
+python main.py
+```
+
+Then call the API endpoint `/api/chat` to see the result:
+
+```
+curl --location 'localhost:8000/api/chat' \
+--header 'Content-Type: application/json' \
+--data '{ "messages": [{ "role": "user", "content": "Hello" }] }'
+```
+
+You can start editing the API by modifying `app/api/routers/chat.py`. The endpoint auto-updates as you save the file.
+
+Open [http://localhost:8000/docs](http://localhost:8000/docs) with your browser to see the Swagger UI of the API.
+
+The API allows CORS for all origins to simplify development. You can change this behavior by setting the `ENVIRONMENT` environment variable to `prod`:
+
+```
+ENVIRONMENT=prod uvicorn main:app
+```
+
+## Learn More
+
+To learn more about LlamaIndex, take a look at the following resources:
+
+- [LlamaIndex Documentation](https://docs.llamaindex.ai) - learn about LlamaIndex.
+
+You can check out [the LlamaIndex GitHub repository](https://github.com/run-llama/llama_index) - your feedback and contributions are welcome!
diff --git a/packages/create-llama/templates/types/streaming/fastapi/app/__init__.py b/packages/create-llama/templates/types/streaming/fastapi/app/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/streaming/fastapi/app/api/__init__.py b/packages/create-llama/templates/types/streaming/fastapi/app/api/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/streaming/fastapi/app/api/routers/__init__.py b/packages/create-llama/templates/types/streaming/fastapi/app/api/routers/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/streaming/fastapi/app/api/routers/chat.py b/packages/create-llama/templates/types/streaming/fastapi/app/api/routers/chat.py
new file mode 100644
index 0000000000000000000000000000000000000000..36b618e232a33fc882b3d4b42b885c29c64edd4e
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/fastapi/app/api/routers/chat.py
@@ -0,0 +1,65 @@
+from typing import List
+
+from fastapi.responses import StreamingResponse
+
+from app.utils.json import json_to_model
+from app.utils.index import get_index
+from fastapi import APIRouter, Depends, HTTPException, Request, status
+from llama_index import VectorStoreIndex
+from llama_index.llms.base import MessageRole, ChatMessage
+from pydantic import BaseModel
+
+chat_router = r = APIRouter()
+
+
+class _Message(BaseModel):
+    role: MessageRole
+    content: str
+
+
+class _ChatData(BaseModel):
+    messages: List[_Message]
+
+
+@r.post("")
+async def chat(
+    request: Request,
+    # Note: To support clients sending a JSON object using content-type "text/plain",
+    # we need to use Depends(json_to_model(_ChatData)) here
+    data: _ChatData = Depends(json_to_model(_ChatData)),
+    index: VectorStoreIndex = Depends(get_index),
+):
+    # check preconditions and get last message
+    if len(data.messages) == 0:
+        raise HTTPException(
+            status_code=status.HTTP_400_BAD_REQUEST,
+            detail="No messages provided",
+        )
+    lastMessage = data.messages.pop()
+    if lastMessage.role != MessageRole.USER:
+        raise HTTPException(
+            status_code=status.HTTP_400_BAD_REQUEST,
+            detail="Last message must be from user",
+        )
+    # convert messages coming from the request to type ChatMessage
+    messages = [
+        ChatMessage(
+            role=m.role,
+            content=m.content,
+        )
+        for m in data.messages
+    ]
+
+    # query chat engine
+    chat_engine = index.as_chat_engine()
+    response = chat_engine.stream_chat(lastMessage.content, messages)
+
+    # stream response
+    async def event_generator():
+        for token in response.response_gen:
+            # If client closes connection, stop sending events
+            if await request.is_disconnected():
+                break
+            yield token
+
+    return StreamingResponse(event_generator(), media_type="text/plain")
diff --git a/packages/create-llama/templates/types/streaming/fastapi/app/utils/__init__.py b/packages/create-llama/templates/types/streaming/fastapi/app/utils/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/streaming/fastapi/app/utils/index.py b/packages/create-llama/templates/types/streaming/fastapi/app/utils/index.py
new file mode 100644
index 0000000000000000000000000000000000000000..cb16cdba37897fc203bdd0358c5f088628375a3f
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/fastapi/app/utils/index.py
@@ -0,0 +1,38 @@
+import logging
+import os
+
+from llama_index import (
+    SimpleDirectoryReader,
+    StorageContext,
+    VectorStoreIndex,
+    load_index_from_storage,
+    ServiceContext,
+)
+from llama_index.llms import OpenAI
+
+
+STORAGE_DIR = "./storage"  # directory to cache the generated index
+DATA_DIR = "./data"  # directory containing the documents to index
+
+service_context = ServiceContext.from_defaults(
+    llm=OpenAI(model="gpt-3.5-turbo")
+)
+
+def get_index():
+    logger = logging.getLogger("uvicorn")
+    # check if storage already exists
+    if not os.path.exists(STORAGE_DIR):
+        logger.info("Creating new index")
+        # load the documents and create the index
+        documents = SimpleDirectoryReader(DATA_DIR).load_data()
+        index = VectorStoreIndex.from_documents(documents,service_context=service_context)
+        # store it for later
+        index.storage_context.persist(STORAGE_DIR)
+        logger.info(f"Finished creating new index. Stored in {STORAGE_DIR}")
+    else:
+        # load the existing index
+        logger.info(f"Loading index from {STORAGE_DIR}...")
+        storage_context = StorageContext.from_defaults(persist_dir=STORAGE_DIR)
+        index = load_index_from_storage(storage_context,service_context=service_context)
+        logger.info(f"Finished loading index from {STORAGE_DIR}")
+    return index
diff --git a/packages/create-llama/templates/types/streaming/fastapi/app/utils/json.py b/packages/create-llama/templates/types/streaming/fastapi/app/utils/json.py
new file mode 100644
index 0000000000000000000000000000000000000000..d9a847f53e107f665389f11ec005795e0fb8c5b3
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/fastapi/app/utils/json.py
@@ -0,0 +1,22 @@
+import json
+from typing import TypeVar
+from fastapi import HTTPException, Request
+
+from pydantic import BaseModel, ValidationError
+
+
+T = TypeVar("T", bound=BaseModel)
+
+
+def json_to_model(cls: T):
+    async def get_json(request: Request) -> T:
+        body = await request.body()
+        try:
+            data_dict = json.loads(body.decode("utf-8"))
+            return cls(**data_dict)
+        except (json.JSONDecodeError, ValidationError) as e:
+            raise HTTPException(
+                status_code=400, detail=f"Could not decode JSON: {str(e)}"
+            )
+
+    return get_json
diff --git a/packages/create-llama/templates/types/streaming/fastapi/gitignore b/packages/create-llama/templates/types/streaming/fastapi/gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..a6ad564cd45eee8c8bd1fdc633d733d17b4a777a
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/fastapi/gitignore
@@ -0,0 +1,3 @@
+__pycache__
+storage
+.env
diff --git a/packages/create-llama/templates/types/streaming/fastapi/main.py b/packages/create-llama/templates/types/streaming/fastapi/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..00cb79c44d58f4819243b8ee16c3108bef950382
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/fastapi/main.py
@@ -0,0 +1,31 @@
+from dotenv import load_dotenv
+load_dotenv()
+
+import logging
+import os
+import uvicorn
+from app.api.routers.chat import chat_router
+from fastapi import FastAPI
+from fastapi.middleware.cors import CORSMiddleware
+
+app = FastAPI()
+
+environment = os.getenv("ENVIRONMENT", "dev")  # Default to 'development' if not set
+
+
+if environment == "dev":
+    logger = logging.getLogger("uvicorn")
+    logger.warning("Running in development mode - allowing CORS for all origins")
+    app.add_middleware(
+        CORSMiddleware,
+        allow_origins=["*"],
+        allow_credentials=True,
+        allow_methods=["*"],
+        allow_headers=["*"],
+    )
+
+app.include_router(chat_router, prefix="/api/chat")
+
+
+if __name__ == "__main__":
+    uvicorn.run(app="main:app", host="0.0.0.0", reload=True)
diff --git a/packages/create-llama/templates/types/streaming/fastapi/pyproject.toml b/packages/create-llama/templates/types/streaming/fastapi/pyproject.toml
new file mode 100644
index 0000000000000000000000000000000000000000..f5b75b3cfdbe88001d4588faf27e07cec36212a9
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/fastapi/pyproject.toml
@@ -0,0 +1,19 @@
+[tool.poetry]
+name = "llamaindex-fastapi-streaming"
+version = "0.1.0"
+description = ""
+authors = ["Marcus Schiesser <mail@marcusschiesser.de>"]
+readme = "README.md"
+
+[tool.poetry.dependencies]
+python = "^3.11,<3.12"
+fastapi = "^0.104.1"
+uvicorn = { extras = ["standard"], version = "^0.23.2" }
+llama-index = "^0.8.56"
+pypdf = "^3.17.0"
+python-dotenv = "^1.0.0"
+
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
diff --git a/packages/create-llama/templates/types/streaming/fastapi/tests/__init__.py b/packages/create-llama/templates/types/streaming/fastapi/tests/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/packages/create-llama/templates/types/streaming/nextjs/.env.example b/packages/create-llama/templates/types/streaming/nextjs/.env.example
new file mode 100644
index 0000000000000000000000000000000000000000..7ac0a01551a65a68003c2615d510269b5d6a77f6
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/.env.example
@@ -0,0 +1,3 @@
+# Rename this file to `.env.local` to use environment variables locally with `next dev`
+# https://nextjs.org/docs/pages/building-your-application/configuring/environment-variables
+MY_HOST="example.com"
diff --git a/packages/create-llama/templates/types/streaming/nextjs/README-template.md b/packages/create-llama/templates/types/streaming/nextjs/README-template.md
new file mode 100644
index 0000000000000000000000000000000000000000..1509ded7c3be489d369b94d6d6a286d496f488d8
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/README-template.md
@@ -0,0 +1,30 @@
+This is a [LlamaIndex](https://www.llamaindex.ai/) project using [Next.js](https://nextjs.org/) bootstrapped with [`create-llama`](https://github.com/run-llama/LlamaIndexTS/tree/main/packages/create-llama).
+
+## Getting Started
+
+First, install the dependencies:
+
+```
+npm install
+```
+
+Second, run the development server:
+
+```
+npm run dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
+
+This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
+
+## Learn More
+
+To learn more about LlamaIndex, take a look at the following resources:
+
+- [LlamaIndex Documentation](https://docs.llamaindex.ai) - learn about LlamaIndex (Python features).
+- [LlamaIndexTS Documentation](https://ts.llamaindex.ai) - learn about LlamaIndex (Typescript features).
+
+You can check out [the LlamaIndexTS GitHub repository](https://github.com/run-llama/LlamaIndexTS) - your feedback and contributions are welcome!
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/api/chat/engine/index.ts b/packages/create-llama/templates/types/streaming/nextjs/app/api/chat/engine/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..abb02e90cd2ce91096791bf10c4665afcbe11d38
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/api/chat/engine/index.ts
@@ -0,0 +1,7 @@
+import { LLM, SimpleChatEngine } from "llamaindex";
+
+export async function createChatEngine(llm: LLM) {
+  return new SimpleChatEngine({
+    llm,
+  });
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/api/chat/llamaindex-stream.ts b/packages/create-llama/templates/types/streaming/nextjs/app/api/chat/llamaindex-stream.ts
new file mode 100644
index 0000000000000000000000000000000000000000..12328de875d8a59a5501db7fbf2aa0d763a3dbaa
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/api/chat/llamaindex-stream.ts
@@ -0,0 +1,35 @@
+import {
+  createCallbacksTransformer,
+  createStreamDataTransformer,
+  trimStartOfStreamHelper,
+  type AIStreamCallbacksAndOptions,
+} from "ai";
+
+function createParser(res: AsyncGenerator<any>) {
+  const trimStartOfStream = trimStartOfStreamHelper();
+  return new ReadableStream<string>({
+    async pull(controller): Promise<void> {
+      const { value, done } = await res.next();
+      if (done) {
+        controller.close();
+        return;
+      }
+
+      const text = trimStartOfStream(value ?? "");
+      if (text) {
+        controller.enqueue(text);
+      }
+    },
+  });
+}
+
+export function LlamaIndexStream(
+  res: AsyncGenerator<any>,
+  callbacks?: AIStreamCallbacksAndOptions,
+): ReadableStream {
+  return createParser(res)
+    .pipeThrough(createCallbacksTransformer(callbacks))
+    .pipeThrough(
+      createStreamDataTransformer(callbacks?.experimental_streamData),
+    );
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/api/chat/route.ts b/packages/create-llama/templates/types/streaming/nextjs/app/api/chat/route.ts
new file mode 100644
index 0000000000000000000000000000000000000000..989a5fec484fae3b34060ed20b4c1d5f1e42773f
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/api/chat/route.ts
@@ -0,0 +1,49 @@
+import { Message, StreamingTextResponse } from "ai";
+import { OpenAI } from "llamaindex";
+import { NextRequest, NextResponse } from "next/server";
+import { createChatEngine } from "./engine";
+import { LlamaIndexStream } from "./llamaindex-stream";
+
+export const runtime = "nodejs";
+export const dynamic = "force-dynamic";
+
+export async function POST(request: NextRequest) {
+  try {
+    const body = await request.json();
+    const { messages }: { messages: Message[] } = body;
+    const lastMessage = messages.pop();
+    if (!messages || !lastMessage || lastMessage.role !== "user") {
+      return NextResponse.json(
+        {
+          error:
+            "messages are required in the request body and the last message must be from the user",
+        },
+        { status: 400 },
+      );
+    }
+
+    const llm = new OpenAI({
+      model: "gpt-3.5-turbo",
+    });
+
+    const chatEngine = await createChatEngine(llm);
+
+    const response = await chatEngine.chat(lastMessage.content, messages, true);
+
+    // Transform the response into a readable stream
+    const stream = LlamaIndexStream(response);
+
+    // Return a StreamingTextResponse, which can be consumed by the client
+    return new StreamingTextResponse(stream);
+  } catch (error) {
+    console.error("[LlamaIndex]", error);
+    return NextResponse.json(
+      {
+        error: (error as Error).message,
+      },
+      {
+        status: 500,
+      },
+    );
+  }
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/components/chat-section.tsx b/packages/create-llama/templates/types/streaming/nextjs/app/components/chat-section.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..04098fcdf41a4e686459f0ce0d6f3ca311895a9e
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/components/chat-section.tsx
@@ -0,0 +1,33 @@
+"use client";
+
+import { useChat } from "ai/react";
+import { ChatInput, ChatMessages } from "./ui/chat";
+
+export default function ChatSection() {
+  const {
+    messages,
+    input,
+    isLoading,
+    handleSubmit,
+    handleInputChange,
+    reload,
+    stop,
+  } = useChat({ api: process.env.NEXT_PUBLIC_CHAT_API });
+
+  return (
+    <div className="space-y-4 max-w-5xl w-full">
+      <ChatMessages
+        messages={messages}
+        isLoading={isLoading}
+        reload={reload}
+        stop={stop}
+      />
+      <ChatInput
+        input={input}
+        handleSubmit={handleSubmit}
+        handleInputChange={handleInputChange}
+        isLoading={isLoading}
+      />
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/components/header.tsx b/packages/create-llama/templates/types/streaming/nextjs/app/components/header.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..2b0e488f769eff6700a282c2a6a77dd8d0a4dac8
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/components/header.tsx
@@ -0,0 +1,28 @@
+import Image from "next/image";
+
+export default function Header() {
+  return (
+    <div className="z-10 max-w-5xl w-full items-center justify-between font-mono text-sm lg:flex">
+      <p className="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto  lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
+        Get started by editing&nbsp;
+        <code className="font-mono font-bold">app/page.tsx</code>
+      </p>
+      <div className="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
+        <a
+          href="https://www.llamaindex.ai/"
+          className="flex items-center justify-center font-nunito text-lg font-bold gap-2"
+        >
+          <span>Built by LlamaIndex</span>
+          <Image
+            className="rounded-xl"
+            src="/llama.png"
+            alt="Llama Logo"
+            width={40}
+            height={40}
+            priority
+          />
+        </a>
+      </div>
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-avatar.tsx b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-avatar.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..cd241104e4ef210c728aec47a1ab8b0161ad6538
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-avatar.tsx
@@ -0,0 +1,34 @@
+"use client";
+
+import Image from "next/image";
+import { Message } from "./chat-messages";
+
+export default function ChatAvatar(message: Message) {
+  if (message.role === "user") {
+    return (
+      <div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow bg-background">
+        <svg
+          xmlns="http://www.w3.org/2000/svg"
+          viewBox="0 0 256 256"
+          fill="currentColor"
+          className="h-4 w-4"
+        >
+          <path d="M230.92 212c-15.23-26.33-38.7-45.21-66.09-54.16a72 72 0 1 0-73.66 0c-27.39 8.94-50.86 27.82-66.09 54.16a8 8 0 1 0 13.85 8c18.84-32.56 52.14-52 89.07-52s70.23 19.44 89.07 52a8 8 0 1 0 13.85-8ZM72 96a56 56 0 1 1 56 56 56.06 56.06 0 0 1-56-56Z"></path>
+        </svg>
+      </div>
+    );
+  }
+
+  return (
+    <div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border  bg-black text-white">
+      <Image
+        className="rounded-md"
+        src="/llama.png"
+        alt="Llama Logo"
+        width={24}
+        height={24}
+        priority
+      />
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-input.tsx b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-input.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..3eb979b02735943f3f11290c78b84f0e37709438
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-input.tsx
@@ -0,0 +1,42 @@
+"use client";
+
+export interface ChatInputProps {
+  /** The current value of the input */
+  input?: string;
+  /** An input/textarea-ready onChange handler to control the value of the input */
+  handleInputChange?: (
+    e:
+      | React.ChangeEvent<HTMLInputElement>
+      | React.ChangeEvent<HTMLTextAreaElement>,
+  ) => void;
+  /** Form submission handler to automatically reset input and append a user message  */
+  handleSubmit: (e: React.FormEvent<HTMLFormElement>) => void;
+  isLoading: boolean;
+}
+
+export default function ChatInput(props: ChatInputProps) {
+  return (
+    <>
+      <form
+        onSubmit={props.handleSubmit}
+        className="flex items-start justify-between w-full max-w-5xl p-4 bg-white rounded-xl shadow-xl gap-4"
+      >
+        <input
+          autoFocus
+          name="message"
+          placeholder="Type a message"
+          className="w-full p-4 rounded-xl shadow-inner flex-1"
+          value={props.input}
+          onChange={props.handleInputChange}
+        />
+        <button
+          disabled={props.isLoading}
+          type="submit"
+          className="p-4 text-white rounded-xl shadow-xl bg-gradient-to-r from-cyan-500 to-sky-500 disabled:opacity-50 disabled:cursor-not-allowed"
+        >
+          Send message
+        </button>
+      </form>
+    </>
+  );
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-item.tsx b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-item.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..2244f729a8ba668121ab5ec0842963d22153ef92
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-item.tsx
@@ -0,0 +1,13 @@
+"use client";
+
+import ChatAvatar from "./chat-avatar";
+import { Message } from "./chat-messages";
+
+export default function ChatItem(message: Message) {
+  return (
+    <div className="flex items-start gap-4 pt-5">
+      <ChatAvatar {...message} />
+      <p className="break-words">{message.content}</p>
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-messages.tsx b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-messages.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..0e978394015bd985af40646e87fa6620e9001a2f
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/chat-messages.tsx
@@ -0,0 +1,48 @@
+"use client";
+
+import { useEffect, useRef } from "react";
+import ChatItem from "./chat-item";
+
+export interface Message {
+  id: string;
+  content: string;
+  role: string;
+}
+
+export default function ChatMessages({
+  messages,
+  isLoading,
+  reload,
+  stop,
+}: {
+  messages: Message[];
+  isLoading?: boolean;
+  stop?: () => void;
+  reload?: () => void;
+}) {
+  const scrollableChatContainerRef = useRef<HTMLDivElement>(null);
+
+  const scrollToBottom = () => {
+    if (scrollableChatContainerRef.current) {
+      scrollableChatContainerRef.current.scrollTop =
+        scrollableChatContainerRef.current.scrollHeight;
+    }
+  };
+
+  useEffect(() => {
+    scrollToBottom();
+  }, [messages.length]);
+
+  return (
+    <div className="w-full max-w-5xl p-4 bg-white rounded-xl shadow-xl">
+      <div
+        className="flex flex-col gap-5 divide-y h-[50vh] overflow-auto"
+        ref={scrollableChatContainerRef}
+      >
+        {messages.map((m: Message) => (
+          <ChatItem key={m.id} {...m} />
+        ))}
+      </div>
+    </div>
+  );
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/index.ts b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5de7dce47fc1e2330759171db291eedbca19e722
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/components/ui/chat/index.ts
@@ -0,0 +1,6 @@
+import ChatInput from "./chat-input";
+import ChatMessages from "./chat-messages";
+
+export type { ChatInputProps } from "./chat-input";
+export type { Message } from "./chat-messages";
+export { ChatInput, ChatMessages };
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/favicon.ico b/packages/create-llama/templates/types/streaming/nextjs/app/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a1eaef62f2dfa895f1bbffc6595bb53d9604963e
Binary files /dev/null and b/packages/create-llama/templates/types/streaming/nextjs/app/favicon.ico differ
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/globals.css b/packages/create-llama/templates/types/streaming/nextjs/app/globals.css
new file mode 100644
index 0000000000000000000000000000000000000000..09b85ed2c912e25518ddebbfebaba69090f889f4
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/globals.css
@@ -0,0 +1,94 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+  :root {
+    --background: 0 0% 100%;
+    --foreground: 222.2 47.4% 11.2%;
+
+    --muted: 210 40% 96.1%;
+    --muted-foreground: 215.4 16.3% 46.9%;
+
+    --popover: 0 0% 100%;
+    --popover-foreground: 222.2 47.4% 11.2%;
+
+    --border: 214.3 31.8% 91.4%;
+    --input: 214.3 31.8% 91.4%;
+
+    --card: 0 0% 100%;
+    --card-foreground: 222.2 47.4% 11.2%;
+
+    --primary: 222.2 47.4% 11.2%;
+    --primary-foreground: 210 40% 98%;
+
+    --secondary: 210 40% 96.1%;
+    --secondary-foreground: 222.2 47.4% 11.2%;
+
+    --accent: 210 40% 96.1%;
+    --accent-foreground: 222.2 47.4% 11.2%;
+
+    --destructive: 0 100% 50%;
+    --destructive-foreground: 210 40% 98%;
+
+    --ring: 215 20.2% 65.1%;
+
+    --radius: 0.5rem;
+  }
+
+  .dark {
+    --background: 224 71% 4%;
+    --foreground: 213 31% 91%;
+
+    --muted: 223 47% 11%;
+    --muted-foreground: 215.4 16.3% 56.9%;
+
+    --accent: 216 34% 17%;
+    --accent-foreground: 210 40% 98%;
+
+    --popover: 224 71% 4%;
+    --popover-foreground: 215 20.2% 65.1%;
+
+    --border: 216 34% 17%;
+    --input: 216 34% 17%;
+
+    --card: 224 71% 4%;
+    --card-foreground: 213 31% 91%;
+
+    --primary: 210 40% 98%;
+    --primary-foreground: 222.2 47.4% 1.2%;
+
+    --secondary: 222.2 47.4% 11.2%;
+    --secondary-foreground: 210 40% 98%;
+
+    --destructive: 0 63% 31%;
+    --destructive-foreground: 210 40% 98%;
+
+    --ring: 216 34% 17%;
+
+    --radius: 0.5rem;
+  }
+}
+
+@layer base {
+  * {
+    @apply border-border;
+  }
+  body {
+    @apply bg-background text-foreground;
+    font-feature-settings:
+      "rlig" 1,
+      "calt" 1;
+  }
+  .background-gradient {
+    background-color: #fff;
+    background-image: radial-gradient(
+        at 21% 11%,
+        rgba(186, 186, 233, 0.53) 0,
+        transparent 50%
+      ),
+      radial-gradient(at 85% 0, hsla(46, 57%, 78%, 0.52) 0, transparent 50%),
+      radial-gradient(at 91% 36%, rgba(194, 213, 255, 0.68) 0, transparent 50%),
+      radial-gradient(at 8% 40%, rgba(251, 218, 239, 0.46) 0, transparent 50%);
+  }
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/layout.tsx b/packages/create-llama/templates/types/streaming/nextjs/app/layout.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..fb097706274bdfe4690e4953bba24d7acea0a021
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/layout.tsx
@@ -0,0 +1,22 @@
+import type { Metadata } from "next";
+import { Inter } from "next/font/google";
+import "./globals.css";
+
+const inter = Inter({ subsets: ["latin"] });
+
+export const metadata: Metadata = {
+  title: "Create Llama App",
+  description: "Generated by create-llama",
+};
+
+export default function RootLayout({
+  children,
+}: {
+  children: React.ReactNode;
+}) {
+  return (
+    <html lang="en">
+      <body className={inter.className}>{children}</body>
+    </html>
+  );
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/app/page.tsx b/packages/create-llama/templates/types/streaming/nextjs/app/page.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..ef00262b4a80049c70d66d1ceaced4afaabfd587
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/app/page.tsx
@@ -0,0 +1,11 @@
+import Header from "@/app/components/header";
+import ChatSection from "./components/chat-section";
+
+export default function Home() {
+  return (
+    <main className="flex min-h-screen flex-col items-center gap-10 p-24 background-gradient">
+      <Header />
+      <ChatSection />
+    </main>
+  );
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/eslintrc.json b/packages/create-llama/templates/types/streaming/nextjs/eslintrc.json
new file mode 100644
index 0000000000000000000000000000000000000000..bffb357a7122523ec94045523758c4b825b448ef
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/eslintrc.json
@@ -0,0 +1,3 @@
+{
+  "extends": "next/core-web-vitals"
+}
diff --git a/packages/create-llama/templates/types/streaming/nextjs/gitignore b/packages/create-llama/templates/types/streaming/nextjs/gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..8f322f0d8f49570a594b865ef8916c428a01afc1
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/gitignore
@@ -0,0 +1,35 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/packages/create-llama/templates/types/streaming/nextjs/next-env.d.ts b/packages/create-llama/templates/types/streaming/nextjs/next-env.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4f11a03dc6cc37f2b5105c08f2e7b24c603ab2f4
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/next-env.d.ts
@@ -0,0 +1,5 @@
+/// <reference types="next" />
+/// <reference types="next/image-types/global" />
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/packages/create-llama/templates/types/streaming/nextjs/next.config.app.js b/packages/create-llama/templates/types/streaming/nextjs/next.config.app.js
new file mode 100644
index 0000000000000000000000000000000000000000..74655207e206e9efa7215e79ea163e8ae2052361
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/next.config.app.js
@@ -0,0 +1,11 @@
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+  experimental: {
+    serverComponentsExternalPackages: ["llamaindex"],
+    outputFileTracingIncludes: {
+      "/*": ["./cache/**/*"],
+    },
+  },
+};
+
+module.exports = nextConfig;
diff --git a/packages/create-llama/templates/types/streaming/nextjs/next.config.static.js b/packages/create-llama/templates/types/streaming/nextjs/next.config.static.js
new file mode 100644
index 0000000000000000000000000000000000000000..166b3e67d75ddc6d594b1c3d0960cc51f54b13b9
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/next.config.static.js
@@ -0,0 +1,13 @@
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+  output: "export",
+  images: { unoptimized: true },
+  experimental: {
+    serverComponentsExternalPackages: ["llamaindex"],
+    outputFileTracingIncludes: {
+      "/*": ["./cache/**/*"],
+    },
+  },
+};
+
+module.exports = nextConfig;
diff --git a/packages/create-llama/templates/types/streaming/nextjs/package.json b/packages/create-llama/templates/types/streaming/nextjs/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..e9f23201d893320cfdfcbd3fbac9ad48ebbb8d7c
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/package.json
@@ -0,0 +1,28 @@
+{
+  "name": "llama-index-nextjs-streaming",
+  "version": "1.0.0",
+  "scripts": {
+    "dev": "next dev",
+    "build": "next build",
+    "start": "next start",
+    "lint": "next lint"
+  },
+  "dependencies": {
+    "ai": "^2",
+    "llamaindex": "0.0.31",
+    "next": "^13",
+    "react": "^18",
+    "react-dom": "^18"
+  },
+  "devDependencies": {
+    "@types/node": "^20",
+    "@types/react": "^18",
+    "@types/react-dom": "^18",
+    "autoprefixer": "^10",
+    "eslint": "^8",
+    "eslint-config-next": "^13",
+    "postcss": "^8",
+    "tailwindcss": "^3",
+    "typescript": "^5"
+  }
+}
\ No newline at end of file
diff --git a/packages/create-llama/templates/types/streaming/nextjs/postcss.config.js b/packages/create-llama/templates/types/streaming/nextjs/postcss.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..12a703d900da8159c30e75acbd2c4d87ae177f62
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+  plugins: {
+    tailwindcss: {},
+    autoprefixer: {},
+  },
+};
diff --git a/packages/create-llama/templates/types/streaming/nextjs/public/llama.png b/packages/create-llama/templates/types/streaming/nextjs/public/llama.png
new file mode 100644
index 0000000000000000000000000000000000000000..d4efba3b816bf765439c6d01b322b02684e946c3
Binary files /dev/null and b/packages/create-llama/templates/types/streaming/nextjs/public/llama.png differ
diff --git a/packages/create-llama/templates/types/streaming/nextjs/tailwind.config.ts b/packages/create-llama/templates/types/streaming/nextjs/tailwind.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..aa5580affac868255fedb5a8ddc0dde7a105c454
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/tailwind.config.ts
@@ -0,0 +1,78 @@
+import type { Config } from "tailwindcss";
+import { fontFamily } from "tailwindcss/defaultTheme";
+
+const config: Config = {
+  darkMode: ["class"],
+  content: ["app/**/*.{ts,tsx}", "components/**/*.{ts,tsx}"],
+  theme: {
+    container: {
+      center: true,
+      padding: "2rem",
+      screens: {
+        "2xl": "1400px",
+      },
+    },
+    extend: {
+      colors: {
+        border: "hsl(var(--border))",
+        input: "hsl(var(--input))",
+        ring: "hsl(var(--ring))",
+        background: "hsl(var(--background))",
+        foreground: "hsl(var(--foreground))",
+        primary: {
+          DEFAULT: "hsl(var(--primary))",
+          foreground: "hsl(var(--primary-foreground))",
+        },
+        secondary: {
+          DEFAULT: "hsl(var(--secondary))",
+          foreground: "hsl(var(--secondary-foreground))",
+        },
+        destructive: {
+          DEFAULT: "hsl(var(--destructive) / <alpha-value>)",
+          foreground: "hsl(var(--destructive-foreground) / <alpha-value>)",
+        },
+        muted: {
+          DEFAULT: "hsl(var(--muted))",
+          foreground: "hsl(var(--muted-foreground))",
+        },
+        accent: {
+          DEFAULT: "hsl(var(--accent))",
+          foreground: "hsl(var(--accent-foreground))",
+        },
+        popover: {
+          DEFAULT: "hsl(var(--popover))",
+          foreground: "hsl(var(--popover-foreground))",
+        },
+        card: {
+          DEFAULT: "hsl(var(--card))",
+          foreground: "hsl(var(--card-foreground))",
+        },
+      },
+      borderRadius: {
+        xl: `calc(var(--radius) + 4px)`,
+        lg: `var(--radius)`,
+        md: `calc(var(--radius) - 2px)`,
+        sm: "calc(var(--radius) - 4px)",
+      },
+      fontFamily: {
+        sans: ["var(--font-sans)", ...fontFamily.sans],
+      },
+      keyframes: {
+        "accordion-down": {
+          from: { height: "0" },
+          to: { height: "var(--radix-accordion-content-height)" },
+        },
+        "accordion-up": {
+          from: { height: "var(--radix-accordion-content-height)" },
+          to: { height: "0" },
+        },
+      },
+      animation: {
+        "accordion-down": "accordion-down 0.2s ease-out",
+        "accordion-up": "accordion-up 0.2s ease-out",
+      },
+    },
+  },
+  plugins: [],
+};
+export default config;
diff --git a/packages/create-llama/templates/types/streaming/nextjs/tsconfig.json b/packages/create-llama/templates/types/streaming/nextjs/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..c7146963787144d4861e149d8d233049b7daefc7
--- /dev/null
+++ b/packages/create-llama/templates/types/streaming/nextjs/tsconfig.json
@@ -0,0 +1,27 @@
+{
+  "compilerOptions": {
+    "target": "es5",
+    "lib": ["dom", "dom.iterable", "esnext"],
+    "allowJs": true,
+    "skipLibCheck": true,
+    "strict": true,
+    "noEmit": true,
+    "esModuleInterop": true,
+    "module": "esnext",
+    "moduleResolution": "bundler",
+    "resolveJsonModule": true,
+    "isolatedModules": true,
+    "jsx": "preserve",
+    "incremental": true,
+    "plugins": [
+      {
+        "name": "next"
+      }
+    ],
+    "paths": {
+      "@/*": ["./*"]
+    }
+  },
+  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+  "exclude": ["node_modules"]
+}
diff --git a/packages/create-llama/tsconfig.json b/packages/create-llama/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..e4edad9e127c7de102ca7bdd6b243168a83bbc20
--- /dev/null
+++ b/packages/create-llama/tsconfig.json
@@ -0,0 +1,11 @@
+{
+  "compilerOptions": {
+    "target": "es2019",
+    "moduleResolution": "node",
+    "strict": true,
+    "resolveJsonModule": true,
+    "esModuleInterop": true,
+    "skipLibCheck": false
+  },
+  "exclude": ["templates", "dist"]
+}
diff --git a/packages/eslint-config-custom/index.js b/packages/eslint-config-custom/index.js
index a4d327e57c817abdb802dbc0de516b3d87401e4f..142321257509d7748ce9de170d9cae31406ba968 100644
--- a/packages/eslint-config-custom/index.js
+++ b/packages/eslint-config-custom/index.js
@@ -35,6 +35,10 @@ module.exports = {
 
           "NOTION_TOKEN",
           "MONGODB_URI",
+
+          "https_proxy",
+          "npm_config_user_agent",
+          "NEXT_PUBLIC_CHAT_API",
         ],
       },
     ],
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 98240cc4cc9065310a7dfd92177245ad21245d6a..c45482b6d8f626a3798ed38165f85c3d4e73e2e5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -11,20 +11,19 @@ overrides:
 importers:
 
   .:
-    dependencies:
+    devDependencies:
       '@changesets/cli':
         specifier: ^2.26.2
         version: 2.26.2
-    devDependencies:
       '@turbo/gen':
         specifier: ^1.10.16
-        version: 1.10.16(@types/node@18.18.8)(typescript@5.2.2)
+        version: 1.10.16(@types/node@18.18.12)(typescript@4.9.5)
       '@types/jest':
-        specifier: ^29.5.6
-        version: 29.5.6
+        specifier: ^29.5.10
+        version: 29.5.10
       eslint:
-        specifier: ^8.52.0
-        version: 8.52.0
+        specifier: ^8.54.0
+        version: 8.54.0
       eslint-config-custom:
         specifier: workspace:*
         version: link:packages/eslint-config-custom
@@ -33,16 +32,19 @@ importers:
         version: 8.0.3
       jest:
         specifier: ^29.7.0
-        version: 29.7.0(@types/node@18.18.8)
+        version: 29.7.0(@types/node@18.18.12)
+      lint-staged:
+        specifier: ^15.1.0
+        version: 15.1.0
       prettier:
-        specifier: ^3.0.3
-        version: 3.0.3
+        specifier: ^3.1.0
+        version: 3.1.0
       prettier-plugin-organize-imports:
-        specifier: ^3.2.3
-        version: 3.2.3(prettier@3.0.3)(typescript@5.2.2)
+        specifier: ^3.2.4
+        version: 3.2.4(prettier@3.1.0)(typescript@4.9.5)
       ts-jest:
         specifier: ^29.1.1
-        version: 29.1.1(@babel/core@7.23.2)(jest@29.7.0)(typescript@5.2.2)
+        version: 29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@4.9.5)
       turbo:
         specifier: ^1.10.16
         version: 1.10.16
@@ -51,10 +53,10 @@ importers:
     dependencies:
       '@docusaurus/core':
         specifier: 2.4.3
-        version: 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+        version: 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/preset-classic':
         specifier: 2.4.3
-        version: 2.4.3(@algolia/client-search@4.20.0)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.10.0)(typescript@4.9.5)
+        version: 2.4.3(@algolia/client-search@4.20.0)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.10.0)(typescript@4.9.5)
       '@docusaurus/remark-plugin-npm2yarn':
         specifier: ^2.4.3
         version: 2.4.3
@@ -102,6 +104,25 @@ importers:
         specifier: ^4.9.5
         version: 4.9.5
 
+  apps/mongodb:
+    dependencies:
+      dotenv:
+        specifier: ^16.3.1
+        version: 16.3.1
+      llamaindex:
+        specifier: workspace:*
+        version: link:../../packages/core
+      mongodb:
+        specifier: ^6.2.0
+        version: 6.2.0
+    devDependencies:
+      '@types/node':
+        specifier: ^18.18.6
+        version: 18.18.8
+      ts-node:
+        specifier: ^10.9.1
+        version: 10.9.1(@types/node@18.18.8)(typescript@4.9.5)
+
   apps/simple:
     dependencies:
       '@notionhq/client':
@@ -122,19 +143,25 @@ importers:
         version: 18.18.7
       ts-node:
         specifier: ^10.9.1
-        version: 10.9.1(@types/node@18.18.7)(typescript@5.2.2)
+        version: 10.9.1(@types/node@18.18.7)(typescript@4.9.5)
 
   packages/core:
     dependencies:
       '@anthropic-ai/sdk':
-        specifier: ^0.9.0
-        version: 0.9.0
+        specifier: ^0.9.1
+        version: 0.9.1
       '@notionhq/client':
         specifier: ^2.2.13
         version: 2.2.13
+      '@xenova/transformers':
+        specifier: ^2.8.0
+        version: 2.8.0
+      crypto-js:
+        specifier: ^4.2.0
+        version: 4.2.0
       js-tiktoken:
-        specifier: ^1.0.7
-        version: 1.0.7
+        specifier: ^1.0.8
+        version: 1.0.8
       lodash:
         specifier: ^4.17.21
         version: 4.17.21
@@ -145,14 +172,14 @@ importers:
         specifier: ^2.0.0
         version: 2.0.0
       mongodb:
-        specifier: ^6.2.0
-        version: 6.2.0
+        specifier: ^6.3.0
+        version: 6.3.0
       notion-md-crawler:
         specifier: ^0.0.2
         version: 0.0.2
       openai:
-        specifier: ^4.16.1
-        version: 4.16.1
+        specifier: ^4.19.1
+        version: 4.19.1
       papaparse:
         specifier: ^5.4.1
         version: 5.4.1
@@ -172,8 +199,8 @@ importers:
         specifier: ^1.0.8
         version: 1.0.8
       replicate:
-        specifier: ^0.20.1
-        version: 0.20.1
+        specifier: ^0.21.1
+        version: 0.21.1
       string-strip-html:
         specifier: ^13.4.3
         version: 13.4.3
@@ -184,52 +211,124 @@ importers:
         specifier: ^1.14.3
         version: 1.14.3
     devDependencies:
+      '@types/crypto-js':
+        specifier: ^4.2.1
+        version: 4.2.1
       '@types/lodash':
-        specifier: ^4.14.200
-        version: 4.14.200
+        specifier: ^4.14.202
+        version: 4.14.202
       '@types/node':
-        specifier: ^18.18.8
-        version: 18.18.8
+        specifier: ^18.18.12
+        version: 18.18.12
       '@types/papaparse':
-        specifier: ^5.3.10
-        version: 5.3.10
+        specifier: ^5.3.13
+        version: 5.3.13
       '@types/pdf-parse':
-        specifier: ^1.1.3
-        version: 1.1.3
+        specifier: ^1.1.4
+        version: 1.1.4
       '@types/pg':
         specifier: ^8.10.7
         version: 8.10.9
       '@types/uuid':
-        specifier: ^9.0.6
-        version: 9.0.6
+        specifier: ^9.0.7
+        version: 9.0.7
       node-stdlib-browser:
         specifier: ^1.2.0
         version: 1.2.0
       tsup:
         specifier: ^7.2.0
-        version: 7.2.0(typescript@5.2.2)
+        version: 7.2.0(typescript@5.3.2)
       typescript:
-        specifier: ^5.2.2
-        version: 5.2.2
+        specifier: ^5.3.2
+        version: 5.3.2
+
+  packages/create-llama:
+    devDependencies:
+      '@types/async-retry':
+        specifier: 1.4.2
+        version: 1.4.2
+      '@types/ci-info':
+        specifier: 2.0.0
+        version: 2.0.0
+      '@types/cross-spawn':
+        specifier: 6.0.0
+        version: 6.0.0
+      '@types/node':
+        specifier: ^20.9.0
+        version: 20.9.0
+      '@types/prompts':
+        specifier: 2.0.1
+        version: 2.0.1
+      '@types/tar':
+        specifier: 6.1.5
+        version: 6.1.5
+      '@types/validate-npm-package-name':
+        specifier: 3.0.0
+        version: 3.0.0
+      '@vercel/ncc':
+        specifier: 0.34.0
+        version: 0.34.0
+      async-retry:
+        specifier: 1.3.1
+        version: 1.3.1
+      async-sema:
+        specifier: 3.0.1
+        version: 3.0.1
+      ci-info:
+        specifier: github:watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540
+        version: github.com/watson/ci-info/f43f6a1cefff47fb361c88cf4b943fdbcaafe540
+      commander:
+        specifier: 2.20.0
+        version: 2.20.0
+      conf:
+        specifier: 10.2.0
+        version: 10.2.0
+      cross-spawn:
+        specifier: 7.0.3
+        version: 7.0.3
+      fast-glob:
+        specifier: 3.3.1
+        version: 3.3.1
+      got:
+        specifier: 10.7.0
+        version: 10.7.0
+      picocolors:
+        specifier: 1.0.0
+        version: 1.0.0
+      prompts:
+        specifier: 2.1.0
+        version: 2.1.0
+      tar:
+        specifier: 6.1.15
+        version: 6.1.15
+      terminal-link:
+        specifier: ^3.0.0
+        version: 3.0.0
+      update-check:
+        specifier: 1.5.4
+        version: 1.5.4
+      validate-npm-package-name:
+        specifier: 3.0.0
+        version: 3.0.0
 
   packages/eslint-config-custom:
     dependencies:
       eslint-config-next:
         specifier: ^13.4.1
-        version: 13.4.1(eslint@8.53.0)(typescript@5.2.2)
+        version: 13.4.1(eslint@8.54.0)(typescript@4.9.5)
       eslint-config-prettier:
         specifier: ^8.3.0
-        version: 8.8.0(eslint@8.53.0)
+        version: 8.8.0(eslint@8.54.0)
       eslint-config-turbo:
         specifier: ^1.9.3
-        version: 1.9.3(eslint@8.53.0)
+        version: 1.9.3(eslint@8.54.0)
       eslint-plugin-react:
         specifier: 7.28.0
-        version: 7.28.0(eslint@8.53.0)
+        version: 7.28.0(eslint@8.54.0)
     devDependencies:
       next:
         specifier: ^13.4.10
-        version: 13.4.10(@babel/core@7.23.2)(react-dom@18.2.0)(react@18.2.0)
+        version: 13.4.10(@babel/core@7.23.3)(react-dom@18.2.0)(react@18.2.0)
 
   packages/tsconfig: {}
 
@@ -382,13 +481,13 @@ packages:
     engines: {node: '>=6.0.0'}
     dependencies:
       '@jridgewell/gen-mapping': 0.3.3
-      '@jridgewell/trace-mapping': 0.3.19
+      '@jridgewell/trace-mapping': 0.3.20
 
-  /@anthropic-ai/sdk@0.9.0:
-    resolution: {integrity: sha512-qNoNld9luBWNcmCFTIZrsmusCQIdxIxQXyHJ64IDUsrvPvy2lM0kA9+E6bHeeFut463zdGkVz0Ux0U+WDppLGg==}
+  /@anthropic-ai/sdk@0.9.1:
+    resolution: {integrity: sha512-wa1meQ2WSfoY8Uor3EdrJq0jTiZJoKoSii2ZVWRY1oN4Tlr5s59pADg9T79FTbPe1/se5c3pBeZgJL63wmuoBA==}
     dependencies:
-      '@types/node': 18.18.8
-      '@types/node-fetch': 2.6.8
+      '@types/node': 18.18.12
+      '@types/node-fetch': 2.6.9
       abort-controller: 3.0.0
       agentkeepalive: 4.5.0
       digest-fetch: 1.3.0
@@ -456,21 +555,22 @@ packages:
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
-  /@babel/core@7.23.2:
-    resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==}
+  /@babel/core@7.23.3:
+    resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@ampproject/remapping': 2.2.1
       '@babel/code-frame': 7.22.13
-      '@babel/generator': 7.23.0
+      '@babel/generator': 7.23.3
       '@babel/helper-compilation-targets': 7.22.15
-      '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2)
+      '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3)
       '@babel/helpers': 7.23.2
-      '@babel/parser': 7.23.0
+      '@babel/parser': 7.23.3
       '@babel/template': 7.22.15
       '@babel/traverse': 7.23.2
-      '@babel/types': 7.23.0
+      '@babel/types': 7.23.3
       convert-source-map: 2.0.0
       debug: 4.3.4
       gensync: 1.0.0-beta.2
@@ -486,8 +586,18 @@ packages:
     dependencies:
       '@babel/types': 7.23.0
       '@jridgewell/gen-mapping': 0.3.3
-      '@jridgewell/trace-mapping': 0.3.19
+      '@jridgewell/trace-mapping': 0.3.20
+      jsesc: 2.5.2
+
+  /@babel/generator@7.23.3:
+    resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/types': 7.23.3
+      '@jridgewell/gen-mapping': 0.3.3
+      '@jridgewell/trace-mapping': 0.3.20
       jsesc: 2.5.2
+    dev: true
 
   /@babel/helper-annotate-as-pure@7.22.5:
     resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
@@ -614,14 +724,15 @@ packages:
       '@babel/helper-simple-access': 7.22.5
       '@babel/helper-split-export-declaration': 7.22.6
       '@babel/helper-validator-identifier': 7.22.20
+    dev: false
 
-  /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2):
-    resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==}
+  /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3):
+    resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
-      '@babel/core': 7.23.2
+      '@babel/core': 7.23.3
       '@babel/helper-environment-visitor': 7.22.20
       '@babel/helper-module-imports': 7.22.15
       '@babel/helper-simple-access': 7.22.5
@@ -721,6 +832,7 @@ packages:
       '@babel/types': 7.23.0
     transitivePeerDependencies:
       - supports-color
+    dev: false
 
   /@babel/helpers@7.23.2:
     resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==}
@@ -728,7 +840,7 @@ packages:
     dependencies:
       '@babel/template': 7.22.15
       '@babel/traverse': 7.23.2
-      '@babel/types': 7.23.0
+      '@babel/types': 7.23.3
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -748,6 +860,14 @@ packages:
     dependencies:
       '@babel/types': 7.23.0
 
+  /@babel/parser@7.23.3:
+    resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==}
+    engines: {node: '>=6.0.0'}
+    hasBin: true
+    dependencies:
+      '@babel/types': 7.23.3
+    dev: true
+
   /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.0):
     resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==}
     engines: {node: '>=6.9.0'}
@@ -797,13 +917,23 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3):
+    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
-  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.0):
+  /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3):
     resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
     peerDependencies:
       '@babel/core': ^7.0.0-0
     dependencies:
-      '@babel/core': 7.23.0
+      '@babel/core': 7.23.3
       '@babel/helper-plugin-utils': 7.22.5
     dev: true
 
@@ -814,6 +944,16 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3):
+    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.0):
     resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
@@ -870,6 +1010,16 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3):
+    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.0):
     resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
@@ -878,6 +1028,16 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3):
+    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-jsx@7.12.1(@babel/core@7.12.9):
     resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==}
@@ -896,6 +1056,17 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3):
+    resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.0):
     resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
@@ -904,6 +1075,16 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3):
+    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.0):
     resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
@@ -912,6 +1093,16 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3):
+    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.0):
     resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
@@ -920,6 +1111,16 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3):
+    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.9):
     resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
@@ -937,6 +1138,16 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3):
+    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.0):
     resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
@@ -945,6 +1156,16 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3):
+    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.0):
     resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
@@ -953,6 +1174,16 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3):
+    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.0):
     resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
@@ -972,6 +1203,17 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3):
+    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.0):
     resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==}
@@ -981,6 +1223,17 @@ packages:
     dependencies:
       '@babel/core': 7.23.0
       '@babel/helper-plugin-utils': 7.22.5
+    dev: false
+
+  /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3):
+    resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+    dependencies:
+      '@babel/core': 7.23.3
+      '@babel/helper-plugin-utils': 7.22.5
+    dev: true
 
   /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.0):
     resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
@@ -1761,6 +2014,15 @@ packages:
     dependencies:
       core-js-pure: 3.33.0
       regenerator-runtime: 0.14.0
+    dev: false
+
+  /@babel/runtime-corejs3@7.23.2:
+    resolution: {integrity: sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      core-js-pure: 3.33.2
+      regenerator-runtime: 0.14.0
+    dev: true
 
   /@babel/runtime@7.21.5:
     resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==}
@@ -1775,6 +2037,13 @@ packages:
     dependencies:
       regenerator-runtime: 0.14.0
 
+  /@babel/runtime@7.23.2:
+    resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      regenerator-runtime: 0.14.0
+    dev: true
+
   /@babel/template@7.22.15:
     resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
     engines: {node: '>=6.9.0'}
@@ -1816,6 +2085,15 @@ packages:
       '@babel/helper-validator-identifier': 7.22.20
       to-fast-properties: 2.0.0
 
+  /@babel/types@7.23.3:
+    resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==}
+    engines: {node: '>=6.9.0'}
+    dependencies:
+      '@babel/helper-string-parser': 7.22.5
+      '@babel/helper-validator-identifier': 7.22.20
+      to-fast-properties: 2.0.0
+    dev: true
+
   /@bcoe/v8-coverage@0.2.3:
     resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
     dev: true
@@ -1823,7 +2101,7 @@ packages:
   /@changesets/apply-release-plan@6.1.4:
     resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==}
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@changesets/config': 2.3.1
       '@changesets/get-version-range-type': 0.3.2
       '@changesets/git': 2.0.0
@@ -1836,30 +2114,30 @@ packages:
       prettier: 2.8.8
       resolve-from: 5.0.0
       semver: 7.5.4
-    dev: false
+    dev: true
 
   /@changesets/assemble-release-plan@5.2.4:
     resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==}
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@changesets/errors': 0.1.4
       '@changesets/get-dependents-graph': 1.3.6
       '@changesets/types': 5.2.1
       '@manypkg/get-packages': 1.1.3
       semver: 7.5.4
-    dev: false
+    dev: true
 
   /@changesets/changelog-git@0.1.14:
     resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==}
     dependencies:
       '@changesets/types': 5.2.1
-    dev: false
+    dev: true
 
   /@changesets/cli@2.26.2:
     resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==}
     hasBin: true
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@changesets/apply-release-plan': 6.1.4
       '@changesets/assemble-release-plan': 5.2.4
       '@changesets/changelog-git': 0.1.14
@@ -1874,8 +2152,8 @@ packages:
       '@changesets/types': 5.2.1
       '@changesets/write': 0.2.3
       '@manypkg/get-packages': 1.1.3
-      '@types/is-ci': 3.0.1
-      '@types/semver': 7.5.3
+      '@types/is-ci': 3.0.4
+      '@types/semver': 7.5.5
       ansi-colors: 4.1.3
       chalk: 2.4.2
       enquirer: 2.4.1
@@ -1891,8 +2169,8 @@ packages:
       semver: 7.5.4
       spawndamnit: 2.0.0
       term-size: 2.2.1
-      tty-table: 4.2.2
-    dev: false
+      tty-table: 4.2.3
+    dev: true
 
   /@changesets/config@2.3.1:
     resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==}
@@ -1904,13 +2182,13 @@ packages:
       '@manypkg/get-packages': 1.1.3
       fs-extra: 7.0.1
       micromatch: 4.0.5
-    dev: false
+    dev: true
 
   /@changesets/errors@0.1.4:
     resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==}
     dependencies:
       extendable-error: 0.1.7
-    dev: false
+    dev: true
 
   /@changesets/get-dependents-graph@1.3.6:
     resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==}
@@ -1920,63 +2198,63 @@ packages:
       chalk: 2.4.2
       fs-extra: 7.0.1
       semver: 7.5.4
-    dev: false
+    dev: true
 
   /@changesets/get-release-plan@3.0.17:
     resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==}
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@changesets/assemble-release-plan': 5.2.4
       '@changesets/config': 2.3.1
       '@changesets/pre': 1.0.14
       '@changesets/read': 0.5.9
       '@changesets/types': 5.2.1
       '@manypkg/get-packages': 1.1.3
-    dev: false
+    dev: true
 
   /@changesets/get-version-range-type@0.3.2:
     resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==}
-    dev: false
+    dev: true
 
   /@changesets/git@2.0.0:
     resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==}
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@changesets/errors': 0.1.4
       '@changesets/types': 5.2.1
       '@manypkg/get-packages': 1.1.3
       is-subdir: 1.2.0
       micromatch: 4.0.5
       spawndamnit: 2.0.0
-    dev: false
+    dev: true
 
   /@changesets/logger@0.0.5:
     resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==}
     dependencies:
       chalk: 2.4.2
-    dev: false
+    dev: true
 
   /@changesets/parse@0.3.16:
     resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==}
     dependencies:
       '@changesets/types': 5.2.1
       js-yaml: 3.14.1
-    dev: false
+    dev: true
 
   /@changesets/pre@1.0.14:
     resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==}
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@changesets/errors': 0.1.4
       '@changesets/types': 5.2.1
       '@manypkg/get-packages': 1.1.3
       fs-extra: 7.0.1
-    dev: false
+    dev: true
 
   /@changesets/read@0.5.9:
     resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==}
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@changesets/git': 2.0.0
       '@changesets/logger': 0.0.5
       '@changesets/parse': 0.3.16
@@ -1984,25 +2262,25 @@ packages:
       chalk: 2.4.2
       fs-extra: 7.0.1
       p-filter: 2.1.0
-    dev: false
+    dev: true
 
   /@changesets/types@4.1.0:
     resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
-    dev: false
+    dev: true
 
   /@changesets/types@5.2.1:
     resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==}
-    dev: false
+    dev: true
 
   /@changesets/write@0.2.3:
     resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==}
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@changesets/types': 5.2.1
       fs-extra: 7.0.1
       human-id: 1.0.2
       prettier: 2.8.8
-    dev: false
+    dev: true
 
   /@colors/colors@1.5.0:
     resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
@@ -2055,7 +2333,7 @@ packages:
       - '@algolia/client-search'
     dev: false
 
-  /@docusaurus/core@2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/core@2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-dWH5P7cgeNSIg9ufReX6gaCl/TmrGKD38Orbwuz05WPhAQtFXHd5B8Qym1TiXfvUNvwoYKkAJOJuGe8ou0Z7PA==}
     engines: {node: '>=16.14'}
     hasBin: true
@@ -2114,7 +2392,7 @@ packages:
       postcss-loader: 7.3.3(postcss@8.4.31)(typescript@4.9.5)(webpack@5.88.2)
       prompts: 2.4.2
       react: 17.0.2
-      react-dev-utils: 12.0.1(eslint@8.52.0)(typescript@4.9.5)(webpack@5.88.2)
+      react-dev-utils: 12.0.1(eslint@8.54.0)(typescript@4.9.5)(webpack@5.88.2)
       react-dom: 17.0.2(react@17.0.2)
       react-helmet-async: 1.3.0(react-dom@17.0.2)(react@17.0.2)
       react-loadable: /@docusaurus/react-loadable@5.5.2(react@17.0.2)
@@ -2230,14 +2508,14 @@ packages:
       - uglify-js
       - webpack-cli
 
-  /@docusaurus/plugin-content-blog@2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/plugin-content-blog@2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-PVhypqaA0t98zVDpOeTqWUTvRqCEjJubtfFUQ7zJNYdbYTbS/E/ytq6zbLVsN/dImvemtO/5JQgjLxsh8XLo8Q==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/logger': 2.4.3
       '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2)
@@ -2273,14 +2551,14 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/plugin-content-docs@2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/plugin-content-docs@2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-N7Po2LSH6UejQhzTCsvuX5NOzlC+HiXOVvofnEPj0WhMu1etpLEXE6a4aTxrtg95lQ5kf0xUIdjX9sh3d3G76A==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/logger': 2.4.3
       '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/module-type-aliases': 2.4.3(react-dom@17.0.2)(react@17.0.2)
@@ -2316,14 +2594,14 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/plugin-content-pages@2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/plugin-content-pages@2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-txtDVz7y3zGk67q0HjG0gRttVPodkHqE0bpJ+7dOaTH40CQFLSh7+aBeGnPOTl+oCPG+hxkim4SndqPqXjQ8Bg==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3)
@@ -2351,14 +2629,14 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/plugin-debug@2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/plugin-debug@2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-LkUbuq3zCmINlFb+gAd4ZvYr+bPAzMC0hwND4F7V9bZ852dCX8YoWyovVUBKq4er1XsOwSQaHmNGtObtn8Av8Q==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3)
       fs-extra: 10.1.0
@@ -2386,14 +2664,14 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/plugin-google-analytics@2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/plugin-google-analytics@2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-KzBV3k8lDkWOhg/oYGxlK5o9bOwX7KpPc/FTWoB+SfKhlHfhq7qcQdMi1elAaVEIop8tgK6gD1E58Q+XC6otSQ==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3)
       react: 17.0.2
@@ -2417,14 +2695,14 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/plugin-google-gtag@2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/plugin-google-gtag@2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-5FMg0rT7sDy4i9AGsvJC71MQrqQZwgLNdDetLEGDHLfSHLvJhQbTCUGbGXknUgWXQJckcV/AILYeJy+HhxeIFA==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3)
       react: 17.0.2
@@ -2448,14 +2726,14 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/plugin-google-tag-manager@2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/plugin-google-tag-manager@2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-1jTzp71yDGuQiX9Bi0pVp3alArV0LSnHXempvQTxwCGAEzUWWaBg4d8pocAlTpbP9aULQQqhgzrs8hgTRPOM0A==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3)
       react: 17.0.2
@@ -2479,14 +2757,14 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/plugin-sitemap@2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/plugin-sitemap@2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-LRQYrK1oH1rNfr4YvWBmRzTL0LN9UAPxBbghgeFRBm5yloF6P+zv1tm2pe2hQTX/QP5bSKdnajCvfnScgKXMZQ==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/logger': 2.4.3
       '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3)
@@ -2515,25 +2793,25 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/preset-classic@2.4.3(@algolia/client-search@4.20.0)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.10.0)(typescript@4.9.5):
+  /@docusaurus/preset-classic@2.4.3(@algolia/client-search@4.20.0)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.10.0)(typescript@4.9.5):
     resolution: {integrity: sha512-tRyMliepY11Ym6hB1rAFSNGwQDpmszvWYJvlK1E+md4SW8i6ylNHtpZjaYFff9Mdk3i/Pg8ItQq9P0daOJAvQw==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-content-blog': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-content-pages': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-debug': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-google-analytics': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-google-gtag': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-google-tag-manager': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-sitemap': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/theme-classic': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/theme-common': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/theme-search-algolia': 2.4.3(@algolia/client-search@4.20.0)(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.10.0)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-blog': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-pages': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-debug': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-google-analytics': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-google-gtag': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-google-tag-manager': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-sitemap': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/theme-classic': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/theme-common': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/theme-search-algolia': 2.4.3(@algolia/client-search@4.20.0)(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.10.0)(typescript@4.9.5)
       '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2)
       react: 17.0.2
       react-dom: 17.0.2(react@17.0.2)
@@ -2577,20 +2855,20 @@ packages:
       unist-util-visit: 2.0.3
     dev: false
 
-  /@docusaurus/theme-classic@2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/theme-classic@2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-QKRAJPSGPfDY2yCiPMIVyr+MqwZCIV2lxNzqbyUW0YkrlmdzzP3WuQJPMGLCjWgQp/5c9kpWMvMxjhpZx1R32Q==}
     engines: {node: '>=16.14'}
     peerDependencies:
       react: ^16.8.4 || ^17.0.0
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/module-type-aliases': 2.4.3(react-dom@17.0.2)(react@17.0.2)
-      '@docusaurus/plugin-content-blog': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-content-pages': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/theme-common': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-blog': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-pages': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/theme-common': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/theme-translations': 2.4.3
       '@docusaurus/types': 2.4.3(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3)
@@ -2629,7 +2907,7 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/theme-common@2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
+  /@docusaurus/theme-common@2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5):
     resolution: {integrity: sha512-7KaDJBXKBVGXw5WOVt84FtN8czGWhM0lbyWEZXGp8AFfL6sZQfRTluFp4QriR97qwzSyOfQb+nzcDZZU4tezUw==}
     engines: {node: '>=16.14'}
     peerDependencies:
@@ -2638,9 +2916,9 @@ packages:
     dependencies:
       '@docusaurus/mdx-loader': 2.4.3(@docusaurus/types@2.4.3)(react-dom@17.0.2)(react@17.0.2)
       '@docusaurus/module-type-aliases': 2.4.3(react-dom@17.0.2)(react@17.0.2)
-      '@docusaurus/plugin-content-blog': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/plugin-content-pages': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-blog': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-pages': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3)
       '@docusaurus/utils-common': 2.4.3(@docusaurus/types@2.4.3)
       '@types/history': 4.7.11
@@ -2673,7 +2951,7 @@ packages:
       - webpack-cli
     dev: false
 
-  /@docusaurus/theme-search-algolia@2.4.3(@algolia/client-search@4.20.0)(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.10.0)(typescript@4.9.5):
+  /@docusaurus/theme-search-algolia@2.4.3(@algolia/client-search@4.20.0)(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.10.0)(typescript@4.9.5):
     resolution: {integrity: sha512-jziq4f6YVUB5hZOB85ELATwnxBz/RmSLD3ksGQOLDPKVzat4pmI8tddNWtriPpxR04BNT+ZfpPUMFkNFetSW1Q==}
     engines: {node: '>=16.14'}
     peerDependencies:
@@ -2681,10 +2959,10 @@ packages:
       react-dom: ^16.8.4 || ^17.0.0
     dependencies:
       '@docsearch/react': 3.5.2(@algolia/client-search@4.20.0)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.10.0)
-      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/core': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/logger': 2.4.3
-      '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
-      '@docusaurus/theme-common': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.52.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/plugin-content-docs': 2.4.3(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
+      '@docusaurus/theme-common': 2.4.3(@docusaurus/types@2.4.3)(eslint@8.54.0)(react-dom@17.0.2)(react@17.0.2)(typescript@4.9.5)
       '@docusaurus/theme-translations': 2.4.3
       '@docusaurus/utils': 2.4.3(@docusaurus/types@2.4.3)
       '@docusaurus/utils-validation': 2.4.3(@docusaurus/types@2.4.3)
@@ -3025,45 +3303,19 @@ packages:
     dev: true
     optional: true
 
-  /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0):
-    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    peerDependencies:
-      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
-    dependencies:
-      eslint: 8.52.0
-      eslint-visitor-keys: 3.4.3
-
-  /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0):
+  /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0):
     resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
       eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
     dependencies:
-      eslint: 8.53.0
+      eslint: 8.54.0
       eslint-visitor-keys: 3.4.3
-    dev: false
 
   /@eslint-community/regexpp@4.10.0:
     resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
     engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
 
-  /@eslint/eslintrc@2.1.2:
-    resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dependencies:
-      ajv: 6.12.6
-      debug: 4.3.4
-      espree: 9.6.1
-      globals: 13.23.0
-      ignore: 5.2.4
-      import-fresh: 3.3.0
-      js-yaml: 4.1.0
-      minimatch: 3.1.2
-      strip-json-comments: 3.1.1
-    transitivePeerDependencies:
-      - supports-color
-
   /@eslint/eslintrc@2.1.3:
     resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -3079,16 +3331,10 @@ packages:
       strip-json-comments: 3.1.1
     transitivePeerDependencies:
       - supports-color
-    dev: false
-
-  /@eslint/js@8.52.0:
-    resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 
-  /@eslint/js@8.53.0:
-    resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==}
+  /@eslint/js@8.54.0:
+    resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dev: false
 
   /@hapi/hoek@9.3.0:
     resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
@@ -3136,7 +3382,7 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       chalk: 4.1.2
       jest-message-util: 29.7.0
       jest-util: 29.7.0
@@ -3157,14 +3403,14 @@ packages:
       '@jest/test-result': 29.7.0
       '@jest/transform': 29.7.0
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       ansi-escapes: 4.3.2
       chalk: 4.1.2
       ci-info: 3.9.0
       exit: 0.1.2
       graceful-fs: 4.2.11
       jest-changed-files: 29.7.0
-      jest-config: 29.7.0(@types/node@18.18.8)
+      jest-config: 29.7.0(@types/node@18.18.12)
       jest-haste-map: 29.7.0
       jest-message-util: 29.7.0
       jest-regex-util: 29.6.3
@@ -3192,7 +3438,7 @@ packages:
     dependencies:
       '@jest/fake-timers': 29.7.0
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       jest-mock: 29.7.0
     dev: true
 
@@ -3219,7 +3465,7 @@ packages:
     dependencies:
       '@jest/types': 29.6.3
       '@sinonjs/fake-timers': 10.3.0
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       jest-message-util: 29.7.0
       jest-mock: 29.7.0
       jest-util: 29.7.0
@@ -3251,14 +3497,14 @@ packages:
       '@jest/test-result': 29.7.0
       '@jest/transform': 29.7.0
       '@jest/types': 29.6.3
-      '@jridgewell/trace-mapping': 0.3.19
-      '@types/node': 18.18.8
+      '@jridgewell/trace-mapping': 0.3.20
+      '@types/node': 18.18.12
       chalk: 4.1.2
       collect-v8-coverage: 1.0.2
       exit: 0.1.2
       glob: 7.2.3
       graceful-fs: 4.2.11
-      istanbul-lib-coverage: 3.2.0
+      istanbul-lib-coverage: 3.2.2
       istanbul-lib-instrument: 6.0.1
       istanbul-lib-report: 3.0.1
       istanbul-lib-source-maps: 4.0.1
@@ -3284,7 +3530,7 @@ packages:
     resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
-      '@jridgewell/trace-mapping': 0.3.19
+      '@jridgewell/trace-mapping': 0.3.20
       callsites: 3.1.0
       graceful-fs: 4.2.11
     dev: true
@@ -3295,7 +3541,7 @@ packages:
     dependencies:
       '@jest/console': 29.7.0
       '@jest/types': 29.6.3
-      '@types/istanbul-lib-coverage': 2.0.4
+      '@types/istanbul-lib-coverage': 2.0.6
       collect-v8-coverage: 1.0.2
     dev: true
 
@@ -3313,9 +3559,9 @@ packages:
     resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
-      '@babel/core': 7.23.0
+      '@babel/core': 7.23.3
       '@jest/types': 29.6.3
-      '@jridgewell/trace-mapping': 0.3.19
+      '@jridgewell/trace-mapping': 0.3.20
       babel-plugin-istanbul: 6.1.1
       chalk: 4.1.2
       convert-source-map: 2.0.0
@@ -3337,10 +3583,10 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/schemas': 29.6.3
-      '@types/istanbul-lib-coverage': 2.0.4
-      '@types/istanbul-reports': 3.0.2
-      '@types/node': 18.18.8
-      '@types/yargs': 17.0.28
+      '@types/istanbul-lib-coverage': 2.0.6
+      '@types/istanbul-reports': 3.0.4
+      '@types/node': 18.18.12
+      '@types/yargs': 17.0.31
       chalk: 4.1.2
 
   /@jridgewell/gen-mapping@0.3.3:
@@ -3363,17 +3609,11 @@ packages:
     resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==}
     dependencies:
       '@jridgewell/gen-mapping': 0.3.3
-      '@jridgewell/trace-mapping': 0.3.19
+      '@jridgewell/trace-mapping': 0.3.20
 
   /@jridgewell/sourcemap-codec@1.4.15:
     resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
 
-  /@jridgewell/trace-mapping@0.3.19:
-    resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==}
-    dependencies:
-      '@jridgewell/resolve-uri': 3.1.1
-      '@jridgewell/sourcemap-codec': 1.4.15
-
   /@jridgewell/trace-mapping@0.3.20:
     resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
     dependencies:
@@ -3394,22 +3634,22 @@ packages:
   /@manypkg/find-root@1.1.0:
     resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@types/node': 12.20.55
       find-up: 4.1.0
       fs-extra: 8.1.0
-    dev: false
+    dev: true
 
   /@manypkg/get-packages@1.1.3:
     resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
     dependencies:
-      '@babel/runtime': 7.23.1
+      '@babel/runtime': 7.23.2
       '@changesets/types': 4.1.0
       '@manypkg/find-root': 1.1.0
       fs-extra: 8.1.0
       globby: 11.1.0
       read-yaml-file: 1.1.0
-    dev: false
+    dev: true
 
   /@mdx-js/mdx@1.6.22:
     resolution: {integrity: sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==}
@@ -3580,7 +3820,7 @@ packages:
     dependencies:
       '@edge-runtime/types': 2.2.4
       '@sinclair/typebox': 0.29.6
-      '@types/node': 18.18.7
+      '@types/node': 18.18.8
       ajv: 8.12.0
       cross-fetch: 3.1.8(encoding@0.1.13)
       encoding: 0.1.13
@@ -3603,6 +3843,49 @@ packages:
     resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==}
     dev: false
 
+  /@protobufjs/aspromise@1.1.2:
+    resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
+    dev: false
+
+  /@protobufjs/base64@1.1.2:
+    resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
+    dev: false
+
+  /@protobufjs/codegen@2.0.4:
+    resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
+    dev: false
+
+  /@protobufjs/eventemitter@1.1.0:
+    resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
+    dev: false
+
+  /@protobufjs/fetch@1.1.0:
+    resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
+    dependencies:
+      '@protobufjs/aspromise': 1.1.2
+      '@protobufjs/inquire': 1.1.0
+    dev: false
+
+  /@protobufjs/float@1.0.2:
+    resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
+    dev: false
+
+  /@protobufjs/inquire@1.1.0:
+    resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
+    dev: false
+
+  /@protobufjs/path@1.1.2:
+    resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
+    dev: false
+
+  /@protobufjs/pool@1.1.0:
+    resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
+    dev: false
+
+  /@protobufjs/utf8@1.1.0:
+    resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
+    dev: false
+
   /@rushstack/eslint-patch@1.2.0:
     resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==}
     dev: false
@@ -3630,6 +3913,11 @@ packages:
     engines: {node: '>=6'}
     dev: false
 
+  /@sindresorhus/is@2.1.1:
+    resolution: {integrity: sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==}
+    engines: {node: '>=10'}
+    dev: true
+
   /@sinonjs/commons@3.0.0:
     resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==}
     dependencies:
@@ -3817,6 +4105,13 @@ packages:
       defer-to-connect: 1.1.3
     dev: false
 
+  /@szmarczak/http-timer@4.0.6:
+    resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
+    engines: {node: '>=10'}
+    dependencies:
+      defer-to-connect: 2.0.1
+    dev: true
+
   /@tootallnate/quickjs-emscripten@0.23.0:
     resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
     dev: true
@@ -3846,7 +4141,7 @@ packages:
     resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
     dev: true
 
-  /@turbo/gen@1.10.16(@types/node@18.18.8)(typescript@5.2.2):
+  /@turbo/gen@1.10.16(@types/node@18.18.12)(typescript@4.9.5):
     resolution: {integrity: sha512-PzyluADjVuy5OcIi+/aRcD70OElQpRVRDdfZ9fH8G5Fv75lQcNrjd1bBGKmhjSw+g+eTEkXMGnY7s6gsCYjYTQ==}
     hasBin: true
     dependencies:
@@ -3858,7 +4153,7 @@ packages:
       minimatch: 9.0.3
       node-plop: 0.26.3
       proxy-agent: 6.3.1
-      ts-node: 10.9.1(@types/node@18.18.8)(typescript@5.2.2)
+      ts-node: 10.9.1(@types/node@18.18.12)(typescript@4.9.5)
       update-check: 1.5.4
       validate-npm-package-name: 5.0.0
     transitivePeerDependencies:
@@ -3876,7 +4171,7 @@ packages:
       chalk: 2.4.2
       commander: 10.0.1
       execa: 5.1.1
-      fast-glob: 3.3.1
+      fast-glob: 3.3.2
       fs-extra: 10.1.0
       gradient-string: 2.0.2
       inquirer: 8.2.6
@@ -3887,61 +4182,90 @@ packages:
       update-check: 1.5.4
     dev: true
 
-  /@types/babel__core@7.20.2:
-    resolution: {integrity: sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==}
+  /@types/async-retry@1.4.2:
+    resolution: {integrity: sha512-GUDuJURF0YiJZ+CBjNQA0+vbP/VHlJbB0sFqkzsV7EcOPRfurVonXpXKAt3w8qIjM1TEzpz6hc6POocPvHOS3w==}
     dependencies:
-      '@babel/parser': 7.23.0
-      '@babel/types': 7.23.0
-      '@types/babel__generator': 7.6.5
-      '@types/babel__template': 7.4.2
-      '@types/babel__traverse': 7.20.2
+      '@types/retry': 0.12.5
     dev: true
 
-  /@types/babel__generator@7.6.5:
-    resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==}
+  /@types/babel__core@7.20.4:
+    resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==}
     dependencies:
-      '@babel/types': 7.23.0
+      '@babel/parser': 7.23.3
+      '@babel/types': 7.23.3
+      '@types/babel__generator': 7.6.7
+      '@types/babel__template': 7.4.4
+      '@types/babel__traverse': 7.20.4
     dev: true
 
-  /@types/babel__template@7.4.2:
-    resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==}
+  /@types/babel__generator@7.6.7:
+    resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==}
     dependencies:
-      '@babel/parser': 7.23.0
-      '@babel/types': 7.23.0
+      '@babel/types': 7.23.3
     dev: true
 
-  /@types/babel__traverse@7.20.2:
-    resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==}
+  /@types/babel__template@7.4.4:
+    resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
     dependencies:
-      '@babel/types': 7.23.0
+      '@babel/parser': 7.23.3
+      '@babel/types': 7.23.3
+    dev: true
+
+  /@types/babel__traverse@7.20.4:
+    resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==}
+    dependencies:
+      '@babel/types': 7.23.3
     dev: true
 
   /@types/body-parser@1.19.3:
     resolution: {integrity: sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==}
     dependencies:
       '@types/connect': 3.4.36
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
   /@types/bonjour@3.5.11:
     resolution: {integrity: sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
+  /@types/cacheable-request@6.0.3:
+    resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
+    dependencies:
+      '@types/http-cache-semantics': 4.0.4
+      '@types/keyv': 3.1.4
+      '@types/node': 18.18.12
+      '@types/responselike': 1.0.3
+    dev: true
+
+  /@types/ci-info@2.0.0:
+    resolution: {integrity: sha512-5R2/MHILQLDCzTuhs1j4Qqq8AaKUf7Ma4KSSkCtc12+fMs47zfa34qhto9goxpyX00tQK1zxB885VCiawZ5Qhg==}
+    dev: true
+
   /@types/connect-history-api-fallback@1.5.1:
     resolution: {integrity: sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==}
     dependencies:
       '@types/express-serve-static-core': 4.17.37
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
   /@types/connect@3.4.36:
     resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
+  /@types/cross-spawn@6.0.0:
+    resolution: {integrity: sha512-evp2ZGsFw9YKprDbg8ySgC9NA15g3YgiI8ANkGmKKvvi0P2aDGYLPxQIC5qfeKNUOe3TjABVGuah6omPRpIYhg==}
+    dependencies:
+      '@types/node': 18.18.12
+    dev: true
+
+  /@types/crypto-js@4.2.1:
+    resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==}
+    dev: true
+
   /@types/eslint-scope@3.7.5:
     resolution: {integrity: sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==}
     dependencies:
@@ -3978,7 +4302,7 @@ packages:
   /@types/express-serve-static-core@4.17.37:
     resolution: {integrity: sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       '@types/qs': 6.9.8
       '@types/range-parser': 1.2.5
       '@types/send': 0.17.2
@@ -3997,13 +4321,13 @@ packages:
     resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
     dependencies:
       '@types/minimatch': 5.1.2
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: true
 
-  /@types/graceful-fs@4.1.7:
-    resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==}
+  /@types/graceful-fs@4.1.9:
+    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: true
 
   /@types/hast@2.3.6:
@@ -4019,6 +4343,10 @@ packages:
     resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==}
     dev: false
 
+  /@types/http-cache-semantics@4.0.4:
+    resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
+    dev: true
+
   /@types/http-errors@2.0.2:
     resolution: {integrity: sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==}
     dev: false
@@ -4026,37 +4354,37 @@ packages:
   /@types/http-proxy@1.17.12:
     resolution: {integrity: sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
   /@types/inquirer@6.5.0:
     resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==}
     dependencies:
-      '@types/through': 0.0.31
+      '@types/through': 0.0.33
       rxjs: 6.6.7
     dev: true
 
-  /@types/is-ci@3.0.1:
-    resolution: {integrity: sha512-mnb1ngaGQPm6LFZaNdh3xPOoQMkrQb/KBPhPPN2p2Wk8XgeUqWj6xPnvyQ8rvcK/VFritVmQG8tvQuy7g+9/nQ==}
+  /@types/is-ci@3.0.4:
+    resolution: {integrity: sha512-AkCYCmwlXeuH89DagDCzvCAyltI2v9lh3U3DqSg/GrBYoReAaWwxfXCqMx9UV5MajLZ4ZFwZzV4cABGIxk2XRw==}
     dependencies:
       ci-info: 3.9.0
-    dev: false
+    dev: true
 
-  /@types/istanbul-lib-coverage@2.0.4:
-    resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
+  /@types/istanbul-lib-coverage@2.0.6:
+    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
 
-  /@types/istanbul-lib-report@3.0.1:
-    resolution: {integrity: sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==}
+  /@types/istanbul-lib-report@3.0.3:
+    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
     dependencies:
-      '@types/istanbul-lib-coverage': 2.0.4
+      '@types/istanbul-lib-coverage': 2.0.6
 
-  /@types/istanbul-reports@3.0.2:
-    resolution: {integrity: sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==}
+  /@types/istanbul-reports@3.0.4:
+    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
     dependencies:
-      '@types/istanbul-lib-report': 3.0.1
+      '@types/istanbul-lib-report': 3.0.3
 
-  /@types/jest@29.5.6:
-    resolution: {integrity: sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==}
+  /@types/jest@29.5.10:
+    resolution: {integrity: sha512-tE4yxKEphEyxj9s4inideLHktW/x6DwesIwWZ9NN1FKf9zbJYsnhBoA9vrHA/IuIOKwPa5PcFBNV4lpMIOEzyQ==}
     dependencies:
       expect: 29.7.0
       pretty-format: 29.7.0
@@ -4076,17 +4404,20 @@ packages:
   /@types/keyv@3.1.4:
     resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
     dependencies:
-      '@types/node': 18.18.8
-    dev: false
+      '@types/node': 18.18.12
 
   /@types/lodash-es@4.17.10:
     resolution: {integrity: sha512-YJP+w/2khSBwbUSFdGsSqmDvmnN3cCKoPOL7Zjle6s30ZtemkkqhjVfFqGwPN7ASil5VyjE2GtyU/yqYY6mC0A==}
     dependencies:
-      '@types/lodash': 4.14.200
+      '@types/lodash': 4.14.202
     dev: false
 
-  /@types/lodash@4.14.200:
-    resolution: {integrity: sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==}
+  /@types/lodash@4.14.202:
+    resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==}
+
+  /@types/long@4.0.2:
+    resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==}
+    dev: false
 
   /@types/mdast@3.0.13:
     resolution: {integrity: sha512-HjiGiWedR0DVFkeNljpa6Lv4/IZU1+30VY5d747K7lBudFc3R0Ibr6yJ9lN3BE28VnZyDfLF/VB1Ql1ZIbKrmg==}
@@ -4106,57 +4437,62 @@ packages:
     resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
     dev: true
 
-  /@types/minimist@1.2.3:
-    resolution: {integrity: sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==}
-    dev: false
+  /@types/minimist@1.2.5:
+    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
+    dev: true
 
   /@types/node-fetch@2.6.6:
     resolution: {integrity: sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==}
     dependencies:
-      '@types/node': 18.18.8
-      form-data: 4.0.0
-    dev: false
-
-  /@types/node-fetch@2.6.8:
-    resolution: {integrity: sha512-nnH5lV9QCMPsbEVdTb5Y+F3GQxLSw1xQgIydrb2gSfEavRPs50FnMr+KUaa+LoPSqibm2N+ZZxH7lavZlAT4GA==}
-    dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       form-data: 4.0.0
     dev: false
 
   /@types/node-fetch@2.6.9:
     resolution: {integrity: sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       form-data: 4.0.0
     dev: false
 
   /@types/node@12.20.55:
     resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
-    dev: false
+    dev: true
 
   /@types/node@17.0.45:
     resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
     dev: false
 
+  /@types/node@18.18.12:
+    resolution: {integrity: sha512-G7slVfkwOm7g8VqcEF1/5SXiMjP3Tbt+pXDU3r/qhlM2KkGm786DUD4xyMA2QzEElFrv/KZV9gjygv4LnkpbMQ==}
+    dependencies:
+      undici-types: 5.26.5
+
   /@types/node@18.18.7:
     resolution: {integrity: sha512-bw+lEsxis6eqJYW8Ql6+yTqkE6RuFtsQPSe5JxXbqYRFQEER5aJA9a5UH9igqDWm3X4iLHIKOHlnAXLM4mi7uQ==}
     dependencies:
       undici-types: 5.26.5
+    dev: true
 
   /@types/node@18.18.8:
     resolution: {integrity: sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==}
     dependencies:
       undici-types: 5.26.5
 
-  /@types/normalize-package-data@2.4.2:
-    resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==}
-    dev: false
+  /@types/node@20.9.0:
+    resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==}
+    dependencies:
+      undici-types: 5.26.5
+    dev: true
 
-  /@types/papaparse@5.3.10:
-    resolution: {integrity: sha512-mS1Fta/xJ9EDYmAvpeWzcV9Gr0cOl1ClpW7di9+wSUNDIDO55tBtyXg97O7K+Syrd9rDEmuejM2iqmJIJ1SO5g==}
+  /@types/normalize-package-data@2.4.4:
+    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+    dev: true
+
+  /@types/papaparse@5.3.13:
+    resolution: {integrity: sha512-tYSlZI3tIdBHXea8fZHcmwbsd1mSUikdMUyqpqj0Zzfu2GTGUSHEKmcnBg699WJ8UnxG31rXD4b1mLGPOAxS2w==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: true
 
   /@types/parse-json@4.0.0:
@@ -4167,18 +4503,22 @@ packages:
     resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==}
     dev: false
 
-  /@types/pdf-parse@1.1.3:
-    resolution: {integrity: sha512-+DDIKtFsGMajapzc5A+jL9V1dpLZ5lShAd6Oq0yRu2qFHFr2hhHlZ2rkFiInXOoFSxjxGmyGdCjjHghoHj/x0w==}
+  /@types/pdf-parse@1.1.4:
+    resolution: {integrity: sha512-+gbBHbNCVGGYw1S9lAIIvrHW47UYOhMIFUsJcMkMrzy1Jf0vulBN3XQIjPgnoOXveMuHnF3b57fXROnY/Or7eg==}
     dev: true
 
   /@types/pg@8.10.9:
     resolution: {integrity: sha512-UksbANNE/f8w0wOMxVKKIrLCbEMV+oM1uKejmwXr39olg4xqcfBDbXxObJAt6XxHbDa4XTKOlUEcEltXDX+XLQ==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       pg-protocol: 1.6.0
       pg-types: 4.0.1
     dev: true
 
+  /@types/prompts@2.0.1:
+    resolution: {integrity: sha512-AhtMcmETelF8wFDV1ucbChKhLgsc+ytXZXkNz/nnTAMSDeqsjALknEFxi7ZtLgS/G8bV2rp90LhDW5SGACimIQ==}
+    dev: true
+
   /@types/prop-types@15.7.8:
     resolution: {integrity: sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==}
 
@@ -4217,34 +4557,37 @@ packages:
       '@types/scheduler': 0.16.4
       csstype: 3.1.2
 
-  /@types/responselike@1.0.1:
-    resolution: {integrity: sha512-TiGnitEDxj2X0j+98Eqk5lv/Cij8oHd32bU4D/Yw6AOq7vvTk0gSD2GPj0G/HkvhMoVsdlhYF4yqqlyPBTM6Sg==}
+  /@types/responselike@1.0.3:
+    resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
     dependencies:
-      '@types/node': 18.18.8
-    dev: false
+      '@types/node': 18.18.12
 
   /@types/retry@0.12.0:
     resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
     dev: false
 
+  /@types/retry@0.12.5:
+    resolution: {integrity: sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==}
+    dev: true
+
   /@types/sax@1.2.5:
     resolution: {integrity: sha512-9jWta97bBVC027/MShr3gLab8gPhKy4l6qpb+UJLF5pDm3501NvA7uvqVCW+REFtx00oTi6Cq9JzLwgq6evVgw==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
   /@types/scheduler@0.16.4:
     resolution: {integrity: sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==}
 
-  /@types/semver@7.5.3:
-    resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==}
-    dev: false
+  /@types/semver@7.5.5:
+    resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==}
+    dev: true
 
   /@types/send@0.17.2:
     resolution: {integrity: sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==}
     dependencies:
       '@types/mime': 1.3.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
   /@types/serve-index@1.9.2:
@@ -4258,63 +4601,80 @@ packages:
     dependencies:
       '@types/http-errors': 2.0.2
       '@types/mime': 3.0.2
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
   /@types/sockjs@0.3.34:
     resolution: {integrity: sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
-  /@types/stack-utils@2.0.1:
-    resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
+  /@types/stack-utils@2.0.3:
+    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
     dev: true
 
-  /@types/through@0.0.31:
-    resolution: {integrity: sha512-LpKpmb7FGevYgXnBXYs6HWnmiFyVG07Pt1cnbgM1IhEacITTiUaBXXvOR3Y50ksaJWGSfhbEvQFivQEFGCC55w==}
+  /@types/tar@6.1.5:
+    resolution: {integrity: sha512-qm2I/RlZij5RofuY7vohTpYNaYcrSQlN2MyjucQc7ZweDwaEWkdN/EeNh6e9zjK6uEm6PwjdMXkcj05BxZdX1Q==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
+      minipass: 4.2.8
     dev: true
 
-  /@types/tinycolor2@1.4.4:
-    resolution: {integrity: sha512-FYK4mlLxUUajo/mblv7EUDHku20qT6ThYNsGZsTHilcHRvIkF8WXqtZO+DVTYkpHWCaAT97LueV59H/5Ve3bGA==}
+  /@types/through@0.0.33:
+    resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==}
+    dependencies:
+      '@types/node': 18.18.12
+    dev: true
+
+  /@types/tinycolor2@1.4.6:
+    resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
     dev: true
 
   /@types/unist@2.0.8:
     resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==}
     dev: false
 
-  /@types/uuid@9.0.6:
-    resolution: {integrity: sha512-BT2Krtx4xaO6iwzwMFUYvWBWkV2pr37zD68Vmp1CDV196MzczBRxuEpD6Pr395HAgebC/co7hOphs53r8V7jew==}
+  /@types/uuid@9.0.7:
+    resolution: {integrity: sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==}
+    dev: true
+
+  /@types/validate-npm-package-name@3.0.0:
+    resolution: {integrity: sha512-iFNNIrEaJH1lbPiyX+O/QyxSbKxrTjdNBVZGckt+iEL9So0hdZNBL68sOfHnt2txuUD8UJXvmKv/1DkgkebgUg==}
     dev: true
 
   /@types/webidl-conversions@7.0.2:
     resolution: {integrity: sha512-uNv6b/uGRLlCVmelat2rA8bcVd3k/42mV2EmjhPh6JLkd35T5bgwR/t6xy7a9MWhd9sixIeBUzhBenvk3NO+DQ==}
     dev: false
 
+  /@types/whatwg-url@11.0.3:
+    resolution: {integrity: sha512-z1ELvMijRL1QmU7QuzDkeYXSF2+dXI0ITKoQsIoVKcNBOiK5RMmWy+pYYxJTHFt8vkpZe7UsvRErQwcxZkjoUw==}
+    dependencies:
+      '@types/webidl-conversions': 7.0.2
+    dev: false
+
   /@types/whatwg-url@8.2.2:
     resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       '@types/webidl-conversions': 7.0.2
     dev: false
 
   /@types/ws@8.5.6:
     resolution: {integrity: sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg==}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
     dev: false
 
-  /@types/yargs-parser@21.0.1:
-    resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==}
+  /@types/yargs-parser@21.0.3:
+    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
 
-  /@types/yargs@17.0.28:
-    resolution: {integrity: sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw==}
+  /@types/yargs@17.0.31:
+    resolution: {integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==}
     dependencies:
-      '@types/yargs-parser': 21.0.1
+      '@types/yargs-parser': 21.0.3
 
-  /@typescript-eslint/parser@5.59.2(eslint@8.53.0)(typescript@5.2.2):
+  /@typescript-eslint/parser@5.59.2(eslint@8.54.0)(typescript@4.9.5):
     resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
@@ -4326,10 +4686,10 @@ packages:
     dependencies:
       '@typescript-eslint/scope-manager': 5.59.2
       '@typescript-eslint/types': 5.59.2
-      '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.2.2)
+      '@typescript-eslint/typescript-estree': 5.59.2(typescript@4.9.5)
       debug: 4.3.4
-      eslint: 8.53.0
-      typescript: 5.2.2
+      eslint: 8.54.0
+      typescript: 4.9.5
     transitivePeerDependencies:
       - supports-color
     dev: false
@@ -4347,7 +4707,7 @@ packages:
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dev: false
 
-  /@typescript-eslint/typescript-estree@5.59.2(typescript@5.2.2):
+  /@typescript-eslint/typescript-estree@5.59.2(typescript@4.9.5):
     resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
@@ -4362,8 +4722,8 @@ packages:
       globby: 11.1.0
       is-glob: 4.0.3
       semver: 7.5.4
-      tsutils: 3.21.0(typescript@5.2.2)
-      typescript: 5.2.2
+      tsutils: 3.21.0(typescript@4.9.5)
+      typescript: 4.9.5
     transitivePeerDependencies:
       - supports-color
     dev: false
@@ -4373,12 +4733,17 @@ packages:
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
       '@typescript-eslint/types': 5.59.2
-      eslint-visitor-keys: 3.4.0
+      eslint-visitor-keys: 3.4.3
     dev: false
 
   /@ungap/structured-clone@1.2.0:
     resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
 
+  /@vercel/ncc@0.34.0:
+    resolution: {integrity: sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==}
+    hasBin: true
+    dev: true
+
   /@webassemblyjs/ast@1.11.6:
     resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==}
     dependencies:
@@ -4470,6 +4835,15 @@ packages:
       '@webassemblyjs/ast': 1.11.6
       '@xtuc/long': 4.2.2
 
+  /@xenova/transformers@2.8.0:
+    resolution: {integrity: sha512-+6/cC/iJd7A+B+C3OPuiIw3dhisdUqBRD/f8CAoo2wYfHofF9zn46pH/dTLAOPoI2px7L9+bvJoXSKO18TBj2Q==}
+    dependencies:
+      onnxruntime-web: 1.14.0
+      sharp: 0.32.6
+    optionalDependencies:
+      onnxruntime-node: 1.14.0
+    dev: false
+
   /@xmldom/xmldom@0.8.10:
     resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
     engines: {node: '>=10.0.0'}
@@ -4511,15 +4885,15 @@ packages:
       acorn: 8.11.2
     dev: false
 
-  /acorn-jsx@5.3.2(acorn@8.10.0):
+  /acorn-jsx@5.3.2(acorn@8.11.2):
     resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
     peerDependencies:
       acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
     dependencies:
-      acorn: 8.10.0
+      acorn: 8.11.2
 
-  /acorn-walk@8.2.0:
-    resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
+  /acorn-walk@8.3.0:
+    resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==}
     engines: {node: '>=0.4.0'}
 
   /acorn@8.10.0:
@@ -4531,7 +4905,6 @@ packages:
     resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
     engines: {node: '>=0.4.0'}
     hasBin: true
-    dev: false
 
   /address@1.2.2:
     resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
@@ -4570,7 +4943,6 @@ packages:
         optional: true
     dependencies:
       ajv: 8.12.0
-    dev: false
 
   /ajv-keywords@3.5.2(ajv@6.12.6):
     resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
@@ -4603,7 +4975,6 @@ packages:
       json-schema-traverse: 1.0.0
       require-from-string: 2.0.2
       uri-js: 4.4.1
-    dev: false
 
   /algoliasearch-helper@3.14.2(algoliasearch@4.20.0):
     resolution: {integrity: sha512-FjDSrjvQvJT/SKMW74nPgFpsoPUwZCzGbCqbp8HhBFfSk/OvNFxzCaCmuO0p7AWeLy1gD+muFwQEkBwcl5H4pg==}
@@ -4642,7 +5013,7 @@ packages:
   /ansi-colors@4.1.3:
     resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
     engines: {node: '>=6'}
-    dev: false
+    dev: true
 
   /ansi-escapes@4.3.2:
     resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
@@ -4651,6 +5022,13 @@ packages:
       type-fest: 0.21.3
     dev: true
 
+  /ansi-escapes@5.0.0:
+    resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==}
+    engines: {node: '>=12'}
+    dependencies:
+      type-fest: 1.4.0
+    dev: true
+
   /ansi-html-community@0.0.8:
     resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==}
     engines: {'0': node >= 0.8.0}
@@ -4664,7 +5042,6 @@ packages:
   /ansi-regex@6.0.1:
     resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
     engines: {node: '>=12'}
-    dev: false
 
   /ansi-sequence-parser@1.1.1:
     resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==}
@@ -4690,7 +5067,6 @@ packages:
   /ansi-styles@6.2.1:
     resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
     engines: {node: '>=12'}
-    dev: false
 
   /any-promise@1.3.0:
     resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
@@ -4729,7 +5105,6 @@ packages:
     dependencies:
       call-bind: 1.0.2
       is-array-buffer: 3.0.2
-    dev: false
 
   /array-flatten@1.1.1:
     resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
@@ -4770,9 +5145,9 @@ packages:
     dependencies:
       call-bind: 1.0.5
       define-properties: 1.2.1
-      es-abstract: 1.22.2
-      es-shim-unscopables: 1.0.0
-    dev: false
+      es-abstract: 1.22.3
+      es-shim-unscopables: 1.0.2
+    dev: true
 
   /array.prototype.flatmap@1.3.1:
     resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
@@ -4801,16 +5176,16 @@ packages:
       array-buffer-byte-length: 1.0.0
       call-bind: 1.0.5
       define-properties: 1.2.1
-      es-abstract: 1.22.2
+      es-abstract: 1.22.3
       get-intrinsic: 1.2.2
       is-array-buffer: 3.0.2
       is-shared-array-buffer: 1.0.2
-    dev: false
+    dev: true
 
   /arrify@1.0.1:
     resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
     engines: {node: '>=0.10.0'}
-    dev: false
+    dev: true
 
   /asap@2.0.6:
     resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
@@ -4846,6 +5221,16 @@ packages:
       tslib: 2.6.2
     dev: true
 
+  /async-retry@1.3.1:
+    resolution: {integrity: sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==}
+    dependencies:
+      retry: 0.12.0
+    dev: true
+
+  /async-sema@3.0.1:
+    resolution: {integrity: sha512-fKT2riE8EHAvJEfLJXZiATQWqZttjx1+tfgnVshCDrH8vlw4YC8aECe0B8MU184g+aVRFVgmfxFlKZKaozSrNw==}
+    dev: true
+
   /asynckit@0.4.0:
     resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
     dev: false
@@ -4855,6 +5240,11 @@ packages:
     engines: {node: '>= 4.0.0'}
     dev: false
 
+  /atomically@1.7.0:
+    resolution: {integrity: sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==}
+    engines: {node: '>=10.12.0'}
+    dev: true
+
   /autoprefixer@10.4.16(postcss@8.4.31):
     resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
     engines: {node: ^10 || ^12 || >=14}
@@ -4894,17 +5284,21 @@ packages:
       deep-equal: 2.2.1
     dev: false
 
-  /babel-jest@29.7.0(@babel/core@7.23.0):
+  /b4a@1.6.4:
+    resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==}
+    dev: false
+
+  /babel-jest@29.7.0(@babel/core@7.23.3):
     resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     peerDependencies:
       '@babel/core': ^7.8.0
     dependencies:
-      '@babel/core': 7.23.0
+      '@babel/core': 7.23.3
       '@jest/transform': 29.7.0
-      '@types/babel__core': 7.20.2
+      '@types/babel__core': 7.20.4
       babel-plugin-istanbul: 6.1.1
-      babel-preset-jest: 29.6.3(@babel/core@7.23.0)
+      babel-preset-jest: 29.6.3(@babel/core@7.23.3)
       chalk: 4.1.2
       graceful-fs: 4.2.11
       slash: 3.0.0
@@ -4967,9 +5361,9 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@babel/template': 7.22.15
-      '@babel/types': 7.23.0
-      '@types/babel__core': 7.20.2
-      '@types/babel__traverse': 7.20.2
+      '@babel/types': 7.23.3
+      '@types/babel__core': 7.20.4
+      '@types/babel__traverse': 7.20.4
     dev: true
 
   /babel-plugin-polyfill-corejs2@0.4.5(@babel/core@7.23.0):
@@ -5008,35 +5402,35 @@ packages:
       - supports-color
     dev: false
 
-  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.0):
+  /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3):
     resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
-      '@babel/core': 7.23.0
-      '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.0)
-      '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.0)
-      '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.0)
-      '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.0)
-      '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.0)
-      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.0)
-      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.0)
-      '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.0)
-      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.0)
-      '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.0)
-      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.0)
-      '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.0)
-    dev: true
-
-  /babel-preset-jest@29.6.3(@babel/core@7.23.0):
+      '@babel/core': 7.23.3
+      '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3)
+      '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.3)
+      '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3)
+      '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3)
+      '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3)
+      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3)
+      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3)
+      '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3)
+      '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3)
+      '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3)
+      '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3)
+      '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3)
+    dev: true
+
+  /babel-preset-jest@29.6.3(@babel/core@7.23.3):
     resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     peerDependencies:
       '@babel/core': ^7.0.0
     dependencies:
-      '@babel/core': 7.23.0
+      '@babel/core': 7.23.3
       babel-plugin-jest-hoist: 29.6.3
-      babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0)
+      babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3)
     dev: true
 
   /bail@1.0.5:
@@ -5071,7 +5465,7 @@ packages:
     engines: {node: '>=4'}
     dependencies:
       is-windows: 1.0.2
-    dev: false
+    dev: true
 
   /big-integer@1.6.51:
     resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==}
@@ -5092,7 +5486,6 @@ packages:
       buffer: 5.7.1
       inherits: 2.0.4
       readable-stream: 3.6.2
-    dev: true
 
   /bluebird@3.4.7:
     resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==}
@@ -5196,7 +5589,7 @@ packages:
     resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==}
     dependencies:
       wcwidth: 1.0.1
-    dev: false
+    dev: true
 
   /brorand@1.1.0:
     resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==}
@@ -5319,12 +5712,15 @@ packages:
     dependencies:
       base64-js: 1.5.1
       ieee754: 1.2.1
-    dev: true
 
   /builtin-status-codes@3.0.0:
     resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==}
     dev: true
 
+  /builtins@1.0.3:
+    resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==}
+    dev: true
+
   /builtins@5.0.1:
     resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
     dependencies:
@@ -5370,6 +5766,14 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
+  /cacheable-lookup@2.0.1:
+    resolution: {integrity: sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==}
+    engines: {node: '>=10'}
+    dependencies:
+      '@types/keyv': 3.1.4
+      keyv: 4.5.4
+    dev: true
+
   /cacheable-request@6.1.0:
     resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==}
     engines: {node: '>=8'}
@@ -5383,6 +5787,19 @@ packages:
       responselike: 1.0.2
     dev: false
 
+  /cacheable-request@7.0.4:
+    resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==}
+    engines: {node: '>=8'}
+    dependencies:
+      clone-response: 1.0.3
+      get-stream: 5.2.0
+      http-cache-semantics: 4.1.1
+      keyv: 4.5.4
+      lowercase-keys: 2.0.0
+      normalize-url: 6.1.0
+      responselike: 2.0.1
+    dev: true
+
   /call-bind@1.0.2:
     resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
     dependencies:
@@ -5426,11 +5843,12 @@ packages:
       camelcase: 5.3.1
       map-obj: 4.3.0
       quick-lru: 4.0.1
-    dev: false
+    dev: true
 
   /camelcase@5.3.1:
     resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
     engines: {node: '>=6'}
+    dev: true
 
   /camelcase@6.3.0:
     resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
@@ -5482,6 +5900,11 @@ packages:
       ansi-styles: 4.3.0
       supports-color: 7.2.0
 
+  /chalk@5.3.0:
+    resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
+    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+    dev: true
+
   /change-case@3.1.0:
     resolution: {integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==}
     dependencies:
@@ -5524,6 +5947,7 @@ packages:
 
   /chardet@0.7.0:
     resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+    dev: true
 
   /charenc@0.0.2:
     resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==}
@@ -5567,6 +5991,15 @@ packages:
     optionalDependencies:
       fsevents: 2.3.3
 
+  /chownr@1.1.4:
+    resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
+    dev: false
+
+  /chownr@2.0.0:
+    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
+    engines: {node: '>=10'}
+    dev: true
+
   /chrome-trace-event@1.0.3:
     resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
     engines: {node: '>=6.0'}
@@ -5618,6 +6051,13 @@ packages:
       restore-cursor: 3.1.0
     dev: true
 
+  /cli-cursor@4.0.0:
+    resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+    dependencies:
+      restore-cursor: 4.0.0
+    dev: true
+
   /cli-spinners@2.9.1:
     resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==}
     engines: {node: '>=6'}
@@ -5632,6 +6072,14 @@ packages:
       '@colors/colors': 1.5.0
     dev: false
 
+  /cli-truncate@3.1.0:
+    resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+    dependencies:
+      slice-ansi: 5.0.0
+      string-width: 5.1.2
+    dev: true
+
   /cli-width@3.0.0:
     resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
     engines: {node: '>= 10'}
@@ -5647,7 +6095,7 @@ packages:
       string-width: 4.2.3
       strip-ansi: 6.0.1
       wrap-ansi: 6.2.0
-    dev: false
+    dev: true
 
   /cliui@8.0.1:
     resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
@@ -5656,6 +6104,7 @@ packages:
       string-width: 4.2.3
       strip-ansi: 6.0.1
       wrap-ansi: 7.0.0
+    dev: true
 
   /clone-deep@4.0.1:
     resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
@@ -5669,11 +6118,11 @@ packages:
     resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
     dependencies:
       mimic-response: 1.0.1
-    dev: false
 
   /clone@1.0.4:
     resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
     engines: {node: '>=0.8'}
+    dev: true
 
   /clsx@1.2.1:
     resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
@@ -5717,13 +6166,27 @@ packages:
   /color-name@1.1.4:
     resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
 
+  /color-string@1.9.1:
+    resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
+    dependencies:
+      color-name: 1.1.4
+      simple-swizzle: 0.2.2
+    dev: false
+
+  /color@4.2.3:
+    resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
+    engines: {node: '>=12.5.0'}
+    dependencies:
+      color-convert: 2.0.1
+      color-string: 1.9.1
+    dev: false
+
   /colord@2.9.3:
     resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
     dev: false
 
   /colorette@2.0.20:
     resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
-    dev: false
 
   /combine-promises@1.2.0:
     resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==}
@@ -5749,10 +6212,9 @@ packages:
   /commander@11.1.0:
     resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
     engines: {node: '>=16'}
-    dev: false
 
-  /commander@2.20.3:
-    resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+  /commander@2.20.0:
+    resolution: {integrity: sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==}
 
   /commander@4.1.1:
     resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
@@ -5802,6 +6264,22 @@ packages:
   /concat-map@0.0.1:
     resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
 
+  /conf@10.2.0:
+    resolution: {integrity: sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==}
+    engines: {node: '>=12'}
+    dependencies:
+      ajv: 8.12.0
+      ajv-formats: 2.1.1(ajv@8.12.0)
+      atomically: 1.7.0
+      debounce-fn: 4.0.0
+      dot-prop: 6.0.1
+      env-paths: 2.2.1
+      json-schema-typed: 7.0.3
+      onetime: 5.1.2
+      pkg-up: 3.1.0
+      semver: 7.5.4
+    dev: true
+
   /configstore@5.0.1:
     resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==}
     engines: {node: '>=8'}
@@ -5900,6 +6378,12 @@ packages:
   /core-js-pure@3.33.0:
     resolution: {integrity: sha512-FKSIDtJnds/YFIEaZ4HszRX7hkxGpNKM7FC9aJ9WLJbSd3lD4vOltFuVIBLR8asSx9frkTSqL0dw90SKQxgKrg==}
     requiresBuild: true
+    dev: false
+
+  /core-js-pure@3.33.2:
+    resolution: {integrity: sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q==}
+    requiresBuild: true
+    dev: true
 
   /core-js@3.33.0:
     resolution: {integrity: sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==}
@@ -5976,7 +6460,7 @@ packages:
       sha.js: 2.4.11
     dev: true
 
-  /create-jest@29.7.0(@types/node@18.18.8):
+  /create-jest@29.7.0(@types/node@18.18.12):
     resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     hasBin: true
@@ -5985,7 +6469,7 @@ packages:
       chalk: 4.1.2
       exit: 0.1.2
       graceful-fs: 4.2.11
-      jest-config: 29.7.0(@types/node@18.18.8)
+      jest-config: 29.7.0(@types/node@18.18.12)
       jest-util: 29.7.0
       prompts: 2.4.2
     transitivePeerDependencies:
@@ -6013,7 +6497,7 @@ packages:
       lru-cache: 4.1.5
       shebang-command: 1.2.0
       which: 1.3.1
-    dev: false
+    dev: true
 
   /cross-spawn@7.0.3:
     resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
@@ -6043,6 +6527,10 @@ packages:
       randomfill: 1.0.4
     dev: true
 
+  /crypto-js@4.2.0:
+    resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
+    dev: false
+
   /crypto-random-string@2.0.0:
     resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
     engines: {node: '>=8'}
@@ -6234,15 +6722,15 @@ packages:
 
   /csv-generate@3.4.3:
     resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==}
-    dev: false
+    dev: true
 
   /csv-parse@4.16.3:
     resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==}
-    dev: false
+    dev: true
 
   /csv-stringify@5.6.5:
     resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==}
-    dev: false
+    dev: true
 
   /csv@5.5.3:
     resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==}
@@ -6252,7 +6740,7 @@ packages:
       csv-parse: 4.16.3
       csv-stringify: 5.6.5
       stream-transform: 2.1.3
-    dev: false
+    dev: true
 
   /damerau-levenshtein@1.0.8:
     resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
@@ -6263,6 +6751,13 @@ packages:
     engines: {node: '>= 14'}
     dev: true
 
+  /debounce-fn@4.0.0:
+    resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==}
+    engines: {node: '>=10'}
+    dependencies:
+      mimic-fn: 3.1.0
+    dev: true
+
   /debug@2.6.9:
     resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
     peerDependencies:
@@ -6302,12 +6797,12 @@ packages:
     dependencies:
       decamelize: 1.2.0
       map-obj: 1.0.1
-    dev: false
+    dev: true
 
   /decamelize@1.2.0:
     resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
     engines: {node: '>=0.10.0'}
-    dev: false
+    dev: true
 
   /decompress-response@3.3.0:
     resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==}
@@ -6316,6 +6811,20 @@ packages:
       mimic-response: 1.0.1
     dev: false
 
+  /decompress-response@5.0.0:
+    resolution: {integrity: sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==}
+    engines: {node: '>=10'}
+    dependencies:
+      mimic-response: 2.1.0
+    dev: true
+
+  /decompress-response@6.0.0:
+    resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
+    engines: {node: '>=10'}
+    dependencies:
+      mimic-response: 3.1.0
+    dev: false
+
   /dedent@1.5.1:
     resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==}
     peerDependencies:
@@ -6388,11 +6897,17 @@ packages:
     resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
     dependencies:
       clone: 1.0.4
+    dev: true
 
   /defer-to-connect@1.1.3:
     resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==}
     dev: false
 
+  /defer-to-connect@2.0.1:
+    resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
+    engines: {node: '>=10'}
+    dev: true
+
   /define-data-property@1.1.0:
     resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==}
     engines: {node: '>= 0.4'}
@@ -6425,7 +6940,6 @@ packages:
     dependencies:
       has-property-descriptors: 1.0.0
       object-keys: 1.1.1
-    dev: false
 
   /define-properties@1.2.1:
     resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
@@ -6508,6 +7022,11 @@ packages:
   /detect-indent@6.1.0:
     resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
     engines: {node: '>=8'}
+    dev: true
+
+  /detect-libc@2.0.2:
+    resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
+    engines: {node: '>=8'}
     dev: false
 
   /detect-newline@3.1.0:
@@ -6690,6 +7209,18 @@ packages:
       is-obj: 2.0.0
     dev: false
 
+  /dot-prop@6.0.1:
+    resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==}
+    engines: {node: '>=10'}
+    dependencies:
+      is-obj: 2.0.0
+    dev: true
+
+  /dotenv@16.3.1:
+    resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==}
+    engines: {node: '>=12'}
+    dev: false
+
   /duck@0.1.12:
     resolution: {integrity: sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==}
     dependencies:
@@ -6698,7 +7229,6 @@ packages:
 
   /duplexer3@0.1.5:
     resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==}
-    dev: false
 
   /duplexer@0.1.2:
     resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
@@ -6706,7 +7236,6 @@ packages:
 
   /eastasianwidth@0.2.0:
     resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
-    dev: false
 
   /ee-first@1.1.1:
     resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -6740,7 +7269,6 @@ packages:
 
   /emoji-regex@9.2.2:
     resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
-    dev: false
 
   /emojis-list@3.0.0:
     resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
@@ -6766,7 +7294,6 @@ packages:
     resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
     dependencies:
       once: 1.4.0
-    dev: false
 
   /enhanced-resolve@5.13.0:
     resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==}
@@ -6789,7 +7316,7 @@ packages:
     dependencies:
       ansi-colors: 4.1.3
       strip-ansi: 6.0.1
-    dev: false
+    dev: true
 
   /entities@2.2.0:
     resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
@@ -6800,6 +7327,11 @@ packages:
     engines: {node: '>=0.12'}
     dev: false
 
+  /env-paths@2.2.1:
+    resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
+    engines: {node: '>=6'}
+    dev: true
+
   /error-ex@1.3.2:
     resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
     dependencies:
@@ -6845,26 +7377,26 @@ packages:
       which-typed-array: 1.1.11
     dev: false
 
-  /es-abstract@1.22.2:
-    resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==}
+  /es-abstract@1.22.3:
+    resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
     engines: {node: '>= 0.4'}
     dependencies:
       array-buffer-byte-length: 1.0.0
       arraybuffer.prototype.slice: 1.0.2
       available-typed-arrays: 1.0.5
       call-bind: 1.0.5
-      es-set-tostringtag: 2.0.1
+      es-set-tostringtag: 2.0.2
       es-to-primitive: 1.2.1
       function.prototype.name: 1.1.6
       get-intrinsic: 1.2.2
       get-symbol-description: 1.0.0
       globalthis: 1.0.3
       gopd: 1.0.1
-      has: 1.0.4
-      has-property-descriptors: 1.0.0
+      has-property-descriptors: 1.0.1
       has-proto: 1.0.1
       has-symbols: 1.0.3
-      internal-slot: 1.0.5
+      hasown: 2.0.0
+      internal-slot: 1.0.6
       is-array-buffer: 3.0.2
       is-callable: 1.2.7
       is-negative-zero: 2.0.2
@@ -6873,7 +7405,7 @@ packages:
       is-string: 1.0.7
       is-typed-array: 1.1.12
       is-weakref: 1.0.2
-      object-inspect: 1.12.3
+      object-inspect: 1.13.1
       object-keys: 1.1.1
       object.assign: 4.1.4
       regexp.prototype.flags: 1.5.1
@@ -6888,7 +7420,7 @@ packages:
       typed-array-length: 1.0.4
       unbox-primitive: 1.0.2
       which-typed-array: 1.1.13
-    dev: false
+    dev: true
 
   /es-get-iterator@1.1.3:
     resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
@@ -6907,6 +7439,10 @@ packages:
   /es-module-lexer@1.3.1:
     resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==}
 
+  /es-module-lexer@1.4.1:
+    resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==}
+    dev: false
+
   /es-set-tostringtag@2.0.1:
     resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
     engines: {node: '>= 0.4'}
@@ -6916,12 +7452,27 @@ packages:
       has-tostringtag: 1.0.0
     dev: false
 
+  /es-set-tostringtag@2.0.2:
+    resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
+    engines: {node: '>= 0.4'}
+    dependencies:
+      get-intrinsic: 1.2.2
+      has-tostringtag: 1.0.0
+      hasown: 2.0.0
+    dev: true
+
   /es-shim-unscopables@1.0.0:
     resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
     dependencies:
       has: 1.0.3
     dev: false
 
+  /es-shim-unscopables@1.0.2:
+    resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
+    dependencies:
+      hasown: 2.0.0
+    dev: true
+
   /es-to-primitive@1.2.1:
     resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
     engines: {node: '>= 0.4'}
@@ -6929,7 +7480,6 @@ packages:
       is-callable: 1.2.7
       is-date-object: 1.0.5
       is-symbol: 1.0.4
-    dev: false
 
   /esbuild@0.18.20:
     resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
@@ -6999,7 +7549,7 @@ packages:
       source-map: 0.6.1
     dev: true
 
-  /eslint-config-next@13.4.1(eslint@8.53.0)(typescript@5.2.2):
+  /eslint-config-next@13.4.1(eslint@8.54.0)(typescript@4.9.5):
     resolution: {integrity: sha512-ajuxjCkW1hvirr0EQZb3/B/bFH52Z7CT89uCtTcICFL9l30i5c8hN4p0LXvTjdOXNPV5fEDcxBgGHgXdzTj1/A==}
     peerDependencies:
       eslint: ^7.23.0 || ^8.0.0
@@ -7010,36 +7560,36 @@ packages:
     dependencies:
       '@next/eslint-plugin-next': 13.4.1
       '@rushstack/eslint-patch': 1.2.0
-      '@typescript-eslint/parser': 5.59.2(eslint@8.53.0)(typescript@5.2.2)
-      eslint: 8.53.0
+      '@typescript-eslint/parser': 5.59.2(eslint@8.54.0)(typescript@4.9.5)
+      eslint: 8.54.0
       eslint-import-resolver-node: 0.3.7
-      eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.53.0)
-      eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.53.0)
-      eslint-plugin-jsx-a11y: 6.7.1(eslint@8.53.0)
-      eslint-plugin-react: 7.32.2(eslint@8.53.0)
-      eslint-plugin-react-hooks: 4.6.0(eslint@8.53.0)
-      typescript: 5.2.2
+      eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.54.0)
+      eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.54.0)
+      eslint-plugin-jsx-a11y: 6.7.1(eslint@8.54.0)
+      eslint-plugin-react: 7.32.2(eslint@8.54.0)
+      eslint-plugin-react-hooks: 4.6.0(eslint@8.54.0)
+      typescript: 4.9.5
     transitivePeerDependencies:
       - eslint-import-resolver-webpack
       - supports-color
     dev: false
 
-  /eslint-config-prettier@8.8.0(eslint@8.53.0):
+  /eslint-config-prettier@8.8.0(eslint@8.54.0):
     resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==}
     hasBin: true
     peerDependencies:
       eslint: '>=7.0.0'
     dependencies:
-      eslint: 8.53.0
+      eslint: 8.54.0
     dev: false
 
-  /eslint-config-turbo@1.9.3(eslint@8.53.0):
+  /eslint-config-turbo@1.9.3(eslint@8.54.0):
     resolution: {integrity: sha512-QG6jxFQkrGSpQqlFKefPdtgUfr20EbU0s4tGGIuGFOcPuJEdsY6VYZpZUxNJvmMcTGqPgMyOPjAFBKhy/DPHLA==}
     peerDependencies:
       eslint: '>6.6.0'
     dependencies:
-      eslint: 8.53.0
-      eslint-plugin-turbo: 1.9.3(eslint@8.53.0)
+      eslint: 8.54.0
+      eslint-plugin-turbo: 1.9.3(eslint@8.54.0)
     dev: false
 
   /eslint-import-resolver-node@0.3.7:
@@ -7052,7 +7602,7 @@ packages:
       - supports-color
     dev: false
 
-  /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.53.0):
+  /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.54.0):
     resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
@@ -7061,9 +7611,9 @@ packages:
     dependencies:
       debug: 4.3.4
       enhanced-resolve: 5.13.0
-      eslint: 8.53.0
-      eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.53.0)
-      eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.53.0)
+      eslint: 8.54.0
+      eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.54.0)
+      eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.54.0)
       get-tsconfig: 4.5.0
       globby: 13.1.4
       is-core-module: 2.12.0
@@ -7076,7 +7626,7 @@ packages:
       - supports-color
     dev: false
 
-  /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.53.0):
+  /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.54.0):
     resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
     engines: {node: '>=4'}
     peerDependencies:
@@ -7097,16 +7647,16 @@ packages:
       eslint-import-resolver-webpack:
         optional: true
     dependencies:
-      '@typescript-eslint/parser': 5.59.2(eslint@8.53.0)(typescript@5.2.2)
+      '@typescript-eslint/parser': 5.59.2(eslint@8.54.0)(typescript@4.9.5)
       debug: 3.2.7
-      eslint: 8.53.0
+      eslint: 8.54.0
       eslint-import-resolver-node: 0.3.7
-      eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.53.0)
+      eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.54.0)
     transitivePeerDependencies:
       - supports-color
     dev: false
 
-  /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.53.0):
+  /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.54.0):
     resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
     engines: {node: '>=4'}
     peerDependencies:
@@ -7116,22 +7666,22 @@ packages:
       '@typescript-eslint/parser':
         optional: true
     dependencies:
-      '@typescript-eslint/parser': 5.59.2(eslint@8.53.0)(typescript@5.2.2)
+      '@typescript-eslint/parser': 5.59.2(eslint@8.54.0)(typescript@4.9.5)
       array-includes: 3.1.6
       array.prototype.flat: 1.3.1
       array.prototype.flatmap: 1.3.1
       debug: 3.2.7
       doctrine: 2.1.0
-      eslint: 8.53.0
+      eslint: 8.54.0
       eslint-import-resolver-node: 0.3.7
-      eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.53.0)
+      eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.54.0)
       has: 1.0.3
       is-core-module: 2.12.0
       is-glob: 4.0.3
       minimatch: 3.1.2
       object.values: 1.1.6
       resolve: 1.22.4
-      semver: 6.3.0
+      semver: 6.3.1
       tsconfig-paths: 3.14.2
     transitivePeerDependencies:
       - eslint-import-resolver-typescript
@@ -7139,7 +7689,7 @@ packages:
       - supports-color
     dev: false
 
-  /eslint-plugin-jsx-a11y@6.7.1(eslint@8.53.0):
+  /eslint-plugin-jsx-a11y@6.7.1(eslint@8.54.0):
     resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==}
     engines: {node: '>=4.0'}
     peerDependencies:
@@ -7154,26 +7704,26 @@ packages:
       axobject-query: 3.1.1
       damerau-levenshtein: 1.0.8
       emoji-regex: 9.2.2
-      eslint: 8.53.0
+      eslint: 8.54.0
       has: 1.0.3
       jsx-ast-utils: 3.3.3
       language-tags: 1.0.5
       minimatch: 3.1.2
       object.entries: 1.1.6
       object.fromentries: 2.0.6
-      semver: 6.3.0
+      semver: 6.3.1
     dev: false
 
-  /eslint-plugin-react-hooks@4.6.0(eslint@8.53.0):
+  /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0):
     resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
     engines: {node: '>=10'}
     peerDependencies:
       eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
     dependencies:
-      eslint: 8.53.0
+      eslint: 8.54.0
     dev: false
 
-  /eslint-plugin-react@7.28.0(eslint@8.53.0):
+  /eslint-plugin-react@7.28.0(eslint@8.54.0):
     resolution: {integrity: sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==}
     engines: {node: '>=4'}
     peerDependencies:
@@ -7182,7 +7732,7 @@ packages:
       array-includes: 3.1.6
       array.prototype.flatmap: 1.3.1
       doctrine: 2.1.0
-      eslint: 8.53.0
+      eslint: 8.54.0
       estraverse: 5.3.0
       jsx-ast-utils: 3.3.3
       minimatch: 3.1.2
@@ -7196,7 +7746,7 @@ packages:
       string.prototype.matchall: 4.0.8
     dev: false
 
-  /eslint-plugin-react@7.32.2(eslint@8.53.0):
+  /eslint-plugin-react@7.32.2(eslint@8.54.0):
     resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==}
     engines: {node: '>=4'}
     peerDependencies:
@@ -7206,7 +7756,7 @@ packages:
       array.prototype.flatmap: 1.3.1
       array.prototype.tosorted: 1.1.1
       doctrine: 2.1.0
-      eslint: 8.53.0
+      eslint: 8.54.0
       estraverse: 5.3.0
       jsx-ast-utils: 3.3.3
       minimatch: 3.1.2
@@ -7216,16 +7766,16 @@ packages:
       object.values: 1.1.6
       prop-types: 15.8.1
       resolve: 2.0.0-next.4
-      semver: 6.3.0
+      semver: 6.3.1
       string.prototype.matchall: 4.0.8
     dev: false
 
-  /eslint-plugin-turbo@1.9.3(eslint@8.53.0):
+  /eslint-plugin-turbo@1.9.3(eslint@8.54.0):
     resolution: {integrity: sha512-ZsRtksdzk3v+z5/I/K4E50E4lfZ7oYmLX395gkrUMBz4/spJlYbr+GC8hP9oVNLj9s5Pvnm9rLv/zoj5PVYaVw==}
     peerDependencies:
       eslint: '>6.6.0'
     dependencies:
-      eslint: 8.53.0
+      eslint: 8.54.0
     dev: false
 
   /eslint-scope@5.1.1:
@@ -7242,70 +7792,19 @@ packages:
       esrecurse: 4.3.0
       estraverse: 5.3.0
 
-  /eslint-visitor-keys@3.4.0:
-    resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dev: false
-
   /eslint-visitor-keys@3.4.3:
     resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 
-  /eslint@8.52.0:
-    resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    hasBin: true
-    dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0)
-      '@eslint-community/regexpp': 4.10.0
-      '@eslint/eslintrc': 2.1.2
-      '@eslint/js': 8.52.0
-      '@humanwhocodes/config-array': 0.11.13
-      '@humanwhocodes/module-importer': 1.0.1
-      '@nodelib/fs.walk': 1.2.8
-      '@ungap/structured-clone': 1.2.0
-      ajv: 6.12.6
-      chalk: 4.1.2
-      cross-spawn: 7.0.3
-      debug: 4.3.4
-      doctrine: 3.0.0
-      escape-string-regexp: 4.0.0
-      eslint-scope: 7.2.2
-      eslint-visitor-keys: 3.4.3
-      espree: 9.6.1
-      esquery: 1.5.0
-      esutils: 2.0.3
-      fast-deep-equal: 3.1.3
-      file-entry-cache: 6.0.1
-      find-up: 5.0.0
-      glob-parent: 6.0.2
-      globals: 13.23.0
-      graphemer: 1.4.0
-      ignore: 5.2.4
-      imurmurhash: 0.1.4
-      is-glob: 4.0.3
-      is-path-inside: 3.0.3
-      js-yaml: 4.1.0
-      json-stable-stringify-without-jsonify: 1.0.1
-      levn: 0.4.1
-      lodash.merge: 4.6.2
-      minimatch: 3.1.2
-      natural-compare: 1.4.0
-      optionator: 0.9.3
-      strip-ansi: 6.0.1
-      text-table: 0.2.0
-    transitivePeerDependencies:
-      - supports-color
-
-  /eslint@8.53.0:
-    resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==}
+  /eslint@8.54.0:
+    resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     hasBin: true
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
+      '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0)
       '@eslint-community/regexpp': 4.10.0
       '@eslint/eslintrc': 2.1.3
-      '@eslint/js': 8.53.0
+      '@eslint/js': 8.54.0
       '@humanwhocodes/config-array': 0.11.13
       '@humanwhocodes/module-importer': 1.0.1
       '@nodelib/fs.walk': 1.2.8
@@ -7342,14 +7841,13 @@ packages:
       text-table: 0.2.0
     transitivePeerDependencies:
       - supports-color
-    dev: false
 
   /espree@9.6.1:
     resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
-      acorn: 8.10.0
-      acorn-jsx: 5.3.2(acorn@8.10.0)
+      acorn: 8.11.2
+      acorn-jsx: 5.3.2(acorn@8.11.2)
       eslint-visitor-keys: 3.4.3
 
   /esprima@4.0.1:
@@ -7395,7 +7893,7 @@ packages:
     resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==}
     engines: {node: '>= 0.8'}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       require-like: 0.1.2
     dev: false
 
@@ -7408,6 +7906,10 @@ packages:
     resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
     dev: false
 
+  /eventemitter3@5.0.1:
+    resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+    dev: true
+
   /events@3.3.0:
     resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
     engines: {node: '>=0.8.x'}
@@ -7448,11 +7950,31 @@ packages:
       strip-final-newline: 3.0.0
     dev: false
 
+  /execa@8.0.1:
+    resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+    engines: {node: '>=16.17'}
+    dependencies:
+      cross-spawn: 7.0.3
+      get-stream: 8.0.1
+      human-signals: 5.0.0
+      is-stream: 3.0.0
+      merge-stream: 2.0.0
+      npm-run-path: 5.1.0
+      onetime: 6.0.0
+      signal-exit: 4.1.0
+      strip-final-newline: 3.0.0
+    dev: true
+
   /exit@0.1.2:
     resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
     engines: {node: '>= 0.8.0'}
     dev: true
 
+  /expand-template@2.0.3:
+    resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
+    engines: {node: '>=6'}
+    dev: false
+
   /expect@29.7.0:
     resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -7516,7 +8038,7 @@ packages:
 
   /extendable-error@0.1.7:
     resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
-    dev: false
+    dev: true
 
   /external-editor@3.1.0:
     resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
@@ -7525,10 +8047,15 @@ packages:
       chardet: 0.7.0
       iconv-lite: 0.4.24
       tmp: 0.0.33
+    dev: true
 
   /fast-deep-equal@3.1.3:
     resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
 
+  /fast-fifo@1.3.2:
+    resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
+    dev: false
+
   /fast-glob@3.3.1:
     resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
     engines: {node: '>=8.6.0'}
@@ -7623,7 +8150,7 @@ packages:
     resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
     engines: {node: ^10.12.0 || >=12.0.0}
     dependencies:
-      flat-cache: 3.1.1
+      flat-cache: 3.2.0
 
   /file-loader@6.2.0(webpack@5.88.2):
     resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
@@ -7676,7 +8203,6 @@ packages:
     engines: {node: '>=6'}
     dependencies:
       locate-path: 3.0.0
-    dev: false
 
   /find-up@4.1.0:
     resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
@@ -7697,16 +8223,20 @@ packages:
     dependencies:
       micromatch: 4.0.5
       pkg-dir: 4.2.0
-    dev: false
+    dev: true
 
-  /flat-cache@3.1.1:
-    resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==}
-    engines: {node: '>=12.0.0'}
+  /flat-cache@3.2.0:
+    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+    engines: {node: ^10.12.0 || >=12.0.0}
     dependencies:
       flatted: 3.2.9
       keyv: 4.5.4
       rimraf: 3.0.2
 
+  /flatbuffers@1.12.0:
+    resolution: {integrity: sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==}
+    dev: false
+
   /flatted@3.2.9:
     resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
 
@@ -7737,7 +8267,7 @@ packages:
     dependencies:
       is-callable: 1.2.7
 
-  /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.52.0)(typescript@4.9.5)(webpack@5.88.2):
+  /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.54.0)(typescript@4.9.5)(webpack@5.88.2):
     resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
     engines: {node: '>=10', yarn: '>=1.0.0'}
     peerDependencies:
@@ -7757,7 +8287,7 @@ packages:
       chokidar: 3.5.3
       cosmiconfig: 6.0.0
       deepmerge: 4.3.1
-      eslint: 8.52.0
+      eslint: 8.54.0
       fs-extra: 9.1.0
       glob: 7.2.3
       memfs: 3.5.3
@@ -7804,13 +8334,17 @@ packages:
     engines: {node: '>= 0.6'}
     dev: false
 
+  /fs-constants@1.0.0:
+    resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
+    dev: false
+
   /fs-extra@10.1.0:
     resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
     engines: {node: '>=12'}
     dependencies:
       graceful-fs: 4.2.11
       jsonfile: 6.1.0
-      universalify: 2.0.0
+      universalify: 2.0.1
 
   /fs-extra@2.1.2:
     resolution: {integrity: sha512-9ztMtDZtSKC78V8mev+k31qaTabbmuH5jatdvPBMikrFHvw5BqlYnQIn/WGK3WHeRooSTkRvLa2IPlaHjPq5Sg==}
@@ -7826,7 +8360,7 @@ packages:
       graceful-fs: 4.2.11
       jsonfile: 4.0.0
       universalify: 0.1.2
-    dev: false
+    dev: true
 
   /fs-extra@8.1.0:
     resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
@@ -7835,6 +8369,7 @@ packages:
       graceful-fs: 4.2.11
       jsonfile: 4.0.0
       universalify: 0.1.2
+    dev: true
 
   /fs-extra@9.1.0:
     resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
@@ -7843,9 +8378,16 @@ packages:
       at-least-node: 1.0.0
       graceful-fs: 4.2.11
       jsonfile: 6.1.0
-      universalify: 2.0.0
+      universalify: 2.0.1
     dev: false
 
+  /fs-minipass@2.1.0:
+    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
+    engines: {node: '>= 8'}
+    dependencies:
+      minipass: 3.3.6
+    dev: true
+
   /fs-monkey@1.0.5:
     resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==}
     dev: false
@@ -7892,13 +8434,12 @@ packages:
     dependencies:
       call-bind: 1.0.5
       define-properties: 1.2.1
-      es-abstract: 1.22.2
+      es-abstract: 1.22.3
       functions-have-names: 1.2.3
-    dev: false
+    dev: true
 
   /functions-have-names@1.2.3:
     resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
-    dev: false
 
   /gensync@1.0.0-beta.2:
     resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
@@ -7907,6 +8448,7 @@ packages:
   /get-caller-file@2.0.5:
     resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
     engines: {node: 6.* || 8.* || >= 10.*}
+    dev: true
 
   /get-intrinsic@1.2.0:
     resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
@@ -7952,19 +8494,22 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       pump: 3.0.0
-    dev: false
 
   /get-stream@6.0.1:
     resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
     engines: {node: '>=10'}
 
+  /get-stream@8.0.1:
+    resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+    engines: {node: '>=16'}
+    dev: true
+
   /get-symbol-description@1.0.0:
     resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
     engines: {node: '>= 0.4'}
     dependencies:
       call-bind: 1.0.2
       get-intrinsic: 1.2.0
-    dev: false
 
   /get-tsconfig@4.5.0:
     resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==}
@@ -7982,6 +8527,10 @@ packages:
       - supports-color
     dev: true
 
+  /github-from-package@0.0.0:
+    resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
+    dev: false
+
   /github-slugger@1.5.0:
     resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==}
     dev: false
@@ -8071,7 +8620,6 @@ packages:
     engines: {node: '>= 0.4'}
     dependencies:
       define-properties: 1.2.0
-    dev: false
 
   /globby@10.0.2:
     resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==}
@@ -8080,7 +8628,7 @@ packages:
       '@types/glob': 7.2.0
       array-union: 2.1.0
       dir-glob: 3.0.1
-      fast-glob: 3.3.1
+      fast-glob: 3.3.2
       glob: 7.2.3
       ignore: 5.2.4
       merge2: 1.4.1
@@ -8125,6 +8673,29 @@ packages:
     dependencies:
       get-intrinsic: 1.2.2
 
+  /got@10.7.0:
+    resolution: {integrity: sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==}
+    engines: {node: '>=10'}
+    dependencies:
+      '@sindresorhus/is': 2.1.1
+      '@szmarczak/http-timer': 4.0.6
+      '@types/cacheable-request': 6.0.3
+      '@types/keyv': 3.1.4
+      '@types/responselike': 1.0.3
+      cacheable-lookup: 2.0.1
+      cacheable-request: 7.0.4
+      decompress-response: 5.0.0
+      duplexer3: 0.1.5
+      get-stream: 5.2.0
+      lowercase-keys: 2.0.0
+      mimic-response: 2.1.0
+      p-cancelable: 2.1.1
+      p-event: 4.2.0
+      responselike: 2.0.1
+      to-readable-stream: 2.1.0
+      type-fest: 0.10.0
+    dev: true
+
   /got@9.6.0:
     resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==}
     engines: {node: '>=8.6'}
@@ -8132,7 +8703,7 @@ packages:
       '@sindresorhus/is': 0.14.0
       '@szmarczak/http-timer': 1.1.2
       '@types/keyv': 3.1.4
-      '@types/responselike': 1.0.1
+      '@types/responselike': 1.0.3
       cacheable-request: 6.1.0
       decompress-response: 3.3.0
       duplexer3: 0.1.5
@@ -8157,7 +8728,7 @@ packages:
 
   /grapheme-splitter@1.0.4:
     resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
-    dev: false
+    dev: true
 
   /graphemer@1.4.0:
     resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
@@ -8172,6 +8743,10 @@ packages:
       strip-bom-string: 1.0.0
     dev: false
 
+  /guid-typescript@1.0.9:
+    resolution: {integrity: sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==}
+    dev: false
+
   /gzip-size@6.0.0:
     resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
     engines: {node: '>=10'}
@@ -8199,11 +8774,10 @@ packages:
   /hard-rejection@2.1.0:
     resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
     engines: {node: '>=6'}
-    dev: false
+    dev: true
 
   /has-bigints@1.0.2:
     resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
-    dev: false
 
   /has-flag@3.0.0:
     resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
@@ -8248,11 +8822,6 @@ packages:
     dependencies:
       function-bind: 1.1.1
 
-  /has@1.0.4:
-    resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==}
-    engines: {node: '>= 0.4.0'}
-    dev: false
-
   /hash-base@3.1.0:
     resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==}
     engines: {node: '>=4'}
@@ -8376,7 +8945,7 @@ packages:
 
   /hosted-git-info@2.8.9:
     resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
-    dev: false
+    dev: true
 
   /hpack.js@2.1.6:
     resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
@@ -8452,7 +9021,6 @@ packages:
 
   /http-cache-semantics@4.1.1:
     resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
-    dev: false
 
   /http-deceiver@1.2.7:
     resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==}
@@ -8539,7 +9107,7 @@ packages:
 
   /human-id@1.0.2:
     resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
-    dev: false
+    dev: true
 
   /human-signals@2.1.0:
     resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
@@ -8550,6 +9118,11 @@ packages:
     engines: {node: '>=14.18.0'}
     dev: false
 
+  /human-signals@5.0.0:
+    resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+    engines: {node: '>=16.17.0'}
+    dev: true
+
   /humanize-ms@1.2.1:
     resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
     dependencies:
@@ -8586,7 +9159,6 @@ packages:
 
   /ieee754@1.2.1:
     resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
-    dev: true
 
   /ignore@5.2.4:
     resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
@@ -8716,6 +9288,15 @@ packages:
       side-channel: 1.0.4
     dev: false
 
+  /internal-slot@1.0.6:
+    resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
+    engines: {node: '>= 0.4'}
+    dependencies:
+      get-intrinsic: 1.2.2
+      hasown: 2.0.0
+      side-channel: 1.0.4
+    dev: true
+
   /interpret@1.4.0:
     resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
     engines: {node: '>= 0.10'}
@@ -8768,16 +9349,18 @@ packages:
       call-bind: 1.0.2
       get-intrinsic: 1.2.0
       is-typed-array: 1.1.12
-    dev: false
 
   /is-arrayish@0.2.1:
     resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
 
+  /is-arrayish@0.3.2:
+    resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
+    dev: false
+
   /is-bigint@1.0.4:
     resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
     dependencies:
       has-bigints: 1.0.2
-    dev: false
 
   /is-binary-path@2.1.0:
     resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
@@ -8791,7 +9374,6 @@ packages:
     dependencies:
       call-bind: 1.0.5
       has-tostringtag: 1.0.0
-    dev: false
 
   /is-buffer@1.1.6:
     resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
@@ -8818,7 +9400,7 @@ packages:
     hasBin: true
     dependencies:
       ci-info: 3.9.0
-    dev: false
+    dev: true
 
   /is-core-module@2.12.0:
     resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==}
@@ -8830,6 +9412,7 @@ packages:
     resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==}
     dependencies:
       has: 1.0.3
+    dev: false
 
   /is-core-module@2.13.1:
     resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
@@ -8841,7 +9424,6 @@ packages:
     engines: {node: '>= 0.4'}
     dependencies:
       has-tostringtag: 1.0.0
-    dev: false
 
   /is-decimal@1.0.4:
     resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
@@ -8871,6 +9453,11 @@ packages:
     resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
     engines: {node: '>=8'}
 
+  /is-fullwidth-code-point@4.0.0:
+    resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
+    engines: {node: '>=12'}
+    dev: true
+
   /is-generator-fn@2.1.0:
     resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
     engines: {node: '>=6'}
@@ -8934,7 +9521,6 @@ packages:
   /is-negative-zero@2.0.2:
     resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
     engines: {node: '>= 0.4'}
-    dev: false
 
   /is-npm@5.0.0:
     resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==}
@@ -8946,7 +9532,6 @@ packages:
     engines: {node: '>= 0.4'}
     dependencies:
       has-tostringtag: 1.0.0
-    dev: false
 
   /is-number@7.0.0:
     resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
@@ -8960,7 +9545,6 @@ packages:
   /is-obj@2.0.0:
     resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
     engines: {node: '>=8'}
-    dev: false
 
   /is-path-cwd@2.2.0:
     resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
@@ -8973,7 +9557,7 @@ packages:
   /is-plain-obj@1.1.0:
     resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
     engines: {node: '>=0.10.0'}
-    dev: false
+    dev: true
 
   /is-plain-obj@2.1.0:
     resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
@@ -9002,7 +9586,6 @@ packages:
     dependencies:
       call-bind: 1.0.2
       has-tostringtag: 1.0.0
-    dev: false
 
   /is-regexp@1.0.0:
     resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
@@ -9022,7 +9605,6 @@ packages:
     resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
     dependencies:
       call-bind: 1.0.2
-    dev: false
 
   /is-stream@2.0.1:
     resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
@@ -9031,28 +9613,25 @@ packages:
   /is-stream@3.0.0:
     resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-    dev: false
 
   /is-string@1.0.7:
     resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
     engines: {node: '>= 0.4'}
     dependencies:
       has-tostringtag: 1.0.0
-    dev: false
 
   /is-subdir@1.2.0:
     resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
     engines: {node: '>=4'}
     dependencies:
       better-path-resolve: 1.0.0
-    dev: false
+    dev: true
 
   /is-symbol@1.0.4:
     resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
     engines: {node: '>= 0.4'}
     dependencies:
       has-symbols: 1.0.3
-    dev: false
 
   /is-typed-array@1.1.12:
     resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
@@ -9083,7 +9662,6 @@ packages:
     resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
     dependencies:
       call-bind: 1.0.2
-    dev: false
 
   /is-weakset@2.0.2:
     resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
@@ -9099,7 +9677,7 @@ packages:
   /is-windows@1.0.2:
     resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
     engines: {node: '>=0.10.0'}
-    dev: false
+    dev: true
 
   /is-word-character@1.0.4:
     resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==}
@@ -9126,7 +9704,6 @@ packages:
 
   /isarray@2.0.5:
     resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
-    dev: false
 
   /isbinaryfile@4.0.10:
     resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
@@ -9145,8 +9722,8 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
-  /istanbul-lib-coverage@3.2.0:
-    resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
+  /istanbul-lib-coverage@3.2.2:
+    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
     engines: {node: '>=8'}
     dev: true
 
@@ -9154,10 +9731,10 @@ packages:
     resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
     engines: {node: '>=8'}
     dependencies:
-      '@babel/core': 7.23.0
-      '@babel/parser': 7.23.0
+      '@babel/core': 7.23.3
+      '@babel/parser': 7.23.3
       '@istanbuljs/schema': 0.1.3
-      istanbul-lib-coverage: 3.2.0
+      istanbul-lib-coverage: 3.2.2
       semver: 6.3.1
     transitivePeerDependencies:
       - supports-color
@@ -9167,10 +9744,10 @@ packages:
     resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==}
     engines: {node: '>=10'}
     dependencies:
-      '@babel/core': 7.23.0
-      '@babel/parser': 7.23.0
+      '@babel/core': 7.23.3
+      '@babel/parser': 7.23.3
       '@istanbuljs/schema': 0.1.3
-      istanbul-lib-coverage: 3.2.0
+      istanbul-lib-coverage: 3.2.2
       semver: 7.5.4
     transitivePeerDependencies:
       - supports-color
@@ -9180,7 +9757,7 @@ packages:
     resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
     engines: {node: '>=10'}
     dependencies:
-      istanbul-lib-coverage: 3.2.0
+      istanbul-lib-coverage: 3.2.2
       make-dir: 4.0.0
       supports-color: 7.2.0
     dev: true
@@ -9190,7 +9767,7 @@ packages:
     engines: {node: '>=10'}
     dependencies:
       debug: 4.3.4
-      istanbul-lib-coverage: 3.2.0
+      istanbul-lib-coverage: 3.2.2
       source-map: 0.6.1
     transitivePeerDependencies:
       - supports-color
@@ -9221,7 +9798,7 @@ packages:
       '@jest/expect': 29.7.0
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       chalk: 4.1.2
       co: 4.6.0
       dedent: 1.5.1
@@ -9242,7 +9819,7 @@ packages:
       - supports-color
     dev: true
 
-  /jest-cli@29.7.0(@types/node@18.18.8):
+  /jest-cli@29.7.0(@types/node@18.18.12):
     resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     hasBin: true
@@ -9256,10 +9833,10 @@ packages:
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
       chalk: 4.1.2
-      create-jest: 29.7.0(@types/node@18.18.8)
+      create-jest: 29.7.0(@types/node@18.18.12)
       exit: 0.1.2
       import-local: 3.1.0
-      jest-config: 29.7.0(@types/node@18.18.8)
+      jest-config: 29.7.0(@types/node@18.18.12)
       jest-util: 29.7.0
       jest-validate: 29.7.0
       yargs: 17.7.2
@@ -9270,7 +9847,7 @@ packages:
       - ts-node
     dev: true
 
-  /jest-config@29.7.0(@types/node@18.18.8):
+  /jest-config@29.7.0(@types/node@18.18.12):
     resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     peerDependencies:
@@ -9282,11 +9859,11 @@ packages:
       ts-node:
         optional: true
     dependencies:
-      '@babel/core': 7.23.0
+      '@babel/core': 7.23.3
       '@jest/test-sequencer': 29.7.0
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
-      babel-jest: 29.7.0(@babel/core@7.23.0)
+      '@types/node': 18.18.12
+      babel-jest: 29.7.0(@babel/core@7.23.3)
       chalk: 4.1.2
       ci-info: 3.9.0
       deepmerge: 4.3.1
@@ -9345,7 +9922,7 @@ packages:
       '@jest/environment': 29.7.0
       '@jest/fake-timers': 29.7.0
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       jest-mock: 29.7.0
       jest-util: 29.7.0
     dev: true
@@ -9360,8 +9937,8 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.6.3
-      '@types/graceful-fs': 4.1.7
-      '@types/node': 18.18.8
+      '@types/graceful-fs': 4.1.9
+      '@types/node': 18.18.12
       anymatch: 3.1.3
       fb-watchman: 2.0.2
       graceful-fs: 4.2.11
@@ -9398,7 +9975,7 @@ packages:
     dependencies:
       '@babel/code-frame': 7.22.13
       '@jest/types': 29.6.3
-      '@types/stack-utils': 2.0.1
+      '@types/stack-utils': 2.0.3
       chalk: 4.1.2
       graceful-fs: 4.2.11
       micromatch: 4.0.5
@@ -9412,7 +9989,7 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       jest-util: 29.7.0
     dev: true
 
@@ -9453,7 +10030,7 @@ packages:
       jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0)
       jest-util: 29.7.0
       jest-validate: 29.7.0
-      resolve: 1.22.6
+      resolve: 1.22.8
       resolve.exports: 2.0.2
       slash: 3.0.0
     dev: true
@@ -9467,7 +10044,7 @@ packages:
       '@jest/test-result': 29.7.0
       '@jest/transform': 29.7.0
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       chalk: 4.1.2
       emittery: 0.13.1
       graceful-fs: 4.2.11
@@ -9498,7 +10075,7 @@ packages:
       '@jest/test-result': 29.7.0
       '@jest/transform': 29.7.0
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       chalk: 4.1.2
       cjs-module-lexer: 1.2.3
       collect-v8-coverage: 1.0.2
@@ -9521,15 +10098,15 @@ packages:
     resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
-      '@babel/core': 7.23.0
-      '@babel/generator': 7.23.0
-      '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.0)
-      '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.0)
-      '@babel/types': 7.23.0
+      '@babel/core': 7.23.3
+      '@babel/generator': 7.23.3
+      '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3)
+      '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3)
+      '@babel/types': 7.23.3
       '@jest/expect-utils': 29.7.0
       '@jest/transform': 29.7.0
       '@jest/types': 29.6.3
-      babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0)
+      babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3)
       chalk: 4.1.2
       expect: 29.7.0
       graceful-fs: 4.2.11
@@ -9550,7 +10127,7 @@ packages:
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       chalk: 4.1.2
       ci-info: 3.9.0
       graceful-fs: 4.2.11
@@ -9574,7 +10151,7 @@ packages:
     dependencies:
       '@jest/test-result': 29.7.0
       '@jest/types': 29.6.3
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       ansi-escapes: 4.3.2
       chalk: 4.1.2
       emittery: 0.13.1
@@ -9586,7 +10163,7 @@ packages:
     resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
     engines: {node: '>= 10.13.0'}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
@@ -9594,12 +10171,12 @@ packages:
     resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       jest-util: 29.7.0
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
-  /jest@29.7.0(@types/node@18.18.8):
+  /jest@29.7.0(@types/node@18.18.12):
     resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     hasBin: true
@@ -9612,7 +10189,7 @@ packages:
       '@jest/core': 29.7.0
       '@jest/types': 29.6.3
       import-local: 3.1.0
-      jest-cli: 29.7.0(@types/node@18.18.8)
+      jest-cli: 29.7.0(@types/node@18.18.12)
     transitivePeerDependencies:
       - '@types/node'
       - babel-plugin-macros
@@ -9639,8 +10216,8 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
-  /js-tiktoken@1.0.7:
-    resolution: {integrity: sha512-biba8u/clw7iesNEWLOLwrNGoBP2lA+hTaBLs/D45pJdUPFXyxD6nhcDVtADChghv4GgyAiMKYMiRx7x6h7Biw==}
+  /js-tiktoken@1.0.8:
+    resolution: {integrity: sha512-r7XK3E9/I+SOrbAGqb39pyO/rHAS1diAOSRAvaaLfHgXjkUSK9AiSd+r84Vn2f/GvXJYRAxKj8NHrUvqlaH5qg==}
     dependencies:
       base64-js: 1.5.1
     dev: false
@@ -9686,7 +10263,10 @@ packages:
 
   /json-schema-traverse@1.0.0:
     resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
-    dev: false
+
+  /json-schema-typed@7.0.3:
+    resolution: {integrity: sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==}
+    dev: true
 
   /json-stable-stringify-without-jsonify@1.0.1:
     resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -9717,11 +10297,12 @@ packages:
     resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
     optionalDependencies:
       graceful-fs: 4.2.11
+    dev: true
 
   /jsonfile@6.1.0:
     resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
     dependencies:
-      universalify: 2.0.0
+      universalify: 2.0.1
     optionalDependencies:
       graceful-fs: 4.2.11
 
@@ -9764,7 +10345,7 @@ packages:
   /kleur@4.1.5:
     resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
     engines: {node: '>=6'}
-    dev: false
+    dev: true
 
   /language-subtag-registry@0.3.22:
     resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
@@ -9814,6 +10395,37 @@ packages:
   /lines-and-columns@1.2.4:
     resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
 
+  /lint-staged@15.1.0:
+    resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==}
+    engines: {node: '>=18.12.0'}
+    hasBin: true
+    dependencies:
+      chalk: 5.3.0
+      commander: 11.1.0
+      debug: 4.3.4
+      execa: 8.0.1
+      lilconfig: 2.1.0
+      listr2: 7.0.2
+      micromatch: 4.0.5
+      pidtree: 0.6.0
+      string-argv: 0.3.2
+      yaml: 2.3.4
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
+  /listr2@7.0.2:
+    resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==}
+    engines: {node: '>=16.0.0'}
+    dependencies:
+      cli-truncate: 3.1.0
+      colorette: 2.0.20
+      eventemitter3: 5.0.1
+      log-update: 5.0.1
+      rfdc: 1.3.0
+      wrap-ansi: 8.1.0
+    dev: true
+
   /load-tsconfig@0.2.5:
     resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -9827,7 +10439,7 @@ packages:
       js-yaml: 3.14.1
       pify: 4.0.1
       strip-bom: 3.0.0
-    dev: false
+    dev: true
 
   /loader-runner@4.3.0:
     resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
@@ -9853,7 +10465,6 @@ packages:
     dependencies:
       p-locate: 3.0.0
       path-exists: 3.0.0
-    dev: false
 
   /locate-path@5.0.0:
     resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
@@ -9915,7 +10526,7 @@ packages:
 
   /lodash.startcase@4.4.0:
     resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
-    dev: false
+    dev: true
 
   /lodash.uniq@4.5.0:
     resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
@@ -9943,6 +10554,21 @@ packages:
       is-unicode-supported: 0.1.0
     dev: true
 
+  /log-update@5.0.1:
+    resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+    dependencies:
+      ansi-escapes: 5.0.0
+      cli-cursor: 4.0.0
+      slice-ansi: 5.0.0
+      strip-ansi: 7.1.0
+      wrap-ansi: 8.1.0
+    dev: true
+
+  /long@4.0.0:
+    resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==}
+    dev: false
+
   /loose-envify@1.4.0:
     resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
     hasBin: true
@@ -9981,14 +10607,13 @@ packages:
   /lowercase-keys@2.0.0:
     resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
     engines: {node: '>=8'}
-    dev: false
 
   /lru-cache@4.1.5:
     resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
     dependencies:
       pseudomap: 1.0.2
       yallist: 2.1.2
-    dev: false
+    dev: true
 
   /lru-cache@5.1.1:
     resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -10054,12 +10679,12 @@ packages:
   /map-obj@1.0.1:
     resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
     engines: {node: '>=0.10.0'}
-    dev: false
+    dev: true
 
   /map-obj@4.3.0:
     resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
     engines: {node: '>=8'}
-    dev: false
+    dev: true
 
   /markdown-escapes@1.0.4:
     resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==}
@@ -10148,7 +10773,7 @@ packages:
     resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==}
     engines: {node: '>=8'}
     dependencies:
-      '@types/minimist': 1.2.3
+      '@types/minimist': 1.2.5
       camelcase-keys: 6.2.2
       decamelize-keys: 1.1.1
       hard-rejection: 2.1.0
@@ -10159,7 +10784,7 @@ packages:
       trim-newlines: 3.0.1
       type-fest: 0.13.1
       yargs-parser: 18.1.3
-    dev: false
+    dev: true
 
   /merge-descriptors@1.0.1:
     resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
@@ -10224,20 +10849,33 @@ packages:
     resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
     engines: {node: '>=6'}
 
+  /mimic-fn@3.1.0:
+    resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==}
+    engines: {node: '>=8'}
+    dev: true
+
   /mimic-fn@4.0.0:
     resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
     engines: {node: '>=12'}
-    dev: false
 
   /mimic-response@1.0.1:
     resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
     engines: {node: '>=4'}
+
+  /mimic-response@2.1.0:
+    resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==}
+    engines: {node: '>=8'}
+    dev: true
+
+  /mimic-response@3.1.0:
+    resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
+    engines: {node: '>=10'}
     dev: false
 
   /min-indent@1.0.1:
     resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
     engines: {node: '>=4'}
-    dev: false
+    dev: true
 
   /mini-css-extract-plugin@2.7.6(webpack@5.88.2):
     resolution: {integrity: sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==}
@@ -10275,14 +10913,43 @@ packages:
       arrify: 1.0.1
       is-plain-obj: 1.1.0
       kind-of: 6.0.3
-    dev: false
+    dev: true
 
   /minimist@1.2.8:
     resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
 
+  /minipass@3.3.6:
+    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+    engines: {node: '>=8'}
+    dependencies:
+      yallist: 4.0.0
+    dev: true
+
+  /minipass@4.2.8:
+    resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==}
+    engines: {node: '>=8'}
+    dev: true
+
+  /minipass@5.0.0:
+    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
+    engines: {node: '>=8'}
+    dev: true
+
+  /minizlib@2.1.2:
+    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
+    engines: {node: '>= 8'}
+    dependencies:
+      minipass: 3.3.6
+      yallist: 4.0.0
+    dev: true
+
   /mixme@0.5.9:
     resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==}
     engines: {node: '>= 8.0.0'}
+    dev: true
+
+  /mkdirp-classic@0.5.3:
+    resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
     dev: false
 
   /mkdirp@0.5.6:
@@ -10292,6 +10959,12 @@ packages:
       minimist: 1.2.8
     dev: true
 
+  /mkdirp@1.0.4:
+    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+    engines: {node: '>=10'}
+    hasBin: true
+    dev: true
+
   /mongodb-connection-string-url@2.6.0:
     resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==}
     dependencies:
@@ -10299,6 +10972,13 @@ packages:
       whatwg-url: 11.0.0
     dev: false
 
+  /mongodb-connection-string-url@3.0.0:
+    resolution: {integrity: sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==}
+    dependencies:
+      '@types/whatwg-url': 11.0.3
+      whatwg-url: 13.0.0
+    dev: false
+
   /mongodb@6.2.0:
     resolution: {integrity: sha512-d7OSuGjGWDZ5usZPqfvb36laQ9CPhnWkAGHT61x5P95p/8nMVeH8asloMwW6GcYFeB0Vj4CB/1wOTDG2RA9BFA==}
     engines: {node: '>=16.20.1'}
@@ -10331,6 +11011,38 @@ packages:
       mongodb-connection-string-url: 2.6.0
     dev: false
 
+  /mongodb@6.3.0:
+    resolution: {integrity: sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==}
+    engines: {node: '>=16.20.1'}
+    peerDependencies:
+      '@aws-sdk/credential-providers': ^3.188.0
+      '@mongodb-js/zstd': ^1.1.0
+      gcp-metadata: ^5.2.0
+      kerberos: ^2.0.1
+      mongodb-client-encryption: '>=6.0.0 <7'
+      snappy: ^7.2.2
+      socks: ^2.7.1
+    peerDependenciesMeta:
+      '@aws-sdk/credential-providers':
+        optional: true
+      '@mongodb-js/zstd':
+        optional: true
+      gcp-metadata:
+        optional: true
+      kerberos:
+        optional: true
+      mongodb-client-encryption:
+        optional: true
+      snappy:
+        optional: true
+      socks:
+        optional: true
+    dependencies:
+      '@mongodb-js/saslprep': 1.1.1
+      bson: 6.2.0
+      mongodb-connection-string-url: 3.0.0
+    dev: false
+
   /mrmime@1.0.1:
     resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
     engines: {node: '>=10'}
@@ -10371,6 +11083,10 @@ packages:
     engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
     hasBin: true
 
+  /napi-build-utils@1.0.2:
+    resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
+    dev: false
+
   /natural-compare@1.4.0:
     resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
 
@@ -10387,7 +11103,7 @@ packages:
     engines: {node: '>= 0.4.0'}
     dev: true
 
-  /next@13.4.10(@babel/core@7.23.2)(react-dom@18.2.0)(react@18.2.0):
+  /next@13.4.10(@babel/core@7.23.3)(react-dom@18.2.0)(react@18.2.0):
     resolution: {integrity: sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==}
     engines: {node: '>=16.8.0'}
     hasBin: true
@@ -10412,7 +11128,7 @@ packages:
       postcss: 8.4.14
       react: 18.2.0
       react-dom: 18.2.0(react@18.2.0)
-      styled-jsx: 5.1.1(@babel/core@7.23.2)(react@18.2.0)
+      styled-jsx: 5.1.1(@babel/core@7.23.3)(react@18.2.0)
       watchpack: 2.4.0
       zod: 3.21.4
     optionalDependencies:
@@ -10443,6 +11159,17 @@ packages:
       tslib: 2.6.2
     dev: false
 
+  /node-abi@3.51.0:
+    resolution: {integrity: sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==}
+    engines: {node: '>=10'}
+    dependencies:
+      semver: 7.5.4
+    dev: false
+
+  /node-addon-api@6.1.0:
+    resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
+    dev: false
+
   /node-domexception@1.0.0:
     resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
     engines: {node: '>=10.5.0'}
@@ -10484,7 +11211,7 @@ packages:
     resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==}
     engines: {node: '>=8.9.4'}
     dependencies:
-      '@babel/runtime-corejs3': 7.23.1
+      '@babel/runtime-corejs3': 7.23.2
       '@types/inquirer': 6.5.0
       change-case: 3.1.0
       del: 5.1.0
@@ -10494,7 +11221,7 @@ packages:
       isbinaryfile: 4.0.10
       lodash.get: 4.4.2
       mkdirp: 0.5.6
-      resolve: 1.22.7
+      resolve: 1.22.8
     dev: true
 
   /node-releases@2.0.13:
@@ -10537,10 +11264,10 @@ packages:
     resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
     dependencies:
       hosted-git-info: 2.8.9
-      resolve: 1.22.6
+      resolve: 1.22.8
       semver: 5.7.2
       validate-npm-package-license: 3.0.4
-    dev: false
+    dev: true
 
   /normalize-path@3.0.0:
     resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
@@ -10559,7 +11286,6 @@ packages:
   /normalize-url@6.1.0:
     resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
     engines: {node: '>=10'}
-    dev: false
 
   /notion-md-crawler@0.0.2:
     resolution: {integrity: sha512-lE3/DFMrg7GSbl1sBfDuLVLyxw+yjdarPVm1JGfQ6eONEbNGgO+BdZxpwwZQ1uYeEJurAXMXb/AXT8GKYjKAyg==}
@@ -10581,7 +11307,6 @@ packages:
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dependencies:
       path-key: 4.0.0
-    dev: false
 
   /npm-to-yarn@2.1.0:
     resolution: {integrity: sha512-2C1IgJLdJngq1bSER7K7CGFszRr9s2rijEwvENPEgI0eK9xlD3tNwDc0UJnRj7FIT2aydWm72jB88uVswAhXHA==}
@@ -10605,6 +11330,10 @@ packages:
   /object-inspect@1.12.3:
     resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
 
+  /object-inspect@1.13.1:
+    resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
+    dev: true
+
   /object-is@1.1.5:
     resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
     engines: {node: '>= 0.4'}
@@ -10690,6 +11419,35 @@ packages:
     engines: {node: '>=12'}
     dependencies:
       mimic-fn: 4.0.0
+
+  /onnx-proto@4.0.4:
+    resolution: {integrity: sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA==}
+    dependencies:
+      protobufjs: 6.11.4
+    dev: false
+
+  /onnxruntime-common@1.14.0:
+    resolution: {integrity: sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew==}
+    dev: false
+
+  /onnxruntime-node@1.14.0:
+    resolution: {integrity: sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w==}
+    os: [win32, darwin, linux]
+    requiresBuild: true
+    dependencies:
+      onnxruntime-common: 1.14.0
+    dev: false
+    optional: true
+
+  /onnxruntime-web@1.14.0:
+    resolution: {integrity: sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw==}
+    dependencies:
+      flatbuffers: 1.12.0
+      guid-typescript: 1.0.9
+      long: 4.0.0
+      onnx-proto: 4.0.4
+      onnxruntime-common: 1.14.0
+      platform: 1.3.6
     dev: false
 
   /open@8.4.2:
@@ -10711,11 +11469,11 @@ packages:
       is-wsl: 2.2.0
     dev: false
 
-  /openai@4.16.1:
-    resolution: {integrity: sha512-Gr+uqUN1ICSk6VhrX64E+zL7skjI1TgPr/XUN+ZQuNLLOvx15+XZulx/lSW4wFEAQzgjBDlMBbBeikguGIjiMg==}
+  /openai@4.19.1:
+    resolution: {integrity: sha512-9TddzuZBn2xxhghGGTHLZ4EeNBGTLs3xVzh266NiSJvtUsCsZQ5yVV6H5NhnhyAkKK8uUiZOUUlUAk3HdV+4xg==}
     hasBin: true
     dependencies:
-      '@types/node': 18.18.8
+      '@types/node': 18.18.12
       '@types/node-fetch': 2.6.9
       abort-controller: 3.0.0
       agentkeepalive: 4.5.0
@@ -10784,22 +11542,40 @@ packages:
   /os-tmpdir@1.0.2:
     resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
     engines: {node: '>=0.10.0'}
+    dev: true
 
   /outdent@0.5.0:
     resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==}
-    dev: false
+    dev: true
 
   /p-cancelable@1.1.0:
     resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==}
     engines: {node: '>=6'}
     dev: false
 
+  /p-cancelable@2.1.1:
+    resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
+    engines: {node: '>=8'}
+    dev: true
+
+  /p-event@4.2.0:
+    resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==}
+    engines: {node: '>=8'}
+    dependencies:
+      p-timeout: 3.2.0
+    dev: true
+
   /p-filter@2.1.0:
     resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
     engines: {node: '>=8'}
     dependencies:
       p-map: 2.1.0
-    dev: false
+    dev: true
+
+  /p-finally@1.0.0:
+    resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
+    engines: {node: '>=4'}
+    dev: true
 
   /p-limit@2.3.0:
     resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
@@ -10818,7 +11594,6 @@ packages:
     engines: {node: '>=6'}
     dependencies:
       p-limit: 2.3.0
-    dev: false
 
   /p-locate@4.1.0:
     resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
@@ -10835,7 +11610,7 @@ packages:
   /p-map@2.1.0:
     resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
     engines: {node: '>=6'}
-    dev: false
+    dev: true
 
   /p-map@3.0.0:
     resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==}
@@ -10859,6 +11634,13 @@ packages:
       retry: 0.13.1
     dev: false
 
+  /p-timeout@3.2.0:
+    resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
+    engines: {node: '>=8'}
+    dependencies:
+      p-finally: 1.0.0
+    dev: true
+
   /p-try@2.2.0:
     resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
     engines: {node: '>=6'}
@@ -11011,7 +11793,6 @@ packages:
   /path-exists@3.0.0:
     resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
     engines: {node: '>=4'}
-    dev: false
 
   /path-exists@4.0.0:
     resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
@@ -11032,7 +11813,6 @@ packages:
   /path-key@4.0.0:
     resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
     engines: {node: '>=12'}
-    dev: false
 
   /path-parse@1.0.7:
     resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
@@ -11168,10 +11948,16 @@ packages:
     resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
     engines: {node: '>=8.6'}
 
+  /pidtree@0.6.0:
+    resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+    engines: {node: '>=0.10'}
+    hasBin: true
+    dev: true
+
   /pify@4.0.1:
     resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
     engines: {node: '>=6'}
-    dev: false
+    dev: true
 
   /pirates@4.0.6:
     resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
@@ -11196,6 +11982,9 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       find-up: 3.0.0
+
+  /platform@1.3.6:
+    resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==}
     dev: false
 
   /portkey-ai@0.1.16:
@@ -11687,6 +12476,25 @@ packages:
     resolution: {integrity: sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g==}
     dev: true
 
+  /prebuild-install@7.1.1:
+    resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
+    engines: {node: '>=10'}
+    hasBin: true
+    dependencies:
+      detect-libc: 2.0.2
+      expand-template: 2.0.3
+      github-from-package: 0.0.0
+      minimist: 1.2.8
+      mkdirp-classic: 0.5.3
+      napi-build-utils: 1.0.2
+      node-abi: 3.51.0
+      pump: 3.0.0
+      rc: 1.2.8
+      simple-get: 4.0.1
+      tar-fs: 2.1.1
+      tunnel-agent: 0.6.0
+    dev: false
+
   /preferred-pm@3.1.2:
     resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==}
     engines: {node: '>=10'}
@@ -11695,7 +12503,7 @@ packages:
       find-yarn-workspace-root2: 1.2.16
       path-exists: 4.0.0
       which-pm: 2.0.0
-    dev: false
+    dev: true
 
   /prelude-ls@1.2.1:
     resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
@@ -11706,8 +12514,8 @@ packages:
     engines: {node: '>=4'}
     dev: false
 
-  /prettier-plugin-organize-imports@3.2.3(prettier@3.0.3)(typescript@5.2.2):
-    resolution: {integrity: sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg==}
+  /prettier-plugin-organize-imports@3.2.4(prettier@3.1.0)(typescript@4.9.5):
+    resolution: {integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==}
     peerDependencies:
       '@volar/vue-language-plugin-pug': ^1.0.4
       '@volar/vue-typescript': ^1.0.4
@@ -11719,18 +12527,18 @@ packages:
       '@volar/vue-typescript':
         optional: true
     dependencies:
-      prettier: 3.0.3
-      typescript: 5.2.2
+      prettier: 3.1.0
+      typescript: 4.9.5
     dev: true
 
   /prettier@2.8.8:
     resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
     engines: {node: '>=10.13.0'}
     hasBin: true
-    dev: false
+    dev: true
 
-  /prettier@3.0.3:
-    resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==}
+  /prettier@3.1.0:
+    resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==}
     engines: {node: '>=14'}
     hasBin: true
     dev: true
@@ -11784,6 +12592,14 @@ packages:
       asap: 2.0.6
     dev: false
 
+  /prompts@2.1.0:
+    resolution: {integrity: sha512-+x5TozgqYdOwWsQFZizE/Tra3fKvAoy037kOyU6cgz84n8f6zxngLOV4O32kTwt9FcLCxAqw0P/c8rOr9y+Gfg==}
+    engines: {node: '>= 6'}
+    dependencies:
+      kleur: 3.0.3
+      sisteransi: 1.0.5
+    dev: true
+
   /prompts@2.4.2:
     resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
     engines: {node: '>= 6'}
@@ -11804,6 +12620,26 @@ packages:
       xtend: 4.0.2
     dev: false
 
+  /protobufjs@6.11.4:
+    resolution: {integrity: sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==}
+    hasBin: true
+    requiresBuild: true
+    dependencies:
+      '@protobufjs/aspromise': 1.1.2
+      '@protobufjs/base64': 1.1.2
+      '@protobufjs/codegen': 2.0.4
+      '@protobufjs/eventemitter': 1.1.0
+      '@protobufjs/fetch': 1.1.0
+      '@protobufjs/float': 1.0.2
+      '@protobufjs/inquire': 1.1.0
+      '@protobufjs/path': 1.1.2
+      '@protobufjs/pool': 1.1.0
+      '@protobufjs/utf8': 1.1.0
+      '@types/long': 4.0.2
+      '@types/node': 18.18.12
+      long: 4.0.0
+    dev: false
+
   /proxy-addr@2.0.7:
     resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
     engines: {node: '>= 0.10'}
@@ -11834,7 +12670,7 @@ packages:
 
   /pseudomap@1.0.2:
     resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
-    dev: false
+    dev: true
 
   /public-encrypt@4.0.3:
     resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==}
@@ -11852,15 +12688,10 @@ packages:
     dependencies:
       end-of-stream: 1.4.4
       once: 1.4.0
-    dev: false
 
   /punycode@1.4.1:
     resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
 
-  /punycode@2.3.0:
-    resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
-    engines: {node: '>=6'}
-
   /punycode@2.3.1:
     resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
     engines: {node: '>=6'}
@@ -11902,6 +12733,10 @@ packages:
   /queue-microtask@1.2.3:
     resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
 
+  /queue-tick@1.0.1:
+    resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
+    dev: false
+
   /queue@6.0.2:
     resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==}
     dependencies:
@@ -11911,7 +12746,7 @@ packages:
   /quick-lru@4.0.1:
     resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
     engines: {node: '>=8'}
-    dev: false
+    dev: true
 
   /rake-modified@1.0.8:
     resolution: {integrity: sha512-rj/1t+EyI8Ly52eaCeSy5hoNpdNnDlNQ/+jll2DypR6nkuxotMbaupzwbuMSaXzuSL1I2pYVYy7oPus/Ls49ag==}
@@ -12012,7 +12847,7 @@ packages:
       pure-color: 1.3.0
     dev: false
 
-  /react-dev-utils@12.0.1(eslint@8.52.0)(typescript@4.9.5)(webpack@5.88.2):
+  /react-dev-utils@12.0.1(eslint@8.54.0)(typescript@4.9.5)(webpack@5.88.2):
     resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
     engines: {node: '>=14'}
     peerDependencies:
@@ -12031,7 +12866,7 @@ packages:
       escape-string-regexp: 4.0.0
       filesize: 8.0.7
       find-up: 5.0.0
-      fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.52.0)(typescript@4.9.5)(webpack@5.88.2)
+      fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.54.0)(typescript@4.9.5)(webpack@5.88.2)
       global-modules: 2.0.0
       globby: 11.1.0
       gzip-size: 6.0.0
@@ -12213,17 +13048,17 @@ packages:
       find-up: 4.1.0
       read-pkg: 5.2.0
       type-fest: 0.8.1
-    dev: false
+    dev: true
 
   /read-pkg@5.2.0:
     resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
     engines: {node: '>=8'}
     dependencies:
-      '@types/normalize-package-data': 2.4.2
+      '@types/normalize-package-data': 2.4.4
       normalize-package-data: 2.5.0
       parse-json: 5.2.0
       type-fest: 0.6.0
-    dev: false
+    dev: true
 
   /read-yaml-file@1.1.0:
     resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
@@ -12233,7 +13068,7 @@ packages:
       js-yaml: 3.14.1
       pify: 4.0.1
       strip-bom: 3.0.0
-    dev: false
+    dev: true
 
   /readable-stream@2.3.8:
     resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
@@ -12285,7 +13120,7 @@ packages:
     dependencies:
       indent-string: 4.0.0
       strip-indent: 3.0.0
-    dev: false
+    dev: true
 
   /regenerate-unicode-properties@10.1.1:
     resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==}
@@ -12327,7 +13162,7 @@ packages:
       call-bind: 1.0.5
       define-properties: 1.2.1
       set-function-name: 2.0.1
-    dev: false
+    dev: true
 
   /regexpu-core@5.3.2:
     resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==}
@@ -12450,19 +13285,19 @@ packages:
     engines: {node: '>=0.10'}
     dev: false
 
-  /replicate@0.20.1:
-    resolution: {integrity: sha512-QVyI1rowGsSfNuDrRmumYPdCHa/fN/RkI3NHpcK0i5hSSiWK69URAyheAC/0MIAiS3oUs4kD56PB9zEI4oHENw==}
+  /replicate@0.21.1:
+    resolution: {integrity: sha512-ftR416+tuD55u6Rz0s5QsxoC2ZasslyFg9jxytirPhqFQwTQy9arU0vF29811t4iws8cMc+neL0IUzyq0pFlkQ==}
     engines: {git: '>=2.11.0', node: '>=18.0.0', npm: '>=7.19.0', yarn: '>=1.7.0'}
     dev: false
 
   /require-directory@2.1.1:
     resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
     engines: {node: '>=0.10.0'}
+    dev: true
 
   /require-from-string@2.0.2:
     resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
     engines: {node: '>=0.10.0'}
-    dev: false
 
   /require-like@0.1.2:
     resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
@@ -12470,7 +13305,7 @@ packages:
 
   /require-main-filename@2.0.0:
     resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
-    dev: false
+    dev: true
 
   /requires-port@1.0.0:
     resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
@@ -12490,6 +13325,7 @@ packages:
   /resolve-from@5.0.0:
     resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
     engines: {node: '>=8'}
+    dev: true
 
   /resolve-pathname@3.0.0:
     resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==}
@@ -12509,23 +13345,6 @@ packages:
       supports-preserve-symlinks-flag: 1.0.0
     dev: false
 
-  /resolve@1.22.6:
-    resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==}
-    hasBin: true
-    dependencies:
-      is-core-module: 2.13.0
-      path-parse: 1.0.7
-      supports-preserve-symlinks-flag: 1.0.0
-
-  /resolve@1.22.7:
-    resolution: {integrity: sha512-YiXAr29s3pviTexp8YEMKtdQDeFxk74jt/w5Viiw7SAVC9McgYD/GVaVyJ18pNCF/VIvzMtsk+zHwJp+YQWCKA==}
-    hasBin: true
-    dependencies:
-      is-core-module: 2.13.0
-      path-parse: 1.0.7
-      supports-preserve-symlinks-flag: 1.0.0
-    dev: true
-
   /resolve@1.22.8:
     resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
     hasBin: true
@@ -12549,6 +13368,12 @@ packages:
       lowercase-keys: 1.0.1
     dev: false
 
+  /responselike@2.0.1:
+    resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
+    dependencies:
+      lowercase-keys: 2.0.0
+    dev: true
+
   /restore-cursor@3.1.0:
     resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
     engines: {node: '>=8'}
@@ -12557,6 +13382,19 @@ packages:
       signal-exit: 3.0.7
     dev: true
 
+  /restore-cursor@4.0.0:
+    resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+    dependencies:
+      onetime: 5.1.2
+      signal-exit: 3.0.7
+    dev: true
+
+  /retry@0.12.0:
+    resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+    engines: {node: '>= 4'}
+    dev: true
+
   /retry@0.13.1:
     resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
     engines: {node: '>= 4'}
@@ -12568,7 +13406,6 @@ packages:
 
   /rfdc@1.3.0:
     resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
-    dev: false
 
   /rimraf@3.0.2:
     resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
@@ -12642,7 +13479,7 @@ packages:
       get-intrinsic: 1.2.2
       has-symbols: 1.0.3
       isarray: 2.0.5
-    dev: false
+    dev: true
 
   /safe-buffer@5.1.2:
     resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
@@ -12657,7 +13494,6 @@ packages:
       call-bind: 1.0.2
       get-intrinsic: 1.2.0
       is-regex: 1.1.4
-    dev: false
 
   /safer-buffer@2.1.2:
     resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -12747,7 +13583,6 @@ packages:
   /semver@5.7.2:
     resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
     hasBin: true
-    dev: false
 
   /semver@6.3.0:
     resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
@@ -12840,7 +13675,7 @@ packages:
 
   /set-blocking@2.0.0:
     resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
-    dev: false
+    dev: true
 
   /set-function-length@1.1.1:
     resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==}
@@ -12857,8 +13692,8 @@ packages:
     dependencies:
       define-data-property: 1.1.1
       functions-have-names: 1.2.3
-      has-property-descriptors: 1.0.0
-    dev: false
+      has-property-descriptors: 1.0.1
+    dev: true
 
   /setimmediate@1.0.5:
     resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
@@ -12888,12 +13723,27 @@ packages:
   /shallowequal@1.1.0:
     resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
 
+  /sharp@0.32.6:
+    resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==}
+    engines: {node: '>=14.15.0'}
+    requiresBuild: true
+    dependencies:
+      color: 4.2.3
+      detect-libc: 2.0.2
+      node-addon-api: 6.1.0
+      prebuild-install: 7.1.1
+      semver: 7.5.4
+      simple-get: 4.0.1
+      tar-fs: 3.0.4
+      tunnel-agent: 0.6.0
+    dev: false
+
   /shebang-command@1.2.0:
     resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
     engines: {node: '>=0.10.0'}
     dependencies:
       shebang-regex: 1.0.0
-    dev: false
+    dev: true
 
   /shebang-command@2.0.0:
     resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
@@ -12904,7 +13754,7 @@ packages:
   /shebang-regex@1.0.0:
     resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
     engines: {node: '>=0.10.0'}
-    dev: false
+    dev: true
 
   /shebang-regex@3.0.0:
     resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
@@ -12943,6 +13793,29 @@ packages:
   /signal-exit@3.0.7:
     resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
 
+  /signal-exit@4.1.0:
+    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+    engines: {node: '>=14'}
+    dev: true
+
+  /simple-concat@1.0.1:
+    resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
+    dev: false
+
+  /simple-get@4.0.1:
+    resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
+    dependencies:
+      decompress-response: 6.0.0
+      once: 1.4.0
+      simple-concat: 1.0.1
+    dev: false
+
+  /simple-swizzle@0.2.2:
+    resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
+    dependencies:
+      is-arrayish: 0.3.2
+    dev: false
+
   /sirv@2.0.3:
     resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==}
     engines: {node: '>= 10'}
@@ -12975,6 +13848,14 @@ packages:
     engines: {node: '>=12'}
     dev: false
 
+  /slice-ansi@5.0.0:
+    resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+    engines: {node: '>=12'}
+    dependencies:
+      ansi-styles: 6.2.1
+      is-fullwidth-code-point: 4.0.0
+    dev: true
+
   /smart-buffer@4.2.0:
     resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
     engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
@@ -12991,7 +13872,7 @@ packages:
       strip-ansi: 6.0.1
       wcwidth: 1.0.1
       yargs: 15.4.1
-    dev: false
+    dev: true
 
   /snake-case@2.1.0:
     resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==}
@@ -13079,29 +13960,29 @@ packages:
     dependencies:
       cross-spawn: 5.1.0
       signal-exit: 3.0.7
-    dev: false
+    dev: true
 
   /spdx-correct@3.2.0:
     resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
     dependencies:
       spdx-expression-parse: 3.0.1
       spdx-license-ids: 3.0.16
-    dev: false
+    dev: true
 
   /spdx-exceptions@2.3.0:
     resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
-    dev: false
+    dev: true
 
   /spdx-expression-parse@3.0.1:
     resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
     dependencies:
       spdx-exceptions: 2.3.0
       spdx-license-ids: 3.0.16
-    dev: false
+    dev: true
 
   /spdx-license-ids@3.0.16:
     resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==}
-    dev: false
+    dev: true
 
   /spdy-transport@3.0.0:
     resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
@@ -13194,13 +14075,25 @@ packages:
     resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==}
     dependencies:
       mixme: 0.5.9
-    dev: false
+    dev: true
 
   /streamsearch@1.1.0:
     resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
     engines: {node: '>=10.0.0'}
     dev: true
 
+  /streamx@2.15.5:
+    resolution: {integrity: sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==}
+    dependencies:
+      fast-fifo: 1.3.2
+      queue-tick: 1.0.1
+    dev: false
+
+  /string-argv@0.3.2:
+    resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+    engines: {node: '>=0.6.19'}
+    dev: true
+
   /string-collapse-leading-whitespace@7.0.6:
     resolution: {integrity: sha512-FqOnt9H0+eeXukBb3Js2qPLLI0T5ebp96TfU0+AwoAuQQidETeoRMYJG6mUYebP4SBYZkap+HbAK6U/wGWxJvA==}
     engines: {node: '>=14.18.0'}
@@ -13255,7 +14148,6 @@ packages:
       eastasianwidth: 0.2.0
       emoji-regex: 9.2.2
       strip-ansi: 7.1.0
-    dev: false
 
   /string.prototype.matchall@4.0.8:
     resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==}
@@ -13285,8 +14177,8 @@ packages:
     dependencies:
       call-bind: 1.0.5
       define-properties: 1.2.1
-      es-abstract: 1.22.2
-    dev: false
+      es-abstract: 1.22.3
+    dev: true
 
   /string.prototype.trimend@1.0.6:
     resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
@@ -13301,8 +14193,8 @@ packages:
     dependencies:
       call-bind: 1.0.5
       define-properties: 1.2.1
-      es-abstract: 1.22.2
-    dev: false
+      es-abstract: 1.22.3
+    dev: true
 
   /string.prototype.trimstart@1.0.6:
     resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
@@ -13317,8 +14209,8 @@ packages:
     dependencies:
       call-bind: 1.0.5
       define-properties: 1.2.1
-      es-abstract: 1.22.2
-    dev: false
+      es-abstract: 1.22.3
+    dev: true
 
   /string_decoder@1.1.1:
     resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
@@ -13351,7 +14243,6 @@ packages:
     engines: {node: '>=12'}
     dependencies:
       ansi-regex: 6.0.1
-    dev: false
 
   /strip-bom-string@1.0.0:
     resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
@@ -13361,7 +14252,6 @@ packages:
   /strip-bom@3.0.0:
     resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
     engines: {node: '>=4'}
-    dev: false
 
   /strip-bom@4.0.0:
     resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
@@ -13375,14 +14265,13 @@ packages:
   /strip-final-newline@3.0.0:
     resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
     engines: {node: '>=12'}
-    dev: false
 
   /strip-indent@3.0.0:
     resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
     engines: {node: '>=8'}
     dependencies:
       min-indent: 1.0.1
-    dev: false
+    dev: true
 
   /strip-json-comments@2.0.1:
     resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
@@ -13398,7 +14287,7 @@ packages:
       inline-style-parser: 0.1.1
     dev: false
 
-  /styled-jsx@5.1.1(@babel/core@7.23.2)(react@18.2.0):
+  /styled-jsx@5.1.1(@babel/core@7.23.3)(react@18.2.0):
     resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
     engines: {node: '>= 12.0.0'}
     peerDependencies:
@@ -13411,7 +14300,7 @@ packages:
       babel-plugin-macros:
         optional: true
     dependencies:
-      '@babel/core': 7.23.2
+      '@babel/core': 7.23.3
       client-only: 0.0.1
       react: 18.2.0
     dev: true
@@ -13459,6 +14348,14 @@ packages:
     dependencies:
       has-flag: 4.0.0
 
+  /supports-hyperlinks@2.3.0:
+    resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==}
+    engines: {node: '>=8'}
+    dependencies:
+      has-flag: 4.0.0
+      supports-color: 7.2.0
+    dev: true
+
   /supports-preserve-symlinks-flag@1.0.0:
     resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
     engines: {node: '>= 0.4'}
@@ -13505,10 +14402,66 @@ packages:
     resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
     engines: {node: '>=6'}
 
+  /tar-fs@2.1.1:
+    resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
+    dependencies:
+      chownr: 1.1.4
+      mkdirp-classic: 0.5.3
+      pump: 3.0.0
+      tar-stream: 2.2.0
+    dev: false
+
+  /tar-fs@3.0.4:
+    resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==}
+    dependencies:
+      mkdirp-classic: 0.5.3
+      pump: 3.0.0
+      tar-stream: 3.1.6
+    dev: false
+
+  /tar-stream@2.2.0:
+    resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
+    engines: {node: '>=6'}
+    dependencies:
+      bl: 4.1.0
+      end-of-stream: 1.4.4
+      fs-constants: 1.0.0
+      inherits: 2.0.4
+      readable-stream: 3.6.2
+    dev: false
+
+  /tar-stream@3.1.6:
+    resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==}
+    dependencies:
+      b4a: 1.6.4
+      fast-fifo: 1.3.2
+      streamx: 2.15.5
+    dev: false
+
+  /tar@6.1.15:
+    resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==}
+    engines: {node: '>=10'}
+    dependencies:
+      chownr: 2.0.0
+      fs-minipass: 2.1.0
+      minipass: 5.0.0
+      minizlib: 2.1.2
+      mkdirp: 1.0.4
+      yallist: 4.0.0
+    dev: true
+
   /term-size@2.2.1:
     resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
     engines: {node: '>=8'}
-    dev: false
+    dev: true
+
+  /terminal-link@3.0.0:
+    resolution: {integrity: sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==}
+    engines: {node: '>=12'}
+    dependencies:
+      ansi-escapes: 5.0.0
+      supports-hyperlinks: 2.3.0
+    dev: true
 
   /terser-webpack-plugin@5.3.9(webpack@5.88.2):
     resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==}
@@ -13526,7 +14479,7 @@ packages:
       uglify-js:
         optional: true
     dependencies:
-      '@jridgewell/trace-mapping': 0.3.19
+      '@jridgewell/trace-mapping': 0.3.20
       jest-worker: 27.5.1
       schema-utils: 3.3.0
       serialize-javascript: 6.0.1
@@ -13549,7 +14502,7 @@ packages:
       uglify-js:
         optional: true
     dependencies:
-      '@jridgewell/trace-mapping': 0.3.19
+      '@jridgewell/trace-mapping': 0.3.20
       jest-worker: 27.5.1
       schema-utils: 3.3.0
       serialize-javascript: 6.0.1
@@ -13563,8 +14516,8 @@ packages:
     hasBin: true
     dependencies:
       '@jridgewell/source-map': 0.3.5
-      acorn: 8.10.0
-      commander: 2.20.3
+      acorn: 8.11.2
+      commander: 2.20.0
       source-map-support: 0.5.21
 
   /test-exclude@6.0.0:
@@ -13620,7 +14573,7 @@ packages:
   /tinygradient@1.1.5:
     resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==}
     dependencies:
-      '@types/tinycolor2': 1.4.4
+      '@types/tinycolor2': 1.4.6
       tinycolor2: 1.6.0
     dev: true
 
@@ -13641,6 +14594,7 @@ packages:
     engines: {node: '>=0.6.0'}
     dependencies:
       os-tmpdir: 1.0.2
+    dev: true
 
   /tmpl@1.0.5:
     resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
@@ -13655,6 +14609,11 @@ packages:
     engines: {node: '>=6'}
     dev: false
 
+  /to-readable-stream@2.1.0:
+    resolution: {integrity: sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==}
+    engines: {node: '>=8'}
+    dev: true
+
   /to-regex-range@5.0.1:
     resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
     engines: {node: '>=8.0'}
@@ -13688,6 +14647,13 @@ packages:
       punycode: 2.3.1
     dev: false
 
+  /tr46@4.1.1:
+    resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==}
+    engines: {node: '>=14'}
+    dependencies:
+      punycode: 2.3.1
+    dev: false
+
   /tree-kill@1.2.2:
     resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
     hasBin: true
@@ -13696,7 +14662,7 @@ packages:
   /trim-newlines@3.0.1:
     resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
     engines: {node: '>=8'}
-    dev: false
+    dev: true
 
   /trim-trailing-lines@1.1.4:
     resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==}
@@ -13715,7 +14681,7 @@ packages:
     resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
     dev: true
 
-  /ts-jest@29.1.1(@babel/core@7.23.2)(jest@29.7.0)(typescript@5.2.2):
+  /ts-jest@29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@4.9.5):
     resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
     hasBin: true
@@ -13736,20 +14702,51 @@ packages:
       esbuild:
         optional: true
     dependencies:
-      '@babel/core': 7.23.2
+      '@babel/core': 7.23.3
       bs-logger: 0.2.6
       fast-json-stable-stringify: 2.1.0
-      jest: 29.7.0(@types/node@18.18.8)
+      jest: 29.7.0(@types/node@18.18.12)
       jest-util: 29.7.0
       json5: 2.2.3
       lodash.memoize: 4.1.2
       make-error: 1.3.6
       semver: 7.5.4
-      typescript: 5.2.2
+      typescript: 4.9.5
       yargs-parser: 21.1.1
     dev: true
 
-  /ts-node@10.9.1(@types/node@18.18.7)(typescript@5.2.2):
+  /ts-node@10.9.1(@types/node@18.18.12)(typescript@4.9.5):
+    resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
+    hasBin: true
+    peerDependencies:
+      '@swc/core': '>=1.2.50'
+      '@swc/wasm': '>=1.2.50'
+      '@types/node': '*'
+      typescript: '>=2.7'
+    peerDependenciesMeta:
+      '@swc/core':
+        optional: true
+      '@swc/wasm':
+        optional: true
+    dependencies:
+      '@cspotcode/source-map-support': 0.8.1
+      '@tsconfig/node10': 1.0.9
+      '@tsconfig/node12': 1.0.11
+      '@tsconfig/node14': 1.0.3
+      '@tsconfig/node16': 1.0.4
+      '@types/node': 18.18.12
+      acorn: 8.11.2
+      acorn-walk: 8.3.0
+      arg: 4.1.3
+      create-require: 1.1.1
+      diff: 4.0.2
+      make-error: 1.3.6
+      typescript: 4.9.5
+      v8-compile-cache-lib: 3.0.1
+      yn: 3.1.1
+    dev: true
+
+  /ts-node@10.9.1(@types/node@18.18.7)(typescript@4.9.5):
     resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
     hasBin: true
     peerDependencies:
@@ -13769,18 +14766,18 @@ packages:
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
       '@types/node': 18.18.7
-      acorn: 8.10.0
-      acorn-walk: 8.2.0
+      acorn: 8.11.2
+      acorn-walk: 8.3.0
       arg: 4.1.3
       create-require: 1.1.1
       diff: 4.0.2
       make-error: 1.3.6
-      typescript: 5.2.2
+      typescript: 4.9.5
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     dev: true
 
-  /ts-node@10.9.1(@types/node@18.18.8)(typescript@5.2.2):
+  /ts-node@10.9.1(@types/node@18.18.8)(typescript@4.9.5):
     resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
     hasBin: true
     peerDependencies:
@@ -13800,13 +14797,13 @@ packages:
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
       '@types/node': 18.18.8
-      acorn: 8.10.0
-      acorn-walk: 8.2.0
+      acorn: 8.11.2
+      acorn-walk: 8.3.0
       arg: 4.1.3
       create-require: 1.1.1
       diff: 4.0.2
       make-error: 1.3.6
-      typescript: 5.2.2
+      typescript: 4.9.5
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
     dev: true
@@ -13830,7 +14827,7 @@ packages:
   /tslib@2.6.2:
     resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
 
-  /tsup@7.2.0(typescript@5.2.2):
+  /tsup@7.2.0(typescript@5.3.2):
     resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==}
     engines: {node: '>=16.14'}
     hasBin: true
@@ -13860,28 +14857,28 @@ packages:
       source-map: 0.8.0-beta.0
       sucrase: 3.34.0
       tree-kill: 1.2.2
-      typescript: 5.2.2
+      typescript: 5.3.2
     transitivePeerDependencies:
       - supports-color
       - ts-node
     dev: true
 
-  /tsutils@3.21.0(typescript@5.2.2):
+  /tsutils@3.21.0(typescript@4.9.5):
     resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
     engines: {node: '>= 6'}
     peerDependencies:
       typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
     dependencies:
       tslib: 1.14.1
-      typescript: 5.2.2
+      typescript: 4.9.5
     dev: false
 
   /tty-browserify@0.0.1:
     resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==}
     dev: true
 
-  /tty-table@4.2.2:
-    resolution: {integrity: sha512-2gvCArMZLxgvpZ2NvQKdnYWIFLe7I/z5JClMuhrDXunmKgSZcQKcZRjN9XjAFiToMz2pUo1dEIXyrm0AwgV5Tw==}
+  /tty-table@4.2.3:
+    resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==}
     engines: {node: '>=8.0.0'}
     hasBin: true
     dependencies:
@@ -13892,6 +14889,12 @@ packages:
       strip-ansi: 6.0.1
       wcwidth: 1.0.1
       yargs: 17.7.2
+    dev: true
+
+  /tunnel-agent@0.6.0:
+    resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
+    dependencies:
+      safe-buffer: 5.2.1
     dev: false
 
   /turbo-darwin-64@1.10.16:
@@ -13965,10 +14968,15 @@ packages:
     engines: {node: '>=4'}
     dev: true
 
+  /type-fest@0.10.0:
+    resolution: {integrity: sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==}
+    engines: {node: '>=8'}
+    dev: true
+
   /type-fest@0.13.1:
     resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
     engines: {node: '>=10'}
-    dev: false
+    dev: true
 
   /type-fest@0.20.2:
     resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
@@ -13982,12 +14990,17 @@ packages:
   /type-fest@0.6.0:
     resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
     engines: {node: '>=8'}
-    dev: false
+    dev: true
 
   /type-fest@0.8.1:
     resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
     engines: {node: '>=8'}
-    dev: false
+    dev: true
+
+  /type-fest@1.4.0:
+    resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==}
+    engines: {node: '>=10'}
+    dev: true
 
   /type-fest@2.19.0:
     resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
@@ -14009,7 +15022,7 @@ packages:
       call-bind: 1.0.5
       get-intrinsic: 1.2.2
       is-typed-array: 1.1.12
-    dev: false
+    dev: true
 
   /typed-array-byte-length@1.0.0:
     resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
@@ -14019,7 +15032,7 @@ packages:
       for-each: 0.3.3
       has-proto: 1.0.1
       is-typed-array: 1.1.12
-    dev: false
+    dev: true
 
   /typed-array-byte-offset@1.0.0:
     resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
@@ -14030,7 +15043,7 @@ packages:
       for-each: 0.3.3
       has-proto: 1.0.1
       is-typed-array: 1.1.12
-    dev: false
+    dev: true
 
   /typed-array-length@1.0.4:
     resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
@@ -14038,7 +15051,6 @@ packages:
       call-bind: 1.0.2
       for-each: 0.3.3
       is-typed-array: 1.1.12
-    dev: false
 
   /typedarray-to-buffer@3.1.5:
     resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
@@ -14074,10 +15086,11 @@ packages:
     engines: {node: '>=4.2.0'}
     hasBin: true
 
-  /typescript@5.2.2:
-    resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
+  /typescript@5.3.2:
+    resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==}
     engines: {node: '>=14.17'}
     hasBin: true
+    dev: true
 
   /ua-parser-js@1.0.36:
     resolution: {integrity: sha512-znuyCIXzl8ciS3+y3fHJI/2OhQIXbXw9MWC/o3qwyR+RGppjZHrM27CGFSKCJXi2Kctiz537iOu2KnXs1lMQhw==}
@@ -14098,7 +15111,6 @@ packages:
       has-bigints: 1.0.2
       has-symbols: 1.0.3
       which-boxed-primitive: 1.0.2
-    dev: false
 
   /underscore@1.13.6:
     resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==}
@@ -14220,9 +15232,10 @@ packages:
   /universalify@0.1.2:
     resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
     engines: {node: '>= 4.0.0'}
+    dev: true
 
-  /universalify@2.0.0:
-    resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
+  /universalify@2.0.1:
+    resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
     engines: {node: '>= 10.0.0'}
 
   /unpipe@1.0.0:
@@ -14295,7 +15308,7 @@ packages:
   /uri-js@4.4.1:
     resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
     dependencies:
-      punycode: 2.3.0
+      punycode: 2.3.1
 
   /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.88.2):
     resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
@@ -14413,8 +15426,8 @@ packages:
     resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==}
     engines: {node: '>=10.12.0'}
     dependencies:
-      '@jridgewell/trace-mapping': 0.3.19
-      '@types/istanbul-lib-coverage': 2.0.4
+      '@jridgewell/trace-mapping': 0.3.20
+      '@types/istanbul-lib-coverage': 2.0.6
       convert-source-map: 2.0.0
     dev: true
 
@@ -14423,7 +15436,13 @@ packages:
     dependencies:
       spdx-correct: 3.2.0
       spdx-expression-parse: 3.0.1
-    dev: false
+    dev: true
+
+  /validate-npm-package-name@3.0.0:
+    resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
+    dependencies:
+      builtins: 1.0.3
+    dev: true
 
   /validate-npm-package-name@5.0.0:
     resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
@@ -14510,6 +15529,7 @@ packages:
     resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
     dependencies:
       defaults: 1.0.4
+    dev: true
 
   /web-namespaces@1.1.4:
     resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==}
@@ -14544,8 +15564,8 @@ packages:
     hasBin: true
     dependencies:
       '@discoveryjs/json-ext': 0.5.7
-      acorn: 8.10.0
-      acorn-walk: 8.2.0
+      acorn: 8.11.2
+      acorn-walk: 8.3.0
       commander: 7.2.0
       escape-string-regexp: 4.0.0
       gzip-size: 6.0.0
@@ -14700,7 +15720,7 @@ packages:
       browserslist: 4.22.1
       chrome-trace-event: 1.0.3
       enhanced-resolve: 5.15.0
-      es-module-lexer: 1.3.1
+      es-module-lexer: 1.4.1
       eslint-scope: 5.1.1
       events: 3.3.0
       glob-to-regexp: 0.4.1
@@ -14755,6 +15775,14 @@ packages:
       webidl-conversions: 7.0.0
     dev: false
 
+  /whatwg-url@13.0.0:
+    resolution: {integrity: sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==}
+    engines: {node: '>=16'}
+    dependencies:
+      tr46: 4.1.1
+      webidl-conversions: 7.0.0
+    dev: false
+
   /whatwg-url@5.0.0:
     resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
     dependencies:
@@ -14778,7 +15806,6 @@ packages:
       is-number-object: 1.0.7
       is-string: 1.0.7
       is-symbol: 1.0.4
-    dev: false
 
   /which-collection@1.0.1:
     resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
@@ -14791,7 +15818,7 @@ packages:
 
   /which-module@2.0.1:
     resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
-    dev: false
+    dev: true
 
   /which-pm@2.0.0:
     resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
@@ -14799,7 +15826,7 @@ packages:
     dependencies:
       load-yaml-file: 0.2.0
       path-exists: 4.0.0
-    dev: false
+    dev: true
 
   /which-typed-array@1.1.11:
     resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
@@ -14827,7 +15854,6 @@ packages:
     hasBin: true
     dependencies:
       isexe: 2.0.0
-    dev: false
 
   /which@2.0.2:
     resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
@@ -14868,6 +15894,7 @@ packages:
       ansi-styles: 4.3.0
       string-width: 4.2.3
       strip-ansi: 6.0.1
+    dev: true
 
   /wrap-ansi@7.0.0:
     resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
@@ -14884,7 +15911,6 @@ packages:
       ansi-styles: 6.2.1
       string-width: 5.1.2
       strip-ansi: 7.1.0
-    dev: false
 
   /wrappy@1.0.2:
     resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
@@ -14955,15 +15981,16 @@ packages:
 
   /y18n@4.0.3:
     resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
-    dev: false
+    dev: true
 
   /y18n@5.0.8:
     resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
     engines: {node: '>=10'}
+    dev: true
 
   /yallist@2.1.2:
     resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
-    dev: false
+    dev: true
 
   /yallist@3.1.1:
     resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
@@ -14987,11 +16014,12 @@ packages:
     dependencies:
       camelcase: 5.3.1
       decamelize: 1.2.0
-    dev: false
+    dev: true
 
   /yargs-parser@21.1.1:
     resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
     engines: {node: '>=12'}
+    dev: true
 
   /yargs@15.4.1:
     resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
@@ -15008,7 +16036,7 @@ packages:
       which-module: 2.0.1
       y18n: 4.0.3
       yargs-parser: 18.1.3
-    dev: false
+    dev: true
 
   /yargs@17.7.2:
     resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
@@ -15021,6 +16049,7 @@ packages:
       string-width: 4.2.3
       y18n: 5.0.8
       yargs-parser: 21.1.1
+    dev: true
 
   /yn@3.1.1:
     resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
@@ -15038,3 +16067,9 @@ packages:
   /zwitch@1.0.5:
     resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
     dev: false
+
+  github.com/watson/ci-info/f43f6a1cefff47fb361c88cf4b943fdbcaafe540:
+    resolution: {tarball: https://codeload.github.com/watson/ci-info/tar.gz/f43f6a1cefff47fb361c88cf4b943fdbcaafe540}
+    name: ci-info
+    version: 2.0.0
+    dev: true