From 159b7ef81dd18fc3c3921b72c218aa53524aae14 Mon Sep 17 00:00:00 2001 From: Tyler Hutcherson Date: Tue, 28 Jan 2025 11:17:04 -0500 Subject: [PATCH 1/3] add feature store recipe --- README.md | 4 + .../feature-store/00_feast_credit_score.ipynb | 4018 +++++++++++++++++ 2 files changed, 4022 insertions(+) create mode 100644 python-recipes/feature-store/00_feast_credit_score.ipynb diff --git a/README.md b/README.md index e142cc0..3a99539 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,10 @@ An estimated 31% of LLM queries are potentially redundant ([source](https://arxi | [/recommendation-systems/00_content_filtering.ipynb](python-recipes/recommendation-systems/00_content_filtering.ipynb) | Intro content filtering example with redisvl | | [/recommendation-systems/01_collaborative_filtering.ipynb](python-recipes/recommendation-systems/01_collaborative_filtering.ipynb) | Intro collaborative filtering example with redisvl | +### Feature Store +| Recipe | Description | +| ------ | ----------- | +| [/feature-store/00_feast_credit_score.ipynb](python-recipes/feature-store/00_feast_credit_score.ipynb) | Credit scoring system using Feast with Redis as the online store. ## Tutorials Need a *deeper-dive* through different use cases and topics? diff --git a/python-recipes/feature-store/00_feast_credit_score.ipynb b/python-recipes/feature-store/00_feast_credit_score.ipynb new file mode 100644 index 0000000..7e33214 --- /dev/null +++ b/python-recipes/feature-store/00_feast_credit_score.ipynb @@ -0,0 +1,4018 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "_MCo747t9dL2" + }, + "source": [ + "![Redis](https://redis.io/wp-content/uploads/2024/04/Logotype.svg?auto=webp&quality=85,75&width=120)\n", + "\n", + "# Redis Online Feature Store with Feast\n", + "\n", + "In this recipe, we will learn all about [Feature Stores](https://redis.io/solutions/feature-stores/) with **Redis** and **Feast**. This guide is an adaptation of the [Feast Tutorial](https://docs.feast.dev/tutorials/tutorials-overview/real-time-credit-scoring-on-aws) that uses [Redis as the online feature store](https://docs.feast.dev/reference/online-stores/redis)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xXeKcMddDMf_" + }, + "source": [ + "## Let's Begin!\n", + "\"Open\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sBIoQ08FI_d_" + }, + "source": [ + "## Environment Setup\n", + "\n", + "### Install Python Dependencies" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "pf1wE6aXvofJ", + "outputId": "cf0247c6-03b0-4314-c389-96867b60fc1a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.3/5.3 MB\u001b[0m \u001b[31m11.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m81.6/81.6 kB\u001b[0m \u001b[31m3.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m119.4/119.4 kB\u001b[0m \u001b[31m6.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m94.8/94.8 kB\u001b[0m \u001b[31m3.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m167.3/167.3 kB\u001b[0m \u001b[31m7.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m241.1/241.1 kB\u001b[0m \u001b[31m12.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.3/62.3 kB\u001b[0m \u001b[31m3.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m85.0/85.0 kB\u001b[0m \u001b[31m5.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m101.6/101.6 kB\u001b[0m \u001b[31m4.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m243.2/243.2 kB\u001b[0m \u001b[31m9.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m459.8/459.8 kB\u001b[0m \u001b[31m17.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.7/12.7 MB\u001b[0m \u001b[31m29.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.5/71.5 kB\u001b[0m \u001b[31m2.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.0/4.0 MB\u001b[0m \u001b[31m45.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m452.6/452.6 kB\u001b[0m \u001b[31m7.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h" + ] + } + ], + "source": [ + "%pip install -q feast['redis']==0.42.0 ipywidgets pandas scikit-learn" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uEjQ6Z2DH0Nl" + }, + "source": [ + "### Install Redis Stack\n", + "\n", + "In this recipe, **Redis** will be used to store and fetch ML model features through Feast. **We need to make sure we have a Redis instance available.**" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wojUwDA6H5GH" + }, + "source": [ + "#### For Colab\n", + "Use the shell script below to download, extract, and install [Redis Stack](https://redis.io/docs/getting-started/install-stack/) directly from the Redis package archive." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ZYmnw8E16UvK", + "outputId": "db7b19c1-c9d5-45f2-92f0-caf045216234" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb jammy main\n", + "Starting redis-stack-server, database path /var/lib/redis-stack\n" + ] + } + ], + "source": [ + "# NBVAL_SKIP\n", + "%%sh\n", + "curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg\n", + "echo \"deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/redis.list\n", + "sudo apt-get update > /dev/null 2>&1\n", + "sudo apt-get install redis-stack-server > /dev/null 2>&1\n", + "redis-stack-server --daemonize yes" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OdWGcmVeH-Oy" + }, + "source": [ + "#### For Alternative Environments\n", + "There are many ways to get the necessary redis-stack instance running\n", + "1. On cloud, deploy a [FREE instance of Redis in the cloud](https://redis.io/cloud/). Or, if you have your\n", + "own version of Redis Enterprise running, that works too!\n", + "2. Per OS, [see the docs](https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/)\n", + "3. With docker:\n", + "\n", + " ```bash\n", + " docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest\n", + " ```" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nBgAPO0UIFGd" + }, + "source": [ + "### Define the Redis Connection URL\n", + "\n", + "By default this notebook connects to the local instance of Redis Stack. **If you have your own Redis Enterprise instance** - replace `REDIS_PASSWORD`, `REDIS_HOST` and `REDIS_PORT` values with your own." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "vhPBR4sS6We9" + }, + "outputs": [], + "source": [ + "import os\n", + "import warnings\n", + "\n", + "REDIS_HOST = os.getenv(\"REDIS_HOST\", \"localhost\")\n", + "REDIS_PORT = os.getenv(\"REDIS_PORT\", \"6379\")\n", + "REDIS_PASSWORD = os.getenv(\"REDIS_PASSWORD\", \"\")\n", + "\n", + "# Replace values above with your own if using Redis Cloud instance\n", + "#REDIS_HOST=\"redis-18374.c253.us-central1-1.gce.cloud.redislabs.com\"\n", + "#REDIS_PORT=18374\n", + "#REDIS_PASSWORD=\"1TNxTEdYRDgIDKM2gDfasupCADXXXX\"\n", + "\n", + "# If SSL is enabled on the endpoint, use rediss:// as the URL prefix\n", + "REDIS_URL = f\"redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}\"\n", + "\n", + "# See https://docs.feast.dev/reference/online-stores/redis for details on Feast connection to Redis\n", + "REDIS_URL_FEAST = f\"{REDIS_HOST}:{REDIS_PORT},ssl=false,password={REDIS_PASSWORD}\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZSEHUJSVIICm" + }, + "source": [ + "## Load features dataset\n", + "\n", + "Below we will make a `creditscore/` directory which will be the home of our Feast repo. We'll create and store additional files there down the road. For now we are loading dataset files into `creditscore/data`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "v15le9QHUDx1" + }, + "outputs": [], + "source": [ + "%%bash\n", + "mkdir creditscore\n", + "mkdir creditscore/data\n", + "wget https://github.com/antonum/feast-redis/raw/refs/heads/main/creditscore/data/credit_history.parquet -q -P creditscore/data\n", + "wget https://github.com/antonum/feast-redis/raw/refs/heads/main/creditscore/data/zipcode_table.parquet -q -P creditscore/data\n", + "wget https://github.com/antonum/feast-redis/raw/refs/heads/main/creditscore/data/loan_table.parquet -q -P creditscore/data" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aPN5iDBmFZvU" + }, + "source": [ + "### Creating feature_store.yaml\n", + "\n", + "`feature_store.yaml` is used to configure a feature store with Feast. The file must be located at the root of a feature repository `creditscore/`.\n", + "\n", + "See [Redis | Feast Documentation](https://docs.feast.dev/reference/online-stores/redis) for the details of configuring Redis as an online store." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "rpL-6kwUWQbN" + }, + "outputs": [], + "source": [ + "feature_store_config = \\\n", + "f\"\"\"project: creditscore\n", + "registry: data/registry.db\n", + "provider: local\n", + "online_store:\n", + " type: redis\n", + " connection_string: {REDIS_URL_FEAST}\n", + "entity_key_serialization_version: 2\n", + "\"\"\"\n", + "\n", + "with open('creditscore/feature_store.yaml', \"w\") as file:\n", + " file.write(feature_store_config)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "5iIlkheBMAFj", + "outputId": "e6fbefb8-4661-4b31-dece-53a3c172a491" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "project: creditscore\n", + "registry: data/registry.db\n", + "provider: local\n", + "online_store:\n", + " type: redis\n", + " connection_string: localhost:6379,ssl=false,password=\n", + "entity_key_serialization_version: 2\n" + ] + } + ], + "source": [ + "# Print our feature_store.yaml\n", + "! cat creditscore/feature_store.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Xbl45OPxGbFY" + }, + "source": [ + "### Feature Definitions\n", + "\n", + "A feature repository can also contain one or more Python files that contain feature definitions." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "W_9xklCQWsQI", + "outputId": "4ad9db17-c6bd-4406-a724-0a5a73f01733" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Writing creditscore/features.py\n" + ] + } + ], + "source": [ + "%%writefile creditscore/features.py\n", + "\n", + "from datetime import timedelta\n", + "\n", + "from feast import (\n", + " Entity,\n", + " Field,\n", + " FeatureView,\n", + " ValueType,\n", + " FileSource\n", + " )\n", + "from feast.types import Float32, Int64, String\n", + "\n", + "\n", + "# Feature Definitions\n", + "\n", + "## Zipcode Features\n", + "zipcode = Entity(\n", + " name=\"zipcode\",\n", + " value_type=ValueType.STRING\n", + ")\n", + "zipcode_source = FileSource(\n", + " path=\"data/zipcode_table.parquet\",\n", + " timestamp_field=\"event_timestamp\",\n", + " #event_timestamp_column=\"event_timestamp\",\n", + " created_timestamp_column=\"created_timestamp\",\n", + ")\n", + "zipcode_features = FeatureView(\n", + " name=\"zipcode_features\",\n", + " entities=[zipcode],\n", + " ttl=timedelta(days=3650),\n", + " schema=[\n", + " Field(name=\"city\", dtype=String),\n", + " Field(name=\"state\", dtype=String),\n", + " Field(name=\"location_type\", dtype=String),\n", + " Field(name=\"tax_returns_filed\", dtype=Int64),\n", + " Field(name=\"population\", dtype=Int64),\n", + " Field(name=\"total_wages\", dtype=Int64),\n", + " ],\n", + " source=zipcode_source,\n", + ")\n", + "\n", + "\n", + "## Credit History Features\n", + "dob_ssn = Entity(\n", + " name=\"dob_ssn\",\n", + " description=\"Date of birth and last four digits of social security number\",\n", + " value_type=ValueType.STRING\n", + ")\n", + "credit_history_source = FileSource(\n", + " path=\"data/credit_history.parquet\",\n", + " timestamp_field=\"event_timestamp\",\n", + " #event_timestamp_column=\"event_timestamp\",\n", + " created_timestamp_column=\"created_timestamp\",\n", + "\n", + ")\n", + "credit_history = FeatureView(\n", + " name=\"credit_history\",\n", + " entities=[dob_ssn],\n", + " ttl=timedelta(days=3650),\n", + " schema=[\n", + " Field(name=\"dob_ssn\", dtype=String), # Add entity column for dob_ssn\n", + " Field(name=\"credit_card_due\", dtype=Int64),\n", + " Field(name=\"mortgage_due\", dtype=Int64),\n", + " Field(name=\"student_loan_due\", dtype=Int64),\n", + " Field(name=\"vehicle_loan_due\", dtype=Int64),\n", + " Field(name=\"hard_pulls\", dtype=Int64),\n", + " Field(name=\"missed_payments_2y\", dtype=Int64),\n", + " Field(name=\"missed_payments_1y\", dtype=Int64),\n", + " Field(name=\"missed_payments_6m\", dtype=Int64),\n", + " Field(name=\"bankruptcies\", dtype=Int64),\n", + " ],\n", + " source=credit_history_source,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Go53F4ZOnkZf" + }, + "source": [ + "### Create Feast repository" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8Ni6sGGjXDks", + "outputId": "d51d4097-2945-4ab8-ba29-813fff333d00" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/content/creditscore\n", + "No project found in the repository. Using project name creditscore defined in feature_store.yaml\n", + "Applying changes for project creditscore\n", + "Deploying infrastructure for \u001b[1m\u001b[32mzipcode_features\u001b[0m\n", + "Deploying infrastructure for \u001b[1m\u001b[32mcredit_history\u001b[0m\n" + ] + } + ], + "source": [ + "%cd creditscore/\n", + "!feast apply" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nZseuwvTnqbH" + }, + "source": [ + "### Materialize features into Redis\n", + "\n", + "Load data from feature views (parquet files) into the online store (Redis). Use `feast materialize-incremental` to update online store with changes since the last `materialize` call." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "PH8wOOLUv75g", + "outputId": "18cb39e3-e037-4ff5-982c-55d86bfa3b22" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Materializing \u001b[1m\u001b[32m2\u001b[0m feature views to \u001b[1m\u001b[32m2025-01-24 16:57:10+00:00\u001b[0m into the \u001b[1m\u001b[32mredis\u001b[0m online store.\n", + "\n", + "\u001b[1m\u001b[32mzipcode_features\u001b[0m from \u001b[1m\u001b[32m2015-01-28 17:19:20+00:00\u001b[0m to \u001b[1m\u001b[32m2025-01-24 16:57:10+00:00\u001b[0m:\n", + "100%|██████████████████████████████████████████████████████| 28844/28844 [00:02<00:00, 12728.58it/s]\n", + "\u001b[1m\u001b[32mcredit_history\u001b[0m from \u001b[1m\u001b[32m2015-01-28 17:19:23+00:00\u001b[0m to \u001b[1m\u001b[32m2025-01-24 16:57:10+00:00\u001b[0m:\n", + "100%|██████████████████████████████████████████████████████| 28633/28633 [00:02<00:00, 10716.44it/s]\n", + "/content\n" + ] + } + ], + "source": [ + "warnings.simplefilter(\"ignore\", DeprecationWarning)\n", + "\n", + "!feast materialize-incremental 2025-01-24T16:57:10\n", + "%cd .." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "e1L8uAaKuoge" + }, + "source": [ + "## Retreive feature vector from the Redis Online Store\n", + "\n", + "`feast apply` and `feast materialize` initialized our feature store, so now we can request features from the Redis online store with `store.get_online_features()` call." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "u7Yo-3BBgLFy", + "outputId": "872bb552-bda4-4ccd-f473-6ddee6c692d8" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'zipcode': ['76104'],\n", + " 'dob_ssn': ['19630621_4278'],\n", + " 'total_wages': [142325465],\n", + " 'state': ['TX'],\n", + " 'tax_returns_filed': [6058],\n", + " 'city': ['FORT WORTH'],\n", + " 'location_type': ['PRIMARY'],\n", + " 'population': [10534],\n", + " 'hard_pulls': [1],\n", + " 'missed_payments_2y': [0],\n", + " 'bankruptcies': [0],\n", + " 'missed_payments_6m': [0],\n", + " 'credit_card_due': [3343],\n", + " 'student_loan_due': [44375],\n", + " 'mortgage_due': [378847],\n", + " 'vehicle_loan_due': [11506],\n", + " 'missed_payments_1y': [0]}" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from feast import FeatureStore\n", + "warnings.simplefilter(\"ignore\", DeprecationWarning)\n", + "\n", + "\n", + "store = FeatureStore(repo_path=\"creditscore/\")\n", + "feast_features = [\n", + " \"zipcode_features:city\",\n", + " \"zipcode_features:state\",\n", + " \"zipcode_features:location_type\",\n", + " \"zipcode_features:tax_returns_filed\",\n", + " \"zipcode_features:population\",\n", + " \"zipcode_features:total_wages\",\n", + " \"credit_history:credit_card_due\",\n", + " \"credit_history:mortgage_due\",\n", + " \"credit_history:student_loan_due\",\n", + " \"credit_history:vehicle_loan_due\",\n", + " \"credit_history:hard_pulls\",\n", + " \"credit_history:missed_payments_2y\",\n", + " \"credit_history:missed_payments_1y\",\n", + " \"credit_history:missed_payments_6m\",\n", + " \"credit_history:bankruptcies\",\n", + " ]\n", + "zipcode = \"76104\"\n", + "dob_ssn = \"19630621_4278\"\n", + "\n", + "feature_vector = store.get_online_features(\n", + " features = feast_features,\n", + " entity_rows = [{\"zipcode\": zipcode, \"dob_ssn\": dob_ssn}]\n", + ")\n", + "feature_vector.to_dict()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tqDuixcKuvYL" + }, + "source": [ + "## Examine source data\n", + "\n", + "`credit_history.parquet` and `zipcode_table.parquet` contains data that would be exposed by our featurestoe as both online and offline features. `loan_table.parquet` is used only to train the model and contains historical loan request submissions and target value as approve/deny in `loan_status`." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 617 + }, + "id": "H2qtjYqQx01b", + "outputId": "c88c250c-ccfe-4a42-ebf9-41528367589b" + }, + "outputs": [ + { + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe" + }, + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
event_timestampdob_ssncredit_card_duemortgage_duestudent_loan_duevehicle_loan_duehard_pullsmissed_payments_2ymissed_payments_1ymissed_payments_6mbankruptciescreated_timestamp
02020-04-26 18:01:04.74657519530219_51798419918032232815078010002020-04-26 18:01:04.746575
12020-04-26 18:01:04.74657519781116_77232944741165251528605033102020-04-26 18:01:04.746575
22020-04-26 18:01:04.74657519931128_57718339765223300021733970002020-04-26 18:01:04.746575
32020-04-26 18:01:04.74657519500806_6783593615535234895526219100002020-04-26 18:01:04.746575
42020-04-26 18:01:04.74657519620322_769215751067381950115814110002020-04-26 18:01:04.746575
.......................................
20332932021-08-29 18:01:04.74657519621030_8837904511061442576013826852102021-08-29 18:01:04.746575
20332942021-08-29 18:01:04.74657519810914_5886506513768732059413948851102021-08-29 18:01:04.746575
20332952021-08-29 18:01:04.74657519491025_806173827353224113159021012102021-08-29 18:01:04.746575
20332962021-08-29 18:01:04.74657519751125_4615344315347924313316294462102021-08-29 18:01:04.746575
20332972021-08-29 18:01:04.74657519960703_344919281197324242084691140102021-08-29 18:01:04.746575
\n", + "

2033298 rows × 12 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "text/plain": [ + " event_timestamp dob_ssn credit_card_due \\\n", + "0 2020-04-26 18:01:04.746575 19530219_5179 8419 \n", + "1 2020-04-26 18:01:04.746575 19781116_7723 2944 \n", + "2 2020-04-26 18:01:04.746575 19931128_5771 833 \n", + "3 2020-04-26 18:01:04.746575 19500806_6783 5936 \n", + "4 2020-04-26 18:01:04.746575 19620322_7692 1575 \n", + "... ... ... ... \n", + "2033293 2021-08-29 18:01:04.746575 19621030_8837 9045 \n", + "2033294 2021-08-29 18:01:04.746575 19810914_5886 5065 \n", + "2033295 2021-08-29 18:01:04.746575 19491025_8061 738 \n", + "2033296 2021-08-29 18:01:04.746575 19751125_4615 3443 \n", + "2033297 2021-08-29 18:01:04.746575 19960703_3449 1928 \n", + "\n", + " mortgage_due student_loan_due vehicle_loan_due hard_pulls \\\n", + "0 91803 22328 15078 0 \n", + "1 741165 2515 28605 0 \n", + "2 976522 33000 21733 9 \n", + "3 1553523 48955 26219 1 \n", + "4 1067381 9501 15814 1 \n", + "... ... ... ... ... \n", + "2033293 1106144 25760 13826 8 \n", + "2033294 1376873 20594 13948 8 \n", + "2033295 273532 24113 15902 10 \n", + "2033296 1534792 43133 16294 4 \n", + "2033297 1197324 24208 4691 1 \n", + "\n", + " missed_payments_2y missed_payments_1y missed_payments_6m \\\n", + "0 1 0 0 \n", + "1 3 3 1 \n", + "2 7 0 0 \n", + "3 0 0 0 \n", + "4 1 0 0 \n", + "... ... ... ... \n", + "2033293 5 2 1 \n", + "2033294 5 1 1 \n", + "2033295 1 2 1 \n", + "2033296 6 2 1 \n", + "2033297 4 0 1 \n", + "\n", + " bankruptcies created_timestamp \n", + "0 0 2020-04-26 18:01:04.746575 \n", + "1 0 2020-04-26 18:01:04.746575 \n", + "2 0 2020-04-26 18:01:04.746575 \n", + "3 0 2020-04-26 18:01:04.746575 \n", + "4 0 2020-04-26 18:01:04.746575 \n", + "... ... ... \n", + "2033293 0 2021-08-29 18:01:04.746575 \n", + "2033294 0 2021-08-29 18:01:04.746575 \n", + "2033295 0 2021-08-29 18:01:04.746575 \n", + "2033296 0 2021-08-29 18:01:04.746575 \n", + "2033297 0 2021-08-29 18:01:04.746575 \n", + "\n", + "[2033298 rows x 12 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "pd.read_parquet(\"creditscore/data/credit_history.parquet\")\n", + "\n", + "# zipcode_table.parquet\n", + "# loan_table.parquet" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dvNN9L0wlEdF" + }, + "source": [ + "## Machine Learning Model Training\n", + "\n", + "While our feature store at this point already complete, let's put it to a good use and introduce a `LoadRequestModel` that we will train, using `get_historical_features()` and use to make predictions with `get_online_features()`" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "id": "vpclM_myk3g_" + }, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "import feast\n", + "import joblib\n", + "import pandas as pd\n", + "\n", + "from sklearn import tree\n", + "from sklearn.exceptions import NotFittedError\n", + "from sklearn.preprocessing import OrdinalEncoder\n", + "from sklearn.utils.validation import check_is_fitted\n", + "warnings.simplefilter(\"ignore\", DeprecationWarning)\n", + "\n", + "\n", + "class LoadRequestModel:\n", + " \"\"\"\n", + " ML model to classify whether a person should\n", + " get approved or rejected for a loan based on a variety of\n", + " input factors.\n", + " \"\"\"\n", + " categorical_features = [\n", + " \"person_home_ownership\",\n", + " \"loan_intent\",\n", + " \"city\",\n", + " \"state\",\n", + " \"location_type\",\n", + " ]\n", + "\n", + " feast_features = [\n", + " \"zipcode_features:city\",\n", + " \"zipcode_features:state\",\n", + " \"zipcode_features:location_type\",\n", + " \"zipcode_features:tax_returns_filed\",\n", + " \"zipcode_features:population\",\n", + " \"zipcode_features:total_wages\",\n", + " \"credit_history:credit_card_due\",\n", + " \"credit_history:mortgage_due\",\n", + " \"credit_history:student_loan_due\",\n", + " \"credit_history:vehicle_loan_due\",\n", + " \"credit_history:hard_pulls\",\n", + " \"credit_history:missed_payments_2y\",\n", + " \"credit_history:missed_payments_1y\",\n", + " \"credit_history:missed_payments_6m\",\n", + " \"credit_history:bankruptcies\",\n", + " ]\n", + "\n", + " target = \"loan_status\"\n", + " model_filename = \"model.bin\"\n", + " encoder_filename = \"encoder.bin\"\n", + "\n", + " def __init__(self,secret=\"\"):\n", + " # Load model\n", + " if Path(self.model_filename).exists():\n", + " self.classifier = joblib.load(self.model_filename)\n", + " else:\n", + " self.classifier = tree.DecisionTreeClassifier()\n", + "\n", + " # Load ordinal encoder\n", + " if Path(self.encoder_filename).exists():\n", + " self.encoder = joblib.load(self.encoder_filename)\n", + " else:\n", + " self.encoder = OrdinalEncoder()\n", + "\n", + " # Set up feature store\n", + " self.fs = feast.FeatureStore(repo_path=\"creditscore/\")\n", + " #if secret and (\":\" in secret):\n", + " # self.fs.config.online_store.connection_string=secret\n", + "\n", + " def train(self, loans):\n", + " train_X, train_Y = self._get_training_features(loans)\n", + "\n", + " self.classifier.fit(train_X[sorted(train_X)], train_Y)\n", + " joblib.dump(self.classifier, self.model_filename)\n", + "\n", + " def _get_training_features(self, loans):\n", + " training_df = self.fs.get_historical_features(\n", + " entity_df=loans, features=self.feast_features\n", + " ).to_df()\n", + "\n", + " self._fit_ordinal_encoder(training_df)\n", + " self._apply_ordinal_encoding(training_df)\n", + " #print(training_df.head())\n", + " train_X = training_df[\n", + " training_df.columns.drop(self.target)\n", + " .drop(\"event_timestamp\")\n", + " .drop(\"created_timestamp__\")\n", + " .drop(\"loan_id\")\n", + " .drop(\"zipcode\")\n", + " .drop(\"dob_ssn\")\n", + " ]\n", + " train_X = train_X.reindex(sorted(train_X.columns), axis=1)\n", + " train_Y = training_df.loc[:, self.target]\n", + "\n", + " return train_X, train_Y\n", + "\n", + " def _fit_ordinal_encoder(self, requests):\n", + " self.encoder.fit(requests[self.categorical_features])\n", + " joblib.dump(self.encoder, self.encoder_filename)\n", + "\n", + " def _apply_ordinal_encoding(self, requests):\n", + " requests[self.categorical_features] = self.encoder.transform(\n", + " requests[self.categorical_features]\n", + " )\n", + "\n", + " def predict(self, request):\n", + " # Get online features from Feast\n", + " feature_vector = self._get_online_features_from_feast(request)\n", + "\n", + " # Join features to request features\n", + " features = request.copy()\n", + " features.update(feature_vector)\n", + " features_df = pd.DataFrame.from_dict(features)\n", + "\n", + " # Apply ordinal encoding to categorical features\n", + " self._apply_ordinal_encoding(features_df)\n", + "\n", + " # Sort columns\n", + " features_df = features_df.reindex(sorted(features_df.columns), axis=1)\n", + "\n", + " # Drop unnecessary columns\n", + " features_df = features_df[features_df.columns.drop(\"zipcode\").drop(\"dob_ssn\")]\n", + "\n", + " # Make prediction\n", + " features_df[\"prediction\"] = self.classifier.predict(features_df)\n", + "\n", + " # return result of credit scoring\n", + " return features_df[\"prediction\"].iloc[0]\n", + "\n", + " def _get_online_features_from_feast(self, request):\n", + " zipcode = request[\"zipcode\"][0]\n", + " dob_ssn = request[\"dob_ssn\"][0]\n", + "\n", + " return self.fs.get_online_features(\n", + " entity_rows=[{\"zipcode\": zipcode, \"dob_ssn\": dob_ssn}],\n", + " features=self.feast_features,\n", + " ).to_dict()\n", + "\n", + " def is_model_trained(self):\n", + " try:\n", + " check_is_fitted(self.classifier, \"tree_\")\n", + " except NotFittedError:\n", + " return False\n", + " return True\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aJMddzepop_-" + }, + "source": [ + "## Initialize the model\n", + "\n", + "Now we need to train the model and make a sample prediction. After training is completed you'll see `model.bin` and `encoder.bin` files in the filesystem." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Nw99Ey_0EmZ0", + "outputId": "ec762747-da85-4f93-cc98-d165b33258e5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model not trained. Performing training.\n" + ] + } + ], + "source": [ + "# Create model\n", + "model = LoadRequestModel()\n", + "\n", + "# Train model (using Parquet for zipcode and credit history features)\n", + "if not model.is_model_trained():\n", + " print(\"Model not trained. Performing training.\")\n", + " # Get historic loan data\n", + " loans = pd.read_parquet(\"creditscore/data/loan_table.parquet\")\n", + " model.train(loans)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mKhKRnCcLrwo" + }, + "source": [ + "### Make a Loan Request\n", + "\n", + "We will now use our trained ML model and feature store to predict whether or not you would get a loan.\n", + "\n", + "While making a loan request, make sure that `dob_ssn` and `zipcode` values do exist in the source datasets. You can examine source datasets with `pd.read_parquet(\"creditscore/data/credit_history.parquet\")`" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 127, + "referenced_widgets": [ + "d9a931929d2b4eda8790379c157d7060", + "e4dbf90e7a1943d6b513ebbaea4620fc", + "70a1a976057f4a7bae49c65b4aed9f4e", + "be98a638e1de496495281282d3b5afa2", + "580c994253f6470a8e140f2cc8370328", + "259feb51fc7a4291b8a0fdeb757dd0af", + "2a017fb94aed4714b39cdb890a72c364", + "3c8eebe78d464e4d913a89628fe1c5dd", + "31603e43689148acad80127c15e2b711" + ] + }, + "id": "28yr7TDhlOfa", + "outputId": "de0b7e4c-26a9-4197-af47-4c05e18bb372" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Select amounts below:\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d9a931929d2b4eda8790379c157d7060", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "IntSlider(value=159000, description='Income: ', max=1000000)" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "be98a638e1de496495281282d3b5afa2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "IntSlider(value=5000, description='Loan Amount: ', max=1000000)" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2a017fb94aed4714b39cdb890a72c364", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "IntSlider(value=16, description='Interest Rate: ', max=90, min=1)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import ipywidgets as widgets\n", + "\n", + "# initialize loan request with sample data\n", + "loan_request = {\n", + " \"zipcode\": [76104],\n", + " \"dob_ssn\": [\"19630621_4278\"],\n", + " \"person_age\": [63],\n", + " \"person_income\": [159000],\n", + " \"person_home_ownership\": [\"RENT\"],\n", + " \"person_emp_length\": [123.0],\n", + " \"loan_intent\": [\"PERSONAL\"],\n", + " \"loan_amnt\": [5000],\n", + " \"loan_int_rate\": [16.02],\n", + "}\n", + "\n", + "\n", + "slider_income = widgets.IntSlider(loan_request[\"person_income\"][0], max=1000000, min=0, description=\"Income: \")\n", + "slider_amount = widgets.IntSlider(loan_request[\"loan_amnt\"][0], max=1000000, min=0, description=\"Loan Amount: \")\n", + "slider_int_rate = widgets.IntSlider(loan_request[\"loan_int_rate\"][0], max=90, min=1, description=\"Interest Rate: \")\n", + "\n", + "print(\"Select amounts below:\")\n", + "display(slider_income, slider_amount, slider_int_rate)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "yFhF1XpWPbTG", + "outputId": "dc18d87b-548e-4097-ce63-d76d97dca85d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loan rejected!\n" + ] + } + ], + "source": [ + "loan_request[\"person_income\"] = [slider_income.value]\n", + "loan_request[\"loan_amnt\"] = [slider_amount.value]\n", + "loan_request[\"loan_int_rate\"] = [slider_int_rate.value]\n", + "\n", + "\n", + "# Make online prediction (using Redis for retrieving online features)\n", + "result = model.predict(loan_request)\n", + "\n", + "if result == 0:\n", + " print(\"Loan approved!\")\n", + "elif result == 1:\n", + " print(\"Loan rejected!\")\n", + "\n", + "warnings.simplefilter(\"ignore\", DeprecationWarning)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dvWW46znVObR" + }, + "source": [ + "Let's inspect an individual loan request payload." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 332 + }, + "id": "MI6ggOO1pH65", + "outputId": "92368c70-3244-4d91-9bef-c246e81d7c85" + }, + "outputs": [ + { + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "summary": "{\n \"name\": \"loan_request_df\",\n \"rows\": 9,\n \"fields\": [\n {\n \"column\": 0,\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 9,\n \"samples\": [\n 5000,\n \"19630621_4278\",\n 123.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", + "type": "dataframe" + }, + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0
zipcode76104
dob_ssn19630621_4278
person_age63
person_income159000
person_home_ownershipRENT
person_emp_length123.0
loan_intentPERSONAL
loan_amnt5000
loan_int_rate16
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "text/plain": [ + " 0\n", + "zipcode 76104\n", + "dob_ssn 19630621_4278\n", + "person_age 63\n", + "person_income 159000\n", + "person_home_ownership RENT\n", + "person_emp_length 123.0\n", + "loan_intent PERSONAL\n", + "loan_amnt 5000\n", + "loan_int_rate 16" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "warnings.simplefilter(\"ignore\", DeprecationWarning)\n", + "\n", + "loan_request_df = pd.DataFrame.from_dict(loan_request)\n", + "loan_request_df.transpose()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ZOUteI-NVVKG" + }, + "source": [ + "Let's inspect the feature store features pulled from Redis." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 582 + }, + "id": "fg6ZFHF7uMr2", + "outputId": "c230bc1a-2cdb-485a-bb52-b6cf7974524e" + }, + "outputs": [ + { + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "summary": "{\n \"name\": \"feature_vector_df\",\n \"rows\": 17,\n \"fields\": [\n {\n \"column\": 0,\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 14,\n \"samples\": [\n 0,\n 44375,\n \"76104\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", + "type": "dataframe" + }, + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0
zipcode76104
dob_ssn19630621_4278
total_wages142325465
stateTX
tax_returns_filed6058
cityFORT WORTH
location_typePRIMARY
population10534
hard_pulls1
missed_payments_2y0
bankruptcies0
missed_payments_6m0
credit_card_due3343
student_loan_due44375
mortgage_due378847
vehicle_loan_due11506
missed_payments_1y0
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "text/plain": [ + " 0\n", + "zipcode 76104\n", + "dob_ssn 19630621_4278\n", + "total_wages 142325465\n", + "state TX\n", + "tax_returns_filed 6058\n", + "city FORT WORTH\n", + "location_type PRIMARY\n", + "population 10534\n", + "hard_pulls 1\n", + "missed_payments_2y 0\n", + "bankruptcies 0\n", + "missed_payments_6m 0\n", + "credit_card_due 3343\n", + "student_loan_due 44375\n", + "mortgage_due 378847\n", + "vehicle_loan_due 11506\n", + "missed_payments_1y 0" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "warnings.simplefilter(\"ignore\", DeprecationWarning)\n", + "\n", + "feature_vector = model._get_online_features_from_feast(loan_request)\n", + "feature_vector_df=pd.DataFrame.from_dict(feature_vector)\n", + "feature_vector_df.transpose()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "V-ZxTMF9VuX_" + }, + "source": [ + "Join the features to see the entire input sent to the credit prediction model." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 802 + }, + "id": "RbTQfP0ytpKm", + "outputId": "bf08bcd3-3085-4330-e23b-54d0f86c0c28" + }, + "outputs": [ + { + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "summary": "{\n \"name\": \"features_df\",\n \"rows\": 24,\n \"fields\": [\n {\n \"column\": 0,\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 21,\n \"samples\": [\n \"76104\",\n 3343,\n 1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", + "type": "dataframe" + }, + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0
zipcode76104
dob_ssn19630621_4278
person_age63
person_income159000
person_home_ownershipRENT
person_emp_length123.0
loan_intentPERSONAL
loan_amnt5000
loan_int_rate16
total_wages142325465
stateTX
tax_returns_filed6058
cityFORT WORTH
location_typePRIMARY
population10534
hard_pulls1
missed_payments_2y0
bankruptcies0
missed_payments_6m0
credit_card_due3343
student_loan_due44375
mortgage_due378847
vehicle_loan_due11506
missed_payments_1y0
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "text/plain": [ + " 0\n", + "zipcode 76104\n", + "dob_ssn 19630621_4278\n", + "person_age 63\n", + "person_income 159000\n", + "person_home_ownership RENT\n", + "person_emp_length 123.0\n", + "loan_intent PERSONAL\n", + "loan_amnt 5000\n", + "loan_int_rate 16\n", + "total_wages 142325465\n", + "state TX\n", + "tax_returns_filed 6058\n", + "city FORT WORTH\n", + "location_type PRIMARY\n", + "population 10534\n", + "hard_pulls 1\n", + "missed_payments_2y 0\n", + "bankruptcies 0\n", + "missed_payments_6m 0\n", + "credit_card_due 3343\n", + "student_loan_due 44375\n", + "mortgage_due 378847\n", + "vehicle_loan_due 11506\n", + "missed_payments_1y 0" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "features = loan_request.copy()\n", + "features.update(feature_vector)\n", + "features_df = pd.DataFrame.from_dict(features)\n", + "features_df.transpose()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "fiV0HSXNw4MA", + "outputId": "71bff765-0448-4242-c931-45d8a6446faa" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loan rejected!\n" + ] + } + ], + "source": [ + "result = model.predict(loan_request)\n", + "\n", + "if result == 0:\n", + " print(\"Loan approved!\")\n", + "elif result == 1:\n", + " print(\"Loan rejected!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "c9LUGgDZIN7l" + }, + "source": [ + "## Benchmarking\n", + "\n", + "The key advantage of Redis as a Online feature store is it's ability to very quickly retreive features on request. Below, we'll retreive the same data from Online store (Redis) and from the Offline store (parquet) and measure execution time." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "id": "E0yBnM3VV09H" + }, + "outputs": [], + "source": [ + "store = FeatureStore(repo_path=\"creditscore/\")\n", + "feast_features = [\n", + " \"zipcode_features:city\",\n", + " \"zipcode_features:state\",\n", + " \"zipcode_features:location_type\",\n", + " \"zipcode_features:tax_returns_filed\",\n", + " \"zipcode_features:population\",\n", + " \"zipcode_features:total_wages\",\n", + " \"credit_history:credit_card_due\",\n", + " \"credit_history:mortgage_due\",\n", + " \"credit_history:student_loan_due\",\n", + " \"credit_history:vehicle_loan_due\",\n", + " \"credit_history:hard_pulls\",\n", + " \"credit_history:missed_payments_2y\",\n", + " \"credit_history:missed_payments_1y\",\n", + " \"credit_history:missed_payments_6m\",\n", + " \"credit_history:bankruptcies\",\n", + " ]\n", + "zipcode = \"76104\"\n", + "dob_ssn = \"19630621_4278\"\n", + "\n", + "entity_rows=[{\"zipcode\": zipcode, \"dob_ssn\": dob_ssn}]\n", + "entity_rows_df=pd.DataFrame(entity_rows)\n", + "entity_rows_df[\"event_timestamp\"]=pd.to_datetime(\"2020-04-26 18:01:04.746575\")\n", + "entity_rows_df['zipcode'] = entity_rows_df['zipcode'].astype(int)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EwZW_IdvWPMx" + }, + "source": [ + "Online feature store retrieval benchmark:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "khcx8l4WWFST", + "outputId": "29280860-9f59-41d7-9ee2-df094c69eaf0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "18.3 ms ± 4.24 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)\n" + ] + } + ], + "source": [ + "%%timeit\n", + "\n", + "online_features = store.get_online_features(\n", + " features = feast_features,\n", + " entity_rows = entity_rows\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "stN6hs52WRWo" + }, + "source": [ + "Offline feature store retrieval benchmark:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cMXzXeJxWTxI", + "outputId": "f6856e54-5bf5-4caf-8681-de6c37372e47" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.06 s ± 874 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" + ] + } + ], + "source": [ + "%%timeit\n", + "\n", + "offline_features= store.get_historical_features(\n", + " entity_df = entity_rows_df,\n", + " features = feast_features\n", + ").to_df()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9RvUwM40W86O" + }, + "source": [ + ">Note: That's more than a 100x difference. (typically)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8vGFAJh58D7I", + "outputId": "c3fc6d99-7f6f-403c-f0d0-054c1815862d" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019700708_3658creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019770709_1366creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0034112creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019820223_6526creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0053566creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019740104_7765creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019631107_1473creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019831223_3715creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019560526_9481creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019520419_3326creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490626_3291creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x004941creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0065723creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019971207_9765creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019470128_4382creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0094920creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019501210_5531creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0066968creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0052228creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0020716creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019930213_1001creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019511213_6264creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0011582creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0057279creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0024134creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510722_9524creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019781218_1026creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019710313_8778creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0099158creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0077504creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490908_8583creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019811219_7627creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0091358creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0025039creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019460422_6318creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0038473creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0060173creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019910211_8227creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019491106_5381creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0020188creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019851125_5496creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0080866creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019640523_7088creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019540304_4206creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0033558creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0085309creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019930907_1785creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019480102_6626creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0033620creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019630516_9412creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0095968creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019581126_8792creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0017921creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019670609_9521creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0045820creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019480611_4023creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019811111_7723creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019940701_7343creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019750101_8862creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600727_1225creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019831017_9350creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027924creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019851013_6440creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019560311_4709creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0099143creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0089029creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0037774creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019820630_8741creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0095132creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019880301_2182creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0061024creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019780204_9000creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0064463creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019901229_8140creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0047977creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019650412_2278creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019610713_4963creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0099506creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0047974creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0034108creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0094126creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093543creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019791213_6708creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0021102creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019560116_8257creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019950720_4987creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019770221_5327creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0068360creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019460401_4248creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019660430_8376creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019770906_8986creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0057033creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0037909creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019570108_7950creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019950629_3354creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019770927_3885creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0025165creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0060962creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0075928creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019491212_6101creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019650103_9417creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019530923_8398creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0095605creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0077327creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019761015_2701creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0039603creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019570906_8068creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019980313_4381creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019780813_4300creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0070518creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093426creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019841205_3604creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019851203_9052creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0063101creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019780230_2685creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019681120_3945creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019560515_7659creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019751209_7771creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019880425_3691creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019840109_2887creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0049038creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0033949creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0062060creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019460127_6237creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019870519_3289creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019660611_1564creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550819_8793creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0070531creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019720911_9567creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0039703creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0028110creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550930_7119creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019931028_6580creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0068783creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0072167creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019771028_5875creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x002163creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054950creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0062624creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019740927_9521creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019770605_1916creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900111_8289creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019930224_3700creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027107creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019580716_9796creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019760718_8610creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048307creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0039827creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019880608_9893creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019530909_3976creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0016053creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0022038creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019480518_8879creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019610111_5280creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0040370creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019950102_4471creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027828creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510713_7054creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019820716_2584creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0098926creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x001440creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0017020creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046766creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048607creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048760creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x007419creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0076454creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019540418_2227creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510119_9702creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019870709_8204creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019890211_6405creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019650618_9839creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0039323creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054562creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054232creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019830128_5145creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800908_1294creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019820104_1239creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019970726_1557creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019610611_9265creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019640125_6629creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019980218_7106creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019700404_4053creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0025567creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0068461creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019910701_9871creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0012538creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019710603_2888creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055337creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0053719creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019920309_1874creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019860708_9389creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0060160creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490506_6154creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0085607creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019961025_9506creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0013120creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0032774creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054515creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0085266creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019970619_8314creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0030411creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019700730_6870creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019771009_6339creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019740712_6408creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019670223_9503creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0067846creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0033880creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0074442creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019621218_5700creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0031909creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019730822_9539creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0057260creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0023103creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0015537creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019570322_2344creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0038673creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900616_5171creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0072045creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0045371creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019731004_6263creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550108_5590creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019740318_9261creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x007005creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019461028_7247creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019760127_8601creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0077713creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900330_1524creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019760822_7338creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019870706_3677creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0060612creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0065608creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900220_8810creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0029718creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500913_5936creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019630524_1364creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0010307creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0019711creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0097202creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0078403creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500615_6768creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019741030_1232creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0040313creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054409creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019451027_8648creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0087021creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0062684creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019610815_5300creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0015942creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019521014_9749creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0080035creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054856creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019780901_1846creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800507_7833creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x008551creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019610930_2381creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0064658creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019771215_3642creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055941creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0078758creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019630514_8143creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800404_5387creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019621105_5492creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x001830creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x005770creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019950803_1342creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019561020_8862creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019870711_7724creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093258creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019801012_7097creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0050667creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0080011creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0014885creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020000817_7398creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019811027_1147creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x002574creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019501126_4258creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020010927_1119creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046939creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020010724_1838creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x003462creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0078852creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019610113_3129creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019680513_1895creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800416_1721creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0079114creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019760518_9240creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019901007_1549creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0037321creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054902creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019790428_5911creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0092196creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019941203_2697creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019690920_2961creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0036759creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0036567creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0028754creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x001038creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019790103_7031creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019730402_9289creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0044021creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019720625_7734creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0018616creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046573creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019920205_8085creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0070762creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019541126_4345creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0095618creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0039060creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019891012_7651creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019920421_2849creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0098943creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019910926_9370creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019571129_2436creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0078207creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019801228_4058creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019520911_7309creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0098857creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0080467creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0074079creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019960307_2307creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0015333creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019720825_5622creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0036124creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800129_6103creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048218creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019451129_9541creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0075495creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0022553creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019611108_8688creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019521007_7946creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019451123_3854creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019540224_7834creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490527_1080creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019781019_2559creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019751023_5464creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510215_1764creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019850123_6090creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0018038creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600303_5603creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0061038creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500327_6839creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0036362creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019790608_3414creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0023237creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019910330_4806creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0059487creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x002771creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0029487creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019781116_6144creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019970926_5544creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0058059creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019960621_4198creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600426_5457creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019650912_9337creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0080736creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019850302_2892creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0053924creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0094070creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055307creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019980207_8569creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x004101creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0091785creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x008066creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0015461creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0076712creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0050001creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0062208creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0073521creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0047022creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0029842creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0094710creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0049238creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019590513_3858creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600514_7427creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093280creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x005039creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0079371creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019961127_5966creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0092061creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0084094creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019941019_6808creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048091creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019631105_9757creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0091008creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0084041creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x003752creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019840122_3358creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0041776creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019480805_7838creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0022408creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019740906_5824creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0021161creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600724_2753creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0034209creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019681202_9762creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019761021_6510creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0032668creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019730627_1218creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019850717_2977creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0042450creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019891230_7813creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054305creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0031625creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019650510_1847creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046219creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019850919_8169creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019671130_9883creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500406_2189creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019710308_7806creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019520721_9849creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0040701creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0034638creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0078009creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x003102creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020000824_7433creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019590825_4197creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0060429creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019830326_8401creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019690320_9863creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0025621creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0067443creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0053821creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019591122_3279creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019770626_6124creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0092659creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019781125_5030creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0052544creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0019070creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019840122_2502creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0018612creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0016820creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0013495creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550129_8509creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0033951creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019620314_4629creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019891202_7630creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0015014creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046375creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0050263creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019811213_8037creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019970817_1449creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0099324creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054150creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019850326_2656creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0064740creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0087571creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019810412_5596creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048111creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x002539creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0062932creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019740506_1650creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0095962creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0040212creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0033071creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0052216creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019761129_7141creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x007677creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0099612creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0034683creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x004628creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019570919_4732creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019650617_4799creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019750417_9151creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019640128_3080creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019681220_9403creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019570729_9831creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x007754creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020010110_1542creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019481214_2015creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900112_5430creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019750301_9015creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0015542creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0075762creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0075180creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019610708_2808creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500817_7383creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019730523_3723creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0087022creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019970309_6359creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019760703_6100creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019930717_5997creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027518creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019891225_4642creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027604creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019860808_4246creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019690929_9595creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490721_6590creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0070374creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019721114_6499creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020000116_1654creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019970405_5816creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019780711_2036creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019481215_9587creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019811106_7581creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020000606_9315creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019690505_5406creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019860125_6275creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0012790creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019580916_4720creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027243creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0032456creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019990725_5391creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019740306_3818creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0083832creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019660122_3075creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019620824_3060creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510219_3240creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019700215_8709creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019840102_1039creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093704creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0053057creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019770125_6022creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x007748creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0030171creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0085543creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0073065creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550108_4220creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0032007creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019890216_4786creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054527creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019870308_7912creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x007108creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019980807_3406creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019730520_3988creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550414_2433creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019820920_5095creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093445creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490428_2669creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0042633creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0012726creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x002767creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0058012creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054155creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019870529_8418creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019590218_4523creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0097305creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0089028creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019970622_1631creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0038676creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0082003creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019650512_5440creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500523_2557creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019630315_2696creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0066849creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027949creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0070639creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0072132creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019840511_1888creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019620621_4359creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019850307_1167creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019670802_6166creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093270creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019930409_6121creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019990216_6234creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019581013_2739creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019921026_4571creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019470101_2557creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027970creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0083707creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019760823_5942creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900827_7584creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0014028creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019761021_9740creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550809_6074creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0058730creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019480326_5471creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019920417_5573creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019480608_6979creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0026238creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0038361creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0039066creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600218_4585creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019830904_5678creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019940811_8910creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0052804creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093234creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900309_6253creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0016421creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019810502_4542creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800114_3250creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x008215creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019621026_9608creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0080126creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0078066creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019700129_7575creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0029410creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019590729_3199creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0025521creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019481028_1851creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0051022creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019710222_6590creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019610802_2963creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019810409_6982creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0065542creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0037711creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019920813_5763creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019801224_4952creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019501129_2904creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600204_2868creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019870614_3909creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019881221_4807creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x007878creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0035974creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019650116_2658creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x007740creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019951219_1182creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019530828_2170creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0040152creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0095690creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019860713_9798creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019790724_1156creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0018702creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019960629_7239creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019881225_2566creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019690827_6556creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020000530_1192creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055043creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019570412_4658creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0062954creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019451001_6728creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0096151creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0060157creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600815_2349creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019690530_8292creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055736creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0070355creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019951225_8083creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020010213_3127creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0011782creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093443creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019560125_3383creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0065732creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x008759creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0086507creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019690718_6062creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0035622creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0095951creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019590312_6666creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900123_5190creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019670526_2591creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0040517creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019890126_7407creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500407_3433creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019881128_2931creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0053911creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0017931creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0040047creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490223_5161creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0090717creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019941202_6139creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019901118_5278creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0070397creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0077010creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0071361creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019860315_9379creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x003768creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0078124creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0062634creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020000722_2464creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0013321creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0083606creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019630927_9393creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0017821creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019700502_5252creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0024246creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019540929_2990creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019780505_2307creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900522_5797creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0015010creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0033587creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019810811_9001creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0025313creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048048creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0059472creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046540creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019710621_9286creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0061418creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0084340creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019930604_7306creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019470824_1527creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019690906_5278creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019911104_1480creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0091225creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0013682creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x004654creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0061080creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0043977creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500330_4454creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019790326_9945creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510118_7439creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055038creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0065648creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019870906_6908creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020000319_8725creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0091010creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0010928creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0017235creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019541209_8671creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0018074creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0036551creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0060963creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019990117_1263creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019820807_2710creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0052777creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510925_4989creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019900319_4412creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490915_7646creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0044050creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0096127creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0019131creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019640409_1164creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019611219_6862creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019860202_4617creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019570520_4213creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0045071creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019811121_1559creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027959creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019460302_7045creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019650305_2772creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0025262creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019661225_2990creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019960116_7931creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048631creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0040203creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055765creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019810307_1214creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0059022creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0035206creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019920801_8348creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019770118_2579creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0032178creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019750523_8073creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020010823_4247creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020000921_1021creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019450627_1908creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0097215creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0065759creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019990302_2102creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0064439creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046235creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0036528creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019611117_8274creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0024520creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019691212_3646creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0014213creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0011003creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0062454creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019740314_3147creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0062540creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019820425_5987creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0068801creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0095127creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0011691creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0029692creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019741011_8933creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0088210creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0028619creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019701215_2199creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019661009_3453creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019531110_3670creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019771216_6405creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019760827_1221creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x005743creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019831011_2467creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0033774creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055044creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0072863creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019850220_3708creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0068654creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0021545creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0012157creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019480512_1930creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0010457creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500202_2810creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0033615creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019520603_1982creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019700526_3873creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0028510creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0013340creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0011716creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0083705creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019501112_4467creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019760918_4204creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019860922_2269creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019940604_8847creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048098creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019860724_3113creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0060554creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x002126creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019930609_5165creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0038230creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0073072creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019930506_7017creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x001451creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019470522_5603creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019580102_9178creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019940725_6865creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019651226_7797creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019680504_3777creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0068856creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x004460creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019910715_9877creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019870325_1137creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0023442creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019580923_8975creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019791009_5043creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0089074creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500221_2732creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490420_2676creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019891007_2969creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020010713_3540creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0080920creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0078751creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019520405_1198creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019530503_9126creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019611122_2605creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019880717_4375creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055031creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0045432creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027007creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0056367creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0011738creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019720628_8725creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019520714_1309creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019960625_1585creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019661223_1313creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0039663creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0056572creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019721221_7914creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0039209creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019840722_5288creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550728_8932creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019470216_6696creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0053058creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0064481creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0032658creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054170creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019630611_3661creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0038760creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019570128_4342creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0049827creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019710621_2165creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0056323creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020010518_5775creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0065686creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055952creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0011951creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019541124_1206creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019620127_5338creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019660522_1565creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019781211_4697creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0094574creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0061944creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019670919_1391creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019921128_3278creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019830630_8239creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0073139creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019570614_1864creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055723creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0055992creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0041255creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019580619_3744creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019590730_3779creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0015061creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0032448creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0019046creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046706creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0048616creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019481129_2152creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800201_1358creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0072773creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019990413_3287creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0019090creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019820915_3280creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019470610_4090creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0038573creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046394creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019670626_6256creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x007481creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510922_1792creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019530429_5299creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019701123_4498creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019591114_4878creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019960329_8318creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019921122_6221creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0099737creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019921028_8664creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x001082creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x004929creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019480901_7786creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019660219_4269creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019461118_2114creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019611127_9426creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0022967creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800827_7446creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490418_9512creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0054903creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019760306_3330creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0022656creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019590612_3618creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019560919_2757creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0049436creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019710220_5280creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019920612_1273creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0078333creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019490112_9394creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0059601creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019950628_7285creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0031030creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020010125_3481creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0035228creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019741109_5016creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0026032creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0089118creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0040601creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0075217creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0076550creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020010325_9396creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019730507_8742creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019560128_1008creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0032164creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019700113_2978creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019560415_1712creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0056221creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019630929_6832creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019460324_1049creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019640825_3358creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0038167creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0047106creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550316_4272creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x002643creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019991228_7925creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019740609_4875creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019820924_1126creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0042303creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019871226_1226creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019590818_8005creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0051466creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0020000319_6455creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093584creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019911204_8105creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0086403creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019790323_7676creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0092342creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0071742creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0089043creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0046774creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0047807creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0091042creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019530105_9941creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800121_4411creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0038668creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0030006creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019990224_2613creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019690403_1557creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0061319creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019610703_1330creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0093608creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0023609creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0047244creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019990503_5880creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0081141creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0068818creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019800413_2593creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019880505_1690creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0091203creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500511_7145creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019670203_8936creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0032060creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019831003_7385creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019651104_2938creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019790704_4149creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0059802creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0013865creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0011377creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0016827creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0016201creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510305_7529creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600707_2475creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019510225_8060creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019710511_1417creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x04\\x00\\x00\\x005069creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027559creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019571111_4225creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0035051creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0061802creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500919_5275creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019600215_7725creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0019009creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019500124_5400creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0066202creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0058335creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019930811_1809creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019480210_6097creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019700515_8374creditscore',\n", + " b'\\x02\\x00\\x00\\x00dob_ssn\\x02\\x00\\x00\\x00\\r\\x00\\x00\\x0019550528_9708creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0084711creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0071082creditscore',\n", + " b'\\x02\\x00\\x00\\x00zipcode\\x02\\x00\\x00\\x00\\x05\\x00\\x00\\x0027964creditscore',\n", + " ...]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# retreive sample of keys from redis\n", + "from redis import Redis\n", + "\n", + "redis_client = Redis.from_url(REDIS_URL)\n", + "redis_client.keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yaoQYnpgEPzm" + }, + "source": [ + "### Cleanup" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "id": "EKqGsgQGEIDP" + }, + "outputs": [], + "source": [ + "# %cd creditscore/\n", + "# !feast teardown\n", + "# %cd .." + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "259feb51fc7a4291b8a0fdeb757dd0af": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "SliderStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "SliderStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "", + "handle_color": null + } + }, + "2a017fb94aed4714b39cdb890a72c364": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "IntSliderModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "IntSliderModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "IntSliderView", + "continuous_update": true, + "description": "Interest Rate: ", + "description_tooltip": null, + "disabled": false, + "layout": "IPY_MODEL_3c8eebe78d464e4d913a89628fe1c5dd", + "max": 90, + "min": 1, + "orientation": "horizontal", + "readout": true, + "readout_format": "d", + "step": 1, + "style": "IPY_MODEL_31603e43689148acad80127c15e2b711", + "value": 16 + } + }, + "31603e43689148acad80127c15e2b711": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "SliderStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "SliderStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "", + "handle_color": null + } + }, + "3c8eebe78d464e4d913a89628fe1c5dd": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "580c994253f6470a8e140f2cc8370328": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "70a1a976057f4a7bae49c65b4aed9f4e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "SliderStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "SliderStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "", + "handle_color": null + } + }, + "be98a638e1de496495281282d3b5afa2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "IntSliderModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "IntSliderModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "IntSliderView", + "continuous_update": true, + "description": "Loan Amount: ", + "description_tooltip": null, + "disabled": false, + "layout": "IPY_MODEL_580c994253f6470a8e140f2cc8370328", + "max": 1000000, + "min": 0, + "orientation": "horizontal", + "readout": true, + "readout_format": "d", + "step": 1, + "style": "IPY_MODEL_259feb51fc7a4291b8a0fdeb757dd0af", + "value": 5000 + } + }, + "d9a931929d2b4eda8790379c157d7060": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "IntSliderModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "IntSliderModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "IntSliderView", + "continuous_update": true, + "description": "Income: ", + "description_tooltip": null, + "disabled": false, + "layout": "IPY_MODEL_e4dbf90e7a1943d6b513ebbaea4620fc", + "max": 1000000, + "min": 0, + "orientation": "horizontal", + "readout": true, + "readout_format": "d", + "step": 1, + "style": "IPY_MODEL_70a1a976057f4a7bae49c65b4aed9f4e", + "value": 159000 + } + }, + "e4dbf90e7a1943d6b513ebbaea4620fc": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From ea307eef5c83a6afe28878c24a9c0ad9238301cf Mon Sep 17 00:00:00 2001 From: Tyler Hutcherson Date: Tue, 28 Jan 2025 14:59:15 -0500 Subject: [PATCH 2/3] improve intro, cleanup, and fix typo --- assets/feature_store.png | Bin 0 -> 80093 bytes .../feature-store/00_feast_credit_score.ipynb | 21 +++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 assets/feature_store.png diff --git a/assets/feature_store.png b/assets/feature_store.png new file mode 100644 index 0000000000000000000000000000000000000000..662eb9232b1bdbd071e54299c0f6ef572da3ec70 GIT binary patch literal 80093 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 Date: Tue, 28 Jan 2025 15:13:37 -0500 Subject: [PATCH 3/3] updates to notebook with new remote dataset --- .../feature-store/00_feast_credit_score.ipynb | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/python-recipes/feature-store/00_feast_credit_score.ipynb b/python-recipes/feature-store/00_feast_credit_score.ipynb index 12f425f..9186716 100644 --- a/python-recipes/feature-store/00_feast_credit_score.ipynb +++ b/python-recipes/feature-store/00_feast_credit_score.ipynb @@ -203,18 +203,19 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": { "id": "v15le9QHUDx1" }, "outputs": [], "source": [ - "%%bash\n", + "%%sh\n", "mkdir creditscore\n", "mkdir creditscore/data\n", - "wget https://github.com/antonum/feast-redis/raw/refs/heads/main/creditscore/data/credit_history.parquet -q -P creditscore/data\n", - "wget https://github.com/antonum/feast-redis/raw/refs/heads/main/creditscore/data/zipcode_table.parquet -q -P creditscore/data\n", - "wget https://github.com/antonum/feast-redis/raw/refs/heads/main/creditscore/data/loan_table.parquet -q -P creditscore/data" + "\n", + "wget https://redis-ai-resources.s3.us-east-2.amazonaws.com/feature-store/creditscore/credit_history.parquet -q -P creditscore/data\n", + "wget https://redis-ai-resources.s3.us-east-2.amazonaws.com/feature-store/creditscore/zipcode_table.parquet -q -P creditscore/data\n", + "wget https://redis-ai-resources.s3.us-east-2.amazonaws.com/feature-store/creditscore/loan_table.parquet -q -P creditscore/data" ] }, { @@ -3729,7 +3730,16 @@ "name": "python3" }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.10" }, "widgets": { "application/vnd.jupyter.widget-state+json": {