diff --git a/.DS_Store b/.DS_Store index 14bb5ac..3eecb42 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index 28d3626..315aff8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # other chromedriver +.streamlit/ +.obsidian/ +names/ # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..25d22dc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "python.analysis.extraPaths": [ + "./Helper Functions/Python" + ] +} diff --git a/Back End/Database/database_structure.dbml b/Back End/Database/database_structure.dbml new file mode 100644 index 0000000..b064317 --- /dev/null +++ b/Back End/Database/database_structure.dbml @@ -0,0 +1,102 @@ +Project debate_bias_calc { + database_type: 'PostgreSQL' + Note: 'Description of the project' +} + +Table tournament_group.details { + id integer [primary key] + name text + updated timestamp + url text + parent_group integer [ref: > tournament_group.details.id] + to_scrape bool + details json + Note: "Examples: Washington State, TOC qualifiers, Urban Debate Leage, etc." +} + +Table tournament_group.bindings { + group integer [ref: > tournament_group.details.id] + tournament integer [ref: > tournament.id] +} + +Table tournament { + id integer [primary key] + name text + url text + updated timestamp + details json + to_scrape bool + leaf bool [note: 'to_scrape is false and leaf is true IFF tournament has never been scraped but is refered to by a round that came up when scraping a judge'] + Note: "Examples: UPS invitational, Rose City Round Robin, etc." +} + +Table division { + id integer + tournament integer [ref: > tournament.id] + division_name text + format text [note: "Policy, LD, Public Forum"] + level text [note: "Open, Novice, Varsity"] + round text [note: "Semi-Final, Round 1, 3"] + is_elimination bool + url text + date datetime + details json + to_scrape bool + leaf bool [note: 'to_scrape is false and leaf is true IFF division has never been scraped but is refered to by a round that came up when scraping a judge'] + Note: "Example: Novice Public Forum, Varsity Policy, Open Dramatic Interp" +} + +Table pairing.team { + url text [primary key] + to_scrape bool +} + +Table pairing.debater { + name text + school text + first_name text [ref: > gender_binding.first_name] + team text [ref: > pairing.team.url] +} + +Table pairing.judge { + url text [primary key] + id integer [ref: > judge.id] + to_scrape bool +} + +Table pairing.votes { + judge integer [ref: > pairing.judge.url] + team text [ref: <> pairing.team.url] + division integer [ref: > division.id] + tournament integer [ref: > tournament.id] + won bool + side text +} + +Table pairing.speaker_points { + judge integer [ref: > pairing.judge.id] + team text [ref: <> pairing.debater.team] + partial_name text [ref: <> pairing.debater.name] + division integer [ref: > division.id] + tournament integer [ref: > tournament.id] + value decimal + Note: "Partial name is most often just the debater last name, so JOIN pairing.debater ON team=team and partial_name IN name" +} + +Table judge { + id integer [primary key] + name text + first_name text [ref: > gender_binding.first_name] + url text + to_scrape bool + updated timestamp + details json +} + +Table gender_binding { + first_name text [primary key] + gender text + confidance decimal + updated timestamp + source text +} diff --git a/Back End/Database/debate_bias_calc.sql b/Back End/Database/debate_bias_calc.sql new file mode 100644 index 0000000..1972854 --- /dev/null +++ b/Back End/Database/debate_bias_calc.sql @@ -0,0 +1,176 @@ +CREATE SCHEMA "tournament_group"; + +CREATE SCHEMA "pairing"; + +CREATE TABLE "tournament_group"."details" ( + "id" integer PRIMARY KEY, + "name" text, + "updated" timestamp, + "url" text, + "parent_group" integer, + "to_scrape" bool, + "details" json +); + +CREATE TABLE "tournament_group"."bindings" ( + "group" integer, + "tournament" integer +); + +CREATE TABLE "tournament" ( + "id" integer PRIMARY KEY, + "name" text, + "url" text, + "updated" timestamp, + "details" json, + "to_scrape" bool, + "leaf" bool +); + +CREATE TABLE "division" ( + "id" integer, + "tournament" integer, + "division_name" text, + "format" text, + "level" text, + "round" text, + "is_elimination" bool, + "url" text, + "date" datetime, + "details" json, + "to_scrape" bool, + "leaf" bool +); + +CREATE TABLE "judge" ( + "id" integer PRIMARY KEY, + "name" text, + "first_name" text, + "url" text, + "to_scrape" bool, + "updated" timestamp, + "details" json +); + +CREATE TABLE "gender_binding" ( + "first_name" text PRIMARY KEY, + "gender" text, + "confidance" decimal, + "updated" timestamp, + "source" text +); + +CREATE TABLE "pairing"."team" ( + "url" text PRIMARY KEY, + "to_scrape" bool +); + +CREATE TABLE "pairing"."debater" ( + "name" text, + "school" text, + "first_name" text, + "team" text +); + +CREATE TABLE "pairing"."judge" ( + "url" text PRIMARY KEY, + "id" integer, + "to_scrape" bool +); + +CREATE TABLE "pairing"."votes" ( + "judge" integer, + "team" text, + "division" integer, + "tournament" integer, + "won" bool, + "side" text +); + +CREATE TABLE "pairing"."speaker_points" ( + "judge" integer, + "team" text, + "partial_name" text, + "division" integer, + "tournament" integer, + "value" decimal +); + +COMMENT ON TABLE "tournament_group"."details" IS 'Examples: Washington State, TOC qualifiers, Urban Debate Leage, etc.'; + +COMMENT ON TABLE "tournament" IS 'Examples: UPS invitational, Rose City Round Robin, etc.'; + +COMMENT ON COLUMN "tournament"."leaf" IS 'to_scrape is false and leaf is true IFF tournament has never been scraped but is refered to by a round that came up when scraping a judge'; + +COMMENT ON TABLE "division" IS 'Example: Novice Public Forum, Varsity Policy, Open Dramatic Interp'; + +COMMENT ON COLUMN "division"."format" IS 'Policy, LD, Public Forum'; + +COMMENT ON COLUMN "division"."level" IS 'Open, Novice, Varsity'; + +COMMENT ON COLUMN "division"."round" IS 'Semi-Final, Round 1, 3'; + +COMMENT ON COLUMN "division"."leaf" IS 'to_scrape is false and leaf is true IFF division has never been scraped but is refered to by a round that came up when scraping a judge'; + +COMMENT ON TABLE "pairing"."speaker_points" IS 'Partial name is most often just the debater last name, so JOIN pairing.debater ON team=team and partial_name IN name'; + +ALTER TABLE "tournament_group"."details" ADD FOREIGN KEY ("parent_group") REFERENCES "tournament_group"."details" ("id"); + +ALTER TABLE "tournament_group"."bindings" ADD FOREIGN KEY ("group") REFERENCES "tournament_group"."details" ("id"); + +ALTER TABLE "tournament_group"."bindings" ADD FOREIGN KEY ("tournament") REFERENCES "tournament" ("id"); + +ALTER TABLE "division" ADD FOREIGN KEY ("tournament") REFERENCES "tournament" ("id"); + +ALTER TABLE "pairing"."debater" ADD FOREIGN KEY ("first_name") REFERENCES "gender_binding" ("first_name"); + +ALTER TABLE "pairing"."debater" ADD FOREIGN KEY ("team") REFERENCES "pairing"."team" ("url"); + +ALTER TABLE "pairing"."judge" ADD FOREIGN KEY ("id") REFERENCES "judge" ("id"); + +ALTER TABLE "pairing"."votes" ADD FOREIGN KEY ("judge") REFERENCES "pairing"."judge" ("url"); + +CREATE TABLE "pairing"."team_votes" ( + "team_url" text, + "votes_team" text, + PRIMARY KEY ("team_url", "votes_team") +); + +ALTER TABLE "pairing"."team_votes" ADD FOREIGN KEY ("team_url") REFERENCES "pairing"."team" ("url"); + +ALTER TABLE "pairing"."team_votes" ADD FOREIGN KEY ("votes_team") REFERENCES "pairing"."votes" ("team"); + + +ALTER TABLE "pairing"."votes" ADD FOREIGN KEY ("division") REFERENCES "division" ("id"); + +ALTER TABLE "pairing"."votes" ADD FOREIGN KEY ("tournament") REFERENCES "tournament" ("id"); + +ALTER TABLE "pairing"."speaker_points" ADD FOREIGN KEY ("judge") REFERENCES "pairing"."judge" ("id"); + +CREATE TABLE "pairing"."debater_speaker_points" ( + "debater_team" text, + "speaker_points_team" text, + PRIMARY KEY ("debater_team", "speaker_points_team") +); + +ALTER TABLE "pairing"."debater_speaker_points" ADD FOREIGN KEY ("debater_team") REFERENCES "pairing"."debater" ("team"); + +ALTER TABLE "pairing"."debater_speaker_points" ADD FOREIGN KEY ("speaker_points_team") REFERENCES "pairing"."speaker_points" ("team"); + + +CREATE TABLE "pairing"."debater_speaker_points(1)" ( + "debater_name" text, + "speaker_points_partial_name" text, + PRIMARY KEY ("debater_name", "speaker_points_partial_name") +); + +ALTER TABLE "pairing"."debater_speaker_points(1)" ADD FOREIGN KEY ("debater_name") REFERENCES "pairing"."debater" ("name"); + +ALTER TABLE "pairing"."debater_speaker_points(1)" ADD FOREIGN KEY ("speaker_points_partial_name") REFERENCES "pairing"."speaker_points" ("partial_name"); + + +ALTER TABLE "pairing"."speaker_points" ADD FOREIGN KEY ("division") REFERENCES "division" ("id"); + +ALTER TABLE "pairing"."speaker_points" ADD FOREIGN KEY ("tournament") REFERENCES "tournament" ("id"); + +ALTER TABLE "judge" ADD FOREIGN KEY ("first_name") REFERENCES "gender_binding" ("first_name"); diff --git a/Back End/Database/debate_bias_calc.svg b/Back End/Database/debate_bias_calc.svg new file mode 100644 index 0000000..1984518 --- /dev/null +++ b/Back End/Database/debate_bias_calc.svg @@ -0,0 +1,12 @@ +1*1*1*1*1*1*1*1***1*1*1*****1*1*1*tournament_group.detailsidintegernametextupdatedtimestampurltextparent_groupintegerto_scrapebooldetailsjsontournament_group.bindingsgroupintegertournamentintegerpublic.tournamentidintegernametexturltextupdatedtimestampdetailsjsonto_scrapeboolleafboolpublic.divisionidintegertournamentintegerdivision_nametextformattextleveltextroundtextis_eliminationboolurltextdatedatetimedetailsjsonto_scrapeboolleafboolpairing.teamurltextto_scrapeboolpairing.debaternametextschooltextfirst_nametextteamtextpairing.judgeurltextidintegerto_scrapeboolpairing.votesjudgeintegerteamtextdivisionintegertournamentintegerwonboolsidetextpairing.speaker_pointsjudgeintegerteamtextpartial_nametextdivisionintegertournamentintegervaluedecimalpublic.judgeidintegernametextfirst_nametexturltextto_scrapeboolupdatedtimestampdetailsjsonpublic.gender_bindingfirst_nametextgendertextconfidancedecimalupdatedtimestampsourcetext \ No newline at end of file diff --git a/Back End/Database/readme.md b/Back End/Database/readme.md new file mode 100644 index 0000000..ac9506b --- /dev/null +++ b/Back End/Database/readme.md @@ -0,0 +1,44 @@ +# Install PostgreSQL + +https://wiki.postgresql.org/wiki/Homebrew + +# Start postgres Service +Linux - `sudo service postgresql start` + +# Load Database Schema + +```bash +createdb debate_db + +psql -d debate_db -f debate_bias_calc.sql # some unique constraint error are fine here + +sudo -u postgres psql -d debate_db +CREATE USER debate_bias_user WITH PASSWORD 'debate_bias_user'; + +GRANT ALL ON ALL TABLES IN SCHEMA public TO debate_bias_user; +GRANT ALL ON ALL TABLES IN SCHEMA pairing TO debate_bias_user; +GRANT USAGE ON SCHEMA pairing TO debate_bias_user; + +ALTER TABLE pairing.debater DROP CONSTRAINT debater_first_name_fkey; +ALTER TABLE pairing.judge DROP CONSTRAINT judge_id_fkey; +ALTER TABLE pairing.votes DROP CONSTRAINT votes_judge_fkey; +ALTER TABLE judge DROP CONSTRAINT judge_first_name_fkey; + +\q + + +``` + +# load in bogus data + +```psql +INSERT INTO tournament (id, name, url, updated, details, to_scrape) +VALUES + (1, 'Bogus Invitational', 'https://www.example.com/tournament/1', CURRENT_TIMESTAMP, '{"location": "Example City", "date": "2024-10-01"}', FALSE), + (2, 'Fictional Championship', 'https://www.example.com/tournament/2', CURRENT_TIMESTAMP, '{"location": "Sample Town", "date": "2024-11-15"}', FALSE); +``` + +# Other Useful Commands +`psql -d debate_db` +`dropdb debate_db` +`psql -d debate_db -f ../../../Back\ End/Database/debate_bias_calc.sql` diff --git a/Front End/GUI/Home.py b/Front End/GUI/Home.py new file mode 100644 index 0000000..1e35e87 --- /dev/null +++ b/Front End/GUI/Home.py @@ -0,0 +1,10 @@ +import streamlit as st +import pandas as pd + +st.set_page_config( + page_title="Debate Bias Calc", + page_icon="🗣", +) + +"# Debate Judge Bias Calculator" +"THis is also a test" diff --git a/Front End/GUI/orchestration.ipynb b/Front End/GUI/orchestration.ipynb new file mode 100644 index 0000000..39a7564 --- /dev/null +++ b/Front End/GUI/orchestration.ipynb @@ -0,0 +1,52 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mThe kernel failed to start as the Python Environment 'c:\\Users\\shust\\AppData\\Local\\Microsoft\\WindowsApps\\python3.8.exe' is no longer available. Consider selecting another kernel or refreshing the list of Python Environments." + ] + } + ], + "source": [ + "%pip install -r requirements.txt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!streamlit run Home.py" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "bees", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Front End/GUI/pages/0_Scrape Judge.py b/Front End/GUI/pages/0_Scrape Judge.py new file mode 100644 index 0000000..679eb2a --- /dev/null +++ b/Front End/GUI/pages/0_Scrape Judge.py @@ -0,0 +1,183 @@ + +import sys +import os + +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../../Helper Functions/Python/'))) + +import scrape_judge +import scrape_division_info +import scrape_debaters_and_judges + +import streamlit as st +import pandas as pd +from datetime import datetime +from sqlalchemy import Table, MetaData, select + +st.set_page_config( + page_title="Debate Bias Calc", + page_icon="🗣", + layout="wide" +) + +conn = st.connection("postgresql", type="sql") +metadata = MetaData() +parent_judge_table = Table('judge', metadata, autoload_with=conn.engine) +division_table = Table('division', metadata, autoload_with=conn.engine) +team_table = Table('team', metadata, schema='pairing', autoload_with=conn.engine) +judge_table = Table('judge', metadata, schema='pairing', autoload_with=conn.engine) +debater_table = Table('debater', metadata, schema='pairing', autoload_with=conn.engine) +votes_table = Table('votes', metadata, schema='pairing', autoload_with=conn.engine) +points_table = Table('speaker_points', metadata, schema='pairing', autoload_with=conn.engine) + +"# Tournaments" + +"## Judges already in the database" +st.dataframe( + data=conn.query('SELECT * FROM judge;', ttl=0), # type: ignore + hide_index=True +) + +# Content + +""" +## Add Judge + +Find the tabroom link that that contains a `judge_id=` field and paste the URL + +""" + +url = st.text_input( + "Tabroom URL", + placeholder="https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=...&tourn_id=...", + label_visibility="hidden" +) + +should_scrape = False +if scrape_judge.validate_judge_url(url): + st.write("### Do you wish to scrape this page?") + id = scrape_judge.get_judge_id(url) + last_scraped_date = conn.query(f'SELECT updated FROM judge WHERE id = {id};', ttl=0) + already_scraped = len(last_scraped_date) != 0 + + scrape_judge.display_judges_tabroom_page(st.container(height=300), url) + + if already_scraped: + st.write(f"#### This judge is already in the database but may have judged additional rounds since it was last scraped ({last_scraped_date['updated'].dt.date.values[0]}).") + + should_scrape = st.button( + label="I affirm that this information is correct and would like to upload this judge the central database", + ) + st.markdown(f"[Report an issue with this tournament by sending a bug report email containing the issue and URL](mailto:shusterlev@gmail.com)") + +if should_scrape: + st.write("# Scraping Judge Details") + judge_name = scrape_judge.get_judge_name(url) + with conn.session as session: + if already_scraped: + session.execute( + parent_judge_table\ + .delete()\ + .where(parent_judge_table.c.id==id) + ) + session.execute( + parent_judge_table\ + .insert()\ + .values( + id=id, + name=judge_name, + first_name = judge_name.split()[0], + url=url, + updated=datetime.now(), + details='{}', + to_scrape=True + ) + ) + session.commit() + + st.dataframe( + data=conn.query(f'SELECT * FROM judge WHERE id = {id};', ttl=0), # type: ignore + hide_index=True + ) + + + st.write("# Scraping Debaters") + + judge_urls_to_process = conn.query('SELECT url, name FROM judge WHERE to_scrape = TRUE;', ttl=0) + judge_progress = st.progress(0, "No Judges Have Been Found that Require Further Processing") + + for count, url, name in judge_urls_to_process.itertuples(): + team_urls = scrape_judge.get_team_urls(url) + judge_progress.progress((count+1)/len(judge_urls_to_process), f"Adding {len(team_urls)} team entries for Processing {name}") + with conn.session as session: + for team_url in team_urls: + # already_in_db = len(conn.query(f"SELECT * FROM pairing.team WHERE url = '{team_url}';", ttl=0)) != 0 + # if not already_in_db: + session.execute( + insert(team_table) + .values( + url=team_url, + to_scrape=True + ) + .on_conflict_do_nothing(index_elements=['url']) + ) + + # session.execute( + # team_table.insert().values( + # url=url, + # to_scrape=True + # ) + # ) + session.execute( + parent_judge_table\ + .update()\ + .where(parent_judge_table.c.url == url)\ + .values(to_scrape=False) + ) + session.commit() + + debater_urls_to_process = conn.query( + """ + SELECT + url + FROM pairing.team + WHERE to_scrape = TRUE + ; + """, ttl=0) + + debaters_progress = st.progress(0, "No Debaters Have Been Found that Require Further Processing") + for count, debater_url in debater_urls_to_process.itertuples(): + debater_names, team_name = scrape_debaters_and_judges.get_debater_and_team_from_url(debater_url) + if team_name != None or debater_names != []: + debaters_progress.progress((count+1)/len(debater_urls_to_process), f"Processing {debater_names[0]} from {team_name}") + with conn.session as session: + for debater_name in debater_names: + session.execute( + debater_table.insert().values( + name=debater_name, + school=team_name, + first_name=debater_name.split()[0], + team=debater_url, + ) + ) + session.execute( + team_table\ + .update()\ + .where(team_table.c.url == debater_url)\ + .values(to_scrape=False) + ) + session.commit() + + st.write(conn.query("SELECT * FROM pairing.debater;", ttl=0)) + + st.write("# Scraping Votes") + # get all tournament_id from debater_urls_to_process + # get all judge URLS for this judge+tournament_id + # create pairing.judge for each url + # create vote and speaker points for each to_scrape pairing.judge + + st.write("# Scraping Relivant Tournament Details") + # Scrape tournament for each tournament URL while setting leaf to TRUE + st.write("# Scraping Division details") + # scrape divisions for each tournament URL while setting leaf to TRUE +# else: +# "Please provide a valid link" diff --git a/Front End/GUI/pages/1_Scrape Tournaments.py b/Front End/GUI/pages/1_Scrape Tournaments.py new file mode 100644 index 0000000..3a90150 --- /dev/null +++ b/Front End/GUI/pages/1_Scrape Tournaments.py @@ -0,0 +1,316 @@ + +import sys +import os +import time + +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../../Helper Functions/Python/'))) + +import scrape_tournament_info +import scrape_division_info +import scrape_debaters_and_judges + +import streamlit as st +import pandas as pd +from datetime import datetime +from sqlalchemy import Table, MetaData, select + +st.set_page_config( + page_title="Debate Bias Calc", + page_icon="🗣", + layout="wide" +) + +conn = st.connection("postgresql", type="sql") +metadata = MetaData() +tournament_table = Table('tournament', metadata, autoload_with=conn.engine) +division_table = Table('division', metadata, autoload_with=conn.engine) +team_table = Table('team', metadata, schema='pairing', autoload_with=conn.engine) +judge_table = Table('judge', metadata, schema='pairing', autoload_with=conn.engine) +debater_table = Table('debater', metadata, schema='pairing', autoload_with=conn.engine) +votes_table = Table('votes', metadata, schema='pairing', autoload_with=conn.engine) +points_table = Table('speaker_points', metadata, schema='pairing', autoload_with=conn.engine) + +"# Tournaments" + +"## Tournaments already in the database" +st.dataframe( + data=conn.query('SELECT * FROM tournament;', ttl=0), # type: ignore + hide_index=True +) + +# Content + +""" +## Add Tournament + +Find the tabroom link that looks roughly like +`https://www.tabroom.com/index/tourn/postings/index.mhtml?tourn_id=26620` +and enter it below: + +""" + +# def update(): +# st.write(scrape_tournament_info.url_is_in_exspected_format(url)) + + +url = st.text_input( + "Tabroom URL", + placeholder="https://www.tabroom.com/index/tourn/index.mhtml?tourn_id=...", + label_visibility="hidden" +) + + +if scrape_tournament_info.url_is_in_exspected_format(url): + id = scrape_tournament_info.get_id_from_url(url) + name = scrape_tournament_info.get_tournament_name_from_url(url) + already_in_db = len(conn.query(f'SELECT * FROM tournament WHERE id = {id};', ttl=0)) != 0 + + if already_in_db: + "This tournament is already in the Database" + else: + st.dataframe( + data=pd.DataFrame({ + 'id': [id], + 'name': [name], + 'url': [url], + 'updated': [datetime.now()], + }), + hide_index=True + ) + + "The divisions are:" + + st.dataframe( + data=pd.DataFrame(scrape_tournament_info.get_formats(url)), + hide_index=True + ) + + def upload_tournament(): + with conn.session as session: + session.execute( + tournament_table\ + .delete()\ + .where(tournament_table.c.id==id) + ) + session.execute( + tournament_table\ + .insert()\ + .values( + id=id, + name=name, + url=url, + updated=datetime.now(), + details='{}', + to_scrape=True + ) + ) + session.commit() + + + st.button( + label="I affirm that this information is correct and would like to upload this tournament the central database", + on_click=upload_tournament() + ) + st.markdown(f"[Report an issue with this tournament by sending a bug report email containing the issue and URL](mailto:shusterlev@gmail.com)") + +else: + "Please provide a valid link" + +"# Divisions" + +tournament_urls_to_process = conn.query('SELECT url, name FROM tournament WHERE to_scrape = TRUE;', ttl=0) + + +tournament_progress = st.progress(0, "No Tournaments Have Been Found that Require Further Processing") +for tournament in tournament_urls_to_process.itertuples(): + tournament_progress.progress((tournament[0])/len(tournament_urls_to_process), f"Processing Tournament {tournament[2]}") + + scrape_division_info.parse_division_name( + tournament_url=tournament[1], + table = division_table, + session = conn.session + ) + tournament_progress.progress(1.0, "Finished Processing Tournaments") + with conn.session as session: + session.execute( + tournament_table\ + .update()\ + .where(tournament_table.c.url == tournament[1])\ + .values(to_scrape=False) + ) + session.commit() + +st.dataframe( + data=conn.query('SELECT * FROM division;', ttl=0), # type: ignore + hide_index=True +) + +"# Pairings" + +division_urls_to_process = conn.query( +""" + SELECT + round, + tournament, + url + FROM division + WHERE + to_scrape = TRUE + AND url <> '' + ; +""", ttl=0) +# AND ( +# division_name LIKE '%LD%' +# division_name LIKE '%Lincoln%' +# OR division_name LIKE '%Public%' +# OR division_name LIKE '%CX%' +# ) +# ; +# """, ttl=0) #TODO make better IE filter than just checking if + +# "# Skipped Rounds:" +# st.write(conn.query( +# """ +# SELECT +# * +# FROM division +# WHERE to_scrape = TRUE AND url NOT IN ( +# SELECT +# url +# FROM division +# WHERE +# to_scrape = TRUE +# AND url <> '' +# AND ( +# division_name LIKE '%LD%' +# OR division_name LIKE '%Public%' +# OR division_name LIKE '%CX%' +# OR division_name LIKE '%Policy%' +# OR division_name LIKE '%Lincoln%' +# ) +# ) +# ; +# """, ttl=0)) + +division_progress = st.progress(0, "No Divisions Have Been Found that Require Further Processing") +for count, round, tournament, division_url in division_urls_to_process.itertuples(): + division_progress.progress((count+1)/len(division_urls_to_process), f"Processing Division {round} from tournament {tournament}") + team_urls,judge_urls = scrape_division_info.get_team_and_judge_urls_from_division(division_url) + with conn.session as session: + for url in team_urls: + result = session.execute( + select(team_table.c.url).where(team_table.c.url == url) + ).fetchone() + if result is None: + session.execute( + team_table.insert().values( + url=url, + to_scrape=True + ) + ) + for url in judge_urls: + result = session.execute( + select(judge_table.c.url).where(judge_table.c.url == url) + ).fetchone() + if result is None: + session.execute( + judge_table.insert().values( + url=url, + to_scrape=True, + id=url.split("judge_id=")[-1].split("&")[0] + ) + ) + + session.execute( + division_table\ + .update()\ + .where(division_table.c.url == division_url)\ + .values(to_scrape=False) + ) + session.commit() + + +# st.write(conn.query("SELECT * FROM pairing.team;", ttl=0)) +# st.write(conn.query("SELECT * FROM pairing.judge;", ttl=0)) + +"# Debaters" +debater_urls_to_process = conn.query( +""" + SELECT + url + FROM pairing.team + WHERE to_scrape = TRUE + ; +""", ttl=0) + +debater_urls_to_process + +debaters_progress = st.progress(0, "No Debaters Have Been Found that Require Further Processing") +for count, debater_url in debater_urls_to_process.itertuples(): + debater_names, team_name = scrape_debaters_and_judges.get_debater_and_team_from_url(debater_url) + if team_name != None and debater_name != []: + debaters_progress.progress((count+1)/len(debater_urls_to_process), f"Processing {debater_names[0]} from {team_name}") + with conn.session as session: + for debater_name in debater_names: + session.execute( + debater_table.insert().values( + name=debater_name, + school=team_name, + first_name=debater_name.split()[0], + team=debater_url, + ) + ) + session.execute( + team_table\ + .update()\ + .where(team_table.c.url == debater_url)\ + .values(to_scrape=False) + ) + session.commit() + +st.write(conn.query("SELECT * FROM pairing.debater;", ttl=0)) + +"# Judges" +st.write(conn.query("SELECT * FROM pairing.judge;", ttl=0)) + +judge_urls_to_process = conn.query("SELECT url FROM pairing.judge WHERE to_scrape = TRUE;", ttl=0) + +judges_progress = st.progress(0, "No Judges Have Been Found that Require Further Processing") +warnings = st.expander("See Exceptions", icon='⚠️') +for count, judges_url in judge_urls_to_process.itertuples(): + division_progress.progress((count+1)/len(judge_urls_to_process), f"Processing {judges_url}") + votes, speaker_points = scrape_debaters_and_judges.get_votes_and_speaker_points_for_a_tournament_from_judge_url(warnings, judges_url) + with conn.session as session: + # stopped here, need to insert all votes and speaker points then set the judge to scraped + for vote in votes: + session.execute( + votes_table.insert().values( + judge=vote.judge_id, + team=vote.team_link, + division=vote.division_id, + tournament=vote.tourn_id, + won=vote.won, + side=vote.side + ) + ) + for point in speaker_points: + session.execute( + points_table.insert().values( + judge=point.judge_id, + team=point.team_link, + partial_name=point.name, + division=point.division_id, + tournament=point.tourn_id, + value=point.points, + ) + ) + session.execute( + judge_table\ + .update()\ + .where(judge_table.c.url == judges_url)\ + .values(to_scrape=False) + ) + session.commit() + +st.write(conn.query("SELECT * FROM pairing.votes;", ttl=0)) +st.write(conn.query("SELECT * FROM pairing.speaker_points;", ttl=0)) diff --git a/Front End/GUI/pages/2_Analyze Judges at a Tournament.py b/Front End/GUI/pages/2_Analyze Judges at a Tournament.py new file mode 100644 index 0000000..3400a55 --- /dev/null +++ b/Front End/GUI/pages/2_Analyze Judges at a Tournament.py @@ -0,0 +1,60 @@ + +import sys +import os +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../../Helper Functions/Python/'))) +import scrape_judge + +from bs4 import BeautifulSoup +import requests +import streamlit as st +import plotly.express as px + + +st.set_page_config( + page_title="Debate Bias Calc", + page_icon="🗣", + layout="wide" +) +conn = st.connection("postgresql", type="sql") + + +"# Available Judges" +st.write(conn.query("SELECT * FROM pairing.judge;", ttl=0)) + +"# Explore a Single Judge" +selected_judge_id = st.selectbox( + label ="Select A Judge ID to explore", + options=[i[1] for i in conn.query("SELECT id FROM pairing.judge;", ttl=0).itertuples()] +) +selected_judge = conn.query(f"SELECT * FROM pairing.judge WHERE id = {selected_judge_id};", ttl=0) + +st.write(selected_judge) +url = selected_judge["url"][0] + +side_bias_tab, gender_bias_tab, tabroom_tab = st.tabs(["Aff Neg Bias", "Gender Bias", "Tabroom"]) + + +with tabroom_tab: + scrape_judge.display_judges_tabroom_page(st, url) + +with side_bias_tab: + df = conn.query(f''' + SELECT side, count(*) AS wins + FROM pairing.votes + WHERE + judge = {selected_judge_id} + AND won IS TRUE + GROUP BY side + ; + ''', ttl=0) + st.plotly_chart(px.pie( + df, + values='wins', + names='side', + title='Number of Affirmative vs Negative Wins'), + hole=.3 + ) + st.dataframe( + data=conn.query(f'SELECT side, won, tournament, division, team FROM pairing.votes WHERE judge = {selected_judge_id};', ttl=0), + hide_index=True + ) diff --git a/Front End/GUI/pages/3_Analyze Tournament.py b/Front End/GUI/pages/3_Analyze Tournament.py new file mode 100644 index 0000000..89235ca --- /dev/null +++ b/Front End/GUI/pages/3_Analyze Tournament.py @@ -0,0 +1,99 @@ + +import sys +import os +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../../Helper Functions/Python/'))) + +from bs4 import BeautifulSoup +import requests +import streamlit as st +import plotly.express as px + + +st.set_page_config( + page_title="Debate Bias Calc", + page_icon="🗣", + layout="wide" +) +conn = st.connection("postgresql", type="sql") + + +"# Available Tournaments" +st.write(conn.query("SELECT * FROM Tournament;", ttl=0)) + +"# Explore a Single Tournament" +selected_tournament_id = st.selectbox( + label ="Select A Tournament ID to explore", + options=[i[1] for i in conn.query("SELECT id FROM tournament;", ttl=0).itertuples()] +) +# if selected_tournament_id: +selected_tournament = conn.query(f"SELECT * FROM tournament WHERE id = {selected_tournament_id};", ttl=0) +f"Divisions of {selected_tournament['name'][0]}" +st.dataframe( + conn.query(f"SELECT * FROM division WHERE tournament = {selected_tournament_id};", ttl=0), + use_container_width=True +) + +votes_in_tournament = conn.query(f''' + SELECT division_name, round, to_scrape, judge, side, team, id + FROM pairing.votes + LEFT JOIN division + ON division.id = votes.division + WHERE division.tournament = {selected_tournament_id} + AND won IS TRUE; +''') +divisions = votes_in_tournament["division_name"].unique() +selected_divisions = st.multiselect( + "Filter Out Divisions", + divisions, + divisions +) + +# rounds = votes_in_tournament[votes_in_tournament["division_name"] in selected_divisions]["round"] +filtered_df = votes_in_tournament.loc[votes_in_tournament["division_name"].isin(selected_divisions)] +rounds = filtered_df["round"].unique() +selected_rounds = st.multiselect( + "Filter Out Rounds", + rounds, + rounds, +) +selected_round_ids = filtered_df.loc[filtered_df["round"].isin(selected_rounds)]['id'].unique() + +side_bias_tab, gender_bias_tab = st.tabs(["Aff Neg Bias", "Gender Bias"]) + +with side_bias_tab: + if selected_round_ids.any(): + df = conn.query(f''' + SELECT side, count(*) AS wins + FROM pairing.votes + WHERE + tournament = {selected_tournament_id} + AND division IN ({','.join(map(str, selected_round_ids))}) + AND won IS TRUE + GROUP BY side + ; + ''', ttl=0) + # df = ( + # df + # .loc[df["division_name"] + # .isin(selected_divisions)] + # .loc[df["round"] + # .isin(selected_rounds)] + # ) + # df + st.plotly_chart(px.pie( + df, + values='wins', + names='side', + title='Number of Affirmative vs Negative Wins'), + hole=.3 + ) + st.dataframe( + data=conn.query(f''' + SELECT side, won, tournament, division, team + FROM pairing.votes + WHERE + tournament = {selected_tournament_id} + AND division IN ({','.join(map(str, selected_round_ids))}); + ''', ttl=0), + hide_index=False + ) diff --git a/Front End/GUI/pages/3_Custom Query.py b/Front End/GUI/pages/3_Custom Query.py new file mode 100644 index 0000000..c9a7402 --- /dev/null +++ b/Front End/GUI/pages/3_Custom Query.py @@ -0,0 +1,30 @@ + +import sys +import os +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../../Helper Functions/Python/'))) + +import streamlit as st + + +st.set_page_config( + page_title="Debate Bias Calc", + page_icon="🗣", + layout="wide" +) +conn = st.connection("postgresql", type="sql") +st.image("../../Back End/Database/debate_bias_calc.svg", caption="Database Structure") +prompt = st.chat_input("EX: SELECT * FROM pairing.votes") + + +if prompt: + with st.chat_message('✍️'): + st.code(prompt, language='sql') + + with st.chat_message('📅'): + st.write(conn.query(prompt, ttl=0)) + + +# user, table = st.chat_message('✍️'), st.chat_message('📅') +# if prompt: +# user.code(prompt, language='sql') +# table.write(conn.query(prompt, ttl=0)) diff --git a/Front End/GUI/pages/future pages.txt b/Front End/GUI/pages/future pages.txt new file mode 100644 index 0000000..5876ffc --- /dev/null +++ b/Front End/GUI/pages/future pages.txt @@ -0,0 +1,9 @@ +scrape all judges at tournament +search for judges +search for tournaments +Rank judges at tournament +Compare tournaments +Compare Leagues +Make Tournament Groups (leagues, geography, years) +Compare Divisions within leagues +Rentention rate diff --git a/Front End/GUI/readme.md b/Front End/GUI/readme.md new file mode 100644 index 0000000..e31b0be --- /dev/null +++ b/Front End/GUI/readme.md @@ -0,0 +1,5 @@ +```python +pip install -r requirements.txt + +streamlit run Home.py +``` diff --git a/Front End/GUI/requirements.txt b/Front End/GUI/requirements.txt new file mode 100644 index 0000000..9c4c2b2 --- /dev/null +++ b/Front End/GUI/requirements.txt @@ -0,0 +1,7 @@ +streamlit==1.38.0 +watchdog +psycopg2-binary==2.9.9 +sqlalchemy==2.0.34 +beautifulsoup4==4.12.3 +lxml==5.3.0 +plotly==5.24.1 diff --git a/Front End/Notebooks/getting_started.ipynb b/Front End/Notebooks/getting_started.ipynb new file mode 100644 index 0000000..e69de29 diff --git a/Helper Functions/Python/Scratch Work/Gender Analysis/combination.ipynb b/Helper Functions/Python/Scratch Work/Gender Analysis/combination.ipynb new file mode 100644 index 0000000..7ec50ac --- /dev/null +++ b/Helper Functions/Python/Scratch Work/Gender Analysis/combination.ipynb @@ -0,0 +1,215 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "combination.ipynb gender_compendium.csv \u001b[0m\u001b[01;34mnames\u001b[0m/\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import os\n", + "import requests, zipfile, io, shutil\n", + "if os.path.exists(\"names\"):\n", + " shutil.rmtree(\"names\")\n", + "os.mkdir(\"names\")\n", + "source = \"https://www.ssa.gov/oact/babynames/names.zip\"\n", + "req = requests.get(source, stream=True)\n", + "z = zipfile.ZipFile(io.BytesIO(req.content))\n", + "z.extractall(\"names\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Part 1: Reading files\n", + "\n", + "## Schema: \n", + "- NAME (index): (total Men), (total Women)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "dataframes = []\n", + "for filename in os.listdir('names'):\n", + " if not filename.endswith(\".txt\"):\n", + " continue\n", + " df = pd.read_csv(\"names/\"+filename, header=None, names=[\"name\", \"sex\", \"count\"])\n", + " dataframes.append(df)\n", + "\n", + "df = pd.concat(dataframes)\n", + "df = df.groupby([\"name\", \"sex\"], as_index=False).sum()\n", + "\n", + "df = df.pivot(index='name', columns='sex', values='count').fillna(0)\n", + "df.columns = [\"F\", \"M\"]\n", + "df.reset_index(inplace=True)\n", + "df = df[[\"name\", \"M\", \"F\"]]\n", + "df = df.astype({\"M\": int, \"F\": int})\n", + "\n", + "df.to_csv(\"gender_compendium.csv\", index=False, header=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def build_compendium():\n", + " if os.path.exists(\"names\"):\n", + " shutil.rmtree(\"names\")\n", + " os.mkdir(\"names\")\n", + " source = \"https://www.ssa.gov/oact/babynames/names.zip\"\n", + " req = requests.get(source, stream=True)\n", + " z = zipfile.ZipFile(io.BytesIO(req.content))\n", + " z.extractall(\"names\")\n", + " \n", + " dataframes = []\n", + " for filename in os.listdir('names'):\n", + " if not filename.endswith(\".txt\"):\n", + " continue\n", + " df = pd.read_csv(\"names/\"+filename, header=None, names=[\"name\", \"sex\", \"count\"])\n", + " dataframes.append(df)\n", + "\n", + " df = pd.concat(dataframes)\n", + " df = df.groupby([\"name\", \"sex\"], as_index=False).sum()\n", + "\n", + " df = df.pivot(index='name', columns='sex', values='count').fillna(0)\n", + " df.columns = [\"F\", \"M\"]\n", + " df.reset_index(inplace=True)\n", + " df = df[[\"name\", \"M\", \"F\"]]\n", + " df = df.astype({\"M\": int, \"F\": int})\n", + "\n", + " df.to_csv(\"gender_compendium.csv\", index=False, header=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import os\n", + "import requests, zipfile, io, shutil\n", + "\n", + "class Genderizer:\n", + " df: pd.DataFrame = None\n", + " \n", + " def __init__(self, path: str = \"gender_compendium.csv\"):\n", + " if not os.path.exists(path):\n", + " self.df = self.build_compendium()\n", + " else:\n", + " self.df = pd.read_csv(path)\n", + "\n", + " def build_compendium(self) -> pd.DataFrame:\n", + " if os.path.exists(\"names\"):\n", + " shutil.rmtree(\"names\")\n", + " os.mkdir(\"names\")\n", + " source = \"https://www.ssa.gov/oact/babynames/names.zip\"\n", + " req = requests.get(source, stream=True)\n", + " z = zipfile.ZipFile(io.BytesIO(req.content))\n", + " z.extractall(\"names\")\n", + "\n", + " dataframes = []\n", + " for filename in os.listdir('names'):\n", + " if not filename.endswith(\".txt\"):\n", + " continue\n", + " df = pd.read_csv(\"names/\"+filename, header=None, names=[\"name\", \"sex\", \"count\"])\n", + " dataframes.append(df)\n", + "\n", + " df = pd.concat(dataframes)\n", + " df = df.groupby([\"name\", \"sex\"], as_index=False).sum()\n", + "\n", + " df = df.pivot(index='name', columns='sex', values='count').fillna(0)\n", + " df.columns = [\"F\", \"M\"]\n", + " df.reset_index(inplace=True)\n", + " df = df[[\"name\", \"M\", \"F\"]]\n", + " df = df.astype({\"M\": int, \"F\": int})\n", + "\n", + " df.to_csv(\"gender_compendium.csv\", index=False)\n", + " shutil.rmtree(\"names\")\n", + " return df\n", + "\n", + " def gender(self, name: str) -> dict[str, int]:\n", + " name = name.capitalize()\n", + " row = self.df[self.df[\"name\"] == name]\n", + " if row.empty:\n", + " return self.request_gender(name)\n", + " m = int(row[\"M\"].values[0])\n", + " f = int(row[\"F\"].values[0])\n", + " if m > f:\n", + " return {\"gender\": \"M\", \"prob\": m/(m+f), \"count\": m+f}\n", + " elif f > m:\n", + " return {\"gender\": \"F\", \"prob\": f/(m+f), \"count\": m+f}\n", + " else :\n", + " return {\"gender\": \"U\", \"prob\": 0.5, \"count\": m+f}\n", + "\n", + " def request_gender(self, name: str) -> dict[str, int]:\n", + " name = name.capitalize()\n", + " url = f\"https://api.genderize.io?name={name}\"\n", + " response = requests.get(url)\n", + " data = response.json()\n", + " gender = \"M\" if data[\"gender\"] == \"male\" else \"F\"\n", + " return {\"gender\": gender, \"prob\": data[\"probability\"], \"count\": data[\"count\"]}\n", + " \n", + " def genders(self, names: list[str]) -> dict[str, dict[str, int]]:\n", + " return {name: self.gender(name) for name in names}" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'gender': 'F', 'prob': 0.9969630412972152, 'count': 73758}\n", + "{'mary': {'gender': 'F', 'prob': 0.9969630412972152, 'count': 73758}, 'www': {'gender': 'M', 'prob': 0.63, 'count': 2956}}\n" + ] + } + ], + "source": [ + "gender = Genderizer()\n", + "\n", + "print(gender.gender(\"mary\"))\n", + "print(gender.genders([\"mary\", \"www\"]))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Helper Functions/Python/Scratch Work/Gender Analysis/gender.py b/Helper Functions/Python/Scratch Work/Gender Analysis/gender.py new file mode 100644 index 0000000..591a673 --- /dev/null +++ b/Helper Functions/Python/Scratch Work/Gender Analysis/gender.py @@ -0,0 +1,87 @@ +import requests, zipfile, io, shutil +import pandas as pd +import os + +class Genderizer: + df: pd.DataFrame = None + + def __init__(self, path: str = "gender_compendium.csv"): + if not os.path.exists(path): + self.df = self.build_compendium() + else: + self.df = pd.read_csv(path) + # If we don't have our compendium, build it from scratch + def build_compendium(self) -> pd.DataFrame: + # Download files: + if os.path.exists("names"): + shutil.rmtree("names") + os.mkdir("names") + source = "https://www.ssa.gov/oact/babynames/names.zip" + req = requests.get(source, stream=True) + z = zipfile.ZipFile(io.BytesIO(req.content)) + z.extractall("names") + # Build and combine dataframes: + dataframes = [] + for filename in os.listdir('names'): + if not filename.endswith(".txt"): + continue + df = pd.read_csv("names/"+filename, header=None, names=["name", "sex", "count"]) + dataframes.append(df) + # Concatenate and group: + df = pd.concat(dataframes).groupby(["name", "sex"], as_index=False).sum() + # Separate M/F columns: + df = df.pivot(index='name', columns='sex', values='count').fillna(0) + df.columns = ["F", "M"] + df.reset_index(inplace=True) + df = df[["name", "M", "F"]] + df = df.astype({"M": int, "F": int}) + # Write to CSV and clean up + df.to_csv("gender_compendium.csv", index=False) + shutil.rmtree("names") + return df + + # Get the gender of one or more names + def gender(self, name: str | list[str]) -> dict[str, int] | dict[str, dict[str, int]]: + # Check for multiple names: + if isinstance(name, list): + return self.genders(name) + + name = name.capitalize() + row = self.df[self.df["name"] == name] + # If the name is absent, get it from genderize.io + if row.empty: + return self.request_gender(name) + m = int(row["M"].values[0]) + f = int(row["F"].values[0]) + # Conditional returns: + if m == f: + return {"gender": "U", "prob": 0.5, "count": m+f} + gender = "M" if m > f else "F" + prob = max(m, f) / (m+f) + return {"gender": gender, "prob": prob, "count": m+f, "API": False} + + # Helper for multiple names + def genders(self, names: list[str]) -> dict[str, dict[str, int]]: + return {name: self.gender(name) for name in names} + + # Get the gender from genderize.io + def request_gender(self, name: str) -> dict[str, int]: + name = name.capitalize() + url = f"https://api.genderize.io?name={name}" + response = requests.get(url) + data = response.json() + if data["probability"] <= 0.5: + return {"gender": "U", "prob": 0.5, "count": data["count"], "API": True} + gender = "M" if data["gender"] == "male" else "F" + return {"gender": gender, "prob": data["probability"], "count": data["count"], "API": True} + + +if __name__ == "__main__": + g = Genderizer() + print("---\nName: Mary") + print(" ", g.gender("Mary")) + names = ["John", "Alex", "Corin", "Borscht", "Cruella", "Compost"] + print("---\nNames:", ", ".join(names)) + genders = g.gender(names) + for name in genders.keys(): + print(f" {name}: {genders[name]}") diff --git a/Helper Functions/Python/Scratch Work/Gender Analysis/gender_compendium.csv b/Helper Functions/Python/Scratch Work/Gender Analysis/gender_compendium.csv new file mode 100644 index 0000000..30f3dd5 --- /dev/null +++ b/Helper Functions/Python/Scratch Work/Gender Analysis/gender_compendium.csv @@ -0,0 +1,9734 @@ +name,M,F +Aaron,682,0 +Ab,5,0 +Abba,0,6 +Abbie,0,97 +Abbott,10,0 +Abby,5,15 +Abdon,6,0 +Abe,174,0 +Abel,110,0 +Abelardo,20,0 +Abelina,0,7 +Abelino,11,0 +Abert,5,0 +Abie,13,0 +Abigail,0,31 +Abner,75,0 +Abraham,554,0 +Abram,47,0 +Abran,6,0 +Abron,6,0 +Abundio,5,0 +Ac,7,0 +Ace,20,0 +Acel,5,0 +Acey,12,0 +Achille,21,0 +Achilles,8,0 +Acie,40,0 +Acy,5,0 +Ad,6,0 +Ada,7,1583 +Adabelle,0,7 +Adah,0,29 +Adair,6,14 +Adalaide,0,5 +Adalberto,9,0 +Adalee,0,5 +Adalene,0,13 +Adaline,0,67 +Adalyne,0,5 +Adam,465,0 +Adamae,0,7 +Adams,7,0 +Adan,30,0 +Adda,0,21 +Addie,13,763 +Addis,7,7 +Addison,58,0 +Adean,0,9 +Adel,0,15 +Adela,0,130 +Adelaida,0,18 +Adelaide,0,330 +Adelaido,6,0 +Adelard,19,0 +Adelbert,68,0 +Adele,0,812 +Adelene,0,33 +Adelfa,0,11 +Adelia,0,71 +Adelina,0,92 +Adeline,0,1142 +Adelino,6,0 +Adelita,0,6 +Adell,28,174 +Adella,0,117 +Adelle,0,80 +Adelma,0,7 +Adelyn,0,11 +Adelyne,0,7 +Aden,16,0 +Adena,0,5 +Adene,0,5 +Ader,0,7 +Adger,8,0 +Adie,0,8 +Adin,6,0 +Adina,0,5 +Adine,0,6 +Adis,6,0 +Adlai,5,0 +Adlene,0,5 +Adline,0,30 +Adlyn,0,5 +Admiral,8,0 +Adna,0,7 +Adolf,42,0 +Adolfo,71,0 +Adolph,452,0 +Adolphe,18,0 +Adolpho,9,0 +Adolphus,70,0 +Adra,0,10 +Adrain,40,0 +Adren,6,0 +Adria,0,8 +Adrian,333,16 +Adriana,0,20 +Adrianna,0,9 +Adrianne,0,8 +Adrien,37,0 +Adrienne,0,137 +Adrin,8,0 +Adrion,5,0 +Adron,22,0 +Aetna,0,5 +Afton,12,57 +Agapita,0,7 +Agapito,32,0 +Agatha,0,180 +Agda,0,6 +Aggie,0,34 +Agnes,15,4240 +Agness,0,18 +Agnew,5,0 +Agostino,13,0 +Agripina,0,11 +Agusta,0,5 +Agustin,69,0 +Agustina,0,21 +Agustine,5,0 +Aida,0,70 +Aiko,0,41 +Aileen,0,521 +Aileene,0,14 +Ailene,0,51 +Aili,0,7 +Ailleen,0,5 +Aime,15,0 +Aimee,0,32 +Aina,0,9 +Aino,0,5 +Akiko,0,17 +Akira,35,0 +Al,151,5 +Ala,0,6 +Alaine,0,7 +Alamae,0,5 +Alameda,0,5 +Alan,625,0 +Alanson,7,0 +Alba,0,50 +Alban,19,0 +Albena,0,16 +Albert,9880,48 +Alberta,13,1817 +Alberteen,0,6 +Albertha,0,131 +Albertia,0,5 +Albertina,0,23 +Albertine,0,59 +Alberto,182,5 +Albertus,19,0 +Albin,132,0 +Albina,0,132 +Albino,31,0 +Albion,10,0 +Albirda,0,6 +Albirdia,0,6 +Albirta,0,10 +Albirtha,0,5 +Alcario,6,0 +Alcee,7,0 +Alcide,39,0 +Alcie,0,5 +Alcuin,8,0 +Alda,0,148 +Aldea,0,10 +Aldean,5,13 +Aldeen,0,5 +Alden,183,5 +Aldena,0,9 +Aldene,0,13 +Alderic,5,0 +Aldin,5,0 +Aldina,0,10 +Aldine,6,27 +Aldo,154,5 +Aldon,18,0 +Aldona,0,34 +Aldonia,0,13 +Aldor,5,0 +Aldora,0,15 +Aldrich,6,0 +Aldridge,11,0 +Alean,0,33 +Alease,0,54 +Aleatha,0,16 +Alec,50,0 +Aleck,15,0 +Aleda,0,18 +Alee,0,5 +Aleen,0,39 +Aleene,0,27 +Aleine,0,6 +Alejandra,0,18 +Alejandro,58,0 +Alejo,5,0 +Alen,7,0 +Alena,0,20 +Alene,0,232 +Alessio,7,0 +Aleta,0,35 +Aletha,0,137 +Alethea,0,26 +Alethia,0,22 +Aletta,0,8 +Alex,978,5 +Alexa,0,5 +Alexander,1381,5 +Alexandra,0,40 +Alexandria,0,34 +Alexia,0,9 +Alexina,0,6 +Alexine,0,5 +Alexis,14,0 +Alexsander,6,0 +Alf,34,0 +Alfard,5,0 +Alferd,22,0 +Alfie,0,5 +Alfio,8,0 +Alfons,18,0 +Alfonsa,0,6 +Alfonse,45,0 +Alfonso,353,0 +Alfonza,11,0 +Alfonzo,32,0 +Alford,85,5 +Alfred,4929,25 +Alfreda,5,228 +Alfredia,0,13 +Alfredo,205,0 +Alfreeda,0,5 +Alfreida,0,6 +Alfretta,0,12 +Alfrieda,0,21 +Algene,0,6 +Alger,23,0 +Algernon,8,0 +Algia,7,0 +Algie,29,9 +Ali,5,0 +Alia,0,6 +Alice,39,11537 +Alicemae,0,8 +Alicia,0,219 +Alida,0,36 +Alien,0,6 +Aliene,0,18 +Aline,0,376 +Alise,0,7 +Alison,11,23 +Alister,5,0 +Alita,0,6 +Alka,0,9 +Alla,0,24 +Allan,692,5 +Allard,8,0 +Allean,0,48 +Alleane,0,5 +Allee,0,5 +Alleen,0,24 +Alleene,0,5 +Allegra,0,13 +Allen,2045,25 +Allene,0,208 +Alleta,0,6 +Alletta,0,6 +Alleyne,0,5 +Allice,0,6 +Allie,71,396 +Allien,0,5 +Alliene,0,8 +Alline,0,50 +Allis,0,5 +Allison,71,18 +Allyn,42,5 +Allyne,0,11 +Alma,30,3240 +Almae,0,5 +Alman,6,0 +Almaree,0,5 +Almarie,0,6 +Almeda,0,107 +Almedia,0,10 +Almena,0,6 +Almer,23,14 +Almerinda,0,5 +Almeta,0,69 +Almeter,0,6 +Almetta,0,11 +Almina,0,10 +Almira,0,29 +Almo,6,0 +Almon,35,0 +Almond,20,0 +Almus,7,0 +Almyra,0,12 +Alna,0,7 +Aloha,0,17 +Alois,80,16 +Aloise,0,15 +Alonso,6,0 +Alonza,38,0 +Alonzo,340,0 +Aloys,18,0 +Aloysius,164,0 +Aloysuis,8,0 +Alpha,31,147 +Alpheus,16,0 +Alphia,0,9 +Alphonse,249,0 +Alphonso,96,0 +Alphonsus,20,0 +Alphonzo,11,0 +Alphus,8,0 +Alsie,0,6 +Alson,6,0 +Alston,16,0 +Alta,0,663 +Altagracia,0,9 +Altamae,0,6 +Altee,0,5 +Altha,0,93 +Althea,5,275 +Altheda,0,5 +Altie,0,18 +Alto,11,10 +Alton,678,5 +Alva,273,167 +Alvah,38,6 +Alvan,28,0 +Alvar,5,0 +Alvaro,37,0 +Alveda,0,5 +Alven,15,0 +Alvena,0,41 +Alvenia,0,12 +Alver,6,0 +Alvera,0,83 +Alverda,0,29 +Alverna,0,34 +Alverta,0,83 +Alvester,7,0 +Alveta,0,6 +Alvey,9,0 +Alvia,18,13 +Alvie,82,17 +Alvilda,0,9 +Alvin,2759,24 +Alvina,0,214 +Alvine,0,5 +Alvino,9,0 +Alvira,0,33 +Alvis,101,12 +Alvy,9,0 +Alwilda,0,16 +Alwin,25,0 +Alwood,6,0 +Alwyn,8,0 +Alyce,0,410 +Alyda,0,5 +Alyene,0,12 +Alyne,0,25 +Alyre,5,0 +Alys,0,25 +Alyse,0,16 +Alza,0,6 +Alzada,0,6 +Alzie,0,5 +Alzira,0,5 +Ama,0,12 +Amada,0,29 +Amadeo,22,0 +Amado,34,0 +Amador,24,0 +Amalia,0,124 +Amalie,0,5 +Amanda,0,341 +Amando,11,0 +Amber,0,28 +Ambers,7,0 +Ambrose,166,0 +Ambrosio,14,0 +Amedee,5,0 +Amedeo,9,0 +Amedio,5,0 +Amel,14,0 +Amelda,0,9 +Amelia,0,910 +Amelie,0,11 +Amelio,14,0 +Amelita,0,10 +America,0,36 +Americo,98,0 +Americus,6,0 +Amerigo,19,0 +Ames,7,0 +Amey,0,12 +Amie,5,53 +Amiel,8,0 +Amil,6,0 +Amilda,0,6 +Amma,0,9 +Ammie,0,22 +Ammon,16,0 +Amon,14,0 +Amos,506,0 +Amous,13,0 +Amparo,0,68 +Amy,0,604 +Amye,0,12 +Ana,0,61 +Anabel,0,43 +Anabelle,0,7 +Anacleto,9,0 +Anah,0,6 +Anahid,0,6 +Anamae,0,11 +Ananias,8,0 +Anastacia,0,13 +Anastacio,36,0 +Anastasia,0,97 +Anastasio,11,0 +Anastasios,5,0 +Anatole,11,0 +Ance,8,0 +Ancel,14,0 +Ancil,33,0 +Ancle,7,0 +Ander,9,0 +Anderson,138,0 +Andre,53,0 +Andrea,14,133 +Andreas,11,0 +Andree,0,15 +Andres,104,0 +Andrew,3744,24 +Andrews,5,0 +Andrez,6,0 +Andy,266,6 +Aneita,0,8 +Aneta,0,10 +Anetta,0,7 +Angel,112,20 +Angela,5,600 +Angelena,0,18 +Angelene,0,14 +Angelia,0,5 +Angelica,0,56 +Angelina,6,1082 +Angeline,0,822 +Angelita,0,118 +Angella,0,9 +Angelle,0,6 +Angelo,959,7 +Angelyn,0,14 +Angie,0,213 +Anglina,0,5 +Angline,0,6 +Angus,61,0 +Anice,0,22 +Aniceto,11,0 +Anie,0,6 +Aniela,0,9 +Aniello,15,0 +Anise,0,12 +Anita,0,1853 +Anitra,0,6 +Ann,14,5035 +Anna,32,13076 +Annabel,0,123 +Annabell,0,118 +Annabella,0,12 +Annabelle,0,673 +Annalea,0,5 +Annalee,0,29 +Annamae,0,117 +Annamarie,0,51 +Annamay,0,31 +Annarose,0,10 +Annastasia,0,6 +Anne,9,3627 +Annell,0,9 +Annella,0,8 +Annelle,0,19 +Annemarie,0,11 +Anner,0,17 +Annett,0,10 +Annetta,0,112 +Annette,0,868 +Annice,0,32 +Annie,41,7347 +Anniebell,0,5 +Anniebelle,0,8 +Anniemae,0,17 +Annis,0,54 +Annita,0,5 +Annmarie,0,13 +Annunziata,0,6 +Anola,0,6 +Anona,0,9 +Ansel,40,0 +Anselm,5,0 +Anselma,0,14 +Anselmo,26,0 +Anson,29,0 +Antha,0,15 +Anthoney,6,0 +Anthony,5191,20 +Antimo,5,0 +Antionette,0,38 +Antoine,23,0 +Antoinetta,0,12 +Antoinette,0,1333 +Anton,202,0 +Antone,99,0 +Antonetta,0,50 +Antonette,0,106 +Antonia,8,334 +Antonietta,0,6 +Antoniette,0,5 +Antonina,0,37 +Antonino,10,0 +Antonio,689,14 +Antony,20,0 +Aphrodite,0,13 +Apolinar,14,0 +Apolonia,0,20 +Apolonio,23,0 +April,0,10 +Aquilla,9,12 +Ara,6,50 +Arabella,0,17 +Arabelle,0,13 +Arah,0,9 +Aram,19,0 +Araminta,0,11 +Arbell,0,6 +Arbie,11,0 +Arbutus,0,40 +Arby,12,0 +Arcadio,13,0 +Arcelia,0,14 +Arcenia,0,6 +Arch,42,0 +Archer,25,0 +Archibald,61,0 +Archie,1037,36 +Arcie,6,0 +Arcola,0,8 +Arda,0,11 +Ardath,0,47 +Ardean,0,15 +Ardelia,0,39 +Ardell,53,62 +Ardella,0,111 +Ardelle,0,54 +Arden,139,0 +Ardena,0,10 +Ardene,0,11 +Ardes,0,6 +Ardeth,0,25 +Ardie,8,13 +Ardine,0,5 +Ardis,25,199 +Ardith,0,125 +Ardyce,0,39 +Ardys,0,25 +Ardyth,0,19 +Ardythe,0,10 +Areatha,0,6 +Arel,6,0 +Areta,0,5 +Aretha,0,30 +Aretta,0,32 +Argentina,0,7 +Argie,0,29 +Argle,5,0 +Argus,5,0 +Arguster,6,0 +Argyl,5,0 +Arie,22,39 +Ariel,8,11 +Arietta,0,16 +Arilla,0,9 +Arillia,0,5 +Arine,0,6 +Arion,8,0 +Aris,10,6 +Aristeo,9,0 +Aristides,6,0 +Arita,0,5 +Arizona,0,28 +Arkie,0,5 +Arkley,5,0 +Arl,5,0 +Arla,0,40 +Arlan,28,0 +Arland,32,0 +Arlander,7,0 +Arlayne,0,5 +Arlean,0,38 +Arleane,0,6 +Arleda,0,5 +Arlee,14,14 +Arleen,0,178 +Arleene,0,16 +Arleigh,9,5 +Arlen,33,5 +Arlena,0,46 +Arlene,0,2277 +Arles,7,0 +Arlester,5,0 +Arleta,0,13 +Arletha,0,23 +Arlethia,0,11 +Arletta,0,48 +Arlette,0,15 +Arley,40,8 +Arlie,148,37 +Arlien,0,5 +Arliene,0,7 +Arlillian,0,6 +Arlin,53,7 +Arline,0,677 +Arling,6,0 +Arlington,28,0 +Arlis,36,10 +Arliss,11,16 +Arlita,0,5 +Arlo,67,0 +Arloa,0,6 +Arlon,21,0 +Arlone,0,9 +Arlus,6,0 +Arlyce,0,7 +Arlyn,24,22 +Arlyne,0,40 +Arlys,0,20 +Arma,0,12 +Arman,8,0 +Armand,320,0 +Armanda,0,9 +Armande,0,6 +Armando,193,0 +Armatha,0,6 +Armeda,0,16 +Armelia,0,10 +Armella,0,32 +Armen,10,0 +Armena,0,5 +Armenia,0,5 +Armenta,0,8 +Armentha,0,7 +Armetta,0,7 +Armida,0,37 +Armie,0,6 +Armilda,0,8 +Armin,45,0 +Armina,0,7 +Arminda,0,14 +Arminta,0,17 +Armistead,7,0 +Armon,16,0 +Armond,71,0 +Armondo,8,0 +Armour,5,0 +Armstead,10,0 +Arna,0,6 +Arne,37,0 +Arneda,0,12 +Arnell,0,18 +Arnella,0,6 +Arneta,0,7 +Arnetha,0,6 +Arnett,22,0 +Arnetta,0,37 +Arnette,0,13 +Arnice,0,6 +Arnie,24,8 +Arnita,0,21 +Arno,34,0 +Arnol,5,0 +Arnold,2014,17 +Arnoldo,11,0 +Arnulfo,32,0 +Arol,5,0 +Aron,79,0 +Arona,0,5 +Arra,0,6 +Arretta,0,7 +Arrie,9,21 +Arron,12,0 +Arsenia,0,6 +Arsenio,11,0 +Arshag,5,0 +Arsie,0,9 +Arsula,0,5 +Art,50,0 +Arta,0,8 +Artelia,0,7 +Artell,0,5 +Artemio,8,0 +Artemis,0,17 +Artemisa,0,9 +Artemus,9,0 +Artha,0,6 +Arthel,5,0 +Arthella,0,7 +Arther,104,5 +Arthor,12,0 +Arthur,10172,56 +Artice,8,6 +Artie,57,148 +Artis,53,22 +Arturo,148,0 +Aruther,5,0 +Arva,0,23 +Arvada,0,5 +Arval,9,0 +Arvel,45,0 +Arvell,5,0 +Arvella,0,34 +Arvena,0,6 +Arvey,6,0 +Arvid,60,0 +Arvie,11,14 +Arvil,79,0 +Arvilla,0,96 +Arville,28,0 +Arvin,47,0 +Arvine,9,0 +Arvis,11,0 +Arvle,9,0 +Arvo,6,0 +Arwilda,0,5 +Arwin,6,0 +Arwood,5,0 +Ary,0,5 +Arzella,0,14 +Arzie,6,0 +Asa,106,0 +Asako,0,12 +Asalee,0,5 +Asao,6,0 +Asberry,8,0 +Asbury,13,0 +Ascencion,12,0 +Ascension,9,9 +Asencion,17,10 +Ashby,14,0 +Asher,16,0 +Ashley,46,0 +Ashton,24,0 +Asie,5,6 +Asilee,0,6 +Aslee,0,6 +Aspasia,0,6 +Assunta,0,43 +Aster,8,8 +Aston,5,0 +Astrid,0,17 +Asuncion,0,7 +Asunta,0,5 +Atanacio,12,0 +Atha,5,42 +Athalee,0,7 +Athaleen,0,6 +Athalene,0,6 +Athalie,0,10 +Athan,6,0 +Athel,13,0 +Athelene,0,7 +Athelia,0,5 +Athena,0,51 +Athene,0,7 +Athleen,0,7 +Athol,8,0 +Atilano,5,0 +Atlas,15,5 +Atlee,12,0 +Atline,0,5 +Atsushi,11,0 +Attie,0,9 +Attilio,39,0 +Atwell,6,0 +Atwood,12,0 +Aubert,8,0 +Aubery,11,0 +Aubra,13,0 +Aubrey,455,35 +Aubry,33,0 +Auburn,14,0 +Auda,0,8 +Audelia,0,9 +Audell,0,6 +Audery,0,6 +Audie,31,55 +Audine,0,11 +Audley,27,5 +Audra,6,78 +Audray,0,9 +Audre,0,21 +Audrea,0,11 +Audree,0,27 +Audrey,61,3520 +Audria,0,16 +Audrie,0,38 +Audry,18,59 +Augie,9,0 +August,574,6 +Augusta,20,241 +Augustin,26,0 +Augustina,0,44 +Augustine,146,70 +Augustino,10,0 +Augusto,8,0 +Augustus,155,0 +Auline,0,6 +Aune,0,7 +Aura,0,14 +Aurea,0,6 +Aurel,8,0 +Aurelia,0,187 +Aureliano,6,0 +Aurelie,0,5 +Aurelio,58,0 +Aurelius,7,0 +Aurie,0,5 +Aurora,0,357 +Aurore,0,13 +Aurther,5,0 +Aurthur,6,0 +Ausie,5,0 +Austin,420,0 +Austine,0,8 +Auston,7,0 +Australia,0,10 +Authar,6,0 +Auther,49,0 +Author,43,0 +Authur,30,0 +Autrey,5,0 +Autry,8,13 +Ava,0,157 +Avalee,0,7 +Avalene,0,9 +Avaline,0,5 +Avalon,0,19 +Avanell,0,30 +Avanelle,0,27 +Ave,0,5 +Avelina,0,11 +Avelino,9,0 +Avenell,0,6 +Averil,5,11 +Averill,0,6 +Avery,123,12 +Avice,0,6 +Avie,0,23 +Avis,13,430 +Avo,0,12 +Avon,17,22 +Avonell,0,9 +Avonelle,0,16 +Avonne,0,17 +Avril,0,21 +Awanda,0,6 +Awilda,0,7 +Axel,22,0 +Ayako,0,24 +Ayleen,0,7 +Aylene,0,10 +Aza,0,6 +Azalea,0,10 +Azalee,0,50 +Azalene,0,5 +Azalia,0,10 +Azaline,0,5 +Azelia,0,6 +Azell,10,0 +Azile,0,9 +Azilee,0,20 +Azlee,0,8 +Azzie,0,33 +Babe,11,14 +Babette,0,26 +Baby,11,24 +Bailey,44,0 +Baird,5,0 +Baker,9,0 +Balbina,0,11 +Baldassare,5,0 +Baldemar,10,0 +Baldomero,16,0 +Baldwin,9,0 +Ballard,17,0 +Baltazar,6,0 +Bama,0,10 +Banks,11,0 +Bannie,0,9 +Barbara,12,8305 +Barbra,0,24 +Barkley,7,0 +Barnard,12,0 +Barnell,5,0 +Barnett,11,6 +Barney,275,0 +Barnie,20,0 +Baron,8,0 +Barrett,12,0 +Barrie,10,0 +Barron,13,0 +Barry,52,0 +Bart,47,0 +Bartholomew,41,0 +Bartlett,11,0 +Bartley,17,0 +Bartolo,13,0 +Barton,76,0 +Bascom,23,0 +Basil,281,0 +Basilia,0,8 +Basilio,24,0 +Baudelia,0,5 +Baudelio,5,0 +Baxter,58,0 +Bayard,25,0 +Baylor,6,0 +Bazel,5,0 +Bazil,8,0 +Bea,0,20 +Beadie,0,12 +Bearl,7,0 +Beata,0,12 +Beathrice,0,5 +Beatric,0,6 +Beatrice,15,5271 +Beatris,0,8 +Beatriz,0,55 +Beatryce,0,12 +Beauford,33,0 +Beaulah,0,74 +Beauty,0,10 +Bebe,0,54 +Beckham,5,0 +Beckie,0,8 +Becky,0,37 +Beda,0,5 +Bedford,41,0 +Bee,13,12 +Beebe,0,6 +Beecher,25,0 +Bela,0,7 +Belarmino,7,0 +Beldon,8,0 +Belen,0,28 +Belford,10,0 +Belia,0,32 +Belinda,0,7 +Bell,0,33 +Bella,0,134 +Belle,0,162 +Belma,0,13 +Belton,31,0 +Belua,0,5 +Belva,0,161 +Belvia,0,9 +Belvin,11,0 +Ben,1170,14 +Bena,0,6 +Benancio,8,0 +Benard,28,0 +Benedetta,0,14 +Benedetto,12,0 +Benedict,114,0 +Benedicta,0,6 +Benetta,0,10 +Benford,11,0 +Benie,6,0 +Benigna,0,7 +Benigno,9,0 +Benita,0,81 +Benito,121,0 +Benjaman,37,0 +Benjamen,13,0 +Benjamin,2221,5 +Benjamine,20,0 +Benjiman,78,0 +Benjimin,5,0 +Bennett,96,0 +Benney,6,0 +Bennie,873,199 +Benno,11,0 +Benny,415,12 +Bennye,0,7 +Benoit,5,0 +Benson,43,0 +Bentley,16,0 +Benton,71,0 +Beola,0,13 +Bera,0,8 +Berda,0,9 +Berdean,0,5 +Berdell,8,8 +Berdella,0,6 +Berdena,0,13 +Berdene,0,7 +Berdia,0,6 +Berdie,0,17 +Berdina,0,5 +Berdine,0,14 +Berenice,0,70 +Berge,6,0 +Berkeley,15,0 +Berkley,29,0 +Berl,19,0 +Berle,12,0 +Berlie,9,8 +Berlin,34,5 +Berline,0,11 +Berlyn,5,0 +Berma,0,9 +Berman,12,0 +Berna,0,22 +Bernabe,19,0 +Bernadean,0,19 +Bernadeen,0,5 +Bernadene,0,20 +Bernadetta,0,9 +Bernadette,0,347 +Bernadine,0,563 +Bernal,5,0 +Bernard,4505,19 +Bernarda,0,13 +Bernardina,0,6 +Bernardine,0,74 +Bernardino,17,0 +Bernardita,0,7 +Bernardo,34,0 +Bernarr,11,0 +Berne,5,0 +Bernece,0,15 +Berneda,0,14 +Berneice,0,135 +Berneita,0,6 +Bernell,15,20 +Bernelle,0,7 +Bernerd,15,0 +Bernese,0,8 +Bernestine,0,8 +Berneta,0,14 +Bernetha,0,5 +Bernetta,0,54 +Bernette,0,12 +Bernhard,36,0 +Bernhardt,13,0 +Bernice,110,6033 +Bernie,89,29 +Berniece,0,331 +Bernis,11,0 +Bernise,0,7 +Bernita,0,85 +Bernon,5,0 +Bernyce,0,32 +Berry,57,8 +Bert,620,13 +Berta,0,110 +Bertha,23,4122 +Berthamae,0,5 +Berthe,0,11 +Berthold,5,0 +Bertice,0,6 +Bertie,19,260 +Bertil,13,0 +Bertilla,0,8 +Bertin,5,0 +Bertina,0,21 +Bertine,0,6 +Bertis,13,0 +Berton,53,0 +Bertram,223,0 +Bertran,5,0 +Bertrand,95,0 +Bertrum,5,0 +Berwin,5,0 +Berwyn,15,0 +Beryl,77,219 +Beryle,0,26 +Bess,0,81 +Besse,0,7 +Bessie,21,3404 +Bessy,0,5 +Beth,0,319 +Betha,0,8 +Bethal,0,6 +Bethany,0,9 +Bethel,32,116 +Bethene,0,9 +Bethine,0,5 +Betrice,0,10 +Betsey,0,16 +Betsy,0,236 +Betta,0,5 +Bette,6,1736 +Bettejane,0,5 +Bettelou,0,9 +Bettey,0,6 +Betti,0,7 +Bettie,5,1228 +Bettilou,0,6 +Bettina,0,26 +Betty,68,30600 +Bettyann,0,24 +Bettye,0,439 +Bettyjane,0,79 +Bettyjean,0,21 +Bettyjo,0,16 +Bettylee,0,12 +Bettylou,0,74 +Bettymae,0,15 +Beuford,11,0 +Beula,0,31 +Beulah,5,2006 +Beuna,0,13 +Beverlee,0,22 +Beverley,15,147 +Beverlie,0,11 +Beverly,107,2283 +Bevie,0,5 +Biaggio,7,0 +Biagio,19,0 +Bianca,0,9 +Bicente,5,0 +Biddie,0,6 +Bilbo,6,0 +Bill,2067,18 +Billee,0,10 +Billey,7,0 +Billie,882,1599 +Billy,3271,98 +Billye,7,107 +Bina,0,13 +Bing,7,0 +Binnie,0,9 +Bion,8,0 +Birch,5,0 +Birchard,5,0 +Birchie,0,7 +Birda,0,16 +Birdell,0,10 +Birdella,0,7 +Birdena,0,9 +Birder,0,8 +Birdia,0,6 +Birdie,6,227 +Birl,11,0 +Birney,6,0 +Birt,12,0 +Birtha,0,62 +Birtie,0,23 +Bishop,33,0 +Bissie,0,5 +Bitha,0,6 +Bivian,5,0 +Blain,9,0 +Blaine,148,0 +Blair,77,7 +Blaise,6,0 +Blake,41,0 +Blanca,0,8 +Blanch,0,181 +Blanchard,6,0 +Blanche,6,2033 +Blanchie,0,35 +Bland,14,0 +Blandina,0,5 +Blane,5,0 +Blannie,0,8 +Blanton,5,0 +Blas,17,0 +Blasa,0,5 +Blase,5,0 +Blenda,0,5 +Bliss,6,0 +Blondell,0,36 +Blondena,0,7 +Blondie,0,7 +Blondina,0,8 +Blonnie,0,9 +Blossie,0,6 +Blossom,0,82 +Bluma,0,7 +Blythe,0,6 +Bob,1167,7 +Bobbe,0,5 +Bobbette,0,6 +Bobbie,239,503 +Bobby,733,99 +Bobbye,0,42 +Bobette,0,12 +Bobie,11,6 +Boby,5,0 +Bohdan,5,0 +Boice,5,0 +Boleslaus,13,0 +Boleslaw,7,0 +Bonard,5,0 +Boneta,0,5 +Boniface,14,0 +Bonifacio,22,0 +Bonita,0,167 +Bonna,0,26 +Bonnell,0,9 +Bonnetta,0,5 +Bonnie,73,2296 +Bonnielee,0,5 +Bonny,8,21 +Bonnye,0,8 +Booker,181,0 +Boone,8,0 +Boots,0,14 +Borden,5,0 +Borghild,0,7 +Boris,37,0 +Boss,12,0 +Boston,13,0 +Bowman,8,0 +Boyce,99,0 +Boyd,459,9 +Boyde,6,0 +Boykin,6,0 +Brack,8,0 +Braden,7,0 +Bradford,76,0 +Bradie,7,0 +Bradley,86,0 +Brady,85,0 +Brainard,6,0 +Brandon,12,0 +Brandt,5,0 +Brant,5,0 +Brantley,7,0 +Braulio,8,0 +Braxton,19,0 +Brenda,0,44 +Brendan,17,0 +Brent,18,0 +Brenton,14,0 +Breta,0,5 +Brewster,7,0 +Brian,38,0 +Brice,50,0 +Bridget,0,81 +Bright,8,0 +Brigida,0,13 +Brinton,7,0 +Britt,12,0 +Britton,8,0 +Broadus,32,0 +Brock,6,0 +Brodie,16,0 +Bronislaus,16,0 +Bronislaw,10,0 +Bronson,6,0 +Brooke,5,0 +Brookie,0,9 +Brooks,66,0 +Brooksie,0,18 +Brooxie,0,5 +Brother,5,0 +Broughton,6,0 +Brown,34,0 +Brownell,5,0 +Brownie,19,28 +Bruce,1311,11 +Bruna,0,33 +Brunetta,0,6 +Brunette,0,6 +Bruno,261,0 +Bryan,116,0 +Bryant,89,0 +Bryce,87,0 +Bryon,11,0 +Bryson,9,0 +Buck,65,0 +Buckley,7,0 +Bud,174,0 +Budd,21,0 +Buddie,42,0 +Buddy,177,0 +Bueford,7,0 +Buel,37,0 +Buela,0,5 +Buelah,0,41 +Buell,32,0 +Buena,0,22 +Bufford,12,0 +Buford,304,0 +Bula,0,33 +Bulah,0,97 +Bular,0,7 +Buna,0,18 +Bunice,0,8 +Bunion,6,0 +Bunnie,0,11 +Bunny,7,14 +Bunyan,6,0 +Burch,9,0 +Burchard,7,0 +Burdell,10,0 +Burdella,0,6 +Burdett,13,0 +Burdette,50,0 +Burel,6,0 +Buren,24,0 +Burgess,23,0 +Burgin,5,0 +Burke,30,0 +Burl,154,5 +Burle,5,0 +Burleigh,10,0 +Burlen,5,0 +Burley,38,0 +Burlie,6,0 +Burlin,14,0 +Burlon,6,0 +Burma,0,20 +Burman,11,0 +Burnard,11,0 +Burnell,53,18 +Burnes,5,0 +Burnett,36,5 +Burnetta,0,17 +Burnette,5,20 +Burney,18,0 +Burnice,44,56 +Burnie,20,5 +Burnis,14,5 +Burns,20,0 +Burr,14,0 +Burrel,8,0 +Burrell,35,0 +Burris,9,0 +Burt,65,0 +Burtis,12,0 +Burton,551,0 +Burwell,6,0 +Buryl,6,0 +Buster,201,0 +Butler,23,0 +Byard,5,0 +Byford,6,0 +Bynum,16,0 +Byrd,14,0 +Byrdie,0,13 +Byrl,16,0 +Byrne,6,0 +Byron,594,0 +Caesar,43,0 +Cal,32,0 +Calbert,12,0 +Caldonia,0,14 +Caldwell,12,0 +Caleb,44,0 +Calhoun,10,0 +Calista,0,14 +Calla,0,12 +Callie,16,318 +Calven,9,0 +Calvert,31,0 +Calvin,4919,22 +Calvina,0,5 +Cam,5,0 +Camden,5,0 +Camelia,0,9 +Camella,0,18 +Cameron,53,5 +Camiel,9,0 +Camile,6,0 +Camilla,0,138 +Camille,24,176 +Camillo,18,0 +Camilo,16,0 +Cammie,0,20 +Campbell,20,0 +Canary,0,11 +Candace,0,11 +Candelaria,0,35 +Candelario,25,0 +Candida,0,26 +Candido,21,0 +Candita,0,6 +Candy,0,7 +Cannie,0,8 +Capitola,0,20 +Captain,7,0 +Captola,0,14 +Cara,0,30 +Cardell,11,6 +Carel,0,5 +Carene,0,7 +Caretha,0,8 +Carey,66,16 +Caridad,0,5 +Carie,0,11 +Carine,0,5 +Carita,0,8 +Carl,7085,46 +Carla,0,36 +Carle,9,0 +Carlean,0,10 +Carlee,10,14 +Carleen,0,34 +Carlena,0,7 +Carlene,0,79 +Carles,10,0 +Carless,11,0 +Carleton,99,0 +Carletta,0,16 +Carley,11,23 +Carlie,25,18 +Carlin,14,0 +Carline,0,22 +Carlis,17,0 +Carlisle,29,0 +Carlo,150,0 +Carlon,8,0 +Carlos,452,0 +Carlota,0,27 +Carlotta,0,31 +Carlson,6,0 +Carlton,430,0 +Carlyle,77,0 +Carlyn,7,21 +Carlyne,0,6 +Carma,0,28 +Carmaleta,0,5 +Carman,24,7 +Carmel,36,153 +Carmela,0,578 +Carmelia,0,9 +Carmelina,0,29 +Carmeline,0,7 +Carmelita,0,70 +Carmelite,0,6 +Carmella,0,514 +Carmelle,0,6 +Carmello,16,5 +Carmelo,85,0 +Carmen,344,942 +Carmie,6,9 +Carmin,10,0 +Carmina,0,7 +Carmine,217,9 +Carmino,10,0 +Carmon,31,15 +Carnation,0,6 +Carnelia,0,9 +Carnell,26,16 +Carnes,5,0 +Carney,5,0 +Carnie,12,0 +Caro,0,7 +Carol,132,2094 +Carola,0,5 +Carole,0,204 +Carolee,0,17 +Caroleen,0,6 +Carolene,0,8 +Carolin,0,6 +Carolina,5,144 +Caroline,0,1302 +Caroll,9,5 +Carolle,0,8 +Carolyn,5,2222 +Carolyne,0,37 +Carolynn,0,13 +Carr,6,0 +Carra,0,9 +Carrel,16,0 +Carrell,9,0 +Carrie,14,2051 +Carrine,0,7 +Carris,5,0 +Carrol,147,44 +Carroll,669,58 +Carry,6,13 +Carson,132,0 +Carsten,5,0 +Carter,112,0 +Carthel,10,0 +Carthell,5,0 +Carvel,16,0 +Carver,6,0 +Carvin,6,0 +Cary,59,16 +Caryl,7,81 +Casey,45,0 +Cash,6,0 +Casimer,47,0 +Casimera,0,5 +Casimir,163,0 +Casimira,0,20 +Casimiro,16,0 +Casmer,7,0 +Casmere,6,0 +Casmir,6,0 +Casmira,0,6 +Casper,88,0 +Cass,9,0 +Cassandra,0,6 +Cassel,5,0 +Cassell,5,0 +Cassie,10,157 +Cassius,9,0 +Castella,0,8 +Castulo,9,0 +Caswell,6,0 +Cataldo,6,0 +Catalina,0,102 +Catarina,0,29 +Catarino,31,0 +Catha,0,5 +Cathaleen,0,7 +Catharine,0,166 +Catheline,0,5 +Catherene,0,9 +Catherin,0,13 +Catherina,0,7 +Catherine,28,8363 +Catherline,0,5 +Cathern,0,15 +Catheryn,0,18 +Catheryne,0,10 +Cathleen,0,73 +Cathren,0,6 +Cathrine,0,88 +Cathryn,0,135 +Cathryne,0,9 +Cathy,0,13 +Cattie,0,5 +Cayetano,12,0 +Ceasar,12,0 +Ceaser,9,0 +Cebert,7,0 +Cecelia,0,742 +Cecil,2299,174 +Cecila,0,11 +Cecile,7,422 +Cecilia,0,768 +Cecilie,0,8 +Cecilio,20,0 +Cecille,0,19 +Cecily,0,14 +Ceclia,0,5 +Cedella,0,5 +Cedric,42,0 +Ceferino,5,0 +Ceil,0,12 +Celena,0,5 +Celest,0,7 +Celesta,0,33 +Celeste,0,135 +Celester,0,9 +Celestia,0,12 +Celestina,0,27 +Celestine,15,157 +Celestino,39,0 +Celia,0,662 +Celie,0,9 +Celina,0,30 +Celine,0,19 +Cella,0,6 +Cellie,0,6 +Celso,12,0 +Ceola,5,70 +Cephas,18,0 +Cephus,18,0 +Cesar,15,0 +Cesare,9,0 +Cesareo,5,0 +Cesario,13,0 +Chad,14,0 +Chadwick,9,0 +Chadyeane,0,5 +Chairty,0,5 +Chalmer,37,0 +Chalmers,27,0 +Chalmus,5,0 +Chalres,7,0 +Champ,7,0 +Chance,6,0 +Chancey,11,0 +Chancie,6,0 +Chancy,10,0 +Chandler,26,0 +Chanel,7,0 +Chaney,5,6 +Channie,0,10 +Channing,14,0 +Chapman,6,0 +Charis,0,14 +Charity,0,70 +Charla,0,7 +Charlcie,0,16 +Charle,10,0 +Charlean,0,12 +Charleen,0,47 +Charleene,0,5 +Charlena,0,14 +Charlene,0,449 +Charles,30461,186 +Charlesetta,0,11 +Charleston,12,0 +Charlet,0,5 +Charlette,0,12 +Charley,430,16 +Charlie,2507,175 +Charline,0,127 +Charlis,6,0 +Charlot,0,8 +Charlott,0,13 +Charlotta,0,10 +Charlotte,11,3612 +Charlottie,0,5 +Charls,14,0 +Charlsie,0,31 +Charlton,25,0 +Charlye,0,8 +Charlyn,0,6 +Charlyne,0,16 +Charmian,0,10 +Charolette,0,13 +Chas,55,0 +Chase,8,0 +Chauncey,67,0 +Chauncy,13,0 +Chee,5,0 +Chelsea,6,0 +Cherie,0,13 +Cherrie,0,11 +Cherry,5,62 +Cheryl,0,22 +Chesley,39,0 +Chessie,0,14 +Chester,3033,23 +Chestine,5,11 +Chet,5,0 +Chick,5,0 +Chieko,0,14 +Chilton,11,0 +China,0,5 +Chiquita,0,5 +Chiyeko,0,10 +Chiyo,0,12 +Chiyoko,0,37 +Chizuko,0,13 +Chloe,0,78 +Chloie,0,10 +Chlorine,0,5 +Chloris,0,8 +Choice,5,0 +Chon,8,0 +Chonita,0,7 +Chris,178,14 +Chriss,5,0 +Christ,56,0 +Christa,0,17 +Christana,0,5 +Christeen,0,58 +Christell,0,11 +Christella,0,5 +Christen,0,21 +Christena,0,18 +Christene,0,98 +Christian,125,6 +Christiana,0,8 +Christie,21,21 +Christina,0,385 +Christine,9,2325 +Christo,6,0 +Christopher,297,0 +Christos,10,0 +Christy,38,8 +Chrysanthe,0,5 +Chrystal,0,21 +Chuck,16,0 +Cicely,0,10 +Cicero,27,0 +Cinda,0,6 +Cinderella,0,18 +Cindy,0,10 +Cipriana,0,8 +Cipriano,19,0 +Ciriaco,6,0 +Cirilo,14,0 +Ciro,22,0 +Cisco,5,0 +Clabon,5,0 +Claborn,6,0 +Cladie,0,8 +Claiborne,24,0 +Clair,327,22 +Claire,67,1583 +Clairene,0,5 +Clance,9,0 +Clancy,6,0 +Clara,18,4988 +Clarabel,0,14 +Clarabell,0,27 +Clarabelle,0,46 +Claramae,0,8 +Clarance,92,0 +Clarcie,0,5 +Clare,84,217 +Clarence,6895,45 +Clarene,0,15 +Claretha,0,9 +Claretta,0,12 +Claria,0,6 +Claribel,0,45 +Clarice,0,554 +Clarie,0,7 +Clariece,0,9 +Clarince,5,0 +Clarinda,0,13 +Clarine,0,52 +Clarion,7,0 +Claris,6,27 +Clarise,0,21 +Clarissa,0,67 +Clarisse,0,15 +Clarita,0,14 +Clark,283,0 +Clarke,29,0 +Clarkson,6,0 +Clarnce,18,0 +Clarnece,5,0 +Claron,5,0 +Clarrissa,0,5 +Clary,8,0 +Claryce,0,5 +Classie,0,33 +Clatie,0,7 +Claud,306,0 +Claude,1706,15 +Claudean,0,19 +Claudell,7,5 +Claudene,0,15 +Claudette,0,6 +Claudia,6,380 +Claudie,77,110 +Claudina,0,12 +Claudine,0,195 +Claudio,29,0 +Claudis,12,0 +Claudius,17,0 +Claus,9,0 +Clavin,7,0 +Claxton,9,0 +Clay,151,6 +Clayborn,8,0 +Clayborne,8,0 +Claytie,0,5 +Clayton,1039,7 +Clea,0,8 +Clearance,24,0 +Clearence,47,0 +Clearnce,17,0 +Cleata,0,7 +Cleatis,11,0 +Cleatrice,0,5 +Cleatus,30,0 +Cleave,11,0 +Cleaven,5,0 +Cleburn,8,0 +Cleda,0,42 +Cledia,0,6 +Cledis,6,0 +Cledith,8,7 +Clela,0,9 +Cleland,7,0 +Clelia,0,20 +Clell,49,0 +Clella,0,26 +Clem,97,0 +Clema,0,6 +Clemence,15,7 +Clemencia,0,11 +Clemens,46,0 +Clement,287,0 +Clemente,35,0 +Clementina,0,37 +Clementine,0,152 +Clements,8,0 +Clemie,0,6 +Clemma,0,7 +Clemmie,15,41 +Clemon,27,0 +Clemons,7,0 +Clemontine,0,6 +Clenton,20,0 +Cleo,300,909 +Cleofas,10,8 +Cleola,0,41 +Cleon,64,8 +Cleona,0,26 +Cleone,5,42 +Cleopatra,0,26 +Cleophas,24,7 +Cleophus,35,0 +Cleora,0,55 +Cleota,0,11 +Cleotha,10,6 +Cleotilde,0,16 +Clera,0,5 +Clerance,6,0 +Clessie,0,6 +Clester,7,5 +Cleston,11,0 +Cleta,0,85 +Cletha,0,5 +Cletis,44,8 +Cleto,7,0 +Cletus,226,16 +Cleva,0,14 +Cleve,55,0 +Cleveland,339,0 +Cleven,8,0 +Clevland,8,0 +Clida,0,5 +Clide,27,0 +Cliff,27,0 +Cliffie,0,8 +Clifford,3250,39 +Cliffton,6,0 +Cliford,5,0 +Clifton,847,6 +Climmie,0,7 +Cline,21,0 +Clint,60,0 +Clinton,831,0 +Clio,0,9 +Clista,0,8 +Clive,31,0 +Cloe,0,9 +Cloid,5,0 +Cloie,0,10 +Clois,28,6 +Cloise,6,0 +Cloma,0,6 +Clora,0,49 +Cloree,0,5 +Clorence,5,0 +Clorene,0,7 +Cloria,0,8 +Clorinda,0,20 +Clorine,0,7 +Cloteal,0,17 +Clotene,0,7 +Clothilde,0,8 +Clotiel,0,6 +Clotilda,0,14 +Clotilde,0,36 +Clotile,0,6 +Clotine,0,6 +Cloud,12,0 +Cloude,6,0 +Clova,0,8 +Clover,0,18 +Clovis,72,25 +Cloyce,14,0 +Cloyd,67,0 +Cloyde,9,0 +Clura,0,5 +Cluster,8,0 +Clyda,0,23 +Clyde,3006,86 +Clydene,0,6 +Clydia,0,20 +Clydie,0,18 +Clyta,0,5 +Clytee,0,5 +Clytie,0,12 +Coburn,5,0 +Coda,5,0 +Cody,18,0 +Coe,6,0 +Coker,5,0 +Cola,5,0 +Colbert,13,0 +Colby,9,0 +Cole,16,0 +Coleen,0,29 +Coleman,107,0 +Colene,0,15 +Coleridge,5,0 +Coletta,0,62 +Colette,0,58 +Coley,14,0 +Colie,16,0 +Colin,41,0 +Colleen,0,524 +Colleene,0,5 +Collen,0,5 +Collene,0,10 +Colletta,0,13 +Collette,0,8 +Collie,23,7 +Collier,11,0 +Collin,22,0 +Collins,28,0 +Collis,27,0 +Colman,17,0 +Colon,25,0 +Colonel,33,0 +Colson,5,0 +Columbia,0,19 +Columbine,0,5 +Columbus,151,0 +Colvin,13,0 +Comer,18,0 +Commie,0,6 +Commodore,10,0 +Con,8,0 +Conard,15,0 +Concepcion,15,83 +Conception,0,22 +Concetta,0,469 +Concettina,0,15 +Concha,0,51 +Conchetta,0,9 +Conchita,0,11 +Condon,6,0 +Congetta,0,16 +Conley,55,0 +Connell,10,0 +Connie,90,635 +Connor,9,0 +Cono,7,0 +Conrad,387,0 +Conrada,0,6 +Conrado,29,0 +Consepcion,0,7 +Constance,7,1655 +Constant,14,0 +Constantine,92,0 +Constantino,17,0 +Consuela,0,14 +Consuella,0,10 +Consuelo,0,311 +Conway,56,0 +Cooledge,6,0 +Coolidge,82,0 +Cooper,16,0 +Cora,8,1630 +Corabelle,0,18 +Coral,0,43 +Coralee,0,17 +Coralie,0,29 +Coralyn,0,5 +Corbet,9,0 +Corbett,25,0 +Corbin,14,0 +Corbitt,5,0 +Corda,0,9 +Cordelia,0,131 +Cordell,21,5 +Cordella,0,17 +Cordia,0,19 +Cordie,10,33 +Corean,0,18 +Coreen,0,8 +Corena,0,15 +Corene,0,95 +Coretha,0,12 +Coretta,0,5 +Corina,0,26 +Corine,0,369 +Corinna,0,14 +Corinne,0,631 +Corintha,0,5 +Corliss,18,30 +Corneilus,5,0 +Cornel,7,0 +Cornelia,0,407 +Cornelio,13,0 +Cornelious,26,8 +Cornelius,402,14 +Cornell,39,9 +Corneluis,7,0 +Cornie,9,5 +Corrado,7,0 +Correne,0,11 +Corrie,5,48 +Corrine,0,287 +Corrinne,0,47 +Cortez,8,7 +Cortland,7,0 +Corwin,30,0 +Cory,7,0 +Cosby,9,0 +Cosette,0,5 +Cosimo,25,0 +Cosme,20,0 +Cosmo,48,0 +Costa,6,0 +Costantino,5,0 +Costas,7,0 +Costella,0,10 +Coston,5,0 +Cotha,0,5 +Cottrell,6,0 +Council,11,0 +Court,7,0 +Courtland,22,0 +Courtney,49,16 +Covert,6,0 +Covington,6,0 +Coy,234,22 +Coyt,7,0 +Cozella,0,6 +Cozetta,0,10 +Cozette,0,6 +Cozie,0,6 +Cozy,0,12 +Craig,87,0 +Cranford,7,0 +Cranston,8,0 +Crawford,88,0 +Crayton,7,0 +Cread,6,0 +Creasie,0,6 +Crecencio,13,0 +Creda,0,5 +Creed,25,0 +Creighton,28,0 +Creola,0,56 +Crescencio,5,0 +Cresencia,0,7 +Cresencio,11,0 +Crespin,10,0 +Cressie,0,7 +Creston,10,0 +Creta,0,8 +Cris,6,0 +Crispin,5,0 +Criss,6,0 +Crist,8,0 +Cristina,0,21 +Cristine,0,7 +Cristobal,20,0 +Crit,6,0 +Crockett,11,0 +Cruz,68,53 +Crystal,0,100 +Cuba,5,15 +Cuca,0,14 +Cula,0,5 +Cullen,29,0 +Culver,7,0 +Curlee,9,0 +Curley,38,10 +Curlie,0,9 +Curly,9,0 +Currie,9,0 +Curry,13,0 +Curt,26,0 +Curtis,1529,38 +Curtiss,40,0 +Curvin,11,0 +Custer,6,0 +Cuthbert,7,0 +Cuyler,6,0 +Cy,9,0 +Cynthia,0,366 +Cyril,282,7 +Cyrilla,0,18 +Cyrus,110,0 +Czeslawa,0,6 +Dabney,5,0 +Dagmar,0,14 +Dagny,0,9 +Dahlia,0,23 +Dail,10,0 +Daily,5,0 +Daina,0,6 +Dainty,0,5 +Daisey,0,22 +Daisie,0,11 +Daisy,12,1460 +Dal,6,0 +Dalbert,9,0 +Dale,2396,98 +Dalia,0,18 +Dallas,328,45 +Dallie,5,17 +Dallis,11,0 +Dalores,0,5 +Dalphine,0,5 +Dalton,140,5 +Damacio,6,0 +Damaris,0,8 +Damian,10,0 +Damon,60,0 +Dan,800,11 +Dana,112,67 +Dane,21,0 +Danel,7,0 +Danella,0,5 +Danial,23,0 +Daniel,4403,29 +Danna,0,8 +Dannie,33,31 +Danniel,5,0 +Danny,126,0 +Dante,76,0 +Danuel,6,0 +Daphane,0,5 +Daphene,0,11 +Daphine,0,32 +Daphna,0,9 +Daphne,0,114 +Dara,0,7 +Darald,6,0 +Darcus,0,8 +Darcy,7,0 +Dardanella,0,6 +Darden,7,0 +Darel,16,0 +Darell,9,0 +Dargan,7,0 +Daria,0,12 +Dario,27,0 +Daris,0,24 +Darius,21,0 +Darl,21,0 +Darla,0,7 +Darleen,0,71 +Darleene,0,7 +Darlene,0,638 +Darline,0,82 +Darlyne,0,20 +Darlynne,0,5 +Darlys,0,5 +Darnell,30,10 +Darol,7,0 +Darold,60,0 +Darothy,0,5 +Darrel,206,0 +Darrell,509,7 +Darris,0,6 +Darrol,6,0 +Darrold,5,0 +Darroll,7,0 +Darrow,12,0 +Darryl,12,0 +Dartha,0,16 +Darthy,0,12 +Darvin,17,0 +Darwin,218,0 +Darwyn,5,0 +Daryl,102,10 +Daryle,8,0 +Dasie,0,18 +Dauphine,0,5 +Dave,343,0 +David,8758,51 +Davida,0,7 +Davidson,5,0 +Davie,28,7 +Davied,9,0 +Davis,174,14 +Davy,5,0 +Dawes,9,0 +Dawn,0,141 +Dawna,0,11 +Dawson,35,0 +Dayle,15,0 +Daymon,6,0 +Dayton,81,0 +De,0,5 +Dea,0,5 +Dealia,0,6 +Dealva,0,5 +Dean,1151,53 +Deana,0,14 +Deane,56,15 +Deanie,0,6 +Deanna,0,20 +Deanne,0,8 +Dearl,10,0 +Debbie,0,8 +Debora,0,9 +Deborah,0,125 +Debra,0,8 +Dee,116,47 +Deena,0,6 +Deetta,0,21 +Deette,0,6 +Deforest,15,0 +Deforrest,6,0 +Deirdre,0,8 +Del,17,9 +Dela,0,8 +Delaine,0,9 +Delbert,988,7 +Delberta,0,7 +Delcenia,0,5 +Delcia,0,8 +Delcie,0,33 +Delema,0,10 +Delena,0,15 +Delene,0,11 +Delfa,0,6 +Delfina,0,65 +Delfino,19,0 +Delford,14,0 +Delia,0,289 +Deliah,0,10 +Delight,0,16 +Delila,0,28 +Delilah,0,71 +Delina,0,10 +Delio,6,0 +Dell,43,43 +Della,12,1050 +Dellamae,0,7 +Dellar,0,14 +Dellia,0,6 +Dellie,0,10 +Dellis,8,0 +Dellora,0,8 +Delma,39,188 +Delmar,292,9 +Delmas,31,0 +Delmer,205,0 +Delmon,6,0 +Delmont,17,0 +Delmore,10,0 +Delmus,11,0 +Delno,19,0 +Delois,5,48 +Deloise,0,13 +Delora,0,43 +Deloras,0,15 +Delores,7,1324 +Delories,0,10 +Deloris,0,420 +Delorise,0,10 +Delorse,0,7 +Delorus,0,6 +Delos,33,0 +Deloss,9,0 +Deloy,8,0 +Deloyd,5,0 +Delpha,0,53 +Delphia,0,116 +Delphin,8,0 +Delphina,0,12 +Delphine,0,223 +Delphis,8,0 +Delrose,0,8 +Delroy,7,0 +Delsia,0,5 +Delsie,0,37 +Delta,0,58 +Deltha,0,12 +Delton,66,0 +Delva,0,5 +Delvin,32,0 +Delvina,0,6 +Delwin,20,0 +Delwyn,6,0 +Delzora,0,5 +Dema,0,10 +Demaris,0,11 +Demetra,0,19 +Demetria,0,9 +Demetrio,22,0 +Demetrius,8,0 +Demosthenes,5,0 +Demple,0,7 +Dempsey,41,0 +Dempsy,6,0 +Dena,0,86 +Dencil,7,0 +Dene,0,5 +Denia,0,5 +Denis,58,0 +Denise,0,52 +Dennie,26,7 +Dennis,807,5 +Dennison,6,0 +Denny,34,0 +Denotra,0,5 +Densel,10,0 +Denson,8,0 +Denton,27,0 +Denver,165,5 +Denvil,7,0 +Denzel,26,0 +Denzil,71,7 +Deo,13,0 +Deola,0,11 +Deolinda,0,15 +Deon,6,8 +Deone,0,6 +Derald,24,0 +Derek,6,0 +Derelys,0,7 +Deretha,0,5 +Derith,0,5 +Dero,5,0 +Derotha,0,10 +Derrel,11,0 +Derrell,22,0 +Derrill,10,0 +Derry,10,0 +Derwin,10,0 +Derwood,27,0 +Deryl,14,0 +Desiderio,6,0 +Desiree,0,6 +Desmond,40,0 +Despina,0,17 +Dessa,0,14 +Dessie,11,239 +Detroit,8,0 +Detta,0,8 +Deva,0,5 +Devan,6,0 +Devera,0,6 +Devere,18,0 +Devern,5,0 +Devoe,5,0 +Devon,19,0 +Devona,0,13 +Devota,0,5 +Dewain,12,0 +Dewaine,12,0 +Deward,64,0 +Dewayne,70,0 +Dewel,10,0 +Dewell,7,0 +Dewey,773,11 +Dewie,16,0 +Dewitt,151,0 +Dewitte,5,0 +Dexter,51,14 +Dezzie,0,7 +Diamantina,0,5 +Diamond,5,11 +Dian,0,6 +Diana,0,276 +Diane,0,123 +Diann,0,5 +Dianna,0,14 +Dianne,0,19 +Diantha,0,8 +Dicie,0,23 +Dick,442,0 +Dickie,12,0 +Dickson,5,0 +Dicy,0,6 +Diego,29,0 +Dilia,0,5 +Dillard,85,0 +Dillie,0,8 +Dillon,18,0 +Dimple,0,78 +Dina,0,44 +Dinah,0,30 +Dink,6,0 +Dino,40,0 +Diolinda,0,7 +Dionicia,0,6 +Dionicio,22,0 +Dionisia,0,8 +Dionisio,13,0 +Dirk,7,0 +Diva,0,6 +Dixie,13,388 +Dixon,24,0 +Doc,19,0 +Docia,0,21 +Docie,0,5 +Dock,100,0 +Doctor,13,0 +Dodson,6,0 +Doil,10,0 +Dois,7,0 +Dola,0,20 +Dolan,16,0 +Dollie,0,380 +Dolly,5,352 +Dolora,0,6 +Doloras,0,8 +Dolores,33,3729 +Dolorez,0,6 +Doloris,0,61 +Doloros,0,8 +Dolph,8,0 +Dolphus,24,0 +Dolton,11,0 +Domenic,144,0 +Domenica,0,63 +Domenick,97,0 +Domenico,22,0 +Domineck,6,0 +Dominga,0,58 +Domingo,148,0 +Domingos,9,0 +Dominic,487,0 +Dominica,0,18 +Dominick,579,0 +Dominico,5,0 +Domitila,0,13 +Domnick,10,0 +Domonic,5,0 +Domonick,8,0 +Don,1451,25 +Dona,0,179 +Donabelle,0,7 +Donaciana,0,5 +Donaciano,18,0 +Donal,78,0 +Donald,17929,85 +Donalda,0,13 +Donaldson,7,0 +Donat,16,0 +Donata,0,7 +Donato,46,0 +Donavan,11,0 +Donavon,17,0 +Donel,7,0 +Donelda,0,13 +Donell,12,0 +Donella,0,15 +Donetta,0,5 +Donia,0,9 +Donice,0,7 +Donie,0,22 +Donis,0,12 +Donita,0,14 +Donley,12,0 +Donn,51,0 +Donna,10,2125 +Donnabell,0,6 +Donnabelle,0,19 +Donnamae,0,5 +Donnell,22,0 +Donner,5,0 +Donnie,53,112 +Donnis,0,8 +Donold,10,0 +Donovan,65,0 +Donzel,5,0 +Donzell,5,0 +Donzella,0,7 +Dora,6,2000 +Dorace,0,5 +Doral,0,5 +Doralee,0,10 +Doran,21,0 +Dorathea,0,20 +Dorathy,0,74 +Dorcas,0,108 +Dorcie,0,5 +Doreatha,0,32 +Doreen,0,184 +Doreene,0,7 +Dorella,0,5 +Dorena,0,5 +Dorene,0,51 +Doretha,0,159 +Dorethea,0,17 +Dorethy,0,9 +Doretta,0,39 +Doria,0,13 +Dorian,11,6 +Dorice,0,6 +Dorie,0,7 +Dories,0,6 +Dorinda,0,6 +Dorine,0,50 +Doris,104,15786 +Dorise,0,6 +Dorislee,0,6 +Dorismae,0,11 +Dorita,0,5 +Dorla,0,6 +Dorlene,0,9 +Dorlis,0,8 +Dorma,0,23 +Dormalee,0,5 +Dorman,54,0 +Dorna,0,5 +Dorotea,0,9 +Doroteo,10,0 +Dorotha,0,192 +Dorothe,0,43 +Dorothea,0,937 +Dorothee,0,12 +Dorothey,0,36 +Dorothia,0,6 +Dorothie,0,36 +Dorothy,101,39996 +Dorothye,0,13 +Dorrace,0,15 +Dorraine,0,6 +Dorrance,12,0 +Dorrell,5,0 +Dorrine,0,6 +Dorris,50,304 +Dorse,8,0 +Dorsey,92,20 +Dorsie,7,16 +Dortha,0,276 +Dorthay,0,5 +Dorthea,0,64 +Dorthey,0,58 +Dorthia,0,10 +Dorthie,0,7 +Dorthy,0,608 +Dorus,6,0 +Dorwin,11,0 +Doryce,0,5 +Dosha,0,8 +Doshia,0,15 +Doshie,0,17 +Dosia,0,6 +Dosie,5,7 +Doss,8,0 +Dossie,13,10 +Dot,0,27 +Dotsie,0,6 +Dotsy,0,6 +Dottie,0,59 +Dotty,0,19 +Doug,6,0 +Douglas,1676,24 +Douglass,44,5 +Dove,0,9 +Dover,5,0 +Dovey,0,8 +Dovie,5,162 +Dow,19,0 +Dowell,8,0 +Doy,22,0 +Doyal,20,0 +Doyce,15,6 +Doyl,7,0 +Doyle,468,6 +Doyne,7,7 +Doyt,6,0 +Dozier,7,0 +Dreama,0,6 +Drew,21,0 +Drexel,17,0 +Drucella,0,6 +Drucilla,0,49 +Drue,7,0 +Drusilla,0,35 +Duaine,15,0 +Duane,815,20 +Duard,32,0 +Dudley,202,5 +Duel,7,0 +Duey,7,0 +Duff,9,0 +Duffy,5,0 +Duglas,7,0 +Duilio,9,0 +Duke,35,0 +Dula,0,6 +Dulcie,0,33 +Dulcy,0,6 +Dumas,5,0 +Duncan,77,0 +Dupree,5,0 +Dura,0,14 +Durand,7,0 +Durant,11,0 +Durell,11,0 +Durham,10,0 +Durrell,11,0 +Durward,77,0 +Durwood,63,0 +Dushan,5,0 +Dustin,9,0 +Duval,9,0 +Duward,12,0 +Duwayne,16,0 +Dwain,53,0 +Dwaine,33,0 +Dwan,5,0 +Dwane,25,0 +Dwayne,93,0 +Dwight,450,6 +Eara,0,5 +Earl,6530,56 +Earla,0,17 +Earland,5,0 +Earle,290,10 +Earlean,0,58 +Earlee,7,7 +Earleen,0,28 +Earlene,0,212 +Earley,12,0 +Earlie,47,28 +Earlin,6,0 +Earline,0,428 +Early,81,11 +Earlyne,0,15 +Earma,0,13 +Earmon,6,0 +Earnest,1144,14 +Earnesteen,0,12 +Earnestine,0,244 +Earnie,24,8 +Earnstine,0,6 +Earsel,7,6 +Earsie,0,7 +Eartha,0,46 +Earvin,16,0 +Easter,5,113 +Easton,7,0 +Eathel,5,20 +Eather,0,11 +Ebb,6,0 +Ebba,0,11 +Ebbie,7,6 +Eben,23,0 +Ebenezer,5,0 +Eber,15,0 +Echo,0,15 +Ed,270,6 +Eda,0,73 +Edd,92,0 +Eddie,1595,377 +Eddis,0,6 +Eddith,0,9 +Eddy,26,0 +Edell,0,10 +Edelmira,0,6 +Eden,9,0 +Edford,7,0 +Edgar,1878,12 +Edgel,7,0 +Edger,16,0 +Edison,82,0 +Edith,18,6890 +Edithe,0,16 +Edman,5,0 +Edmon,35,0 +Edmond,402,0 +Edmonia,0,23 +Edmund,1115,7 +Edmundo,19,0 +Edna,26,7408 +Ednamae,0,14 +Ednamay,0,5 +Edner,0,6 +Edouard,6,0 +Edra,0,34 +Edria,0,5 +Edrie,0,14 +Edris,0,23 +Edsel,138,0 +Edsell,7,0 +Edsil,5,0 +Edson,30,0 +Eduard,7,0 +Eduarda,0,5 +Eduardo,75,0 +Edward,21126,97 +Edwardine,0,6 +Edwardo,18,0 +Edwards,5,0 +Edwena,0,6 +Edwin,3788,30 +Edwina,0,206 +Edword,7,0 +Edwyna,0,7 +Edyth,0,60 +Edytha,0,5 +Edythe,0,442 +Effa,0,10 +Effie,8,765 +Efigenia,0,5 +Efrain,17,0 +Efren,8,0 +Egan,5,0 +Egbert,33,0 +Egidio,14,0 +Eiko,0,8 +Eila,0,12 +Eileen,0,3070 +Eileene,0,23 +Eilene,0,36 +Eilleen,0,15 +Einar,16,0 +Einer,6,0 +Eino,28,0 +Eithel,0,9 +Ej,6,0 +El,5,0 +Ela,0,5 +Eladio,5,0 +Elah,0,5 +Elain,0,5 +Elaine,7,3802 +Elam,15,0 +Elane,0,7 +Elanor,0,14 +Elanore,0,6 +Elario,5,0 +Elayne,0,102 +Elba,13,13 +Elbert,726,8 +Elberta,0,42 +Elbridge,19,0 +Elby,6,0 +Elcie,0,12 +Elco,7,0 +Elda,0,202 +Eldean,7,5 +Elden,141,0 +Eldena,0,5 +Eldene,0,5 +Elder,28,10 +Eldie,6,0 +Eldin,9,0 +Eldine,0,8 +Eldo,20,0 +Eldon,597,0 +Eldona,0,5 +Eldor,14,0 +Eldora,0,154 +Eldoris,0,12 +Eldred,102,14 +Eldredge,10,0 +Eldridge,120,0 +Elean,0,10 +Eleana,0,5 +Eleaner,0,8 +Eleanor,24,8193 +Eleanora,0,152 +Eleanore,0,719 +Elease,0,80 +Electa,0,19 +Electra,0,6 +Eleen,0,16 +Eleene,0,5 +Elen,0,7 +Elena,0,213 +Elene,0,15 +Elener,0,5 +Eleno,10,0 +Elenor,0,44 +Elenora,0,86 +Elenore,0,82 +Eleonor,0,11 +Eleonora,0,18 +Eleonore,0,32 +Elery,14,0 +Elese,0,14 +Eleuterio,13,0 +Elex,7,0 +Elfida,0,5 +Elfie,0,5 +Elford,5,0 +Elfreda,0,23 +Elfreida,0,8 +Elfrieda,0,36 +Elga,0,5 +Elgene,0,11 +Elgia,0,5 +Elgie,20,14 +Elgin,48,0 +Eli,247,0 +Elia,7,31 +Eliane,0,5 +Elias,180,0 +Elice,0,6 +Elick,7,0 +Elida,0,59 +Elidia,0,8 +Elie,34,0 +Eliga,7,0 +Eligah,39,0 +Elige,19,0 +Eligh,8,0 +Eligha,13,0 +Eligio,14,0 +Elihu,19,0 +Elihue,11,0 +Elija,5,0 +Elijah,261,0 +Elijio,9,0 +Elin,0,6 +Eline,0,7 +Eliner,0,5 +Elinor,0,595 +Elinora,0,12 +Elinore,0,92 +Elio,28,0 +Eliodoro,6,0 +Eliot,18,0 +Elis,5,0 +Elisa,0,121 +Elisabeth,0,200 +Elise,0,199 +Eliseo,32,0 +Elisha,72,0 +Elissa,0,6 +Elita,0,6 +Eliza,0,359 +Elizabeath,0,6 +Elizabeth,42,14950 +Elizah,7,0 +Elizardo,5,0 +Elizbeth,0,15 +Elizebath,0,11 +Elizebeth,0,87 +Elizzie,0,9 +Ell,6,0 +Ella,19,3061 +Elladean,0,5 +Ellamae,0,55 +Ellamay,0,8 +Ellan,0,6 +Ellanor,0,6 +Ellanora,0,5 +Ellar,0,7 +Ellard,13,0 +Elleanor,0,5 +Elleen,0,9 +Ellen,7,2949 +Ellena,0,14 +Ellene,0,32 +Ellenor,0,10 +Ellenore,0,5 +Eller,0,9 +Ellery,22,0 +Ellice,0,7 +Ellie,26,87 +Ellin,0,10 +Elline,0,6 +Elliot,118,0 +Elliott,194,0 +Ellis,627,13 +Ellison,23,0 +Elloise,0,11 +Ellon,0,11 +Ellouise,0,30 +Ellsworth,215,0 +Ellwood,77,0 +Elly,0,7 +Ellyn,0,16 +Elma,14,522 +Elman,15,0 +Elmar,13,0 +Elmarie,0,7 +Elmeda,0,8 +Elmer,3731,48 +Elmina,0,17 +Elmira,0,81 +Elmo,313,9 +Elmon,14,0 +Elmond,12,0 +Elmor,7,0 +Elmore,87,0 +Elmus,10,0 +Elmyra,0,18 +Elna,0,105 +Elnara,0,5 +Elner,0,7 +Elnita,0,6 +Elnor,0,36 +Elnora,0,639 +Elnore,0,16 +Elnoria,0,8 +Elo,5,0 +Eloda,0,5 +Elodia,0,35 +Elodie,0,10 +Elois,0,71 +Eloisa,0,101 +Eloise,6,1212 +Elon,18,0 +Elona,0,5 +Elonzo,7,0 +Elora,0,8 +Elouise,5,272 +Eloy,58,0 +Eloyse,0,5 +Elpidia,0,8 +Elpidio,11,0 +Elray,6,0 +Elridge,16,0 +Elrose,0,5 +Elroy,158,0 +Elsa,5,140 +Elsbeth,0,7 +Else,0,6 +Elsia,0,18 +Elsie,20,4499 +Elsiemae,0,5 +Elson,28,0 +Elster,5,0 +Elston,15,0 +Elsworth,18,0 +Elsye,0,7 +Elta,0,42 +Eltha,0,5 +Elton,381,7 +Eluterio,11,0 +Elva,22,631 +Elveda,0,8 +Elven,14,0 +Elvena,0,15 +Elver,10,0 +Elvera,0,166 +Elverda,0,6 +Elvern,5,0 +Elverna,0,17 +Elvert,9,0 +Elverta,0,5 +Elveta,0,5 +Elvi,0,6 +Elvia,5,28 +Elvida,0,7 +Elvie,23,68 +Elvin,323,11 +Elvina,0,54 +Elvira,5,579 +Elvire,0,6 +Elvis,64,9 +Elvy,0,6 +Elvyn,6,0 +Elwanda,0,45 +Elward,10,0 +Elwin,135,0 +Elwood,606,0 +Elworth,5,0 +Elwyn,104,0 +Ely,22,0 +Elynor,0,19 +Elynore,0,9 +Elyse,0,12 +Elza,59,21 +Elzada,0,11 +Elzena,0,9 +Elzia,9,0 +Elzie,83,18 +Elzina,0,5 +Elzo,5,0 +Elzora,0,22 +Elzy,14,0 +Ema,0,16 +Emagene,0,18 +Emalee,0,6 +Emaline,0,23 +Emanuel,345,0 +Emanuela,0,6 +Emedio,6,0 +Emelda,0,33 +Emelene,0,5 +Emelia,0,54 +Emelie,0,20 +Emeline,0,37 +Emelio,10,0 +Emely,0,5 +Emelyn,0,10 +Emerald,13,6 +Emeric,5,0 +Emerick,5,0 +Emerson,249,0 +Emery,268,0 +Emeterio,8,0 +Emett,6,0 +Emi,0,8 +Emidio,21,0 +Emiel,6,0 +Emiko,0,28 +Emil,790,6 +Emile,147,5 +Emilee,0,9 +Emilene,0,5 +Emilia,0,143 +Emiliano,6,0 +Emilie,0,161 +Emiline,0,6 +Emilio,166,0 +Emily,7,2044 +Emitt,18,0 +Emitte,5,0 +Emma,23,4897 +Emmagene,0,15 +Emmajane,0,6 +Emmajean,0,12 +Emmalee,0,10 +Emmalene,0,8 +Emmaline,0,28 +Emmalou,0,10 +Emmanuel,32,0 +Emmeline,0,16 +Emmer,0,65 +Emmerson,7,0 +Emmert,17,0 +Emmet,62,0 +Emmett,584,0 +Emmette,16,0 +Emmie,0,71 +Emmit,46,0 +Emmitt,104,0 +Emmogene,0,5 +Emmons,7,0 +Emmy,0,28 +Emmylou,0,5 +Emo,0,7 +Emogean,0,5 +Emogene,0,226 +Emory,263,0 +Emry,5,0 +Emsley,5,0 +Emuel,7,0 +Emy,0,7 +Emzie,5,0 +Ena,0,41 +Encarnacion,26,7 +Enda,0,6 +Enedina,0,31 +Enes,0,19 +English,6,0 +Enid,0,195 +Enio,6,0 +Enis,12,13 +Ennio,5,0 +Ennis,39,8 +Enoch,106,0 +Enola,0,58 +Enolia,0,7 +Enos,53,0 +Enrico,62,0 +Enrigue,5,0 +Enrique,148,0 +Enriqueta,0,48 +Enrrique,6,0 +Enzo,10,0 +Eola,0,19 +Ephraim,34,0 +Ephram,5,0 +Ephriam,13,0 +Epifania,0,22 +Epifanio,43,0 +Epimenio,6,0 +Eppie,0,8 +Equilla,0,11 +Era,0,114 +Erasmo,23,0 +Erastus,10,0 +Erbie,11,0 +Erbin,5,0 +Erby,12,0 +Ercel,0,8 +Ercell,7,18 +Ercelle,0,10 +Ercie,0,6 +Ercole,6,0 +Erdene,0,5 +Erdine,0,8 +Erenest,5,0 +Erhardt,6,0 +Erhart,5,0 +Eric,228,0 +Erica,0,5 +Erich,22,0 +Erick,29,0 +Erie,16,23 +Erik,23,0 +Erika,0,14 +Erin,6,19 +Eris,0,103 +Erla,0,35 +Erland,10,0 +Erle,17,0 +Erlean,0,7 +Erleen,0,13 +Erlene,0,52 +Erlinda,0,58 +Erline,0,66 +Erling,44,0 +Erma,9,1424 +Ermagene,0,7 +Ermal,14,14 +Ermalee,0,8 +Erman,22,0 +Ermel,8,0 +Ermelinda,0,13 +Ermer,0,5 +Ermil,5,0 +Ermin,5,0 +Ermina,0,8 +Ermine,5,20 +Erminia,0,39 +Erminio,9,0 +Ermon,11,0 +Erna,0,202 +Ernest,5683,39 +Ernesteen,0,8 +Ernestene,0,6 +Ernestina,0,64 +Ernestine,6,970 +Ernesto,129,0 +Ernie,87,12 +Ernst,36,0 +Errol,17,0 +Ersa,0,5 +Ersel,9,8 +Ersie,0,10 +Ersilia,0,5 +Erskin,11,0 +Erskine,40,0 +Ertha,0,7 +Ertis,0,5 +Erva,0,24 +Ervan,8,0 +Erven,13,0 +Ervie,0,5 +Ervil,6,0 +Ervin,729,0 +Ervine,7,0 +Erving,18,0 +Erwin,501,0 +Esau,11,0 +Esaw,9,0 +Escar,6,0 +Esco,10,0 +Esequiel,19,0 +Esker,10,0 +Esley,9,0 +Eslie,5,0 +Esma,0,14 +Esmeralda,0,8 +Esmond,14,0 +Esperanza,0,174 +Espiridion,5,0 +Essex,5,0 +Essie,23,936 +Esta,5,87 +Estalene,0,11 +Estanislado,5,0 +Estanislao,5,0 +Esteban,48,0 +Estee,7,0 +Esteen,0,7 +Estefana,0,16 +Estel,61,15 +Estela,0,40 +Estelene,0,8 +Estell,7,111 +Estella,0,583 +Estellar,0,5 +Estelle,6,1266 +Estellene,0,5 +Ester,20,216 +Estes,21,0 +Estevan,25,0 +Estha,0,5 +Esthel,0,7 +Esther,15,5258 +Esthermae,0,6 +Estil,34,0 +Estill,26,0 +Estine,0,6 +Estle,15,0 +Eston,32,0 +Estoria,0,8 +Estrella,0,7 +Estus,9,0 +Etha,0,43 +Ethal,0,5 +Ethan,14,0 +Ethel,41,6586 +Ethelbert,5,0 +Ethelda,0,22 +Ethelee,0,5 +Etheleen,0,17 +Ethelene,0,47 +Etheline,0,16 +Ethelle,0,5 +Ethelmae,0,17 +Ethelyn,0,127 +Ethelyne,0,11 +Ether,5,38 +Etheridge,7,0 +Ethleen,0,5 +Ethlyn,0,19 +Ethna,0,7 +Ethridge,9,0 +Ethyl,0,52 +Ethyle,0,11 +Etna,0,13 +Etoile,0,7 +Etsuko,0,6 +Etta,0,725 +Ettamae,0,6 +Ettie,0,31 +Ettore,17,0 +Eual,11,0 +Euclid,12,0 +Eudelia,0,12 +Eudell,0,10 +Eudella,0,5 +Eudora,0,60 +Euel,17,0 +Euell,21,0 +Eufaula,0,5 +Eufemia,0,15 +Eugen,6,0 +Eugena,0,6 +Eugene,8346,68 +Eugenia,0,551 +Eugenie,0,48 +Eugenio,40,0 +Eugine,16,0 +Eugune,8,0 +Eula,10,1269 +Eulah,0,49 +Eulala,0,9 +Eulalah,0,5 +Eulalia,0,77 +Eulalie,0,18 +Eulalio,14,0 +Eulamae,0,5 +Eular,0,7 +Eulas,13,0 +Eulene,0,14 +Euleta,0,6 +Eulice,12,0 +Eulie,5,0 +Euline,0,8 +Eulis,26,0 +Eulla,0,8 +Eulogia,0,11 +Eulogio,14,0 +Eulon,6,0 +Eulos,5,0 +Euna,0,68 +Eunice,36,2147 +Eunie,0,5 +Euphemia,0,20 +Euple,0,5 +Eura,6,35 +Eural,10,0 +Euretta,0,6 +Eusebia,0,18 +Eusebio,29,0 +Eusevio,5,0 +Eustace,18,0 +Eustacio,6,0 +Eustaquio,6,0 +Eustice,5,0 +Eustolia,0,14 +Eutha,0,9 +Eutimio,5,0 +Euva,0,8 +Eva,14,4068 +Evadean,0,6 +Evadene,0,5 +Evadna,0,9 +Evah,0,12 +Evajean,0,7 +Evalee,0,30 +Evaleen,0,8 +Evalena,0,21 +Evalene,0,10 +Evalina,0,7 +Evaline,0,36 +Evalyn,0,114 +Evalyne,0,8 +Evamae,0,12 +Evan,170,7 +Evander,6,0 +Evanell,0,5 +Evangelina,0,56 +Evangeline,0,258 +Evangelos,5,0 +Evangelyn,0,5 +Evans,61,0 +Evaristo,20,0 +Eve,0,113 +Evea,0,9 +Evelean,0,6 +Eveleen,0,6 +Evelena,0,39 +Evelene,0,13 +Evelin,0,10 +Evelina,0,38 +Eveline,0,62 +Evella,0,5 +Evellyn,0,6 +Evelyn,39,13358 +Evelyne,0,136 +Evelynn,0,23 +Evelynne,0,20 +Ever,0,30 +Everard,6,0 +Everardo,10,0 +Everest,7,0 +Everet,13,0 +Everett,1696,12 +Everette,177,0 +Everitt,11,0 +Everlean,0,11 +Everleaner,0,5 +Everlena,0,36 +Everlene,0,7 +Everlina,0,5 +Everline,0,6 +Everlyn,0,11 +Everrett,6,0 +Evert,89,0 +Evertt,41,0 +Evia,0,24 +Evie,0,87 +Evlyn,0,29 +Evo,15,0 +Evon,5,36 +Evona,0,8 +Evonne,0,12 +Evora,0,5 +Evva,0,7 +Evylen,0,5 +Ewald,32,0 +Ewart,5,0 +Ewel,5,0 +Ewell,46,0 +Ewin,11,0 +Ewing,31,0 +Exa,0,12 +Excell,6,0 +Exer,0,5 +Exie,0,65 +Exilda,0,5 +Eyleen,0,5 +Ezekiel,55,0 +Ezell,40,14 +Ezelle,5,0 +Ezequiel,13,0 +Ezio,7,0 +Ezma,0,9 +Ezra,143,5 +Faber,5,0 +Fabian,40,0 +Fabio,5,0 +Fabiola,0,14 +Fadra,0,5 +Fae,0,61 +Fain,5,0 +Fair,0,7 +Fairie,0,5 +Fairy,0,64 +Faith,0,232 +Falco,5,0 +Fanchon,0,6 +Fannie,11,1708 +Fanny,0,167 +Fannye,0,20 +Fara,0,6 +Faris,11,0 +Farmer,5,0 +Farnum,6,0 +Farrel,11,0 +Farrell,57,9 +Farris,51,15 +Fate,22,0 +Fatima,0,5 +Faun,0,6 +Faust,5,0 +Faustina,0,38 +Faustine,0,12 +Faustino,51,0 +Fausto,16,0 +Fawn,0,13 +Fay,113,563 +Faye,16,920 +Fayetta,0,19 +Fayette,16,10 +Fayma,0,6 +Fayrene,0,14 +Fed,8,0 +Fedelina,0,6 +Federico,42,0 +Felder,7,0 +Felecia,0,7 +Felice,17,40 +Felicia,0,104 +Feliciana,0,6 +Feliciano,24,0 +Felicita,0,14 +Felicitas,0,48 +Felipa,0,57 +Felipe,124,0 +Felisa,0,13 +Felisita,0,5 +Felisitas,0,5 +Felix,662,5 +Feliz,5,11 +Feliza,0,8 +Felma,0,5 +Feloniz,0,8 +Felton,91,0 +Fenton,34,0 +Fenwick,5,0 +Ferd,13,0 +Ferdie,10,0 +Ferdinand,185,0 +Ferdinando,9,0 +Ferman,26,0 +Fermin,20,0 +Fermina,0,12 +Fermon,10,0 +Fern,16,1059 +Fernand,73,0 +Fernanda,0,16 +Fernande,0,27 +Fernando,153,0 +Ferne,0,145 +Fernie,6,0 +Ferol,0,18 +Ferrel,10,0 +Ferrell,26,7 +Ferris,45,10 +Festus,11,0 +Fidel,72,0 +Fidela,0,16 +Fidelia,0,17 +Fidencio,12,0 +Fielden,6,0 +Fielding,14,0 +Fields,10,0 +Filbert,10,0 +Filemon,9,0 +Filiberto,14,0 +Filimon,5,0 +Filippa,0,5 +Fillmore,9,0 +Filmore,12,0 +Filomena,0,184 +Fina,0,6 +Finis,57,0 +Finley,37,0 +Finnis,5,0 +Fiore,17,0 +Firmin,8,0 +Fisher,6,0 +Fitzgerald,8,0 +Fitzhugh,16,0 +Flake,5,0 +Flavia,0,18 +Flavian,10,0 +Flavio,14,0 +Flavius,7,0 +Flay,5,0 +Fleda,0,10 +Fleet,6,0 +Fleeta,0,13 +Flem,9,0 +Fleming,18,0 +Flemon,8,0 +Fleta,0,37 +Fletcher,155,0 +Fleurette,0,12 +Flo,0,38 +Floella,0,5 +Flonnie,0,35 +Flora,0,1449 +Florabel,0,5 +Florabell,0,5 +Florabelle,0,15 +Florance,0,48 +Flordia,0,13 +Floree,0,14 +Floreen,0,6 +Floreine,0,12 +Florella,0,7 +Florena,0,9 +Florence,25,9472 +Florencia,0,20 +Florencio,48,0 +Florene,0,164 +Florent,5,0 +Florentina,0,19 +Florentine,0,18 +Florentino,33,0 +Flores,0,5 +Floretta,0,37 +Florette,0,18 +Floria,0,33 +Florian,98,0 +Florice,0,27 +Florida,0,72 +Florie,0,17 +Floriene,0,19 +Florina,0,11 +Florince,0,5 +Florinda,0,16 +Florine,0,320 +Floris,0,13 +Florita,0,8 +Flornce,0,5 +Florrie,0,27 +Flosie,0,5 +Flossie,0,467 +Floy,12,159 +Floyce,0,13 +Floyd,3165,28 +Floyde,9,0 +Floye,0,15 +Foister,5,0 +Fonda,0,15 +Fontella,0,10 +Fonzo,5,0 +Forbes,10,0 +Ford,76,0 +Fordie,0,5 +Forest,269,0 +Forestine,0,10 +Forrest,695,15 +Forrestine,0,6 +Forris,5,0 +Fortino,7,0 +Fortuna,0,10 +Fortunata,0,12 +Fortunato,21,0 +Fortune,5,0 +Foster,171,0 +Fountain,10,0 +Fowler,6,0 +Foy,62,14 +Foye,0,6 +Fran,0,17 +France,9,28 +Francelia,0,7 +Francella,0,8 +Francena,0,14 +Francene,0,6 +Frances,105,15183 +Francesca,0,15 +Francesco,19,0 +Francese,0,5 +Francess,0,10 +Francie,0,15 +Francies,7,15 +Francille,0,9 +Francina,0,7 +Francine,0,98 +Francis,6131,646 +Francisca,0,154 +Francisco,366,6 +Francois,13,0 +Francoise,0,6 +Francys,0,5 +Frank,16044,94 +Frankie,145,532 +Franklin,1284,5 +Franklyn,68,0 +Frans,6,0 +Fransisca,0,11 +Fransisco,18,0 +Franz,6,0 +Frazer,6,0 +Frazier,21,0 +Fread,12,0 +Freada,0,8 +Fred,6532,34 +Freda,0,914 +Fredda,0,16 +Freddie,592,206 +Freddy,41,0 +Frederic,174,0 +Frederica,0,14 +Frederich,13,0 +Frederick,3279,13 +Fredericka,0,22 +Frederico,11,0 +Fredia,0,30 +Fredick,6,0 +Fredie,32,5 +Fredna,0,7 +Fredonia,0,11 +Fredric,59,0 +Fredrica,0,7 +Fredrich,5,0 +Fredrick,585,0 +Fredricka,0,8 +Fredrik,5,0 +Freeda,0,99 +Freeland,12,0 +Freeman,195,0 +Freemon,5,0 +Freida,0,186 +Freman,5,0 +Fremon,6,0 +Fremont,14,0 +French,25,0 +Frieda,0,541 +Friend,6,0 +Fritz,71,0 +Fritzie,0,5 +Frona,0,19 +Fronia,0,13 +Fronie,0,16 +Fronnie,0,11 +Frutoso,12,0 +Fujie,0,7 +Fujiko,0,13 +Fujio,7,0 +Fuller,14,0 +Fulton,30,0 +Fumi,0,13 +Fumie,0,19 +Fumiko,0,40 +Fumio,14,0 +Furman,60,0 +Fusae,0,13 +Fusako,0,8 +Fusaye,0,13 +Gabe,12,0 +Gabina,0,5 +Gabino,13,0 +Gabriel,235,6 +Gabriela,0,11 +Gabriella,0,17 +Gabrielle,0,45 +Gae,0,8 +Gaetana,0,15 +Gaetano,60,0 +Gaeton,6,0 +Gage,5,0 +Gail,172,165 +Gailard,5,0 +Gaile,0,5 +Gaines,26,0 +Gaither,14,0 +Gale,243,27 +Galen,99,0 +Galvin,6,0 +Gamaliel,5,0 +Gara,0,6 +Gardenia,0,7 +Gardiner,5,0 +Gardner,55,0 +Gareth,9,0 +Garfield,94,0 +Garl,8,0 +Garlan,14,0 +Garland,413,13 +Garlen,8,0 +Garlin,13,0 +Garlon,9,0 +Garnell,0,11 +Garner,23,0 +Garnet,54,166 +Garnett,66,61 +Garnetta,0,24 +Garnette,0,20 +Garnie,0,5 +Garold,40,0 +Garret,5,0 +Garrett,75,0 +Garrison,7,0 +Garry,24,0 +Garth,78,0 +Gartrell,5,0 +Garvey,11,0 +Garvie,8,0 +Garvin,32,0 +Garvis,11,0 +Gary,84,6 +Gaspar,21,0 +Gaspare,6,0 +Gasper,43,0 +Gaston,69,0 +Gatha,0,16 +Gather,5,0 +Gavin,11,0 +Gavina,0,7 +Gavino,10,0 +Gay,29,59 +Gaye,0,11 +Gaylan,5,0 +Gayland,8,0 +Gayle,78,107 +Gaylen,13,0 +Gaylon,30,0 +Gaylord,119,0 +Gaynel,0,6 +Gaynell,0,64 +Gaynelle,0,31 +Gaza,5,0 +Gazella,0,8 +Gean,12,20 +Gearl,10,0 +Gearld,40,0 +Gearldean,0,8 +Gearldine,0,94 +Gearline,0,7 +Geary,5,0 +Gee,5,0 +Gelene,0,5 +Gemma,0,32 +Gen,0,6 +Gena,0,29 +Genaro,44,0 +Gene,1275,257 +Geneal,0,7 +Geneieve,0,14 +Geneive,0,11 +Genell,0,19 +Genella,0,6 +Genelle,0,16 +Genera,0,6 +General,57,0 +Generoso,5,0 +Geneta,0,5 +Genetta,0,14 +Geneva,8,2582 +Geneve,0,16 +Genevea,0,6 +Geneveive,0,13 +Genever,0,20 +Geneveve,0,6 +Genevia,0,38 +Genevie,0,39 +Geneviene,0,5 +Genevieve,10,2725 +Genevive,0,29 +Genevra,0,10 +Genie,7,12 +Genieve,0,17 +Genita,0,7 +Geniva,0,7 +Gennaro,32,0 +Gennie,13,41 +Geno,39,0 +Genoa,0,8 +Genola,0,14 +Genora,0,5 +Genova,0,5 +Genoveva,0,40 +Genrose,0,7 +Gentle,8,0 +Gentry,14,0 +Geo,12,0 +Geoffrey,20,0 +Georg,6,0 +Georgann,0,8 +Georganna,0,17 +Georganne,0,9 +George,27374,197 +Georgean,0,7 +Georgeann,0,7 +Georgeanna,0,23 +Georgeanne,0,6 +Georgena,0,15 +Georgene,0,64 +Georges,10,0 +Georgetta,0,62 +Georgette,0,231 +Georgia,19,2396 +Georgian,0,11 +Georgiana,0,161 +Georgiann,0,9 +Georgianna,0,121 +Georgianne,0,13 +Georgie,32,292 +Georgina,0,101 +Georgine,0,60 +Georginia,0,6 +Georgio,0,5 +Geral,5,7 +Gerald,4151,21 +Geraldean,0,26 +Geraldene,0,18 +Geraldine,15,4833 +Geraldyne,0,27 +Geraline,0,11 +Gerard,541,0 +Gerarda,0,5 +Gerardo,18,0 +Gerd,0,5 +Gerda,0,22 +Gereldine,0,5 +Gerene,0,6 +Gerhard,39,0 +Gerhardt,34,0 +Gerhart,9,0 +Gerldine,0,12 +Gerline,0,9 +Germain,10,0 +Germaine,0,164 +German,10,0 +Geroge,7,0 +Gerold,20,0 +Gerome,6,0 +Geronimo,23,0 +Gerrit,35,0 +Gerry,20,80 +Gerson,15,0 +Gertha,0,39 +Gertie,0,146 +Gertrude,17,4543 +Gertrue,0,10 +Gertude,0,8 +Gerturde,0,7 +Gervase,7,5 +Gervis,8,0 +Getrudes,0,5 +Gevena,0,5 +Geza,5,0 +Giacomo,11,0 +Gibbs,6,0 +Gibson,10,0 +Gideon,24,0 +Gifford,32,0 +Gil,11,0 +Gilbert,1797,10 +Gilberta,0,10 +Gilberte,0,11 +Gilberto,91,0 +Gilda,0,202 +Gildo,9,0 +Giles,63,0 +Gilford,23,0 +Gill,9,0 +Gillermo,8,0 +Gilliam,5,0 +Gillie,8,0 +Gillis,12,0 +Gilma,0,7 +Gilman,17,0 +Gilmer,34,0 +Gilmore,24,0 +Gilson,5,0 +Gina,0,29 +Ginger,0,41 +Ginny,0,10 +Gino,79,0 +Giovanna,0,20 +Giovanni,14,0 +Girard,23,0 +Girlean,0,7 +Girlie,0,9 +Giro,6,0 +Girolamo,5,0 +Girtha,0,21 +Girtie,0,10 +Girtrude,0,8 +Gisele,0,7 +Gisella,0,5 +Giuseppe,11,0 +Gizella,0,20 +Glada,0,14 +Glade,7,0 +Gladene,0,6 +Gladie,0,12 +Gladies,0,17 +Gladine,0,5 +Gladiola,0,12 +Gladis,0,47 +Gladston,6,0 +Gladstone,9,0 +Glady,0,14 +Gladyce,0,30 +Gladyes,0,8 +Gladyne,0,6 +Gladys,20,7790 +Gladyse,0,6 +Glayds,0,14 +Gleason,16,0 +Glee,0,17 +Gleen,17,0 +Glema,0,11 +Glen,1518,16 +Glena,0,25 +Glenard,6,0 +Glenda,0,150 +Glendale,9,0 +Glendell,10,0 +Glendola,0,16 +Glendon,93,0 +Glendora,0,55 +Glendoris,0,10 +Glenford,10,0 +Glenice,0,25 +Glenis,0,6 +Glenmore,6,0 +Glenn,2586,31 +Glenna,0,399 +Glennie,9,34 +Glennis,7,42 +Glennon,21,0 +Glennys,0,8 +Glenola,0,11 +Glenora,0,20 +Glenroy,7,0 +Glenville,5,0 +Glenwood,39,0 +Glenys,0,11 +Glessie,0,8 +Glora,0,5 +Gloria,10,6534 +Gloriette,0,5 +Glorine,0,6 +Gloris,0,6 +Glory,0,16 +Glorya,0,6 +Glover,23,0 +Glyn,30,0 +Glyndon,6,0 +Glynn,49,5 +Goble,6,0 +Godfrey,41,0 +Goebel,9,0 +Gola,0,7 +Golda,0,83 +Golden,54,44 +Goldena,0,7 +Goldia,0,54 +Goldie,9,845 +Goldy,0,8 +Gomer,14,0 +Gonzalo,44,0 +Goodwin,9,0 +Gordan,21,0 +Gorden,49,0 +Gordie,5,0 +Gordon,2714,20 +Gorge,19,0 +Gorman,32,0 +Goro,9,0 +Gottfried,8,0 +Gottlieb,7,0 +Gould,5,0 +Governor,11,0 +Grace,15,6327 +Gracelyn,0,5 +Gracey,0,5 +Gracia,0,19 +Gracie,0,535 +Graciela,0,10 +Gracy,0,10 +Graden,6,0 +Gradie,18,5 +Grady,582,13 +Grafton,15,0 +Graham,90,0 +Grandville,6,0 +Grant,368,0 +Granvel,10,0 +Granvil,10,0 +Granville,142,0 +Gratia,0,6 +Gray,22,0 +Grayce,0,98 +Graydon,34,0 +Grayson,28,0 +Green,37,0 +Greer,6,0 +Greg,6,0 +Gregg,13,0 +Gregor,10,0 +Gregoria,0,55 +Gregorio,103,0 +Gregory,226,0 +Greta,0,76 +Gretchen,0,123 +Grethel,0,8 +Gretna,0,9 +Gretta,0,23 +Grey,7,0 +Griffin,23,0 +Griffith,17,0 +Griselda,0,6 +Grover,566,9 +Guadalupe,202,388 +Gudelia,0,6 +Gudrun,0,10 +Guelda,0,6 +Guerino,6,0 +Guida,0,6 +Guido,118,0 +Guila,0,5 +Guilda,0,7 +Guilford,20,0 +Guilio,6,0 +Guillermina,0,11 +Guillermo,87,0 +Guinevere,0,22 +Guinn,8,0 +Guiseppe,6,0 +Gunnar,12,0 +Gunther,5,0 +Gurley,7,0 +Gurney,23,0 +Gurtha,0,6 +Gurtie,0,5 +Gurvis,6,0 +Gus,298,5 +Guss,27,0 +Gussie,33,262 +Gust,41,0 +Gusta,0,14 +Gustaf,7,0 +Gustav,62,0 +Gustava,0,12 +Gustave,95,0 +Gustavia,0,6 +Gustavo,39,0 +Gustie,0,5 +Gustine,0,7 +Guthrie,15,0 +Guy,1055,15 +Guyla,0,8 +Guynelle,0,5 +Gwen,5,117 +Gwendola,0,10 +Gwendoline,0,13 +Gwendolyn,5,884 +Gwendolyne,0,12 +Gweneth,0,10 +Gwenith,0,11 +Gwenyth,0,6 +Gwyn,11,0 +Gwyndolyn,0,5 +Gwyneth,0,12 +Gwynn,5,5 +Gwynne,0,5 +Gyneth,0,6 +Hadassah,0,6 +Haddon,6,0 +Haden,9,0 +Hadley,11,0 +Hager,9,0 +Hagop,10,0 +Haig,10,0 +Hajime,9,0 +Hal,182,6 +Hala,0,5 +Halbert,23,0 +Halcyon,0,8 +Halden,6,0 +Haldor,6,0 +Hale,19,0 +Haley,9,12 +Halford,9,0 +Halina,0,8 +Hall,30,0 +Halley,8,0 +Hallie,26,216 +Halsey,18,0 +Halton,6,0 +Halvor,8,0 +Hamer,6,0 +Hamilton,78,0 +Hammond,11,0 +Hamp,17,0 +Hampton,44,0 +Hanae,0,6 +Hanako,0,19 +Handy,14,0 +Hanford,10,0 +Hank,20,0 +Hanley,12,0 +Hanna,0,34 +Hannah,0,381 +Hannibal,11,0 +Hans,61,0 +Hansel,47,0 +Hansford,18,0 +Hanson,8,0 +Happy,7,5 +Harace,6,0 +Harald,16,0 +Harbert,6,0 +Harce,5,0 +Harcourt,6,0 +Harden,20,0 +Hardie,18,0 +Hardin,16,0 +Harding,33,0 +Hardy,67,0 +Harl,16,0 +Harlan,519,0 +Harland,152,0 +Harld,5,0 +Harlee,6,0 +Harlen,50,0 +Harlene,0,7 +Harless,12,0 +Harley,522,9 +Harlie,17,0 +Harlin,45,0 +Harlis,6,0 +Harlon,28,0 +Harlow,32,0 +Harlyn,11,0 +Harm,13,0 +Harman,12,0 +Harmon,136,0 +Harmond,5,0 +Harney,5,0 +Harold,14149,81 +Haroldine,0,10 +Haron,7,0 +Harper,29,0 +Harrel,17,0 +Harrell,53,0 +Harrie,8,0 +Harriet,0,2189 +Harriett,0,492 +Harrietta,0,6 +Harriette,0,224 +Harrington,6,0 +Harriot,0,5 +Harris,224,0 +Harrison,333,0 +Harrol,6,0 +Harrold,35,0 +Harry,9114,43 +Harryette,0,7 +Hart,11,0 +Hartense,0,8 +Hartford,20,0 +Hartley,27,0 +Hartwell,12,0 +Harue,0,10 +Haruko,0,37 +Harumi,6,7 +Haruo,28,0 +Haruyo,0,9 +Harvard,16,0 +Harve,11,0 +Harvel,10,0 +Harvey,2242,23 +Harvie,51,0 +Harvin,5,0 +Harvy,31,0 +Harwood,10,0 +Hary,5,0 +Hasel,0,16 +Haskel,40,0 +Haskell,94,5 +Hassel,20,0 +Hassell,10,0 +Hassie,0,49 +Haston,5,0 +Hatsue,0,14 +Hatsuko,0,10 +Hatsumi,0,8 +Hatsuye,0,5 +Hattie,10,1759 +Hatty,0,5 +Hattye,0,5 +Havard,6,0 +Haven,12,0 +Haward,7,0 +Hawley,12,0 +Hayden,60,0 +Haydn,5,0 +Hayes,37,0 +Haynes,10,0 +Hays,7,0 +Hayse,5,0 +Hayward,81,0 +Haywood,93,0 +Haze,6,0 +Hazel,71,6342 +Hazelene,0,7 +Hazeline,0,10 +Hazell,0,6 +Hazelle,0,14 +Hazen,21,0 +Hazle,0,96 +Hearl,6,0 +Heath,7,0 +Heber,48,0 +Hebert,25,0 +Hector,139,0 +Hedwig,0,81 +Hedy,0,21 +Heinz,9,0 +Helaine,0,12 +Helane,0,6 +Helen,79,31194 +Helena,0,386 +Helene,0,544 +Helga,0,21 +Helge,5,0 +Hellan,0,6 +Hellen,0,195 +Hellon,0,17 +Helma,0,14 +Helmer,18,0 +Helmi,0,6 +Helmut,7,0 +Helmuth,14,0 +Heloise,0,15 +Helon,0,36 +Helvi,0,10 +Helyn,0,41 +Helyne,0,5 +Heman,6,0 +Hence,6,0 +Henderson,66,0 +Hendrick,5,0 +Hendrik,6,0 +Henery,43,0 +Henley,9,0 +Hennie,0,8 +Henning,7,0 +Henny,5,0 +Henretta,0,29 +Henretter,0,9 +Henri,32,10 +Henrietta,0,1136 +Henriette,0,35 +Henritta,0,13 +Henry,11196,96 +Henryetta,0,11 +Hensel,5,0 +Henson,5,0 +Herald,27,0 +Herb,13,0 +Herbert,5121,28 +Herberta,0,6 +Herbie,8,0 +Herby,5,0 +Herchel,8,0 +Hercules,9,0 +Heriberto,17,0 +Herley,5,0 +Herlinda,0,45 +Herma,0,22 +Herman,2954,15 +Hermann,12,0 +Hermelinda,0,11 +Hermena,0,8 +Hermenia,0,5 +Hermes,6,0 +Hermie,0,11 +Hermina,0,47 +Hermine,0,40 +Herminia,0,82 +Herminio,6,0 +Hermon,90,0 +Hernan,5,0 +Herndon,8,0 +Herod,7,0 +Herold,17,0 +Herschel,246,0 +Herschell,33,0 +Hersey,14,0 +Hershal,12,0 +Hershel,226,0 +Hershell,40,0 +Hersie,5,0 +Hertha,0,34 +Herve,14,0 +Hervey,22,0 +Hessie,0,26 +Hester,13,317 +Hettie,0,109 +Hetty,0,16 +Hewitt,22,0 +Heyward,32,0 +Heywood,12,0 +Hezekiah,44,0 +Hiawatha,9,0 +Hicks,5,0 +Hideko,0,25 +Hideo,47,0 +Higinio,8,0 +Hila,0,6 +Hilaria,0,26 +Hilario,45,0 +Hilary,53,5 +Hilbert,59,0 +Hilburn,7,0 +Hilda,9,1941 +Hildagard,0,6 +Hildagarde,0,9 +Hildegard,0,38 +Hildegarde,0,46 +Hilder,0,5 +Hildred,13,73 +Hildreth,10,27 +Hildur,0,9 +Hill,15,0 +Hillard,65,0 +Hillary,12,0 +Hillel,5,0 +Hillery,7,0 +Hilliard,37,0 +Hillis,11,0 +Hillman,12,0 +Hilma,0,75 +Hilman,7,0 +Hilmer,26,0 +Hilton,135,0 +Hinton,19,0 +Hipolita,0,6 +Hipolito,23,0 +Hiram,186,0 +Hiroko,0,9 +Hiroshi,81,0 +Hiroyuki,5,0 +Hisae,0,6 +Hisako,0,21 +Hisao,8,0 +Hisashi,11,0 +Hisaye,0,5 +Hisayo,0,5 +Hitoshi,9,0 +Hjalmer,6,0 +Hjordis,0,5 +Hoarce,6,0 +Hobart,132,0 +Hobert,171,0 +Hobson,10,0 +Hogan,6,0 +Holden,5,0 +Holger,7,0 +Holland,32,0 +Holley,10,0 +Hollie,28,16 +Hollis,292,18 +Holly,28,18 +Holman,7,0 +Holmes,13,0 +Holton,10,0 +Homer,1647,21 +Homero,10,0 +Honey,0,10 +Honor,0,12 +Honora,0,15 +Honore,0,8 +Honorine,0,7 +Hoover,8,0 +Hope,11,407 +Hopson,5,0 +Horace,1166,0 +Horacio,17,0 +Horald,6,0 +Horatio,18,0 +Horice,8,0 +Horrace,7,0 +Hortence,0,10 +Hortencia,0,61 +Hortense,0,212 +Hortensia,0,42 +Horton,22,0 +Hosea,65,0 +Hosey,12,0 +Hosie,26,0 +Hoskie,5,0 +Houston,172,0 +Howard,7373,46 +Howell,78,0 +Hoy,30,0 +Hoye,11,0 +Hoyett,7,0 +Hoyle,23,0 +Hoyt,171,5 +Hoyte,9,0 +Hubbard,20,0 +Huber,10,0 +Hubert,1551,0 +Huberta,0,8 +Hudson,38,0 +Huel,18,0 +Huey,77,0 +Hugh,1541,7 +Hughes,13,0 +Hughey,16,0 +Hughie,30,0 +Hugo,159,0 +Huie,12,0 +Hulan,5,0 +Hulbert,6,0 +Hulda,0,70 +Huldah,0,18 +Hulen,18,0 +Hulin,7,0 +Hulon,25,0 +Humbert,17,0 +Humberto,17,0 +Humphrey,22,0 +Hunter,67,0 +Hurbert,23,0 +Hurchel,5,0 +Hurl,9,0 +Hurley,35,0 +Hurlie,7,0 +Hurman,6,0 +Huron,8,0 +Hurschel,5,0 +Hursel,7,0 +Hurshel,27,0 +Huston,46,0 +Hyacinth,0,9 +Hylan,5,0 +Hyman,165,0 +Hymen,11,0 +Hyrum,12,0 +Ian,28,0 +Iantha,0,14 +Ica,0,10 +Icel,0,7 +Icey,0,5 +Ichiro,15,0 +Icie,0,29 +Icy,0,21 +Ida,18,3861 +Idabell,0,14 +Idabelle,0,26 +Idalee,0,8 +Idalia,0,5 +Idamae,0,43 +Idele,0,5 +Idell,0,85 +Idella,0,144 +Idelle,0,9 +Idola,0,5 +Idoma,0,5 +Idonna,0,6 +Ignace,7,0 +Ignacia,0,31 +Ignacio,127,0 +Ignatius,90,0 +Ignatz,7,0 +Ignazio,17,0 +Ike,77,0 +Ila,6,577 +Ilah,0,33 +Ilamae,0,9 +Ilda,0,26 +Ildefonso,6,0 +Ilean,0,28 +Ileana,0,6 +Ileen,0,51 +Ileene,0,11 +Ilena,0,8 +Ilene,0,275 +Iler,0,6 +Ileta,0,12 +Iley,7,0 +Ilia,0,6 +Iline,0,7 +Illa,0,46 +Illene,0,6 +Ilma,0,7 +Ilo,0,20 +Ilona,0,7 +Ilse,0,10 +Ilva,0,7 +Ima,0,179 +Imagene,0,22 +Imajean,0,6 +Imelda,0,55 +Immaculata,0,6 +Imo,0,17 +Imogean,0,20 +Imogene,0,1247 +Imogine,0,7 +Imojean,0,13 +Ina,0,700 +Inas,0,7 +Inda,0,5 +Indalecio,5,0 +India,0,24 +Indiana,0,9 +Inell,0,74 +Inella,0,8 +Inelle,0,5 +Ines,8,72 +Iness,0,7 +Ineta,0,9 +Inetha,0,9 +Inetta,0,8 +Inez,29,1825 +Ineze,0,10 +Inga,0,16 +Inge,0,7 +Ingeborg,0,12 +Inger,0,9 +Ingram,12,0 +Ingrid,0,26 +Inice,0,8 +Inis,0,23 +Inman,11,0 +Inocencia,0,13 +Inocencio,9,0 +Inola,0,7 +Inus,0,6 +Inza,0,8 +Iola,0,272 +Iolene,0,5 +Ioma,0,7 +Iona,0,332 +Ione,0,263 +Ionia,0,10 +Ira,834,100 +Irby,29,0 +Irean,0,20 +Iree,0,7 +Ireen,0,6 +Ireene,0,6 +Irena,0,16 +Irene,29,9928 +Ireta,0,13 +Iretha,0,9 +Iretta,0,14 +Irie,5,0 +Irine,0,40 +Iris,10,887 +Irish,0,7 +Irja,0,5 +Irl,12,0 +Irma,5,1268 +Irmgard,0,12 +Irona,0,5 +Irvan,10,0 +Irven,18,0 +Irvin,763,6 +Irvine,21,0 +Irving,1260,5 +Irwin,487,0 +Isa,0,17 +Isaac,704,0 +Isabel,36,911 +Isabell,0,282 +Isabella,0,231 +Isabelle,0,759 +Isac,12,0 +Isadora,0,22 +Isadore,154,0 +Isah,8,0 +Isaiah,138,0 +Isaias,11,0 +Isam,9,0 +Isami,7,0 +Isamu,36,0 +Isao,13,0 +Isaura,0,9 +Isham,15,0 +Ishmael,25,0 +Ishmel,5,0 +Isiah,138,0 +Isidora,0,8 +Isidore,96,0 +Isidoro,8,0 +Isidra,0,17 +Isidro,37,0 +Isla,0,22 +Ismael,28,0 +Ismay,0,5 +Isobel,0,36 +Isola,0,8 +Isom,24,0 +Israel,105,0 +Isreal,16,0 +Issac,59,0 +Ita,0,6 +Italia,0,9 +Italo,9,0 +Itha,0,6 +Itsuo,10,0 +Iva,13,763 +Ivadell,0,11 +Ivah,0,13 +Ival,7,7 +Ivalee,0,12 +Ivalene,0,7 +Ivalou,0,5 +Ivan,785,9 +Ivanell,0,8 +Ivanelle,0,8 +Ivar,10,0 +Ivel,0,5 +Iven,16,0 +Iver,25,8 +Iverna,0,5 +Iverson,13,0 +Ivery,16,0 +Ivey,22,21 +Ivie,0,11 +Ivin,6,0 +Ivis,0,5 +Ivo,10,0 +Ivon,12,0 +Ivor,19,0 +Ivory,94,56 +Ivy,54,125 +Iwao,10,0 +Iza,0,5 +Izear,7,0 +Izella,0,7 +Izetta,0,64 +Izola,0,36 +Izona,0,9 +Izora,0,28 +Jabe,5,0 +Jacinta,0,12 +Jacinto,18,0 +Jack,11921,75 +Jackie,203,282 +Jacklin,0,5 +Jacklyn,0,18 +Jackson,229,0 +Jaclyn,0,5 +Jacob,970,5 +Jacoba,0,8 +Jacobo,7,0 +Jacqualine,0,8 +Jacque,26,15 +Jacquelene,0,8 +Jacquelin,0,52 +Jacquelina,0,5 +Jacqueline,0,1771 +Jacquelyn,0,281 +Jacquelyne,0,15 +Jacquelynn,0,8 +Jacques,52,0 +Jacquetta,0,11 +Jacquie,0,11 +Jacquline,0,23 +Jacqulyn,0,13 +Jae,7,0 +Jahn,5,0 +Jaime,17,0 +Jake,306,0 +Jakie,12,0 +Jame,25,0 +James,52941,274 +Jamesetta,0,8 +Jamie,35,54 +Jammie,0,7 +Jan,14,32 +Jana,0,7 +Janaan,0,7 +Jane,17,5104 +Janell,0,16 +Janelle,0,26 +Janes,5,0 +Janet,5,2294 +Janeth,0,37 +Janett,0,21 +Janetta,0,22 +Janette,0,158 +Janey,0,16 +Janice,0,1175 +Janie,7,751 +Janiece,0,7 +Janina,0,14 +Janine,0,5 +Janis,0,133 +Janita,0,10 +Janith,0,5 +Janna,0,5 +Jannett,0,7 +Jannette,0,25 +Jannie,0,281 +Janyce,0,5 +Jaqueline,0,9 +Jared,19,0 +Jarl,6,0 +Jarold,8,0 +Jarrell,17,0 +Jarrett,14,0 +Jarvis,48,0 +Jason,105,0 +Jasper,396,0 +Jaunice,0,5 +Jaunita,0,285 +Javan,5,0 +Javier,11,0 +Jay,854,16 +Jayne,0,188 +Jb,12,0 +Jc,31,0 +Jd,11,0 +Jean,335,10721 +Jeanann,0,6 +Jeane,0,153 +Jeanelle,0,11 +Jeanett,0,9 +Jeanetta,0,51 +Jeanette,0,2066 +Jeanice,0,5 +Jeanie,0,57 +Jeanine,0,7 +Jeanmarie,0,6 +Jeanne,5,3150 +Jeannedarc,0,6 +Jeannett,0,8 +Jeannetta,0,17 +Jeannette,0,1032 +Jeannie,0,81 +Jeannine,0,17 +Jearl,11,0 +Jearldine,0,6 +Jearlean,0,7 +Jed,9,0 +Jeff,186,0 +Jefferson,177,0 +Jeffery,25,0 +Jeffie,13,21 +Jeffrey,31,0 +Jehu,10,0 +Jemima,0,10 +Jemmie,10,6 +Jena,0,5 +Jenaro,6,0 +Jene,12,17 +Jenell,0,7 +Jenelle,0,13 +Jenetta,0,8 +Jenette,0,16 +Jenettie,0,5 +Jeneva,0,12 +Jenie,0,6 +Jenkins,5,0 +Jenna,0,9 +Jennett,0,8 +Jennetta,0,10 +Jennette,0,13 +Jenney,0,6 +Jennie,14,2495 +Jennifer,0,11 +Jennings,88,0 +Jenny,0,212 +Jens,14,0 +Jeptha,15,0 +Jeral,6,0 +Jerald,84,0 +Jeraldean,0,6 +Jeraldine,0,66 +Jeraline,0,6 +Jere,23,0 +Jerelene,0,7 +Jereline,0,5 +Jerelyn,0,5 +Jeremiah,125,0 +Jeri,0,13 +Jerimiah,5,0 +Jerl,5,0 +Jerldine,0,9 +Jerlean,0,8 +Jerlene,0,10 +Jerline,0,18 +Jermaine,0,6 +Jermiah,6,0 +Jerold,31,0 +Jeroline,0,6 +Jerome,1575,19 +Jerone,5,0 +Jeronimo,6,0 +Jerrald,5,0 +Jerre,8,6 +Jerrel,14,0 +Jerrell,14,0 +Jerri,0,7 +Jerrie,0,26 +Jerrine,0,10 +Jerrold,31,0 +Jerry,1466,217 +Jerusha,0,6 +Jervis,12,0 +Jeryl,5,0 +Jess,261,0 +Jessamine,0,7 +Jesse,2292,55 +Jessee,11,0 +Jessica,0,41 +Jessie,1460,3147 +Jesslyn,0,5 +Jessy,6,0 +Jessye,0,10 +Jestina,0,8 +Jestine,0,11 +Jeston,6,0 +Jesus,662,23 +Jesusa,0,55 +Jesusita,0,25 +Jeter,7,0 +Jethro,33,0 +Jetta,0,27 +Jettie,8,77 +Jetty,0,5 +Jeune,0,7 +Jewel,128,823 +Jeweldean,0,6 +Jewelene,0,10 +Jeweline,0,8 +Jewell,114,830 +Jewelle,0,8 +Jewett,13,0 +Jhon,31,0 +Jiggs,5,0 +Jilda,0,7 +Jiles,12,0 +Jill,0,17 +Jim,992,16 +Jimella,0,6 +Jimie,6,0 +Jimmey,6,0 +Jimmie,1315,465 +Jimmy,529,23 +Jimmye,0,7 +Jinnie,0,16 +Jiro,14,0 +Jissie,0,5 +Jitsuo,8,0 +Jo,13,534 +Joachim,8,0 +Joan,15,3023 +Joana,0,8 +Joane,0,6 +Joann,0,386 +Joanna,0,208 +Joanne,0,475 +Joaquim,8,0 +Joaquin,53,0 +Joaquina,0,7 +Job,8,0 +Jobe,14,0 +Jocelyn,0,44 +Jocie,0,14 +Jock,5,0 +Jodie,36,17 +Jody,11,5 +Joe,6044,151 +Joeann,0,7 +Joeanna,0,9 +Joel,377,13 +Joella,0,26 +Joellen,0,27 +Joeph,6,0 +Joeseph,23,0 +Joesph,126,0 +Joesphine,0,17 +Joetta,0,17 +Joey,14,9 +Johan,5,0 +Johann,0,6 +Johanna,0,300 +Johannah,0,7 +Johanne,0,6 +Johannes,11,0 +Johm,5,0 +John,59052,382 +Johnathan,7,0 +Johnella,0,5 +Johnetta,0,21 +Johnette,0,9 +Johney,29,0 +Johnie,579,186 +Johnita,0,5 +Johnney,10,0 +Johnnie,1741,1072 +Johnny,1046,45 +Johnnye,0,23 +Johnsie,0,34 +Johnson,64,0 +Johnston,8,0 +Johny,49,0 +Johnye,0,9 +Joice,0,9 +Joie,0,10 +Jolene,0,15 +Joline,0,13 +Jolly,10,0 +Jon,55,6 +Jonah,33,0 +Jonas,70,0 +Jonathan,97,0 +Jonathon,6,0 +Jonell,0,13 +Jones,54,0 +Joney,6,0 +Jonita,0,6 +Jonnie,57,70 +Jonny,8,0 +Jordan,96,0 +Jorden,5,0 +Jordon,9,0 +Jorge,32,0 +Joscelyn,0,5 +Jose,1393,23 +Josef,21,0 +Josefa,0,79 +Josefina,0,153 +Joseph,25421,135 +Josepha,0,6 +Josephene,0,15 +Josephina,0,10 +Josephine,17,7274 +Josephus,24,0 +Josephyne,0,5 +Josette,0,8 +Josh,47,0 +Joshua,114,0 +Josiah,25,0 +Josie,8,426 +Josiephine,0,24 +Jospeh,7,0 +Josph,6,0 +Josphine,0,7 +Jossie,0,22 +Josue,6,0 +Jovita,0,54 +Joy,44,578 +Joyce,51,3533 +Joycelyn,0,25 +Joye,8,44 +Jozef,8,0 +Jr,16,0 +Jt,7,0 +Jual,5,0 +Juan,739,17 +Juana,0,201 +Juanda,0,9 +Juanell,0,5 +Juanice,0,13 +Juanita,24,5404 +Jud,7,0 +Judah,12,0 +Judd,15,0 +Judge,62,0 +Judie,0,5 +Judith,0,450 +Judson,98,0 +Judy,0,276 +Juel,17,19 +Julanne,0,13 +Jule,24,36 +Jules,113,0 +Juletta,0,6 +Julia,25,4289 +Julian,728,11 +Juliana,0,65 +Juliann,0,13 +Julianna,0,24 +Julianne,0,24 +Julie,8,197 +Julien,16,0 +Julienne,0,14 +Juliet,0,92 +Julieta,0,20 +Juliett,0,6 +Julietta,0,9 +Juliette,0,161 +Julio,146,0 +Julious,29,0 +Julis,11,0 +Julius,1135,0 +Juluis,20,0 +Julus,5,0 +Jun,6,0 +Juna,0,7 +June,79,6150 +Junella,0,17 +Junelle,0,5 +Junetta,0,9 +Junette,0,6 +Juneve,0,5 +Junia,0,15 +Junice,0,16 +Junichi,5,0 +Junie,5,26 +Junior,1495,13 +Junious,48,0 +Junita,0,31 +Junius,132,0 +Junnie,0,5 +Jurline,0,5 +Justa,0,5 +Justice,11,0 +Justin,161,0 +Justina,0,33 +Justine,0,181 +Justino,7,0 +Justo,9,0 +Juston,5,0 +Justus,22,0 +Juventino,5,0 +Jw,5,0 +Kaiser,7,0 +Kaliope,0,6 +Kalman,16,0 +Kam,5,0 +Kaname,5,0 +Kanji,6,0 +Kansas,0,8 +Kaoru,12,8 +Karen,0,58 +Karin,0,8 +Karl,584,5 +Karla,0,6 +Karleen,0,13 +Karlene,0,11 +Karlton,5,0 +Karlyn,0,5 +Karma,0,7 +Karol,12,7 +Karoline,0,8 +Karolyn,0,14 +Kary,6,0 +Karyl,0,5 +Kasper,5,0 +Kate,0,222 +Kathaleen,0,49 +Kathaline,0,6 +Katharina,0,6 +Katharine,0,265 +Katharyn,0,11 +Katharyne,0,5 +Katheleen,0,11 +Kathelene,0,9 +Katheline,0,5 +Katherene,0,10 +Katherin,0,8 +Katherina,0,6 +Katherine,18,4695 +Katherleen,0,5 +Kathern,0,40 +Katheryn,0,191 +Katheryne,0,30 +Kathie,0,8 +Kathleen,7,3663 +Kathleene,0,9 +Kathlene,0,11 +Kathlyn,0,58 +Kathlynn,0,5 +Kathreen,0,5 +Kathren,0,8 +Kathrin,0,5 +Kathrine,0,123 +Kathryn,7,3598 +Kathryne,0,63 +Kathy,0,13 +Kathyrn,0,25 +Katie,0,974 +Kato,5,0 +Katrina,0,14 +Katsuji,5,0 +Katsumi,13,0 +Kattie,0,95 +Katy,0,60 +Katye,0,7 +Kay,77,302 +Kaye,0,28 +Kazue,0,14 +Kazuko,0,16 +Kazuo,36,0 +Kazuto,5,0 +Kearney,10,0 +Kee,44,0 +Keiji,5,0 +Keith,1071,9 +Keitha,0,13 +Keller,12,0 +Kelley,24,0 +Kellie,10,5 +Kelly,125,10 +Kelsey,14,0 +Kelsie,9,0 +Kelso,7,0 +Kelton,7,0 +Kelvin,10,0 +Kemp,12,0 +Kemper,8,0 +Ken,34,0 +Kendall,66,0 +Kendell,6,0 +Kendrick,28,0 +Keneth,9,0 +Kenichi,11,0 +Kenith,14,0 +Kenji,20,0 +Kenley,5,0 +Kenna,5,5 +Kennard,20,0 +Kennedy,11,0 +Kenneth,10355,46 +Kennett,7,0 +Kenney,7,0 +Kennith,67,0 +Kenny,32,5 +Kent,89,0 +Kenton,24,0 +Kenyon,11,0 +Kenzo,5,0 +Kerman,6,0 +Kermit,276,0 +Kermitt,5,0 +Kern,9,0 +Kernell,5,0 +Kerney,11,0 +Kerry,13,0 +Kerwin,8,0 +Kester,5,0 +Keturah,0,6 +Kevin,50,0 +Kieran,5,0 +Kieth,10,0 +Kikue,0,25 +Kikuye,0,7 +Kim,8,9 +Kimball,6,0 +Kimble,7,0 +Kimi,0,9 +Kimie,0,17 +Kimiko,0,40 +Kimiye,0,10 +Kimiyo,0,7 +King,109,0 +Kingsley,18,0 +Kinsey,6,0 +Kirby,71,0 +Kirk,50,0 +Kirkland,8,0 +Kit,6,0 +Kittie,0,29 +Kitty,0,127 +Kiyo,0,6 +Kiyoko,0,40 +Kiyomi,0,8 +Kiyono,0,5 +Kiyoshi,56,0 +Kiyoto,6,0 +Kizzie,0,19 +Klara,0,9 +Kline,5,0 +Klyda,0,10 +Knox,16,0 +Knute,10,0 +Koichi,11,0 +Koula,0,5 +Kristine,0,7 +Kunio,10,0 +Kurt,41,0 +Kyle,88,0 +La,0,5 +Laban,6,0 +Laberta,0,7 +Lacey,17,7 +Lacie,0,7 +Lacy,125,21 +Ladd,7,0 +Laddie,43,7 +Ladean,0,9 +Ladell,8,7 +Ladelle,0,11 +Ladislado,7,0 +Ladislaus,15,0 +Ladislav,7,0 +Ladislava,0,5 +Ladona,0,9 +Ladonna,0,51 +Ladora,0,10 +Lady,0,28 +Lael,0,6 +Laeuna,0,5 +Lafayette,63,0 +Lafe,12,0 +Lafern,0,7 +Lahoma,0,16 +Laila,0,8 +Laird,21,0 +Lajune,0,7 +Lake,10,0 +Lakie,0,8 +Lala,0,39 +Laline,0,8 +Lalla,0,12 +Lallie,0,8 +Lalo,9,0 +Lamae,0,11 +Lamar,234,0 +Lamarr,18,0 +Lamb,5,0 +Lambert,80,0 +Lamerle,0,7 +Lamoine,14,0 +Lamon,11,0 +Lamont,19,0 +Lamonte,6,0 +Lamoyne,8,10 +Lana,0,26 +Lance,26,0 +Lancelot,5,0 +Lander,6,0 +Landis,28,0 +Lando,6,0 +Landon,38,0 +Landrum,9,0 +Landy,6,0 +Lane,44,7 +Lanell,0,27 +Lanelle,0,32 +Lanette,0,6 +Laney,7,6 +Lang,5,0 +Langdon,12,0 +Langston,8,0 +Lani,0,5 +Lanie,0,14 +Lanier,13,5 +Lanita,0,7 +Lankford,5,0 +Lannie,11,25 +Lanora,0,23 +Lanore,0,5 +Lansing,10,0 +Lara,0,20 +Larae,0,7 +Laraine,0,21 +Larance,7,0 +Laray,0,5 +Larayne,0,16 +Laree,0,14 +Larena,0,7 +Larence,29,0 +Larene,0,19 +Laretta,0,12 +Larie,0,5 +Larine,0,5 +Larita,0,7 +Lark,6,0 +Larkin,24,0 +Larna,0,9 +Larnce,13,0 +Larnie,5,0 +Larose,0,7 +Laroy,17,0 +Larraine,0,17 +Larrie,5,6 +Larry,575,8 +Lars,9,0 +Larue,20,98 +Laruth,0,5 +Lassie,0,20 +Latha,0,9 +Latham,7,0 +Lathan,13,0 +Lattie,0,11 +Launa,0,23 +Launia,0,5 +Laura,15,3829 +Laurabel,0,7 +Laurabelle,0,13 +Lauraine,0,14 +Lauramae,0,7 +Laurance,24,0 +Laure,0,6 +Lauree,0,5 +Laurel,48,177 +Laurelle,0,5 +Lauren,67,6 +Laurena,0,12 +Laurence,574,6 +Laurene,0,66 +Laurens,7,0 +Laurent,24,0 +Lauretta,0,189 +Laurette,0,56 +Lauri,11,0 +Lauria,0,6 +Laurice,5,24 +Laurie,46,34 +Laurier,13,0 +Laurin,11,0 +Laurina,0,5 +Laurinda,0,10 +Laurine,0,57 +Lauris,0,5 +Laurita,0,6 +Lauro,20,0 +Lauvenia,0,5 +Lavada,0,77 +Lavan,7,0 +Lavana,0,5 +Lavanda,0,5 +Lavania,0,6 +Lavar,7,0 +Lavaughn,9,21 +Lavaun,0,12 +Laveda,0,18 +Laveeda,0,5 +Lavell,12,7 +Lavella,0,12 +Lavelle,9,38 +Lavena,0,25 +Lavene,0,9 +Lavenia,0,34 +Lavera,0,74 +Laverda,0,11 +Lavere,14,5 +Lavergne,0,31 +Laverle,0,9 +Lavern,290,145 +Laverna,0,98 +Laverne,402,1383 +Laverta,0,13 +Laveta,0,39 +Lavetta,0,11 +Lavida,0,6 +Lavilla,0,7 +Lavina,0,130 +Lavine,0,5 +Lavinia,0,66 +Lavoid,5,0 +Lavon,31,152 +Lavona,0,45 +Lavonda,0,7 +Lavone,0,33 +Lavonia,0,30 +Lavonna,0,12 +Lavonne,0,252 +Lawana,0,25 +Lawanda,0,42 +Lawanna,0,7 +Lawerance,11,0 +Lawerence,86,0 +Lawernce,9,0 +Lawrance,19,0 +Lawrence,5775,24 +Lawson,73,0 +Lawton,35,0 +Lawyer,17,0 +Laydell,5,0 +Layman,13,0 +Laymon,15,0 +Layne,6,0 +Layton,51,0 +Lazaro,21,0 +Lazarus,8,0 +Lazelle,0,5 +Lc,6,0 +Le,12,0 +Lea,13,61 +Leada,0,5 +Leady,0,5 +Leah,0,505 +Leala,0,11 +Lealand,9,0 +Lealer,0,13 +Lealon,9,0 +Leamon,61,0 +Lean,0,5 +Leana,0,19 +Leanard,9,0 +Leander,84,0 +Leandra,0,6 +Leandrew,7,0 +Leandro,22,0 +Leaner,0,11 +Leanna,0,58 +Leanor,0,8 +Leanora,0,20 +Leanord,20,0 +Leanore,0,23 +Lear,0,14 +Leara,0,8 +Learlean,0,5 +Learline,0,5 +Leary,5,5 +Leatha,0,108 +Leather,0,6 +Leathia,0,9 +Leatrice,0,278 +Leavy,7,0 +Leberta,0,5 +Lecil,15,0 +Leda,0,43 +Ledell,9,0 +Ledford,6,0 +Ledonia,0,5 +Ledora,0,14 +Lee,2420,488 +Leeland,14,0 +Leeman,19,0 +Leeroy,74,0 +Leeta,0,10 +Leetta,0,13 +Legrand,7,0 +Legrande,6,0 +Lehman,28,0 +Leif,11,0 +Leigh,42,13 +Leighton,49,0 +Leila,0,365 +Leilani,0,9 +Leita,0,17 +Leith,10,0 +Leitha,0,19 +Lela,0,863 +Lelah,0,25 +Lelan,10,0 +Leland,775,5 +Lelar,0,21 +Leldon,13,0 +Leler,0,8 +Lelia,0,304 +Lella,0,15 +Leller,0,5 +Lelon,14,0 +Lelton,5,0 +Lem,27,0 +Lema,0,10 +Leman,17,0 +Lemar,13,0 +Lemma,0,7 +Lemmie,17,0 +Lemon,26,6 +Lemoyne,10,7 +Lempi,0,8 +Lemuel,128,0 +Len,26,0 +Lena,10,2410 +Lenard,200,0 +Lenda,0,7 +Lendell,6,0 +Lendon,5,0 +Lendora,0,5 +Lener,0,10 +Lenice,0,9 +Lenita,0,5 +Lenn,6,0 +Lenna,0,41 +Lennard,17,0 +Lennart,11,0 +Lennie,21,89 +Lennis,9,12 +Lennon,12,0 +Lenny,5,0 +Leno,22,0 +Lenoard,9,0 +Lenoir,0,6 +Lenola,0,6 +Lenon,6,0 +Lenor,0,9 +Lenora,0,678 +Lenord,43,0 +Lenore,0,434 +Lenox,8,0 +Lenton,12,0 +Lenwood,38,0 +Lenzy,11,0 +Leo,3990,48 +Leocadia,0,39 +Leoda,0,25 +Leola,7,757 +Leoma,0,40 +Leomia,0,6 +Leon,2677,37 +Leona,7,2794 +Leonard,5601,27 +Leonarda,0,31 +Leonardo,48,0 +Leonce,9,0 +Leone,6,151 +Leonel,31,0 +Leonette,0,11 +Leonhard,5,0 +Leonia,0,30 +Leonidas,21,0 +Leonie,0,16 +Leonila,0,6 +Leonor,0,71 +Leonora,0,138 +Leonore,0,65 +Leontina,0,5 +Leontine,0,25 +Leopold,66,0 +Leopoldo,59,0 +Leora,0,252 +Leoria,0,6 +Leory,6,0 +Leota,0,309 +Leotha,0,16 +Leotta,0,9 +Lera,0,56 +Leray,6,0 +Lerline,0,7 +Leronia,0,6 +Leroy,3922,26 +Lesley,40,7 +Leslie,1664,142 +Less,8,0 +Lessie,26,315 +Lesslie,11,0 +Lesta,0,9 +Lester,2780,34 +Leston,11,0 +Leta,0,183 +Letcher,12,0 +Letha,0,401 +Lethaniel,6,0 +Lether,0,14 +Lethia,0,16 +Leticia,0,7 +Letitia,0,73 +Letizia,0,8 +Letta,0,10 +Lettie,0,201 +Letty,0,64 +Lettye,0,6 +Leva,0,21 +Levada,0,12 +Levan,10,0 +Leveda,0,8 +Levena,0,7 +Levenia,0,9 +Levere,6,0 +Levern,31,5 +Leverna,0,6 +Leverne,24,12 +Levert,14,0 +Leverta,0,8 +Levester,12,0 +Leveta,0,6 +Levi,230,0 +Levia,0,5 +Levie,16,0 +Levin,11,0 +Levina,0,9 +Levio,5,0 +Levis,7,0 +Levon,21,0 +Levona,0,6 +Levonia,0,8 +Levy,39,0 +Lew,28,0 +Lewellyn,6,0 +Lewie,20,0 +Lewin,6,0 +Lewis,2670,14 +Lex,24,0 +Lexie,6,52 +Libbie,0,23 +Libby,0,76 +Libera,0,9 +Liberato,13,0 +Liberta,0,5 +Liberty,0,8 +Liboria,0,6 +Liborio,13,0 +Librada,0,17 +Librado,17,0 +Lida,0,67 +Liddie,0,30 +Lidia,0,33 +Lido,9,0 +Lige,19,0 +Ligia,0,5 +Lila,5,1053 +Lilah,0,28 +Lilamae,0,10 +Lilas,0,13 +Lilbern,6,0 +Lilburn,30,0 +Lilia,0,63 +Lilian,0,42 +Lilias,0,5 +Lilie,0,25 +Lilla,0,75 +Lillain,0,6 +Lillan,0,5 +Lillard,21,0 +Liller,0,5 +Lillia,0,22 +Lillian,35,9100 +Lillias,0,7 +Lillie,17,2979 +Lilliemae,0,14 +Lillion,0,15 +Lillis,0,14 +Lilly,0,301 +Lillyan,0,7 +Lily,0,409 +Lilyan,0,29 +Limmie,5,0 +Limuel,7,0 +Lin,7,0 +Lina,0,115 +Linard,10,0 +Lincoln,156,0 +Linda,0,454 +Lindel,5,0 +Lindell,21,0 +Linden,17,0 +Lindley,6,0 +Lindon,12,0 +Lindsay,52,0 +Lindsey,55,5 +Lindy,6,6 +Linford,20,0 +Link,8,0 +Linn,24,0 +Linna,0,10 +Linnea,0,25 +Linnie,7,136 +Lino,27,0 +Linton,39,0 +Linus,48,0 +Linville,8,0 +Linwood,189,0 +Linzie,11,0 +Linzy,17,0 +Liona,0,6 +Lionardo,5,0 +Lionel,325,0 +Lionell,9,0 +Lisa,0,23 +Lisbeth,0,10 +Lisle,21,0 +Lissie,0,31 +Lister,7,0 +Liston,15,0 +Lita,0,32 +Litha,0,8 +Littie,0,13 +Little,21,0 +Littleton,15,0 +Livia,0,23 +Livie,0,6 +Livingston,19,0 +Livio,9,0 +Liza,0,44 +Lizabeth,0,5 +Lizbeth,0,6 +Lizette,0,5 +Lizzie,6,581 +Lizzy,0,9 +Llewellyn,54,17 +Lloyd,3350,24 +Lloyde,8,0 +Loa,0,29 +Locke,6,0 +Lockie,0,9 +Loda,0,7 +Lodema,0,22 +Lodie,0,12 +Loel,6,0 +Loella,0,5 +Loeta,0,8 +Loetta,0,8 +Loette,0,6 +Loeva,0,6 +Loften,5,0 +Lofton,10,0 +Logan,86,0 +Loice,0,5 +Loie,0,6 +Lois,73,9299 +Loise,0,27 +Loisjean,0,6 +Lola,8,1538 +Lolamae,0,5 +Lolene,0,5 +Loleta,0,22 +Lolita,0,65 +Lollie,0,15 +Loma,0,65 +Loman,8,0 +Lomax,8,0 +Lon,70,5 +Lona,0,156 +Lonas,6,0 +Londa,0,6 +London,6,0 +Loneta,0,9 +Loney,12,7 +Longino,5,0 +Lonia,0,11 +Lonie,27,35 +Lonita,0,5 +Lonna,0,5 +Lonnie,716,89 +Lonny,5,0 +Lonza,8,0 +Lonzell,5,0 +Lonzie,6,0 +Lonzo,85,0 +Loomis,9,0 +Lora,9,361 +Lorain,13,33 +Loraine,15,386 +Loral,6,0 +Loralee,0,5 +Loran,53,0 +Lorance,9,0 +Lorane,0,7 +Lorayne,0,55 +Lore,0,5 +Lorean,0,44 +Loreda,0,10 +Loree,0,50 +Loreen,0,22 +Lorell,0,5 +Lorelle,0,6 +Loren,636,9 +Lorena,0,349 +Lorence,20,0 +Lorene,8,1173 +Lorenia,0,8 +Lorensa,0,5 +Lorenso,5,0 +Lorenz,28,0 +Lorenza,50,39 +Lorenzo,217,0 +Loreta,0,16 +Loretha,0,20 +Loreto,10,5 +Loretta,8,2261 +Lorette,0,23 +Loretto,0,13 +Lori,0,6 +Loria,0,8 +Lorice,0,6 +Lorie,0,12 +Loriene,0,6 +Lorimer,9,0 +Lorin,58,0 +Lorina,0,20 +Lorinda,0,14 +Lorine,0,275 +Loring,23,0 +Loris,19,45 +Lorita,0,9 +Lorn,16,0 +Lorna,0,304 +Lorne,27,0 +Lorrain,0,17 +Lorraine,26,5109 +Lorrayne,0,57 +Lorren,6,0 +Lorrene,0,12 +Lorretta,0,36 +Lorriane,0,7 +Lorrie,0,10 +Lorrin,6,0 +Lorrine,0,18 +Lorris,8,0 +Lory,0,6 +Lossie,0,29 +Lota,0,15 +Lott,5,0 +Lotta,0,11 +Lottie,0,978 +Lotus,0,21 +Lou,37,381 +Louann,0,18 +Louanna,0,17 +Loubertha,0,6 +Loucille,0,10 +Louella,0,238 +Louellen,0,5 +Louetta,0,31 +Louie,460,34 +Louies,0,5 +Louine,0,9 +Louis,7042,57 +Louisa,0,192 +Louise,58,8853 +Louisiana,0,5 +Loula,0,8 +Lounell,0,9 +Lounette,0,6 +Loura,0,5 +Lourdes,0,9 +Louree,0,5 +Lourene,0,7 +Louvenia,0,81 +Louvinia,0,11 +Lova,0,12 +Lovada,0,5 +Love,18,17 +Loveda,0,10 +Lovel,8,0 +Lovell,35,24 +Lovella,0,35 +Lovely,0,8 +Lovena,0,13 +Lovenia,0,14 +Lovera,0,6 +Loveta,0,10 +Lovett,5,0 +Lovetta,0,21 +Lovey,0,13 +Lovia,0,5 +Lovie,18,100 +Lovina,0,25 +Lovis,5,5 +Lowanda,0,6 +Lowell,819,15 +Lowella,0,8 +Lowery,7,0 +Lowry,9,0 +Loy,88,6 +Loyal,89,7 +Loyce,29,77 +Loyd,605,6 +Loyde,11,0 +Loye,12,0 +Loyed,6,0 +Loyola,0,16 +Loys,8,8 +Lu,0,19 +Luana,0,17 +Luann,0,5 +Luanna,0,13 +Luanne,0,6 +Luba,0,6 +Luberta,0,20 +Lubertha,0,16 +Luby,13,6 +Lucas,49,0 +Luceal,0,16 +Luceil,0,6 +Lucelle,0,7 +Lucetta,0,14 +Lucia,0,182 +Lucian,104,5 +Luciana,0,17 +Luciano,38,0 +Lucie,0,52 +Luciel,0,15 +Lucielle,0,7 +Lucien,129,0 +Lucienne,0,31 +Lucila,0,12 +Lucile,0,927 +Lucill,0,14 +Lucilla,0,15 +Lucille,17,6744 +Lucillie,0,8 +Lucina,0,15 +Lucinda,0,164 +Lucindy,0,7 +Lucine,0,6 +Lucio,49,0 +Lucious,64,0 +Lucius,118,0 +Lucky,15,0 +Lucretia,0,92 +Lucrezia,0,9 +Lucy,22,2978 +Lucyle,0,8 +Lucylle,0,7 +Luda,0,8 +Ludean,0,6 +Ludell,0,16 +Ludella,0,7 +Ludger,9,0 +Ludie,7,63 +Ludine,0,5 +Ludmilla,0,10 +Ludwig,54,0 +Ludy,0,7 +Lue,12,154 +Luegenia,0,7 +Luella,0,776 +Luellen,0,16 +Luena,0,6 +Luerene,0,6 +Luetta,0,56 +Luevenia,0,16 +Lugene,12,13 +Lugenia,0,9 +Luie,11,0 +Luigi,33,0 +Luis,334,0 +Luisa,0,82 +Luise,0,16 +Luiz,6,0 +Lujean,0,7 +Luke,206,0 +Lula,16,1776 +Lular,0,17 +Lulia,0,5 +Lulla,0,11 +Lulu,0,113 +Lum,14,0 +Luman,7,0 +Lumir,9,0 +Luna,0,34 +Lunette,0,7 +Lunsford,6,0 +Lupe,98,377 +Lupie,0,5 +Lupita,0,12 +Lura,0,175 +Luree,0,8 +Lurena,0,10 +Lurene,0,22 +Luretha,0,14 +Luretta,0,11 +Luria,0,7 +Lurie,0,6 +Lurine,0,7 +Lurlean,0,11 +Lurlene,0,18 +Lurlie,0,12 +Lurline,0,47 +Lusiano,7,0 +Luster,28,6 +Luther,1396,17 +Lutie,0,10 +Luvada,0,7 +Luvender,5,0 +Luvenia,0,74 +Luvera,0,5 +Luvern,8,6 +Luverna,0,8 +Luverne,65,35 +Luverta,0,5 +Luvina,0,6 +Luvinia,0,11 +Luz,10,68 +Luzell,0,5 +Lyal,9,0 +Lyall,7,0 +Lyda,5,94 +Lydia,5,912 +Lydie,0,9 +Lyell,6,0 +Lyla,0,103 +Lyle,1000,23 +Lyman,195,0 +Lymon,9,0 +Lyn,0,13 +Lynch,5,0 +Lynda,0,22 +Lyndal,0,7 +Lyndall,0,11 +Lyndel,0,7 +Lyndell,9,10 +Lynden,6,0 +Lyndle,7,0 +Lyndon,32,0 +Lynell,5,5 +Lynette,0,55 +Lynn,409,80 +Lynne,0,28 +Lynnette,0,8 +Lynwood,51,0 +Lysle,16,0 +Lytle,14,0 +Lyvonne,0,7 +Ma,0,7 +Mabel,5,2652 +Mabell,0,14 +Mabelle,0,27 +Mable,5,1516 +Mabry,11,0 +Mac,68,0 +Macaria,0,8 +Macario,49,0 +Mace,13,0 +Macedonio,6,0 +Macel,0,36 +Maceo,23,0 +Macey,5,0 +Macie,0,77 +Macil,0,8 +Mack,546,0 +Mackie,5,8 +Macle,0,5 +Maclovia,0,7 +Macon,18,0 +Macy,10,19 +Mada,0,16 +Madalena,0,7 +Madalene,0,27 +Madaline,0,92 +Madalyn,0,68 +Madalynne,0,5 +Maddie,0,19 +Madelaine,0,14 +Madeleine,0,224 +Madelene,0,52 +Madeliene,0,9 +Madelin,0,6 +Madelina,0,5 +Madeline,0,1746 +Madell,0,12 +Madelle,0,8 +Madelon,0,33 +Madelyn,0,315 +Madelyne,0,25 +Madge,0,379 +Madgeline,0,5 +Madgie,0,18 +Madia,0,6 +Madie,0,80 +Madilyn,0,7 +Madison,70,0 +Madlene,0,5 +Madline,0,7 +Madlyn,0,53 +Madoline,0,7 +Madolyn,0,24 +Madonna,0,110 +Madora,0,12 +Mady,0,6 +Mae,10,2369 +Maebell,0,34 +Maebelle,0,34 +Maedean,0,5 +Maedell,0,11 +Maeola,0,16 +Maetta,0,5 +Mafalda,0,71 +Mag,0,6 +Magalene,0,8 +Magaline,0,17 +Magaret,0,11 +Magdalen,0,69 +Magdalena,0,113 +Magdalene,0,172 +Magdaleno,12,0 +Magdalina,0,7 +Magdaline,0,32 +Magdelene,0,12 +Magdelina,0,5 +Magdeline,0,14 +Mageline,0,5 +Maggie,11,1259 +Magie,0,7 +Magnolia,0,121 +Magnus,15,0 +Mahala,0,19 +Mahalia,0,9 +Mahalie,0,7 +Mahlon,83,0 +Mai,0,10 +Maida,0,48 +Maidell,0,6 +Maidie,0,5 +Maie,0,6 +Maire,0,10 +Mairon,5,0 +Maisie,0,27 +Maitland,7,0 +Maizie,0,21 +Majel,0,17 +Major,150,0 +Majorie,0,31 +Makoto,11,0 +Malachi,20,0 +Malcolm,639,0 +Malcom,44,0 +Malcome,8,0 +Malena,0,6 +Maleta,0,5 +Malinda,0,70 +Maline,0,5 +Malissa,0,42 +Malissia,0,5 +Malissie,0,9 +Mallie,6,44 +Mallissa,0,5 +Mallory,9,0 +Malone,6,0 +Malvena,0,6 +Malvenia,0,6 +Malvern,10,0 +Malvin,62,0 +Malvina,0,38 +Malvine,0,5 +Mamie,13,1626 +Mammie,0,66 +Mamoru,16,0 +Mamye,0,12 +Manabu,7,0 +Mance,6,0 +Mancel,10,0 +Mancil,6,0 +Manda,0,32 +Mandel,7,0 +Mandie,0,13 +Mandy,0,77 +Manetta,0,5 +Manette,0,9 +Manford,44,0 +Manfred,16,0 +Manie,0,11 +Manley,48,0 +Manly,10,0 +Mann,7,0 +Mannie,20,12 +Manning,22,0 +Manny,14,0 +Mansel,18,0 +Mansfield,15,0 +Manson,14,0 +Manual,15,0 +Manuel,1664,11 +Manuela,0,202 +Manuelita,0,14 +Manuella,0,9 +Manvil,5,0 +Manville,5,0 +Maple,0,33 +Mar,0,5 +Mara,0,15 +Marabelle,0,7 +Maralee,0,6 +Maralyn,0,21 +Maratha,0,6 +Marc,31,0 +Marceil,0,15 +Marcel,142,8 +Marcela,0,28 +Marcelene,0,13 +Marcelina,0,42 +Marceline,0,69 +Marcelino,43,0 +Marcell,22,14 +Marcella,5,1476 +Marcelle,0,135 +Marcellia,0,6 +Marcelline,0,21 +Marcellino,5,0 +Marcello,11,0 +Marcellous,9,0 +Marcellus,57,0 +Marcelo,18,0 +Marcelyn,0,10 +Marcena,0,6 +Marcene,0,24 +Marcetta,0,5 +March,5,6 +Marcheta,0,57 +Marchetta,0,7 +Marcia,0,460 +Marcial,9,0 +Marcie,0,12 +Marciel,0,9 +Marcile,0,12 +Marcilla,0,8 +Marcille,0,30 +Marcine,0,23 +Marco,43,0 +Marcos,44,0 +Marcus,333,0 +Marcy,0,11 +Mardell,0,61 +Mardella,0,12 +Mardelle,0,35 +Marea,0,7 +Maree,0,17 +Marene,0,6 +Mareta,0,6 +Maretta,0,9 +Margare,0,5 +Margaree,0,19 +Margaret,88,26546 +Margareta,0,8 +Margarete,0,57 +Margareth,0,7 +Margaretha,0,8 +Margarett,0,116 +Margaretta,0,56 +Margarette,0,178 +Margarie,0,7 +Margarine,0,5 +Margarita,0,275 +Margarite,0,47 +Margarito,60,0 +Margart,0,19 +Margaruite,0,7 +Marge,0,100 +Margean,0,5 +Margeart,0,11 +Margene,0,36 +Margeret,0,29 +Margerie,0,5 +Margerite,0,5 +Margert,0,21 +Margery,0,515 +Marget,0,21 +Margeurite,0,5 +Margherita,0,17 +Margia,0,8 +Margie,15,2832 +Margine,0,8 +Margit,0,8 +Margo,0,29 +Margorie,0,35 +Margot,0,40 +Margreat,0,15 +Margree,0,10 +Margret,0,196 +Margrete,0,13 +Margrett,0,46 +Margretta,0,18 +Margrette,0,22 +Marguarite,0,6 +Marguerete,0,9 +Marguerette,0,7 +Marguerita,0,20 +Marguerite,0,2249 +Margueritte,0,39 +Margurete,0,6 +Margurette,0,13 +Marguriete,0,10 +Marguriette,0,5 +Margurite,0,49 +Margy,0,44 +Mari,0,28 +Maria,25,2291 +Mariah,0,29 +Marialyce,0,5 +Mariam,0,64 +Marian,38,4197 +Mariana,0,34 +Mariane,0,7 +Mariann,0,29 +Marianna,0,147 +Marianne,0,239 +Mariano,62,0 +Maribel,0,17 +Maribelle,0,13 +Marice,0,8 +Marie,35,11575 +Marieange,0,5 +Mariel,0,6 +Mariella,0,14 +Mariellen,0,9 +Marien,0,8 +Marienne,0,5 +Marieta,0,6 +Marietta,0,246 +Mariette,0,17 +Marigene,0,9 +Marigold,0,5 +Marijane,0,22 +Mariko,0,14 +Marilee,0,53 +Marilla,0,17 +Marillyn,0,25 +Marilou,0,31 +Marilouise,0,32 +Marilu,0,5 +Marilyn,5,2860 +Marilyne,0,7 +Marilynn,0,199 +Marilynne,0,15 +Marina,0,66 +Marine,0,17 +Marinel,0,5 +Marinelle,0,8 +Marino,26,0 +Marinus,5,0 +Mario,483,0 +Marion,1613,6047 +Marionette,0,7 +Maris,6,5 +Marise,0,5 +Marita,0,44 +Marium,0,6 +Marius,8,0 +Marjarie,0,10 +Marjean,0,35 +Marjie,0,34 +Marjoria,0,8 +Marjorie,20,10069 +Marjory,0,283 +Mark,672,15 +Marko,10,0 +Marks,8,0 +Markus,11,0 +Marl,7,0 +Marlan,12,0 +Marland,17,0 +Marlea,0,5 +Marleah,0,5 +Marlen,12,0 +Marlene,0,73 +Marles,0,6 +Marleta,0,5 +Marley,10,0 +Marlin,237,5 +Marline,0,12 +Marlis,0,5 +Marlo,13,0 +Marlon,23,0 +Marlow,20,0 +Marlowe,10,7 +Marlyn,50,46 +Marlynn,0,6 +Marlys,0,84 +Marna,0,18 +Marnie,0,5 +Marolyn,0,9 +Maron,6,0 +Marquerite,0,19 +Marquis,11,0 +Marquita,0,9 +Marrian,0,7 +Marrie,0,14 +Marrietta,0,7 +Marrion,11,10 +Marry,0,30 +Marselino,7,0 +Marsena,0,5 +Marsh,9,0 +Marsha,0,23 +Marshal,36,0 +Marshall,856,0 +Marshel,12,0 +Marshell,17,0 +Marston,7,0 +Mart,15,0 +Marta,0,46 +Martell,6,5 +Martena,0,5 +Martha,39,9320 +Marthella,0,5 +Marthena,0,6 +Martie,0,12 +Martin,2452,15 +Martina,0,92 +Martine,0,12 +Martiniano,5,0 +Marton,7,0 +Marty,21,9 +Marva,0,37 +Marveen,0,5 +Marvel,19,152 +Marvelene,0,5 +Marveline,0,6 +Marvell,6,7 +Marvella,0,21 +Marvelle,0,21 +Marvelyn,0,6 +Marven,9,0 +Marvene,0,15 +Marvin,4024,40 +Marvine,0,23 +Marvis,15,43 +Marvyn,5,0 +Marx,6,0 +Mary,224,73534 +Maryalice,0,37 +Maryalyce,0,6 +Maryan,6,21 +Maryann,0,335 +Maryanna,0,24 +Maryanne,0,45 +Marybell,0,10 +Marybelle,0,61 +Marybeth,0,16 +Marye,0,33 +Maryelizabeth,0,9 +Maryella,0,10 +Maryellen,0,110 +Maryetta,0,26 +Maryette,0,5 +Maryfrances,0,7 +Marygrace,0,5 +Maryhelen,0,9 +Maryjane,0,195 +Maryjayne,0,5 +Maryjean,0,10 +Maryjo,0,20 +Maryl,0,5 +Maryland,9,20 +Marylee,0,47 +Marylene,0,5 +Marylin,0,22 +Maryln,0,6 +Marylou,0,92 +Marylouise,0,47 +Marylu,0,6 +Marylyn,0,43 +Marylynn,0,7 +Marymargaret,0,5 +Marynell,0,7 +Maryon,5,19 +Maryrose,0,33 +Maryruth,0,10 +Marzee,0,9 +Marzell,0,8 +Marzella,0,20 +Marzelle,0,7 +Marzetta,0,7 +Marzie,0,5 +Masae,0,10 +Masaharu,7,0 +Masaichi,14,0 +Masaki,5,0 +Masako,0,39 +Masami,17,0 +Masanobu,5,0 +Masanori,5,0 +Masao,59,0 +Masaru,30,0 +Masashi,13,0 +Masato,25,0 +Masaye,0,6 +Masayoshi,8,0 +Masayuki,5,0 +Masel,0,5 +Masie,0,9 +Mason,119,0 +Massey,7,0 +Massie,7,9 +Masue,0,5 +Mat,14,0 +Mateo,18,0 +Matha,0,9 +Mathew,192,0 +Mathews,9,0 +Mathias,29,0 +Mathilda,0,113 +Mathilde,0,26 +Mathis,5,0 +Matias,24,0 +Matie,0,7 +Matilda,0,531 +Matilde,6,46 +Matsue,0,8 +Matsuko,0,6 +Matsuo,7,0 +Matsuyo,0,7 +Matt,93,0 +Matteo,28,0 +Matthew,850,0 +Matthews,15,0 +Matthias,13,0 +Mattie,15,2600 +Matty,5,0 +Mattye,0,15 +Maud,0,133 +Maude,0,485 +Maudean,0,8 +Maudeen,0,6 +Maudell,0,21 +Maudella,0,8 +Maudene,0,6 +Maudie,0,295 +Maudine,0,42 +Maudy,0,5 +Maura,0,17 +Maureen,0,194 +Maurene,0,10 +Maurice,1714,63 +Mauricia,0,5 +Mauricio,14,0 +Maurilio,5,0 +Maurine,0,265 +Maurita,0,14 +Mauro,24,0 +Maury,10,0 +Mava,0,9 +Mavis,7,581 +Max,1397,7 +Maxcine,0,21 +Maxene,0,30 +Maxey,6,0 +Maxie,79,88 +Maxima,0,6 +Maximilian,7,0 +Maximina,0,6 +Maximo,14,0 +Maxine,13,3659 +Maxwell,117,0 +Maxyne,0,12 +May,16,868 +Maybel,0,9 +Maybell,0,49 +Maybelle,0,139 +Maybeth,0,5 +Maycel,0,5 +Maycle,0,8 +Mayda,0,5 +Maydean,0,5 +Maydell,0,17 +Maydelle,0,5 +Maydene,0,5 +Maye,0,29 +Mayer,7,0 +Mayfield,10,0 +Mayford,9,0 +Maylon,6,0 +Mayme,0,183 +Maymie,0,27 +Maynard,359,0 +Maynette,0,5 +Mayo,29,12 +Mayola,0,36 +Mayrene,0,7 +Maysel,0,10 +Maysie,0,9 +Mayvis,0,7 +Mazel,0,15 +Mazell,0,10 +Mazelle,0,11 +Mazie,0,148 +Mazzie,0,9 +Mc,5,0 +Mcadoo,7,0 +Mccoy,13,0 +Mcdaniel,6,0 +Mcdonald,8,0 +Mckinley,125,0 +Mead,7,0 +Meade,15,0 +Mearl,24,16 +Mearle,9,0 +Meda,0,38 +Medard,5,0 +Medardo,8,0 +Medford,35,0 +Media,0,11 +Medora,0,14 +Medrith,0,6 +Megan,0,7 +Mel,12,5 +Mela,0,7 +Melania,0,10 +Melanie,0,13 +Melba,5,998 +Melbert,6,0 +Melbourne,28,0 +Melburn,15,0 +Melchora,0,5 +Melda,0,30 +Meldon,9,0 +Melford,32,0 +Melina,0,5 +Melinda,0,24 +Melissa,0,53 +Melissie,0,6 +Melita,0,10 +Meliton,5,0 +Mell,0,8 +Mella,0,11 +Mellie,0,34 +Mellon,5,0 +Melody,0,7 +Melquiades,13,0 +Melrose,0,18 +Melroy,5,0 +Melton,77,0 +Melva,0,288 +Melvan,5,0 +Melven,16,0 +Melvena,0,10 +Melvenia,0,6 +Melvern,8,0 +Melvia,0,15 +Melvie,0,11 +Melville,66,0 +Melvin,4168,53 +Melvina,0,116 +Melvine,0,9 +Melvon,5,0 +Melvyn,41,0 +Melzina,0,5 +Memory,0,6 +Mendel,13,0 +Mennie,0,17 +Menno,17,0 +Merced,11,12 +Mercedes,10,319 +Mercer,17,0 +Mercia,0,7 +Mercides,0,5 +Mercy,0,45 +Merdis,0,16 +Merdith,0,7 +Meredith,76,82 +Merel,7,0 +Merelyn,0,6 +Meri,0,7 +Merial,0,9 +Meriam,0,32 +Merian,0,7 +Meribeth,0,5 +Merida,0,5 +Merie,0,8 +Meriel,0,7 +Meril,8,5 +Merilyn,0,32 +Merion,8,7 +Merita,0,9 +Merl,66,13 +Merla,0,9 +Merland,11,0 +Merle,782,383 +Merlen,7,0 +Merlene,0,37 +Merlie,0,10 +Merlin,337,10 +Merline,0,37 +Merlon,6,0 +Merlyn,73,25 +Merna,0,55 +Merrel,9,0 +Merrell,14,0 +Merriam,0,12 +Merrie,0,9 +Merril,31,0 +Merrilee,0,13 +Merrill,266,13 +Merrilyn,0,12 +Merritt,121,0 +Merry,0,48 +Mertha,0,5 +Mertice,0,19 +Mertie,0,23 +Mertin,5,0 +Mertis,5,12 +Merton,132,0 +Mervil,8,0 +Merville,7,0 +Mervin,211,0 +Mervyn,28,0 +Merwin,52,0 +Merwyn,18,0 +Meryl,13,36 +Meryle,0,18 +Mescal,0,22 +Meta,0,76 +Metha,0,7 +Metro,17,0 +Metta,0,25 +Mettie,0,18 +Meyer,106,0 +Micaela,0,46 +Michael,3874,36 +Michaelina,0,6 +Michal,5,0 +Micheal,179,5 +Michel,24,0 +Michele,19,12 +Michelena,0,6 +Michelina,0,45 +Michelle,0,11 +Michi,0,5 +Michie,0,14 +Michiko,0,38 +Michio,6,0 +Mick,6,0 +Mickel,6,0 +Mickey,67,98 +Mickie,0,18 +Mida,0,5 +Midge,0,7 +Midori,0,19 +Mieko,0,14 +Mignon,0,33 +Mignonne,0,8 +Miguel,191,0 +Mike,963,10 +Mikio,7,0 +Mila,0,14 +Milan,82,0 +Milas,12,0 +Milbern,8,0 +Milbert,23,0 +Milbra,0,5 +Milburn,53,0 +Milda,0,19 +Mildred,44,15853 +Milena,0,6 +Miles,233,0 +Milford,233,0 +Milfred,17,0 +Millard,406,0 +Milledge,7,0 +Miller,82,5 +Millicent,0,211 +Millie,7,388 +Mills,12,0 +Milly,0,23 +Milo,163,6 +Milos,6,0 +Milton,2474,19 +Mima,0,18 +Mimi,0,29 +Mimie,0,7 +Mina,0,119 +Miner,11,0 +Minerva,0,183 +Minetta,0,6 +Minette,0,7 +Minie,0,8 +Minna,0,29 +Minnette,0,10 +Minnie,16,2885 +Minola,0,5 +Minor,33,6 +Minoru,36,0 +Minos,5,0 +Minta,0,21 +Minter,5,0 +Mintie,0,7 +Mira,0,12 +Miranda,0,7 +Miriam,0,1834 +Mirian,0,17 +Miron,6,0 +Mirriam,0,10 +Mirtie,0,16 +Misako,0,6 +Misao,0,29 +Missie,0,7 +Missouri,0,34 +Mitchel,47,0 +Mitchell,366,0 +Mitsue,0,19 +Mitsugi,7,0 +Mitsuko,0,25 +Mitsuo,38,0 +Mitsuru,22,0 +Mitsuye,0,13 +Mittie,0,108 +Mitzi,0,40 +Mitzie,0,11 +Miyako,0,5 +Miyeko,0,17 +Miyo,0,12 +Miyoko,0,39 +Miyuki,0,14 +Mizell,6,0 +Modean,0,9 +Modell,9,12 +Modena,0,21 +Modene,0,10 +Modest,0,5 +Modesta,0,26 +Modestine,0,9 +Modesto,22,0 +Modie,0,5 +Modine,0,7 +Moe,14,0 +Moir,8,0 +Moira,0,5 +Moise,9,0 +Moises,35,0 +Molene,0,8 +Moline,0,6 +Molley,0,5 +Mollie,5,431 +Molly,0,290 +Mollye,0,6 +Mon,5,0 +Mona,0,329 +Monetta,0,6 +Monette,0,9 +Monia,0,6 +Monica,0,223 +Monico,10,0 +Monie,0,9 +Monna,0,20 +Monnie,9,33 +Monroe,293,0 +Mont,16,0 +Monta,0,12 +Montague,7,0 +Montana,0,11 +Monte,53,6 +Monteen,0,14 +Montez,0,27 +Montford,7,0 +Montgomery,14,0 +Montie,25,11 +Montine,0,14 +Monty,15,0 +Moody,17,0 +Mora,0,6 +Mordecai,7,0 +Morell,6,0 +Morene,0,16 +Morey,8,0 +Morgan,155,0 +Morine,0,21 +Morio,8,0 +Moris,6,0 +Morley,19,0 +Morna,0,19 +Morrell,16,0 +Morrie,6,0 +Morrill,6,0 +Morris,1499,16 +Morrison,17,0 +Morse,10,0 +Mort,9,0 +Mortimer,62,0 +Morton,472,0 +Morty,5,0 +Mose,114,0 +Moselle,0,10 +Moses,358,0 +Mosetta,0,5 +Mosie,5,5 +Moss,11,0 +Mossie,0,27 +Mott,5,0 +Moy,0,5 +Mozel,0,13 +Mozell,13,100 +Mozella,0,46 +Mozelle,0,197 +Mozter,0,6 +Muggie,0,6 +Murdock,7,0 +Murel,16,10 +Murial,0,5 +Muriel,24,2237 +Murielle,0,11 +Muril,0,5 +Murl,65,19 +Murle,15,11 +Murlene,0,5 +Murlin,9,0 +Murline,0,11 +Murna,0,5 +Murphy,65,0 +Murray,590,12 +Murrel,26,8 +Murrell,25,7 +Murriel,6,18 +Murry,81,0 +Murtis,0,5 +Murvin,6,0 +Musetta,0,8 +Mutt,6,0 +Myer,18,0 +Myers,12,0 +Myla,0,7 +Myldred,0,5 +Myles,93,0 +Mylie,0,5 +Myna,0,9 +Myra,0,492 +Myraline,0,6 +Myrdell,0,5 +Myrel,0,10 +Myreta,0,5 +Myriam,0,8 +Myrl,43,67 +Myrle,21,72 +Myrna,0,129 +Myron,608,0 +Myrta,0,19 +Myrth,0,7 +Myrtha,0,6 +Myrtice,0,149 +Myrtie,0,77 +Myrtis,0,176 +Myrtle,9,3205 +Naaman,7,0 +Nada,0,58 +Nadean,0,27 +Nadeane,0,6 +Nadeen,0,11 +Nadene,0,37 +Nadia,0,13 +Nadie,0,5 +Nadine,0,744 +Nadyne,0,15 +Naida,0,40 +Naman,6,0 +Namon,23,0 +Nan,0,118 +Nana,0,26 +Nancey,0,5 +Nancie,0,19 +Nancy,14,3989 +Nancye,0,19 +Nanette,0,32 +Nanie,0,11 +Nanna,0,8 +Nannette,0,24 +Nannie,0,561 +Nanny,0,5 +Naoma,0,98 +Naomi,14,1981 +Naomia,0,31 +Naomie,0,9 +Napolean,6,0 +Napoleon,116,0 +Narcisa,0,11 +Narciso,26,0 +Narcissa,0,8 +Narcissus,0,11 +Narvel,8,0 +Nasario,10,0 +Nash,9,0 +Nat,38,0 +Natale,29,0 +Natalee,0,9 +Natalia,0,43 +Natalie,0,713 +Natalina,0,6 +Nataline,0,9 +Natalio,6,0 +Nate,6,0 +Natella,0,5 +Nath,7,0 +Natha,0,9 +Nathalee,0,21 +Nathalie,0,83 +Nathan,680,0 +Nathanal,5,0 +Nathanel,11,0 +Nathanial,13,0 +Nathaniel,800,8 +Nathen,6,0 +Nathon,9,0 +Natividad,26,35 +Natsue,0,6 +Natsuko,0,9 +Nazaria,0,5 +Neal,405,6 +Neale,11,0 +Nealie,0,17 +Necia,0,5 +Ned,291,0 +Neda,0,13 +Neddie,0,8 +Nedia,0,5 +Nedra,0,65 +Needham,13,0 +Neel,5,0 +Neely,10,0 +Nehemiah,22,0 +Neil,541,6 +Neila,0,5 +Neilan,5,0 +Neill,15,0 +Neita,0,7 +Nela,0,5 +Nelda,0,312 +Nelia,0,17 +Nell,5,635 +Nella,0,70 +Nelle,0,99 +Nellene,0,7 +Nellie,19,3075 +Nello,32,0 +Nelly,0,19 +Nelma,0,42 +Nels,37,0 +Nelse,6,0 +Nelsie,0,7 +Nelson,753,9 +Nelta,0,13 +Nelva,0,26 +Nelvie,0,5 +Nelwyn,0,14 +Nema,0,9 +Nemecio,7,0 +Nemiah,5,0 +Nena,0,30 +Neno,6,0 +Neola,0,39 +Neoma,0,110 +Neomi,0,24 +Neomia,0,20 +Neona,0,5 +Nepoleon,5,0 +Nera,0,5 +Nero,7,0 +Nervie,0,5 +Nesbit,7,0 +Nessie,0,5 +Nester,9,0 +Nestor,26,0 +Nestora,0,6 +Neta,0,58 +Netha,0,5 +Netta,0,15 +Nettie,0,942 +Netty,0,7 +Nettye,0,5 +Neuman,6,0 +Neva,0,458 +Nevada,0,43 +Nevelyn,0,10 +Neville,16,0 +Nevin,44,0 +Newel,11,0 +Newell,67,6 +Newman,46,0 +Newt,11,0 +Newton,169,0 +Neysa,0,10 +Nezzie,0,15 +Nicanor,6,0 +Nicholas,1488,13 +Nicholos,5,0 +Nicie,0,6 +Nick,747,8 +Nickey,7,0 +Nickie,6,13 +Nicklas,5,0 +Nickolas,155,0 +Nicky,9,6 +Nicodemus,6,0 +Nicola,22,0 +Nicolas,96,0 +Nicolasa,0,24 +Nicolena,0,6 +Nicoletta,0,34 +Nicolina,0,28 +Nicolo,9,0 +Nida,0,13 +Niel,7,0 +Niels,7,0 +Nieves,12,17 +Nila,0,73 +Nilah,0,7 +Nilda,0,12 +Nile,30,0 +Niles,24,0 +Nilla,0,5 +Nilo,7,0 +Nils,23,0 +Nim,5,0 +Nima,0,5 +Nimrod,6,0 +Nina,5,1212 +Ninfa,0,33 +Nino,10,0 +Nioma,0,8 +Nishan,6,0 +Nita,0,155 +Nixon,7,0 +Noah,239,0 +Noal,6,0 +Noami,0,13 +Nobie,0,12 +Noble,139,12 +Noboru,30,0 +Nobuko,0,33 +Nobuo,17,0 +Nobuyuki,8,0 +Noda,0,6 +Nodie,0,7 +Noe,16,0 +Noel,196,17 +Noela,0,6 +Noella,0,32 +Noemi,0,11 +Nola,0,320 +Nolan,164,0 +Noland,10,0 +Nolen,36,0 +Nolene,0,9 +Nolia,0,8 +Nolin,5,0 +Nollie,0,6 +Noma,0,46 +Nona,0,271 +Nonie,0,16 +Nonnie,0,10 +Nora,12,1335 +Norabelle,0,9 +Norah,6,27 +Norbert,635,0 +Norberto,18,0 +Norean,0,8 +Noreen,0,106 +Noreene,0,5 +Norena,0,7 +Norene,0,74 +Noretta,0,5 +Norfleet,7,0 +Norine,0,105 +Norinne,0,10 +Noris,9,0 +Norita,0,7 +Norma,18,6542 +Normagene,0,14 +Normajean,0,10 +Normal,8,0 +Normalea,0,5 +Normalee,0,5 +Norman,5045,35 +Normand,154,0 +Normon,15,0 +Norrine,0,11 +Norris,308,15 +Norton,59,0 +Norva,0,10 +Norval,62,0 +Norvan,7,0 +Norvel,15,0 +Norvell,18,0 +Norvelle,0,6 +Norville,10,0 +Norvin,23,0 +Norwin,5,0 +Norwood,71,0 +Nota,0,5 +Nova,12,89 +Novel,8,0 +Noveline,0,7 +Novella,0,148 +Novia,0,8 +Novice,0,6 +Novie,0,9 +Novis,0,8 +Nuel,7,0 +Numa,6,0 +Nuncio,8,0 +Nunzie,5,0 +Nunzio,49,0 +Nyla,0,24 +Nyle,17,0 +Nyra,0,7 +Oakley,38,6 +Oather,19,0 +Obadiah,9,0 +Obe,6,0 +Obed,18,0 +Obediah,7,0 +Obelia,0,6 +Obera,0,9 +Oberia,0,5 +Obert,14,0 +Obie,88,7 +Obra,5,0 +Oby,6,0 +Oc,5,0 +Occie,0,5 +Ocia,0,6 +Ocie,55,91 +Octava,0,5 +Octave,11,0 +Octavia,0,93 +Octaviano,7,0 +Octavio,20,0 +Oda,7,43 +Odas,7,0 +Oddie,13,12 +Odeal,0,13 +Odean,17,21 +Odel,7,0 +Odelia,0,29 +Odell,281,143 +Odella,0,17 +Odelle,5,10 +Oden,9,0 +Odena,0,8 +Odene,0,6 +Odes,23,0 +Odessa,6,462 +Odesser,0,10 +Odessia,0,13 +Odessie,0,19 +Odetta,0,21 +Odette,0,26 +Odie,62,31 +Odies,13,0 +Odile,0,16 +Odilia,0,14 +Odin,7,0 +Odis,182,5 +Odom,5,0 +Odus,22,0 +Ofelia,0,89 +Offie,5,6 +Ofilia,0,10 +Ogden,11,0 +Oiva,6,0 +Okey,25,0 +Okla,0,8 +Ola,16,679 +Olaf,31,0 +Olamae,0,9 +Olan,67,0 +Oland,7,0 +Olander,6,0 +Olar,0,7 +Olav,5,0 +Olavi,5,0 +Olden,15,0 +Ole,20,0 +Olean,0,30 +Oleavia,0,5 +Oleda,0,15 +Oleen,0,10 +Oleeta,0,6 +Olegario,5,0 +Olema,0,6 +Olen,169,7 +Olena,0,10 +Olene,0,60 +Oleta,0,174 +Oletha,0,30 +Olethia,0,7 +Oletta,0,14 +Oleva,0,11 +Olevia,0,41 +Oley,10,0 +Olga,5,1462 +Olgia,0,5 +Olia,0,9 +Olie,10,14 +Olin,147,0 +Olinda,0,9 +Oline,0,10 +Olis,0,5 +Oliva,7,23 +Olive,0,1058 +Olivene,0,6 +Oliver,1172,11 +Olivett,0,7 +Olivette,0,19 +Olivia,6,501 +Olivier,5,0 +Olla,0,15 +Ollen,11,0 +Ollie,292,850 +Ollis,11,0 +Ollive,0,5 +Olof,9,0 +Olon,8,0 +Olvin,6,0 +Olympia,0,43 +Oma,8,251 +Omar,86,0 +Omega,0,30 +Omelia,0,10 +Omer,181,0 +Omia,0,7 +Omie,0,26 +Ommie,0,8 +Ona,6,157 +Onalee,0,25 +Onda,0,5 +Oneal,45,8 +Onecimo,5,0 +Oneda,0,30 +Onedia,0,8 +Oneeda,0,7 +Oneida,0,44 +Oneil,38,5 +Oneita,0,33 +Onella,0,5 +Onesimo,9,0 +Oneta,0,58 +Oney,5,6 +Onida,0,10 +Onie,6,32 +Oniel,6,0 +Onis,12,0 +Onita,0,29 +Onnie,15,24 +Onnolee,0,9 +Onofrio,14,0 +Opal,25,2284 +Opalee,0,5 +Opalene,0,5 +Opaline,0,6 +Opel,0,15 +Opha,0,12 +Ophelia,5,362 +Ophie,0,6 +Opie,10,6 +Ople,0,13 +Ora,129,823 +Orabelle,0,6 +Oradell,0,5 +Orah,0,8 +Oral,77,10 +Oralee,0,14 +Oralia,0,34 +Oran,86,0 +Orange,7,0 +Orazio,9,0 +Orba,0,6 +Orban,6,0 +Orbie,15,0 +Orbin,7,0 +Orby,7,0 +Ord,5,0 +Ordell,7,0 +Orean,0,8 +Oreatha,0,5 +Oree,5,10 +Orel,21,0 +Orelia,0,19 +Orell,5,0 +Oren,128,0 +Orena,0,10 +Orene,0,38 +Oreste,13,0 +Oresto,7,0 +Oreta,0,12 +Oretha,0,28 +Oretta,0,5 +Oria,5,7 +Orian,8,0 +Orie,40,9 +Oriel,0,5 +Orien,7,0 +Orilla,0,5 +Orin,96,0 +Orine,0,14 +Orion,30,0 +Oris,46,10 +Orison,5,0 +Orita,0,5 +Orla,10,9 +Orlan,24,0 +Orland,62,0 +Orlander,9,0 +Orlando,175,0 +Orlean,0,19 +Orlen,14,0 +Orlena,0,13 +Orlene,0,8 +Orley,16,0 +Orlie,10,0 +Orlin,36,0 +Orline,0,6 +Orlo,24,0 +Orlyn,9,0 +Orma,0,24 +Orman,25,0 +Ormand,16,0 +Ormond,14,0 +Orna,0,5 +Ornie,5,0 +Oron,9,0 +Orpha,0,143 +Orphia,0,8 +Orran,5,0 +Orren,17,0 +Orrie,15,9 +Orrin,65,0 +Orris,34,6 +Orson,26,0 +Ortencia,0,5 +Ortha,0,12 +Orton,11,0 +Orva,6,22 +Orval,242,0 +Orvall,8,0 +Orvan,6,0 +Orvel,45,0 +Orvell,6,0 +Orven,7,0 +Orvetta,0,5 +Orvil,61,0 +Orvill,12,0 +Orvilla,0,5 +Orville,1035,9 +Orvin,33,0 +Orvis,32,0 +Orwin,6,0 +Osa,0,7 +Osamu,6,0 +Osbon,5,0 +Osborn,12,0 +Osborne,30,0 +Osburn,6,0 +Osby,7,0 +Oscar,1819,7 +Osceola,0,5 +Osha,0,5 +Osie,21,32 +Osler,5,0 +Osmond,6,0 +Ossie,21,69 +Oswald,100,0 +Oswaldo,7,0 +Oswell,7,0 +Ota,0,5 +Otelia,0,29 +Otella,0,9 +Oteria,0,5 +Otha,102,35 +Othar,5,0 +Othel,27,9 +Othelia,0,12 +Othell,11,5 +Othella,0,20 +Othello,11,5 +Other,5,0 +Othmar,10,0 +Othniel,5,0 +Otho,98,0 +Otie,0,5 +Oties,5,0 +Otila,0,21 +Otilia,0,32 +Otillia,0,6 +Otillie,0,5 +Otis,1011,18 +Otley,5,0 +Ottavio,9,0 +Ottie,17,21 +Ottilia,0,9 +Ottilie,0,12 +Ottis,94,10 +Otto,606,0 +Ouida,0,151 +Ouita,0,7 +Ova,25,38 +Oval,21,5 +Oveda,0,10 +Ovelia,0,6 +Ovella,0,20 +Overton,18,0 +Oveta,0,6 +Ovetta,0,5 +Ovey,5,0 +Ovia,0,7 +Ovid,20,0 +Ovida,0,5 +Ovidio,6,0 +Ovie,12,9 +Ovila,8,0 +Oweda,0,5 +Owen,634,0 +Owens,18,0 +Oza,0,13 +Ozel,5,0 +Ozell,25,46 +Ozella,0,63 +Ozelle,0,17 +Ozie,28,44 +Ozzie,8,12 +Pablo,159,0 +Page,22,5 +Paige,11,5 +Pal,5,0 +Palestine,0,7 +Pallie,0,6 +Palma,0,88 +Palmer,126,7 +Palmina,0,15 +Palmira,0,20 +Palmyra,0,7 +Pamela,0,51 +Pamelia,0,8 +Pancho,5,0 +Pandora,0,8 +Panfilo,7,0 +Pansie,0,5 +Pansy,0,259 +Panzy,0,6 +Para,0,7 +Paralee,0,23 +Parie,0,5 +Paris,36,9 +Park,16,0 +Parke,10,0 +Parker,78,0 +Parks,9,0 +Parlee,0,17 +Parley,13,0 +Parnell,10,0 +Parthenia,0,13 +Pascal,12,0 +Paschal,9,0 +Pasco,20,0 +Pascual,27,0 +Pascuala,0,12 +Pasqual,18,0 +Pasquale,240,0 +Pasqualina,0,20 +Pasqualino,6,0 +Pat,240,158 +Pate,10,0 +Patience,0,21 +Patrecia,0,6 +Patria,0,6 +Patrica,0,41 +Patrice,0,13 +Patricia,18,6957 +Patricio,24,0 +Patrick,1121,8 +Patrina,0,6 +Patrocinia,0,5 +Patsie,0,5 +Patsy,299,520 +Patti,0,45 +Pattie,0,93 +Patton,10,0 +Patty,0,181 +Paul,13339,78 +Paula,0,418 +Pauleen,0,7 +Paulena,0,5 +Paulene,0,31 +Pauletta,0,6 +Paulette,0,31 +Paulina,0,40 +Pauline,10,6722 +Paulino,14,0 +Paulita,0,8 +Paulo,16,0 +Paulyne,0,23 +Pawnee,0,5 +Paxton,7,0 +Payne,7,0 +Payton,16,0 +Paz,5,5 +Peaches,0,6 +Peachie,0,10 +Pearl,85,3635 +Pearla,0,5 +Pearle,0,63 +Pearlean,0,17 +Pearlee,0,10 +Pearlena,0,8 +Pearlene,0,35 +Pearley,8,19 +Pearlie,12,314 +Pearlina,0,6 +Pearline,0,156 +Pearly,8,53 +Pearson,8,0 +Pebble,0,9 +Pecola,0,25 +Pecolia,0,10 +Pedro,433,0 +Peg,0,6 +Pegge,0,6 +Peggie,0,66 +Peggy,7,2074 +Pelagia,0,5 +Pelham,6,0 +Pellegrino,6,0 +Pendleton,8,0 +Penelope,0,65 +Penn,6,0 +Pennie,0,24 +Penny,0,52 +Percell,25,0 +Percival,10,0 +Percy,560,10 +Perfecto,13,0 +Perkins,8,0 +Perl,9,0 +Perla,0,7 +Perlene,0,7 +Perley,24,5 +Perlie,0,17 +Perline,0,7 +Perman,5,0 +Permelia,0,10 +Pernell,7,12 +Pernella,0,8 +Pernetta,0,5 +Pernie,0,10 +Perry,602,28 +Pershing,5,0 +Persis,0,19 +Pervis,10,0 +Pete,628,5 +Peter,3520,17 +Petra,5,187 +Petrina,0,12 +Petrita,0,6 +Petro,7,0 +Petronella,0,11 +Peyton,19,0 +Phala,0,8 +Phares,13,0 +Pheba,0,6 +Phebe,0,33 +Phelix,5,0 +Pheobe,0,13 +Phil,154,7 +Philamena,0,5 +Philander,5,0 +Philbert,5,0 +Philemon,6,0 +Philena,0,7 +Philias,5,0 +Philip,2921,12 +Philippa,0,8 +Philippe,10,0 +Phill,7,0 +Phillip,900,6 +Phillipa,0,6 +Phillips,23,0 +Phillis,6,39 +Philmore,15,0 +Philo,9,0 +Philomena,0,291 +Philomene,0,13 +Philomina,0,5 +Philomine,0,5 +Phoebe,0,197 +Phylis,0,73 +Phyliss,0,29 +Phyllis,18,6267 +Phylliss,0,8 +Pia,0,6 +Piedad,0,9 +Pierce,75,0 +Pierina,0,13 +Pierre,61,0 +Pierson,5,0 +Pietro,27,0 +Pilar,15,38 +Pina,0,8 +Pincus,7,0 +Pink,20,0 +Pinkey,0,12 +Pinkie,0,80 +Pinkney,14,0 +Pio,9,0 +Pita,0,6 +Pius,14,0 +Placida,0,7 +Placido,20,0 +Plato,6,0 +Playford,5,0 +Pleas,21,0 +Pleasant,22,0 +Pledger,6,0 +Ples,12,0 +Pluma,0,10 +Plumer,8,0 +Plummer,10,0 +Plummie,0,5 +Pocahontas,0,6 +Pola,0,16 +Pollie,0,24 +Polly,8,340 +Pollyanna,0,16 +Polo,6,0 +Ponce,6,0 +Ponciano,6,0 +Poppy,0,5 +Porfiria,0,8 +Porfirio,33,0 +Porter,104,0 +Portia,0,33 +Posey,16,0 +Powell,24,0 +Prather,12,0 +Pratt,6,0 +Precious,0,14 +Prentice,35,0 +Prentis,12,0 +Prentiss,27,0 +Prescilla,0,6 +Prescott,9,0 +Presley,20,0 +Press,8,0 +Pressley,8,0 +Preston,414,5 +Price,32,0 +Pricilla,0,12 +Priestly,6,0 +Primo,24,0 +Primrose,0,7 +Primus,5,0 +Prince,96,9 +Princella,0,12 +Princess,0,23 +Printess,5,0 +Printice,6,0 +Printis,5,0 +Priscilla,0,861 +Priscillia,0,6 +Proctor,12,0 +Prosper,9,0 +Prospero,7,0 +Providence,0,29 +Prudence,0,63 +Prudencio,8,0 +Prudie,0,8 +Prudy,0,6 +Pryor,7,0 +Purcell,9,0 +Purl,6,0 +Purnell,9,0 +Purvis,25,0 +Quay,7,0 +Queen,0,249 +Queenester,0,5 +Queenie,0,68 +Quenten,5,0 +Quentin,188,0 +Quention,5,0 +Quenton,11,0 +Quida,0,9 +Quillian,5,0 +Quince,8,0 +Quincy,43,11 +Quinn,9,0 +Quinten,19,0 +Quintin,25,0 +Quinto,9,0 +Quinton,74,0 +Quitman,12,0 +Qunnie,0,6 +Raby,6,0 +Rachael,0,96 +Racheal,0,15 +Rachel,0,1600 +Rachell,0,11 +Rachelle,0,20 +Rada,0,7 +Radford,22,0 +Radie,0,6 +Rae,22,190 +Raeford,18,0 +Rafael,174,0 +Rafaela,0,56 +Rafaelita,0,5 +Rafelita,0,6 +Raffaela,0,27 +Raffaele,7,0 +Raffie,0,6 +Raiford,13,0 +Rainey,8,0 +Raleigh,138,0 +Raliegh,7,0 +Ralph,8766,44 +Ralston,15,0 +Rama,0,7 +Ramah,0,6 +Ramelle,0,6 +Ramiro,50,0 +Ramon,464,8 +Ramona,0,429 +Ramond,27,0 +Ramsey,15,0 +Ran,5,0 +Rance,9,0 +Randal,21,0 +Randall,193,0 +Randel,7,0 +Randell,13,0 +Randle,18,0 +Randolph,265,0 +Randy,5,5 +Rankin,8,0 +Ransom,45,0 +Ranson,5,0 +Raoul,43,0 +Raphael,108,11 +Raphaela,0,5 +Raquel,0,46 +Rastus,7,0 +Raul,307,0 +Rawland,6,0 +Rawleigh,9,0 +Rawlin,6,0 +Ray,3369,122 +Rayburn,35,0 +Raye,6,20 +Rayfield,32,0 +Rayford,81,0 +Rayma,0,15 +Rayman,6,0 +Raymon,127,0 +Raymond,12872,57 +Raymonde,0,5 +Raymund,6,0 +Raymundo,32,0 +Raynard,6,0 +Raynold,13,0 +Raynor,5,0 +Rayola,0,6 +Rea,0,22 +Read,6,0 +Reagan,7,0 +Real,11,0 +Reatha,0,57 +Reathel,0,13 +Reather,0,24 +Reaves,6,0 +Reba,7,773 +Rebbecca,0,10 +Rebeca,0,25 +Rebecca,6,1358 +Rebekah,0,18 +Rebie,0,7 +Reble,0,8 +Reby,0,6 +Rector,7,0 +Red,7,0 +Reda,0,30 +Redmon,5,0 +Redmond,10,0 +Reece,48,0 +Reed,108,0 +Reeda,0,11 +Reese,59,6 +Reeva,0,6 +Reeves,10,0 +Refugia,0,34 +Refugio,69,32 +Refujia,0,5 +Refujio,11,0 +Regena,0,20 +Regenia,0,17 +Reggie,15,5 +Regina,7,1226 +Reginal,7,0 +Reginald,348,0 +Regine,0,5 +Reginia,0,10 +Regino,9,0 +Regis,57,7 +Reid,88,0 +Reida,0,10 +Reiko,0,7 +Reina,0,10 +Reinaldo,7,0 +Reinhard,6,0 +Reinhardt,8,0 +Reinhart,15,0 +Reinhold,32,0 +Reino,27,0 +Reinold,10,0 +Reita,0,22 +Reka,0,5 +Relda,0,13 +Rella,0,26 +Relma,0,6 +Rema,0,20 +Rembert,15,0 +Remedios,0,5 +Remel,0,5 +Remell,0,5 +Remigio,12,0 +Remo,28,0 +Remus,12,0 +Rena,0,521 +Renald,17,0 +Renaldo,7,0 +Renard,6,0 +Renata,0,13 +Renato,19,0 +Rene,185,38 +Renee,0,182 +Renell,0,6 +Renetta,0,11 +Renia,0,10 +Renie,0,9 +Renna,0,6 +Rennie,8,8 +Reno,50,0 +Renzie,5,0 +Renzo,7,0 +Reo,8,0 +Reola,0,30 +Resa,0,5 +Ressie,0,42 +Reta,0,167 +Retha,0,252 +Rethel,0,6 +Retta,0,43 +Reuben,435,5 +Reubin,16,0 +Reuel,11,0 +Reva,0,340 +Revella,0,9 +Rever,0,8 +Revis,12,0 +Rex,589,5 +Rexford,32,0 +Rey,6,0 +Reyes,36,19 +Reymundo,11,0 +Reynalda,0,6 +Reynaldo,63,0 +Reynold,76,0 +Reynolds,27,0 +Rhea,14,155 +Rheba,0,52 +Rheda,0,5 +Rheta,0,26 +Rhetta,0,6 +Rheva,0,6 +Rhoda,0,503 +Rhodes,8,0 +Rhona,0,5 +Rhonda,0,8 +Rial,5,0 +Ricarda,0,16 +Ricardo,114,0 +Ricco,6,0 +Rice,8,0 +Rich,5,0 +Richard,21244,94 +Richardean,0,6 +Richardine,0,6 +Richie,0,10 +Richmond,56,0 +Rick,12,0 +Rickey,5,0 +Rico,5,0 +Rigoberto,5,0 +Rilda,0,15 +Riley,168,0 +Rilla,0,42 +Rina,0,27 +Rinaldo,14,0 +Rino,10,0 +Rio,5,0 +Ripley,6,0 +Rissie,0,11 +Rita,12,5381 +Ritchie,7,0 +Rito,13,0 +Ritta,0,10 +Riva,0,8 +Rivers,10,0 +Rix,5,0 +Rl,5,0 +Roald,6,0 +Rob,14,0 +Robb,5,0 +Robbert,9,0 +Robbie,25,314 +Robby,6,0 +Robbye,0,5 +Robena,0,14 +Robert,60800,299 +Roberta,12,1772 +Robertha,0,14 +Robertine,0,10 +Roberto,241,0 +Roberts,13,0 +Robertson,5,0 +Robey,8,0 +Robie,11,9 +Robin,42,30 +Robina,0,10 +Robinson,12,0 +Robley,8,0 +Robt,23,0 +Roby,29,8 +Robyn,0,5 +Rocco,360,0 +Rochelle,0,36 +Rochester,11,0 +Rock,7,0 +Rockey,5,0 +Rockwell,5,0 +Rocky,14,0 +Roddy,8,0 +Rodell,11,0 +Roderic,7,0 +Roderick,140,0 +Rodger,76,0 +Rodgers,14,0 +Rodman,25,0 +Rodney,397,0 +Rodolfo,126,0 +Rodolph,8,0 +Rodolphe,13,0 +Rodric,5,0 +Rodrick,6,0 +Rodrigo,16,0 +Roe,12,5 +Roena,0,23 +Roenia,0,5 +Rogelio,27,0 +Rogene,0,15 +Roger,2054,14 +Rogerio,9,0 +Rogers,99,0 +Rojean,0,7 +Rojelio,12,0 +Rolan,10,0 +Roland,1822,12 +Rolande,0,25 +Rolando,10,0 +Rolen,7,0 +Rolena,0,6 +Rolene,0,5 +Rolf,23,0 +Rolfe,9,0 +Rolla,28,0 +Rolland,231,0 +Rollande,0,7 +Rollen,8,0 +Rollie,45,8 +Rollin,125,0 +Rollo,28,0 +Roma,12,157 +Romain,10,0 +Romaine,10,74 +Romalda,0,5 +Roman,247,0 +Romana,0,35 +Romayne,0,38 +Rome,13,0 +Romelia,0,22 +Romelle,0,5 +Romeo,114,0 +Romer,6,0 +Rometta,0,6 +Romey,8,0 +Romie,34,9 +Romilda,0,14 +Rommie,6,0 +Romola,0,5 +Romolo,14,0 +Romona,0,22 +Romuald,12,0 +Romulus,8,0 +Rona,0,14 +Ronald,1360,5 +Ronda,7,0 +Rondal,7,0 +Ronie,0,5 +Ronnie,23,30 +Roosevelt,403,0 +Roque,11,0 +Rosa,15,2148 +Rosabel,0,8 +Rosabell,0,10 +Rosabelle,0,38 +Rosaire,21,0 +Rosala,0,5 +Rosalea,0,11 +Rosalee,0,152 +Rosaleen,0,17 +Rosalene,0,13 +Rosalia,0,81 +Rosalie,0,1153 +Rosalin,0,7 +Rosalina,0,16 +Rosalind,0,243 +Rosalinda,0,6 +Rosaline,0,86 +Rosalio,29,0 +Rosalyn,0,189 +Rosamae,0,10 +Rosamary,0,9 +Rosamond,0,92 +Rosana,0,12 +Rosann,0,16 +Rosanna,0,94 +Rosanne,0,27 +Rosaria,0,53 +Rosario,116,40 +Rosary,0,5 +Rosaura,0,6 +Rosco,35,0 +Roscoe,443,0 +Rose,26,8479 +Rosea,0,6 +Roseann,0,58 +Roseanna,0,44 +Roseanne,0,23 +Rosebud,0,24 +Roselee,0,26 +Roselene,0,8 +Roselia,0,5 +Roselie,0,8 +Roselind,0,10 +Roseline,0,21 +Rosell,0,5 +Rosella,0,435 +Roselle,0,29 +Rosellen,0,14 +Roselyn,0,100 +Rosemae,0,9 +Rosemarie,0,296 +Rosemary,5,2734 +Rosemond,0,25 +Rosena,0,38 +Rosenda,0,10 +Rosendo,30,0 +Rosetta,0,442 +Rosette,0,8 +Rosevelt,64,0 +Rosey,0,16 +Rosezella,0,12 +Rosia,0,56 +Rosie,7,1482 +Rosina,0,130 +Rosine,0,15 +Rosita,0,43 +Roslin,0,6 +Roslyn,0,255 +Ross,588,7 +Rosser,6,0 +Rossetta,0,5 +Rossie,13,37 +Roswell,25,0 +Rosy,0,18 +Rotha,0,7 +Rovena,0,6 +Rowan,6,0 +Rowell,5,0 +Rowena,0,165 +Rowene,0,6 +Rowland,83,0 +Roxana,0,13 +Roxanna,0,21 +Roxie,10,278 +Roxy,0,12 +Roy,6557,46 +Royal,214,0 +Royce,233,17 +Royden,9,0 +Roye,5,0 +Royston,8,0 +Rozel,5,0 +Rozell,15,11 +Rozella,0,71 +Rozelle,0,13 +Rozellia,0,5 +Rozena,0,13 +Rozina,0,5 +Rubbie,0,21 +Rubby,0,8 +Rube,13,0 +Rubell,0,8 +Ruben,398,0 +Rubena,0,6 +Rubert,19,0 +Ruberta,0,8 +Rubia,0,5 +Rubie,0,121 +Rubin,128,0 +Ruble,10,8 +Ruby,66,8406 +Rubye,0,226 +Rubylee,0,7 +Rudean,0,6 +Rudell,0,12 +Rudine,0,10 +Rudolf,49,0 +Rudolfo,12,0 +Rudolph,1229,9 +Rudolpho,6,0 +Rudy,207,11 +Rue,7,7 +Rueben,62,0 +Ruel,47,0 +Ruffin,14,0 +Ruffus,26,0 +Rufina,0,31 +Rufino,10,0 +Ruford,5,0 +Rufus,709,8 +Ruie,0,12 +Rulon,20,0 +Rumalda,0,7 +Rumaldo,7,0 +Runell,0,9 +Runelle,0,6 +Runette,0,7 +Rupert,108,0 +Ruperto,10,0 +Rush,31,0 +Rushia,0,6 +Rushie,0,6 +Russ,11,0 +Russel,327,7 +Russell,3947,23 +Ruth,71,23600 +Rutha,0,64 +Ruthann,0,31 +Ruthanna,0,17 +Ruthanne,0,16 +Ruthe,0,122 +Ruthell,0,9 +Ruthella,0,12 +Ruthellen,0,6 +Ruther,0,27 +Rutherford,21,0 +Ruthetta,0,5 +Ruthia,0,7 +Ruthie,0,374 +Ruthmary,0,7 +Ruthy,0,16 +Rutledge,5,0 +Ryan,7,0 +Ryland,17,0 +Sabas,7,0 +Sabatino,9,0 +Sabina,0,74 +Sabino,14,0 +Sabra,0,27 +Saburo,24,0 +Sachiko,0,23 +Sachiyo,0,5 +Sada,0,7 +Sadako,0,25 +Sadao,13,0 +Saddie,0,19 +Sadie,8,1120 +Sadye,0,15 +Saint,12,0 +Sakae,7,7 +Sakaye,0,6 +Sakiko,0,6 +Sal,28,0 +Salbador,6,0 +Salem,8,0 +Salena,0,10 +Salina,0,8 +Sallee,0,5 +Salley,0,6 +Sallie,0,783 +Sally,8,1145 +Sallye,0,15 +Saloma,0,8 +Salome,16,19 +Salomon,19,0 +Salvador,283,0 +Salvadore,35,0 +Salvator,28,0 +Salvatore,1025,0 +Salvatrice,0,12 +Sam,2123,30 +Samantha,0,15 +Sambo,7,0 +Samella,0,18 +Sameul,6,0 +Samie,20,0 +Sammie,275,121 +Sammuel,12,0 +Sammy,163,23 +Sammye,0,15 +Sampson,30,0 +Samson,17,0 +Samual,30,0 +Samuel,4592,23 +Samuella,0,5 +Samul,10,0 +Samule,7,0 +San,5,12 +Sana,0,5 +Sander,6,0 +Sanders,27,0 +Sandford,9,0 +Sandor,7,0 +Sandra,0,145 +Sandy,74,10 +Sanford,265,0 +Sanjuana,0,10 +Santa,0,88 +Santana,9,0 +Santford,7,0 +Santiaga,0,7 +Santiago,121,0 +Santina,0,58 +Santino,9,0 +Santo,90,0 +Santos,111,100 +Saphronia,0,6 +Sara,0,2313 +Sarabelle,0,8 +Sarafina,0,5 +Sarah,28,5045 +Sarajane,0,8 +Saralee,0,11 +Saralyn,0,5 +Saramae,0,5 +Sarina,0,6 +Sarita,0,8 +Sarkis,16,0 +Sarrah,0,19 +Satoru,14,0 +Satoshi,12,0 +Satsuki,0,6 +Saturnina,0,5 +Saturnino,12,0 +Saul,213,0 +Saunders,5,0 +Savanah,0,9 +Savannah,0,88 +Saveria,0,5 +Saverio,38,0 +Savilla,0,12 +Savino,7,0 +Sayoko,0,7 +Schuyler,15,0 +Scipio,6,0 +Scott,206,0 +Scottie,10,11 +Scotty,8,0 +Seaborn,10,0 +Searcy,11,0 +Sebastian,137,0 +Sebastiana,0,12 +Sebastiano,8,0 +Sebert,9,0 +Sebron,9,0 +Secundino,9,0 +Sedalia,0,12 +Sedonia,0,11 +Sedric,5,0 +Seeley,6,0 +Seena,0,22 +Seferina,0,10 +Seferino,16,0 +Seichi,10,0 +Seiichi,6,0 +Seiji,11,0 +Seiko,7,0 +Selby,17,0 +Selda,0,6 +Selden,15,0 +Seldon,14,0 +Seledonio,5,0 +Selena,0,37 +Selestino,7,0 +Selia,0,7 +Selig,12,0 +Selina,0,34 +Selma,7,735 +Selmer,23,0 +Selso,6,0 +Selvin,9,0 +Selwyn,21,5 +Sena,0,19 +Senaida,0,15 +Senaido,8,0 +Senia,0,5 +Senie,0,6 +Sennie,0,8 +Senon,9,0 +Senora,0,14 +Senovia,0,7 +Serafin,10,0 +Serafina,0,34 +Serafine,0,5 +Serafino,14,0 +Serapio,5,0 +Serena,0,35 +Seretha,0,5 +Serge,9,0 +Sergio,11,0 +Servando,10,0 +Seth,83,0 +Setsuko,0,14 +Severa,0,14 +Severiano,8,0 +Severin,9,0 +Severino,5,0 +Severn,9,0 +Severo,24,0 +Severt,7,0 +Seward,21,0 +Sewell,22,0 +Sewilla,0,5 +Seymore,14,0 +Seymour,786,5 +Shade,7,0 +Shadrach,5,0 +Shafter,5,0 +Shannon,19,10 +Sharlene,0,7 +Sharon,6,57 +Shedrick,11,0 +Sheila,0,162 +Sheilah,0,5 +Shelby,110,7 +Sheldon,311,0 +Shelia,0,15 +Shella,0,8 +Shelley,16,6 +Shellie,17,8 +Shelly,32,9 +Shelton,98,0 +Shepard,10,0 +Shepherd,7,0 +Sheppard,11,0 +Sheridan,29,0 +Sherley,6,9 +Sherman,527,0 +Shermon,7,0 +Sherrel,7,0 +Sherrell,5,0 +Sherri,0,6 +Sherrie,0,5 +Sherrill,25,0 +Sherrod,7,0 +Sherry,9,47 +Sherwin,27,0 +Sherwood,105,0 +Sheryl,0,6 +Shiela,0,13 +Shields,9,0 +Shigeko,0,24 +Shigeo,29,0 +Shigeru,31,0 +Shinichi,5,0 +Shirl,8,0 +Shirle,0,5 +Shirlee,0,194 +Shirlene,0,6 +Shirley,226,9489 +Shirleyann,0,5 +Shirlie,0,43 +Shirly,0,11 +Shiro,12,0 +Shizue,0,38 +Shizuka,0,5 +Shizuko,0,42 +Shizuo,11,0 +Shizuye,0,5 +Shoichi,7,0 +Shoji,8,0 +Shuford,10,0 +Shuichi,5,0 +Sible,0,6 +Sibyl,0,100 +Sid,29,0 +Sidney,1502,58 +Sidonia,0,8 +Sie,12,0 +Siegfried,12,0 +Sigifredo,5,0 +Sigismund,6,0 +Sigmond,6,0 +Sigmund,72,0 +Signa,0,6 +Signe,0,25 +Signora,0,5 +Sigrid,0,22 +Sigurd,10,0 +Silas,213,5 +Silva,0,12 +Silver,7,6 +Silveria,0,5 +Silverio,11,0 +Silvester,20,0 +Silvestre,18,0 +Silvestro,5,0 +Silvia,0,28 +Silvina,0,5 +Silvio,82,0 +Sim,29,0 +Simeon,38,0 +Simmie,20,5 +Simon,330,0 +Simona,0,32 +Simone,0,43 +Simonne,0,11 +Simpson,16,0 +Sims,7,0 +Sina,0,13 +Sinclair,29,0 +Sinda,0,5 +Singleton,6,0 +Sister,0,6 +Sisto,7,0 +Sixto,6,0 +Sloan,5,0 +Smiley,10,0 +Smith,56,0 +Smithie,0,5 +Snowden,7,0 +Socoro,0,5 +Socorro,10,124 +Socrates,10,0 +Sofia,0,68 +Sofie,0,7 +Soila,0,8 +Sol,198,0 +Sola,0,5 +Soledad,0,56 +Solidad,0,6 +Sollie,6,0 +Solly,6,0 +Soloman,19,0 +Solomon,271,0 +Solon,23,0 +Solveig,0,9 +Son,6,0 +Sona,0,6 +Sondra,0,5 +Sonia,0,97 +Sonja,0,20 +Sonnie,10,0 +Sonny,28,0 +Sonora,0,8 +Sonya,0,26 +Soon,0,6 +Sophia,0,357 +Sophie,6,1372 +Sophronia,0,17 +Soren,7,0 +Sostenes,9,0 +Sotero,13,0 +Spence,8,0 +Spencer,188,0 +Spero,12,0 +Spiro,17,0 +Spurgeon,36,0 +Square,8,0 +Squire,12,0 +Stacey,10,0 +Stachia,0,7 +Stacia,0,29 +Stacie,0,6 +Stacy,44,11 +Stafford,29,0 +Stan,17,0 +Standley,6,0 +Stanford,93,0 +Stanislaus,24,0 +Stanislava,0,5 +Stanislaw,6,0 +Stanislawa,0,9 +Stanley,5187,29 +Stanly,12,0 +Stanton,91,0 +Stanwood,6,0 +Starlin,8,0 +Starling,15,0 +Stasia,0,53 +Statia,0,6 +Staton,5,0 +Stclair,10,0 +Steele,5,0 +Stefan,12,0 +Stefania,0,17 +Stefanie,0,13 +Steffie,0,21 +Stella,6,2752 +Stellar,0,8 +Stelle,0,8 +Stephan,12,0 +Stephana,0,5 +Stephania,0,38 +Stephanie,0,225 +Stephany,0,8 +Stephen,1636,7 +Stephie,0,16 +Sterlin,5,0 +Sterling,280,0 +Stevan,9,0 +Steve,1219,8 +Steven,321,0 +Stevens,8,0 +Stevenson,6,0 +Stevie,5,0 +Steward,21,0 +Stewart,293,0 +Stiles,11,0 +Stillman,13,0 +Stirling,6,0 +Stokes,6,0 +Stone,6,0 +Stonewall,14,0 +Stoney,5,0 +Stoy,7,0 +Stratford,5,0 +Stratton,8,0 +Stuart,355,5 +Suda,0,6 +Sudie,0,85 +Sue,0,644 +Sueko,0,10 +Suella,0,7 +Sueo,5,0 +Sula,0,23 +Sulema,0,7 +Sullivan,15,0 +Sulo,6,0 +Sumi,0,9 +Sumie,0,15 +Sumiko,0,28 +Sumiye,0,9 +Sumner,61,0 +Sunday,0,6 +Sunny,12,18 +Sunshine,0,14 +Susa,0,5 +Susan,0,832 +Susana,0,48 +Susann,0,14 +Susanna,0,92 +Susannah,0,13 +Susanne,0,59 +Susano,8,0 +Susie,8,1275 +Sussie,0,10 +Susumu,21,0 +Suzan,0,7 +Suzanna,0,18 +Suzanne,0,405 +Suzette,0,14 +Suzie,0,7 +Sven,10,0 +Svend,5,0 +Swan,5,0 +Swannie,0,8 +Swanson,6,0 +Sweetie,0,9 +Swinton,5,0 +Sybel,0,10 +Sybil,5,479 +Sybilla,0,8 +Syble,0,195 +Sybol,0,6 +Sydell,0,8 +Sydelle,0,22 +Sydney,127,33 +Sylva,0,25 +Sylvan,73,0 +Sylvania,0,8 +Sylvanus,7,0 +Sylvene,0,5 +Sylvesta,0,7 +Sylvester,708,18 +Sylvia,7,2757 +Sylvin,5,0 +Sylvio,15,0 +Syril,0,7 +Tabitha,0,10 +Tad,5,0 +Tadao,15,0 +Tadashi,31,0 +Tadeus,6,0 +Tadeusz,8,0 +Taeko,0,8 +Tai,5,0 +Takako,0,7 +Takao,10,0 +Takashi,32,0 +Takeko,0,8 +Takeo,30,0 +Takeshi,42,0 +Takumi,5,0 +Talbert,15,0 +Talitha,0,5 +Tallie,5,0 +Talma,0,11 +Talmadge,123,7 +Talmage,40,0 +Tam,5,0 +Tamiko,0,8 +Tamotsu,12,0 +Tana,0,7 +Tandy,6,0 +Tanner,5,0 +Tanya,0,11 +Tassie,0,5 +Tate,5,0 +Tatiana,0,5 +Tatsuo,6,0 +Tayeko,0,5 +Taylor,124,0 +Tecora,0,8 +Ted,610,11 +Teddie,18,5 +Teddy,292,15 +Tedford,5,0 +Tee,6,0 +Tekla,0,5 +Telesforo,5,0 +Telford,10,0 +Tellis,7,0 +Tempa,0,7 +Tempest,0,5 +Tempie,0,33 +Temple,11,8 +Tena,0,48 +Tennessee,0,7 +Tennie,0,57 +Tennis,9,0 +Teodora,0,18 +Teodoro,36,0 +Teofil,6,0 +Teofila,0,7 +Teofilo,14,0 +Teola,0,7 +Tera,0,6 +Terence,37,0 +Teresa,5,786 +Terese,0,17 +Teresia,0,5 +Teresita,0,6 +Tereso,5,0 +Teressa,0,9 +Terral,6,0 +Terrance,19,0 +Terrel,9,0 +Terrell,46,0 +Terrence,35,0 +Terri,0,5 +Terrill,5,0 +Terry,140,116 +Teruko,0,26 +Teruo,12,0 +Tess,0,15 +Tessa,0,5 +Tessie,0,201 +Tetsuo,26,0 +Tetsuro,6,0 +Tex,26,0 +Texanna,0,8 +Texas,7,0 +Texie,0,10 +Thad,61,0 +Thaddaeus,6,0 +Thaddeaus,5,0 +Thaddeus,275,0 +Thadeus,15,0 +Thadius,5,0 +Thais,0,25 +Thalia,0,43 +Thane,8,0 +Tharon,0,17 +Thayer,12,0 +Thayne,11,0 +Thea,5,25 +Theada,0,6 +Theadora,0,12 +Theadore,83,0 +Thecla,0,12 +Theda,0,198 +Thedford,7,0 +Thedis,0,6 +Thedora,0,6 +Thedore,25,0 +Thekla,0,5 +Thelbert,29,0 +Thelda,0,19 +Thell,5,0 +Thella,0,5 +Thelma,45,7316 +Thelmer,8,0 +Thena,0,10 +Theo,97,111 +Theodis,16,0 +Theodor,13,0 +Theodora,0,177 +Theodore,3225,15 +Theodosia,0,32 +Theodus,6,0 +Theola,0,82 +Theon,5,0 +Theona,0,10 +Theone,0,11 +Theophil,7,0 +Theophile,6,0 +Theophilus,30,0 +Theoplis,8,0 +Theora,0,20 +Theordore,6,0 +Theotis,9,0 +Thera,0,20 +Theran,6,0 +Theresa,11,3021 +Therese,0,289 +Theresia,0,22 +Theressa,0,26 +Therma,0,6 +Therman,49,0 +Thermon,25,0 +Theron,153,0 +Thersa,0,9 +Theta,0,8 +Thetis,0,7 +Thirl,5,0 +Thomas,16555,85 +Thomasa,0,11 +Thomasina,0,26 +Thomasine,0,29 +Thomes,12,0 +Thomos,7,0 +Thompson,28,0 +Thor,13,0 +Thora,0,44 +Thornton,67,0 +Thorvald,6,0 +Thos,8,0 +Threasa,0,6 +Thresa,0,24 +Thressa,0,14 +Thula,0,10 +Thure,5,0 +Thurl,16,0 +Thurley,0,6 +Thurlow,20,0 +Thurma,0,5 +Thurman,314,0 +Thurmon,27,0 +Thurmond,19,0 +Thursa,0,9 +Thurston,67,0 +Thurza,0,6 +Thyra,0,17 +Tiburcia,0,6 +Tiburcio,16,0 +Tice,6,0 +Tilda,0,35 +Tilden,11,0 +Tildon,7,0 +Tilford,16,0 +Tilghman,7,0 +Tillie,0,297 +Tillman,51,0 +Tillmon,6,0 +Tilman,22,0 +Tilmon,13,0 +Tilton,9,0 +Tim,62,0 +Timotea,0,7 +Timoteo,15,0 +Timothy,322,0 +Tina,0,143 +Tiney,0,6 +Tinnie,0,20 +Tino,6,0 +Tiny,5,53 +Tiodoro,5,0 +Tip,6,0 +Tishie,0,6 +Tito,10,0 +Titus,26,0 +Tobe,11,0 +Tobey,5,0 +Tobias,18,0 +Toby,23,59 +Tod,6,0 +Todd,33,0 +Toivo,13,0 +Tokie,0,5 +Tokiko,0,13 +Tokuo,5,0 +Tolbert,16,0 +Toliver,5,0 +Tollie,11,0 +Tom,1097,14 +Tomas,143,0 +Tomasa,0,72 +Tomasita,0,18 +Tome,5,0 +Tomi,0,5 +Tomie,26,23 +Tomiko,0,28 +Tomio,14,0 +Tommie,416,310 +Tommy,568,39 +Tommye,0,25 +Tomoe,0,6 +Tomoko,0,7 +Tona,0,5 +Toney,44,0 +Toni,5,64 +Tonia,0,6 +Tonie,0,5 +Tonita,0,5 +Tonnie,5,0 +Tony,1034,25 +Toribio,11,0 +Torrence,9,0 +Toru,6,0 +Tosca,0,10 +Toshiaki,5,0 +Toshie,0,8 +Toshiko,0,45 +Toshio,41,0 +Toshiro,5,0 +Toshiyuki,7,0 +Toula,0,9 +Townsend,7,0 +Toxie,5,0 +Toy,24,9 +Toye,0,6 +Toyoko,0,19 +Tracey,8,0 +Tracie,0,6 +Tracy,63,13 +Trannie,0,6 +Tranquilino,7,0 +Travers,8,0 +Travis,246,12 +Trecia,0,7 +Trella,0,9 +Trellis,0,6 +Trena,0,6 +Trenna,0,5 +Trent,8,0 +Trenton,16,0 +Tresa,0,15 +Tressa,0,46 +Tressie,0,103 +Treva,0,141 +Trevor,12,0 +Trilba,0,6 +Trilby,0,10 +Trina,0,8 +Trine,0,11 +Trinidad,60,87 +Trinnie,0,5 +Trino,6,0 +Trixie,0,12 +Troy,559,14 +Troyce,5,0 +Truby,0,5 +Trudie,0,38 +Trudy,0,40 +True,6,7 +Trueman,13,0 +Truett,27,0 +Truitt,6,0 +Trula,0,53 +Truman,240,0 +Trumon,7,0 +Trygve,5,0 +Tsugio,11,0 +Tsuneko,0,5 +Tsuneo,9,0 +Tsuruko,0,11 +Tsutomu,31,0 +Tsuyako,0,7 +Tsuyoshi,5,0 +Tucker,13,0 +Tula,0,37 +Tullio,9,0 +Tully,10,0 +Tunis,9,0 +Turner,46,0 +Twanda,0,5 +Twila,0,160 +Twilla,0,12 +Twyla,0,54 +Twylla,0,5 +Twyman,5,0 +Tyler,22,0 +Tyre,9,0 +Tyree,14,0 +Tyrone,10,0 +Tyrus,10,0 +Tyson,7,0 +Ubaldo,14,0 +Udell,15,7 +Uel,5,0 +Ugo,9,0 +Ula,8,56 +Uldean,0,5 +Uldine,0,12 +Uless,8,0 +Ulice,7,0 +Ulis,10,0 +Ulla,0,5 +Ulmer,6,0 +Ulric,7,0 +Ulrich,5,0 +Ulus,13,0 +Ulyess,5,0 +Ulyesses,6,0 +Ulys,7,0 +Ulysee,10,0 +Ulysees,6,0 +Ulyses,20,0 +Ulysess,8,0 +Ulyss,6,0 +Ulysse,15,0 +Ulysses,177,0 +Ulyssess,5,0 +Umberto,19,0 +Una,0,171 +Undine,0,10 +Unice,0,7 +Unknown,7,10 +Upshur,5,0 +Ura,5,12 +Ural,12,0 +Urbain,8,0 +Urban,104,0 +Urbano,8,0 +Uriah,8,0 +Uriel,8,0 +Ursa,0,7 +Ursula,0,152 +Ursuline,0,5 +Utah,12,0 +Uva,0,5 +Vachel,5,0 +Vada,0,200 +Vaden,8,0 +Vader,0,6 +Vadie,0,13 +Vadis,0,5 +Vadna,0,9 +Vahan,7,0 +Val,37,9 +Valaria,0,5 +Valarie,0,10 +Valborg,0,11 +Valda,0,34 +Valdemar,6,0 +Valeda,0,13 +Valene,0,5 +Valente,13,0 +Valentin,28,0 +Valentina,0,29 +Valentine,126,22 +Valentino,32,0 +Valera,0,23 +Valeria,0,212 +Valerian,12,0 +Valerie,0,172 +Valerio,7,0 +Valeta,0,14 +Valetta,0,12 +Valgene,0,6 +Valjean,0,7 +Valla,0,5 +Valley,6,0 +Vallie,5,57 +Valma,0,11 +Valmore,8,0 +Valora,0,10 +Valorie,0,9 +Valrie,0,10 +Valton,6,0 +Van,234,5 +Vana,0,5 +Vance,152,0 +Vancil,6,0 +Vanda,0,21 +Vandella,0,5 +Vanderbilt,5,0 +Vane,9,0 +Vaneta,0,9 +Vanetta,0,11 +Vangie,0,15 +Vanilla,0,12 +Vanita,0,20 +Vann,5,0 +Vannie,5,18 +Vara,0,18 +Varie,0,6 +Varina,0,5 +Varnell,8,0 +Vasco,11,0 +Vashti,0,29 +Vasil,8,0 +Vasiliki,0,5 +Vassie,0,23 +Vasta,0,6 +Vaudie,0,8 +Vaudine,0,7 +Vaudis,0,5 +Vaughan,12,0 +Vaughn,116,8 +Vear,0,6 +Vearl,15,0 +Veatrice,0,12 +Veda,0,167 +Vedia,0,5 +Veikko,5,0 +Vela,0,21 +Velda,0,155 +Veldia,0,5 +Veldon,8,0 +Veleria,0,5 +Velia,0,45 +Vella,0,53 +Velma,20,2272 +Velmar,0,6 +Velmer,6,10 +Velna,0,18 +Velora,0,18 +Velta,0,35 +Velton,7,0 +Velva,0,102 +Velvia,0,5 +Velvie,0,10 +Vena,0,71 +Venancio,5,0 +Venard,6,0 +Veneda,0,10 +Veneta,0,19 +Venetia,0,12 +Venetta,0,17 +Venice,9,33 +Venida,0,6 +Venie,0,5 +Venita,0,60 +Venna,0,19 +Vennetta,0,5 +Vennie,0,37 +Venola,0,7 +Venora,0,8 +Venson,12,0 +Ventura,22,0 +Venus,0,36 +Veola,0,38 +Veona,0,8 +Veora,0,12 +Vera,15,3476 +Verabelle,0,5 +Veral,6,0 +Verba,0,25 +Verbie,0,10 +Verble,0,5 +Verbon,7,0 +Vercie,0,7 +Verda,0,243 +Verdean,0,7 +Verdell,12,45 +Verdella,0,10 +Verdelle,0,11 +Verdene,0,7 +Verdia,0,23 +Verdie,7,72 +Verdine,0,7 +Verdon,8,0 +Vere,12,5 +Verena,0,29 +Vergene,0,8 +Vergia,0,12 +Vergie,5,125 +Vergil,47,0 +Verginia,0,6 +Veria,0,16 +Veril,5,0 +Verina,0,5 +Verl,68,8 +Verla,0,162 +Verlaine,0,8 +Verlan,6,0 +Verland,7,0 +Verle,47,25 +Verlean,0,9 +Verlee,0,16 +Verlena,0,8 +Verlene,0,31 +Verlia,0,11 +Verlie,7,73 +Verlin,74,19 +Verline,0,37 +Verlon,33,12 +Verlyn,29,6 +Verma,0,31 +Vermell,0,19 +Vermelle,0,10 +Vermon,8,0 +Vern,243,17 +Verna,12,1661 +Vernadine,0,5 +Vernal,37,9 +Vernalee,0,6 +Vernan,5,0 +Vernard,41,0 +Verne,144,17 +Verneal,0,8 +Verneda,0,23 +Verneice,0,13 +Verneil,0,8 +Vernel,7,0 +Vernell,25,178 +Vernelle,0,69 +Vernen,7,0 +Verner,44,11 +Vernese,0,6 +Vernet,5,0 +Verneta,0,10 +Vernett,0,5 +Vernetta,0,49 +Vernette,0,16 +Vernia,0,34 +Vernice,18,176 +Vernie,81,85 +Verniece,0,13 +Vernis,12,9 +Vernita,0,30 +Vernon,3008,53 +Vernor,11,0 +Veron,0,5 +Verona,0,91 +Verone,0,6 +Veronica,0,954 +Versa,0,20 +Versia,0,6 +Versie,5,69 +Verta,0,33 +Vertell,0,5 +Vertice,0,6 +Vertie,0,45 +Vertis,8,8 +Veryl,29,13 +Vesper,5,6 +Vessie,0,11 +Vesta,0,194 +Vestal,10,14 +Vester,74,21 +Veta,0,57 +Veto,12,0 +Vetra,0,5 +Vetrice,0,5 +Vetta,0,9 +Veva,0,29 +Vianna,0,5 +Vic,9,0 +Vicenta,0,36 +Vicente,92,0 +Vicie,0,10 +Vick,10,0 +Vickey,0,8 +Vicki,0,22 +Vickie,0,31 +Vicky,0,25 +Victor,2189,24 +Victora,0,6 +Victoria,0,1102 +Victoriana,0,6 +Victoriano,13,0 +Victorine,0,14 +Victorino,5,0 +Victory,5,9 +Vicy,0,5 +Vida,0,164 +Vidal,15,0 +Vienna,0,10 +Vieno,0,10 +Vietta,0,8 +Viginia,0,5 +Vila,0,18 +Vilas,20,0 +Vilda,0,9 +Villa,0,11 +Vilma,0,33 +Vina,0,94 +Vince,13,0 +Vincent,2638,8 +Vincenta,0,7 +Vincente,7,0 +Vincentina,0,8 +Vincenza,0,115 +Vincenzina,0,13 +Vincenzo,17,0 +Vincie,0,6 +Vineta,0,6 +Vinetta,0,11 +Viney,0,13 +Vinia,0,5 +Vinie,0,9 +Vinita,0,26 +Vinnie,0,61 +Vinson,16,0 +Vinton,17,0 +Viola,11,3577 +Violanda,0,7 +Violet,7,3224 +Violett,0,5 +Violetta,0,22 +Violette,0,87 +Violia,0,5 +Viona,0,15 +Vira,0,24 +Virda,0,6 +Virden,6,0 +Virdie,0,10 +Virgal,6,0 +Virgel,44,0 +Virgene,0,18 +Virgia,0,37 +Virgie,18,526 +Virgil,1627,36 +Virgilene,0,6 +Virgilia,0,6 +Virgiline,0,7 +Virgilio,11,0 +Virgin,5,5 +Virgina,0,27 +Virginia,46,18620 +Virginialee,0,5 +Virginio,6,0 +Virgle,92,0 +Viriginia,0,5 +Virl,6,0 +Virla,0,7 +Virtie,0,6 +Vista,0,9 +Vita,0,68 +Vito,287,0 +Vittorio,6,0 +Viva,0,74 +Vivan,0,6 +Vivia,0,5 +Vivian,53,3850 +Viviana,0,5 +Viviane,0,8 +Viviann,0,5 +Vivianne,0,6 +Vivien,9,110 +Vivienne,0,65 +Vivion,0,6 +Vivyan,0,5 +Vladimir,14,0 +Vlasta,0,22 +Void,5,0 +Voilet,0,6 +Vola,0,26 +Vollie,9,0 +Volney,14,0 +Von,32,0 +Vona,0,20 +Vonceil,0,18 +Voncile,0,35 +Voncille,0,9 +Vonda,0,70 +Vondell,0,5 +Vonita,0,5 +Vonna,0,14 +Vonnie,8,41 +Voris,8,0 +Voyd,7,0 +Voyle,5,0 +Vyrl,5,0 +Waddell,20,0 +Wade,385,6 +Wadell,9,0 +Wadie,5,0 +Wahneta,0,6 +Wahnetta,0,6 +Waino,13,0 +Waitman,9,0 +Walda,0,5 +Waldean,0,6 +Waldemar,45,0 +Walden,22,0 +Waldine,0,7 +Waldo,163,0 +Waldon,23,0 +Walfred,13,0 +Walker,113,0 +Wallace,2283,18 +Waller,10,0 +Wallice,8,0 +Wallie,7,0 +Wallis,12,0 +Wally,26,0 +Walt,13,0 +Walter,12696,86 +Walterine,0,16 +Walton,111,0 +Wana,0,12 +Wanda,9,3735 +Wandalee,0,9 +Waneda,0,11 +Waneta,0,87 +Wanetta,0,31 +Wanita,0,71 +Wanna,0,21 +Ward,276,0 +Wardell,56,0 +Warden,9,0 +Warner,125,0 +Warren,3582,25 +Warrene,0,5 +Warrick,5,0 +Wash,18,0 +Washington,46,0 +Wasil,9,0 +Wasyl,7,0 +Watson,63,0 +Watt,10,0 +Waunda,0,6 +Wauneta,0,23 +Waunetta,0,9 +Waunita,0,35 +Wava,0,60 +Wave,0,8 +Waveline,0,6 +Waverly,40,0 +Wavie,0,6 +Way,6,0 +Waylan,6,0 +Wayland,57,0 +Waylon,14,0 +Wayman,49,0 +Waymon,67,0 +Waymond,18,0 +Wayne,2730,23 +Wealthy,0,9 +Weaver,11,0 +Webb,19,0 +Webber,6,0 +Weber,5,0 +Webster,86,0 +Welborn,9,0 +Welby,10,0 +Welcome,11,0 +Welda,0,5 +Weldon,273,10 +Welford,8,0 +Wellington,53,0 +Wells,22,0 +Welma,0,8 +Weltha,0,10 +Welton,67,0 +Wendal,6,0 +Wendall,28,0 +Wendel,26,0 +Wendell,633,0 +Wendle,5,0 +Wenona,0,19 +Wenonah,0,14 +Wentworth,5,0 +Wenzel,5,0 +Werner,60,0 +Wes,6,0 +Wesley,1347,10 +Wesly,7,0 +Wess,5,0 +Wessie,0,10 +West,28,0 +Westley,28,0 +Westly,8,0 +Weston,49,0 +Wetona,0,6 +Wetzel,7,0 +Weyman,10,0 +Wheeler,25,0 +Whilma,0,5 +Whit,19,0 +Whitfield,12,0 +Whitman,7,0 +Whitney,38,0 +Wiladean,0,5 +Wilba,0,9 +Wilber,160,0 +Wilbern,24,0 +Wilbert,813,0 +Wilberta,0,9 +Wilbon,5,0 +Wilborn,24,0 +Wilbur,1667,10 +Wilburn,284,0 +Wilburt,23,0 +Wilburta,0,5 +Wilda,0,362 +Wilder,7,0 +Wildon,5,0 +Wildred,5,0 +Wilena,0,7 +Wiletta,0,9 +Wiley,238,0 +Wilferd,15,0 +Wilford,257,0 +Wilfred,728,0 +Wilfrid,53,0 +Wilhelm,12,0 +Wilhelmena,0,23 +Wilhelmenia,0,29 +Wilhelmina,0,198 +Wilhelmine,0,9 +Wilhemina,0,16 +Wilho,8,0 +Wiliam,11,0 +Wilie,5,0 +Wilkie,6,0 +Wilkin,5,0 +Wilkins,5,0 +Will,354,9 +Willa,0,471 +Willadean,0,51 +Willadeen,0,35 +Willadene,0,12 +Willaim,16,0 +Willam,63,0 +Willamae,0,17 +Willard,1834,26 +Willas,5,0 +Wille,6,7 +Willeen,0,6 +Willella,0,6 +Willena,0,28 +Willene,0,77 +Willer,5,5 +Willet,5,0 +Willeta,0,5 +Willett,5,5 +Willetta,0,45 +Willette,0,27 +Willey,14,0 +Willia,5,75 +Williadean,0,5 +William,53506,245 +Williams,65,0 +Williamson,9,0 +Willian,58,5 +Williard,32,0 +Willie,6700,3992 +Williemae,0,29 +Willies,5,0 +Willine,0,15 +Williom,5,0 +Willis,1261,15 +Willma,0,25 +Willmar,5,0 +Willmer,13,0 +Willo,0,23 +Willodean,0,53 +Willodeen,0,8 +Willodene,0,15 +Willow,6,26 +Willy,20,0 +Willye,0,6 +Willys,14,0 +Wilma,19,4066 +Wilmar,15,0 +Wilmer,365,29 +Wilmetta,0,6 +Wilmina,0,10 +Wilmon,12,0 +Wilmont,9,0 +Wilmot,15,0 +Wilmoth,0,10 +Wilmuth,0,7 +Wilna,0,26 +Wilodean,0,8 +Wilodene,0,6 +Wilsie,0,10 +Wilson,543,0 +Wilton,208,0 +Windell,32,0 +Windsor,6,0 +Winefred,0,6 +Winferd,11,0 +Winfield,95,0 +Winford,107,0 +Winfred,231,10 +Winfrey,6,0 +Wing,6,0 +Winifred,33,1269 +Winna,0,6 +Winnefred,0,6 +Winnell,0,6 +Winnette,0,6 +Winnie,8,498 +Winniefred,0,5 +Winnifred,0,131 +Winnona,0,7 +Winona,0,289 +Winslow,27,0 +Winson,5,0 +Winston,262,0 +Winthrop,27,0 +Winton,57,0 +Wiona,0,5 +Wirt,13,0 +Witold,5,0 +Wm,62,10 +Wonda,0,7 +Wood,7,0 +Woodard,11,0 +Woodford,10,0 +Woodie,27,10 +Woodroe,9,0 +Woodrow,516,5 +Woodruff,5,0 +Woodson,22,0 +Woodward,7,0 +Woody,21,0 +Worley,24,0 +Worth,57,0 +Worthy,15,0 +Wray,13,0 +Wreatha,0,5 +Wren,9,0 +Wretha,0,9 +Wright,27,0 +Wyatt,66,0 +Wyla,0,5 +Wylene,0,18 +Wylie,71,5 +Wylma,0,19 +Wylodean,0,6 +Wyman,54,0 +Wymon,8,0 +Wymond,5,0 +Wynell,0,19 +Wynelle,0,24 +Wynema,0,22 +Wynetta,0,7 +Wynette,0,10 +Wynn,5,0 +Wynne,0,7 +Wynona,0,79 +Wyolene,0,7 +Wyoma,0,22 +Wyona,0,32 +Xavier,9,0 +Yachiyo,0,5 +Yaeko,0,28 +Yale,15,0 +Yancey,5,0 +Yancy,7,0 +Yasuko,0,19 +Yasuo,9,0 +Yates,5,0 +Yetta,0,105 +Ygnacio,15,0 +Ynes,0,5 +Yola,0,27 +Yolanda,0,573 +Yolande,0,26 +Yolando,0,6 +Yolonda,0,8 +Yona,0,7 +Yoneko,0,9 +Yoneo,6,0 +York,7,0 +Yoshi,0,6 +Yoshie,0,38 +Yoshiharu,8,0 +Yoshiko,0,64 +Yoshimi,7,0 +Yoshinori,6,0 +Yoshio,57,0 +Yoshiro,5,0 +Yoshito,9,0 +Yoshiye,0,11 +Yoshiyuki,10,0 +Young,21,0 +Ysabel,13,15 +Ysidoro,5,0 +Ysidra,0,7 +Ysidro,25,0 +Ysmael,6,0 +Yukie,0,16 +Yukiko,0,26 +Yukio,19,0 +Yukiye,0,5 +Yula,0,7 +Yuri,0,5 +Yuriko,0,26 +Yutaka,22,0 +Yuvonne,0,5 +Yvette,0,155 +Yvonna,0,8 +Yvonne,0,910 +Zachariah,7,0 +Zachary,13,0 +Zack,53,0 +Zada,0,30 +Zadie,0,24 +Zaida,0,6 +Zana,0,13 +Zane,87,9 +Zannie,0,10 +Zara,0,12 +Zaragoza,5,0 +Zaven,6,0 +Zeb,41,0 +Zebedee,17,0 +Zeda,0,7 +Zeddie,5,0 +Zeffie,0,5 +Zeke,9,0 +Zela,0,20 +Zelda,0,250 +Zelia,0,19 +Zell,0,9 +Zella,0,235 +Zelma,5,417 +Zelmer,5,6 +Zelpha,0,38 +Zelphia,0,15 +Zena,0,39 +Zenaida,0,9 +Zenas,7,0 +Zenda,0,5 +Zenia,0,7 +Zenith,5,10 +Zenna,0,8 +Zeno,16,0 +Zenobia,0,53 +Zenon,15,0 +Zeola,0,21 +Zephyr,0,5 +Zera,0,11 +Zerelda,0,5 +Zerita,0,6 +Zerline,0,5 +Zeta,0,16 +Zetta,0,34 +Zettie,0,49 +Zigmund,22,0 +Zilla,0,9 +Zilpha,0,16 +Zilphia,0,10 +Zina,0,15 +Zipporah,0,5 +Zita,0,47 +Zoa,0,6 +Zoe,0,74 +Zoila,0,8 +Zola,0,184 +Zollie,17,5 +Zoltan,12,0 +Zolton,9,0 +Zona,0,104 +Zonia,0,6 +Zonnie,0,5 +Zora,0,122 +Zorka,0,6 +Zula,0,95 +Zulema,0,14 +Zygmund,12,0 +Zygmunt,10,0 +Zylpha,0,5 diff --git a/Helper Functions/Python/Scratch Work/get_divisions_from_tournament_link.ipynb b/Helper Functions/Python/Scratch Work/get_divisions_from_tournament_link.ipynb new file mode 100644 index 0000000..a2cf8c2 --- /dev/null +++ b/Helper Functions/Python/Scratch Work/get_divisions_from_tournament_link.ipynb @@ -0,0 +1,1189 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: requests in /opt/homebrew/anaconda3/envs/bees/lib/python3.11/site-packages (2.32.3)\n", + "Requirement already satisfied: beautifulsoup4 in /opt/homebrew/anaconda3/envs/bees/lib/python3.11/site-packages (4.12.3)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /opt/homebrew/anaconda3/envs/bees/lib/python3.11/site-packages (from requests) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /opt/homebrew/anaconda3/envs/bees/lib/python3.11/site-packages (from requests) (3.8)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/homebrew/anaconda3/envs/bees/lib/python3.11/site-packages (from requests) (2.2.2)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /opt/homebrew/anaconda3/envs/bees/lib/python3.11/site-packages (from requests) (2024.8.30)\n", + "Requirement already satisfied: soupsieve>1.2 in /opt/homebrew/anaconda3/envs/bees/lib/python3.11/site-packages (from beautifulsoup4) (2.6)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install requests beautifulsoup4\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "from bs4 import BeautifulSoup\n", + "import re" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "url = \"https://www.tabroom.com/index/tourn/postings/index.mhtml?tourn_id=26620\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(True, False)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def url_is_in_exspected_format(url):\n", + "\treturn re.fullmatch(r'https://www\\.tabroom\\.com/index/tourn/postings/index\\.mhtml\\?tourn_id=\\d+', url) != None\n", + "\n", + "url_is_in_exspected_format(url), url_is_in_exspected_format(url+'...')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'26620'" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def get_id_from_url(url):\n", + "\treturn url.split('=')[-1]\n", + "\n", + "id = get_id_from_url(url)\n", + "id" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_tournament_name_from_url(url):\n", + "\tresponse = requests.get(url)\n", + "\tsoup = BeautifulSoup(response.text, 'html.parser')\n", + "\tfirst_h2 = soup.find('h2')\n", + "\tif first_h2:\n", + "\t\treturn first_h2.get_text(strip=True)\n", + "\telse:\n", + "\t\treturn \"No Title Found\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('243679', 'Congress'),\n", + " ('243680', 'Lincoln Douglas Debate'),\n", + " ('243681', 'Policy Debate'),\n", + " ('243682', 'Public Forum Debate'),\n", + " ('245887', 'WORLDS')]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import requests\n", + "from bs4 import BeautifulSoup\n", + "\n", + "def get_formats(url):\n", + " response = requests.get(url)\n", + " soup = BeautifulSoup(response.text, 'html.parser')\n", + " first_dropdown = soup.find('select')\n", + " if first_dropdown:\n", + " return [\n", + " (option.get('value'), option.text.strip())\n", + " for option in first_dropdown.find_all('option')[1:]\n", + " ]\n", + " else:\n", + " return [None, \"No Options Found\"]\n", + "\n", + "url = \"https://www.tabroom.com/index/tourn/postings/index.mhtml?tourn_id=26620\"\n", + "get_formats(url)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Option Value: , Shown Text: \n", + "Option Value: 243679, Shown Text: Congress\n", + "Option Value: 243680, Shown Text: Lincoln Douglas Debate\n", + "Option Value: 243681, Shown Text: Policy Debate\n", + "Option Value: 243682, Shown Text: Public Forum Debate\n", + "Option Value: 245887, Shown Text: WORLDS\n" + ] + } + ], + "source": [ + "import requests\n", + "from bs4 import BeautifulSoup\n", + "\n", + "# URL to send the GET request to\n", + "url = \"https://www.tabroom.com/index/tourn/postings/index.mhtml?tourn_id=26620\"\n", + "\n", + "# Send the GET request\n", + "response = requests.get(url)\n", + "\n", + "# Parse the HTML content with BeautifulSoup\n", + "soup = BeautifulSoup(response.text, 'html.parser')\n", + "\n", + "# Find the first dropdown (select element)\n", + "first_dropdown = soup.find('select')\n", + "\n", + "# Check if the dropdown exists\n", + "if first_dropdown:\n", + " # Find all options within the dropdown\n", + " options = first_dropdown.find_all('option')\n", + "\n", + " # Loop through the options and print the value and the shown text\n", + " for option in options:\n", + " value = option.get('value')\n", + " text = option.text.strip() # Strip to remove any unnecessary whitespace\n", + " print(f\"Option Value: {value}, Shown Text: {text}\")\n", + "else:\n", + " print(\"No dropdown found.\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Status Code: 200\n", + "First

Text: WIAA Washington State Debate Championships\n" + ] + } + ], + "source": [ + "import requests\n", + "from bs4 import BeautifulSoup\n", + "\n", + "# URL to send the GET request to\n", + "url = \"https://www.tabroom.com/index/tourn/postings/index.mhtml?tourn_id=26620\"\n", + "\n", + "# Send the GET request\n", + "response = requests.get(url)\n", + "\n", + "# Check the status code\n", + "print(\"Status Code:\", response.status_code)\n", + "\n", + "# Parse the HTML content with BeautifulSoup\n", + "soup = BeautifulSoup(response.text, 'html.parser')\n", + "\n", + "# Find the first h2 element\n", + "first_h2 = soup.find('h2')\n", + "\n", + "# Check if the h2 element exists and print its text\n", + "if first_h2:\n", + " print(\"First

Text:\", first_h2.get_text(strip=True))\n", + "else:\n", + " print(\"No

element found.\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Status Code: 200\n", + "Response Content: \n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\n", + "\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\tTabroom.com\n", + "\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\n", + "\n", + "\n", + "\t\t\t\n", + "\n", + "\t\t\t\n", + "\n", + "\t\n", + "\t\n", + "\t\t
\n", + "\t\t\t
\n", + "\t\t\t\t
\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\n", + "\n", + "\t\tLogin\n", + "\n", + "\t\t
\n", + "\n", + "\t\t\t
\n", + "\t\t\t\t
\n", + "\t\t\t\t\t\n", + "\t\t\t\t\tLogin to Tabroom\n", + "\t\t\t\t
\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t
\n", + "\n", + "\t\t\t\n", + "\t\t\t\t\t
\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t
\n", + "\n", + "\t\t\t\t\t
\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t
\n", + "\n", + "\t\t\t\t\t
\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t
\n", + "\t\t\t\n", + "\n", + "\t\t\tForgot your Password?\n", + "\t\t
\n", + "\t
\n", + "\n", + "\t\n", + "\t\t\n", + "\t\t\tSign Up\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t
\n", + "\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t
\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\t\t\n", + "\t\t\t
\n", + "\n", + "\n", + "\n", + "\t
\n", + "\t\t
\n", + "\t\t\t\n", + "\t\n", + "\t
\n", + "\n", + "\t\t
\n", + "\n", + "\t\t\t

Schematics

\n", + "\n", + "\t\t\t
\n", + "\n", + "\t\t\t\n", + "\n", + "\t\t\t
\n", + "\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t
\n", + "\n", + "\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tCong\n", + "\t\t\t\t\t\t\t\tSession 1\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tCong\n", + "\t\t\t\t\t\t\t\tSession 2\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tCong\n", + "\t\t\t\t\t\t\t\tSession 3\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tCong\n", + "\t\t\t\t\t\t\t\tSession 4\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t

Judges

\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tCongress Judges\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tLD Judges\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tPolicy Judges\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tPublic Forum Judges\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tWORLDS\n", + "\t\t\t\t\n", + "\n", + "\n", + "\n", + "\t\t
\n", + "\t
\n", + "\n", + "\n", + "\n", + "\n", + "\t
\n", + "\n", + "\t\t \n", + "\n", + "\t

\n", + "\t\tWIAA Washington State Debate Championships \n", + "\t

\n", + "\n", + "\t
\n", + "\t\t2023 \n", + "\t\t—\n", + "\t\tU. of Puget Sound, Tacoma,\n", + "\t\tWA/US \n", + "\t
\n", + "\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\t\t
    \n", + "\n", + "\t\t\t
  • \n", + "\t\t\t\t Invite\n", + "\t\t\t
  • \n", + "\n", + "\n", + "\n", + "\t\t\t\t
  • \n", + "\t\t\t\t\t Entries\n", + "\t\t\t\t
  • \n", + "\n", + "\t\t\t\t
  • \n", + "\t\t\t\t\t Judges\n", + "\t\t\t\t
  • \n", + "\n", + "\n", + "\t\t\t\t
  • \n", + "\t\t\t\t\t Pairings\n", + "\t\t\t\t
  • \n", + "\n", + "\n", + "\t\t\t\t
  • \n", + "\t\t\t\t\t Results\n", + "\t\t\t\t
  • \n", + "\n", + "\n", + "\t\t
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\t\t\t\n", + "\t
\n", + "\t\t\n", + "\t\t\t

Session 4 Cong

\n", + "\t\t
\n", + "\n", + "\t\t\n", + "\t\t\t
Start time: 9:00 AM PDT
\n", + "\t\t
\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t
\n", + "\n", + "\t
\n", + "\n", + "\t\t\n", + "\t\t\tJudges with gavels indicate Parliamentarians\n", + "\t\t\n", + "\t
\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t\t\n", + "\t\t\t\t\n", + "\t\t\n", + "\n", + "\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\n", + "\t\t\t\t\n", + "\n", + "\t\t\n", + "\t
\n", + "\t\t\t\t\tCh.\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tLocation\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\tJudges\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tEntries\n", + "\t\t\t\t\n", + "\t\t\t
\n", + "\t\t\t\t\t\t1\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\tMcIntyre 103\n", + "\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tJohn Julian\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tPayton Cambia\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tDawna Levang\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tColin Long\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tMegan Troutman\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tPaul Whitney\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tSamuel Lindsey\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tBryan Zhu\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tJiadong Gu\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tMike Liu\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tEmily Schreiber\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tArben Kryemadhi\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tNatalie Behnke\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tSachi Goel\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tHannah McLin\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tNikesh Woerner\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tAvalon Stewart\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tNatalie Holland\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tSayer Theiss\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tKedar Chintalapati\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tMeera Singhal\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tTheodore Chapman\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tEunseo Oh\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tNeeha Darbha\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tLamice Jomaa\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tAdalyn Soderquist\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tAudrey Marcel\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\t
\n", + "\t\t\t\t\n", + "\t\t\t\t\tTiebreakers Used\n", + "\t\t\t\t

\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t1\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\tRanks\n", + "\t\t\t\t from elim round(s)\n", + "\t\t\t \n", + "\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t2\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\tChair ranks\n", + "\t\t\t\t from elim round(s)\n", + "\t\t\t \n", + "\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t
\n", + "\t\t\t
\n", + "\n", + "\t
\n", + "\n", + "\n", + "\n", + "\t\t
\n", + "\t
\n", + "\n", + "\t\t\t
\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tJoin the NSDA\n", + "\n", + "\t\t\t\t\tAbout\n", + "\n", + "\t\t\t\t\tHelp\n", + "\n", + "\t\t\t\t\tContact\n", + "\n", + "\t\t\t\t\tPrivacy Policy\n", + "\n", + "\t\t\t\t\tTerms\n", + "\t\t\t\t\n", + "\n", + "\n", + "\t\t\t
\n", + "\t\t
\n", + "\n", + "\t\t\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "import requests\n", + "\n", + "# URL to send the GET request to\n", + "url = \"https://www.tabroom.com/index/tourn/postings/index.mhtml?tourn_id=26620\"\n", + "\n", + "# Send the GET request\n", + "response = requests.get(url)\n", + "\n", + "# Print the status code and content of the response\n", + "print(\"Status Code:\", response.status_code)\n", + "print(\"Response Content:\", response.text)\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "bees", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Helper Functions/Python/Scratch Work/get_pairings_from_list_of_divisions_draft_v1.ipynb b/Helper Functions/Python/Scratch Work/get_pairings_from_list_of_divisions_draft_v1.ipynb new file mode 100644 index 0000000..2632bce --- /dev/null +++ b/Helper Functions/Python/Scratch Work/get_pairings_from_list_of_divisions_draft_v1.ipynb @@ -0,0 +1,2299 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/lshuster/Library/CloudStorage/OneDrive-GlobalHealthcareExchange/Desktop/debate bias/Debate-Judge-Bias-Calculator/.venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import os\n", + "import sys\n", + "sys.path.append('..')\n", + "import scrape_tournament_info" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('272611', 'CX Open'),\n", + " ('272610', 'Congress Open'),\n", + " ('272613', 'DUO Open'),\n", + " ('272612', 'Dramatic Interp Open'),\n", + " ('272654', 'EdCom'),\n", + " ('272614', 'Extemp Novice'),\n", + " ('272615', 'Extemp Open'),\n", + " ('272616', 'Humorous Interp Open'),\n", + " ('272617', 'Impromptu Novice'),\n", + " ('272618', 'Impromptu Open'),\n", + " ('272619', 'Informative Novice'),\n", + " ('272620', 'Informative Open'),\n", + " ('272622', 'LD Novice'),\n", + " ('272623', 'LD Open'),\n", + " ('272624', 'Novice Public Forum'),\n", + " ('272625', 'Open Public Forum'),\n", + " ('272626', 'Oratory Novice'),\n", + " ('272627', 'Oratory Open'),\n", + " ('272628', 'POI Open'),\n", + " ('272913', 'SPAR')]" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tournament_url= \"https://www.tabroom.com/index/tourn/postings/index.mhtml?tourn_id=29541\"\n", + "tournament_id = scrape_tournament_info.get_id_from_url(tournament_url)\n", + "list_of_formats = scrape_tournament_info.get_formats(tournament_url)\n", + "list_of_formats" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('272623', 'LD Open')" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "id, format = list_of_formats[-7]\n", + "id, format" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "POST request was successful!\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\t\t\t\n", + "\n", + "\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\tTabroom.com\n", + "\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\n", + "\n", + "\n", + "\t\t\t\n", + "\n", + "\t\t\t\n", + "\n", + "\t\n", + "\t\n", + "\t\t
\n", + "\t\t\t
\n", + "\t\t\t\t
\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\n", + "\n", + "\t\tLogin\n", + "\n", + "\t\t
\n", + "\n", + "\t\t\t
\n", + "\t\t\t\t
\n", + "\t\t\t\t\t\n", + "\t\t\t\t\tLogin to Tabroom\n", + "\t\t\t\t
\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t
\n", + "\n", + "\t\t\t\n", + "\t\t\t\t\t
\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t
\n", + "\n", + "\t\t\t\t\t
\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t
\n", + "\n", + "\t\t\t\t\t
\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t
\n", + "\t\t\t\n", + "\n", + "\t\t\tForgot your Password?\n", + "\t\t
\n", + "\t
\n", + "\n", + "\t\n", + "\t\t\n", + "\t\t\tSign Up\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t
\n", + "\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t
\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\t\t\n", + "\t\t\t
\n", + "\n", + "\n", + "\n", + "\t
\n", + "\t\t
\n", + "\t\t\t\n", + "\t\n", + "\t
\n", + "\n", + "\t\t
\n", + "\n", + "\t\t\t

Schematics

\n", + "\n", + "\t\t\t
\n", + "\n", + "\t\t\t\n", + "\n", + "\t\t\t
\n", + "\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t
\n", + "\n", + "\t\t\t\n", + "\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\tBracket\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tFINALS\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tSems\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tQuarters\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tOctas\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tRound 6\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tRound 5\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tRound 4\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tRound 3\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tRound 2\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tOLD\n", + "\t\t\t\t\t\t\t\tRound 1\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t

Judges

\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tCongress Judges\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tCX Judges\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tIE Judges\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tLD Judges\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tPF Judges\n", + "\t\t\t\t\n", + "\n", + "\n", + "\n", + "\t\t
\n", + "\t
\n", + "\n", + "\n", + "\n", + "\n", + "\t
\n", + "\n", + "\t\t \n", + "\n", + "\t

\n", + "\t\tPuget Sound High School Tournament 2024 \n", + "\t

\n", + "\n", + "\t
\n", + "\t\t2024 \n", + "\t\t—\n", + "\t\tTacoma,\n", + "\t\tWA/US \n", + "\t
\n", + "\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\t\t
    \n", + "\n", + "\t\t\t
  • \n", + "\t\t\t\t Invite\n", + "\t\t\t
  • \n", + "\n", + "\n", + "\n", + "\t\t\t\t
  • \n", + "\t\t\t\t\t Entries\n", + "\t\t\t\t
  • \n", + "\n", + "\t\t\t\t
  • \n", + "\t\t\t\t\t Judges\n", + "\t\t\t\t
  • \n", + "\n", + "\n", + "\t\t\t\t
  • \n", + "\t\t\t\t\t Pairings\n", + "\t\t\t\t
  • \n", + "\n", + "\t\t\t\t
  • \n", + "\t\t\t\t\t Live Updates\n", + "\t\t\t\t
  • \n", + "\n", + "\t\t\t\t
  • \n", + "\t\t\t\t\t Results\n", + "\t\t\t\t
  • \n", + "\n", + "\n", + "\t\t
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\t\t\t\n", + "\t
\n", + "\n", + "\t\t\n", + "\t\t\t

OLD Sems

\n", + "\t\t
\n", + "\n", + "\t\t\n", + "\t\t\t
\n", + "\t\t\t\tStart: \n", + "\t\t\t\t7:00 PM \n", + "\t\t\t\tPDT\n", + "\t\t\t
\n", + "\n", + "\t\t
\n", + "\n", + "\t\t\n", + "\t
\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\n", + "\t
\n", + "\n", + "\n", + "\t\t\n", + "\t\t\tFlip for sides in all debates\n", + "\t\t\n", + "\n", + "\n", + "\n", + "\t
\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\n", + "\t\t\n", + "\n", + "\n", + "\t\t\t\n", + "\n", + "\n", + "\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\n", + "\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\n", + "\t\t\n", + "\n", + "\t\t\t\n", + "\n", + "\n", + "\n", + "\t\t\t\t\n", + "\n", + "\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\n", + "\t\t\t\n", + "\n", + "\n", + "\n", + "\t\t\t\t\n", + "\n", + "\n", + "\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\n", + "\t\t\n", + "\t
\n", + "\t\t\t\tRoom\n", + "\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\t\tJudge 1\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\tJudge 2\n", + "\t\t\t\t\t\n", + "\t\t\t\t\t\tJudge 3\n", + "\t\t\t\t\t
\n", + "\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\tHowarth 212\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tAmador Valley EM\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tSehome EM\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tLydia Wang\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tGrayson Parker\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tPrabhat Aluri\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t
\n", + "\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\tHowarth 214\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\t\t\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tNewport BL\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\tMercer Island JY\n", + "\t\t\t\t\t\t\t\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tHank Roark\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tTim Pollard\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\tElissa Lu\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\t
\n", + "\t\t\t\t\n", + "\t\t\t\t\tTiebreakers Used\n", + "\t\t\t\t

\n", + "\t\t\t\t\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t1\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t\t\t\n", + "\t\t\t\tWinloss\n", + "\t\t\t\t from previous round(s)\n", + "\t\t\t \n", + "\n", + "\n", + "\t\t\t\t\t\t\t\n", + "\t\t\t\t\t\t
\n", + "\t\t\t\t
\n", + "\t\t\t
\n", + "\n", + "\t
\n", + "\n", + "\n", + "\n", + "\t\t
\n", + "\t
\n", + "\n", + "\t\t\t
\n", + "\n", + "\t\t\t\t\n", + "\t\t\t\t\tJoin the NSDA\n", + "\n", + "\t\t\t\t\tAbout\n", + "\n", + "\t\t\t\t\tHelp\n", + "\n", + "\t\t\t\t\tContact\n", + "\n", + "\t\t\t\t\tPrivacy Policy\n", + "\n", + "\t\t\t\t\tTerms\n", + "\t\t\t\t\n", + "\n", + "\n", + "\t\t\t
\n", + "\t\t
\n", + "\n", + "\t\t\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "import requests\n", + "\n", + "# Define the URL and the payload (data) you want to send\n", + "url = \"https://www.tabroom.com/index/tourn/postings/index.mhtml\"\n", + "params = {\n", + " 'tourn_id': tournament_id, # Example tournament ID\n", + " 'event_id': id # Example event ID\n", + "}\n", + "\n", + "# Send the POST request\n", + "response = requests.post(url, data=params)\n", + "\n", + "# Check the response\n", + "if response.status_code == 200:\n", + " print(\"POST request was successful!\")\n", + " html_content = response.text\n", + " print(html_content) # Print the response content if needed\n", + "else:\n", + " print(f\"Failed to send POST request. Status code: {response.status_code}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094154\n", + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094149\n", + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094151\n", + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1128331\n", + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094150\n", + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129552\n", + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129548\n", + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094157\n", + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129551\n", + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129550\n" + ] + } + ], + "source": [ + "import re\n", + "\n", + "# Regex to find all links like /index/tourn/results/bracket.mhtml?tourn_id=26620&result_id=\\d+\n", + "pattern = r\"/index/tourn/postings/round\\.mhtml\\?tourn_id=\"+tournament_id+r\"&round_id=\\d+\"\n", + "\n", + "# Use re.findall to find all matches\n", + "links = set('https://www.tabroom.com'+match for match in re.findall(pattern, html_content))\n", + "\n", + "# Print or use the extracted links\n", + "for link in links:\n", + " print(link)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "id = 1\n", + "tournamet = tournament_id\n", + "format = format\n", + "# round = next level down\n", + "# level = next level down\n", + "# is_elemination = next level down\n", + "# start-date = missing\n", + "# details = none" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129551'" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "links.pop()" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094149\n" + ] + }, + { + "data": { + "text/plain": [ + "'OLD Round 1'" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from bs4 import BeautifulSoup\n", + "\n", + "link = links.pop()\n", + "print(link)\n", + "response = requests.get(link)\n", + "soup = BeautifulSoup(response.text, 'html.parser')\n", + "# print(soup)\n", + "first_h2 = soup.find_all('h4')[-1].get_text(strip=True)\n", + "first_h2\n", + "# if first_h2:\n", + "# \tprint(first_h2.get_text(strip=True))\n", + "# else:\n", + "# \tprint(\"No Title Found\")" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/6w/yqthf3cx1v1gtm_3th5g0nk00000gp/T/ipykernel_85283/2996684344.py:7: FutureWarning: Passing literal html to 'read_html' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.\n", + " pd.read_html(table_html)\n" + ] + }, + { + "data": { + "text/plain": [ + "[ Flt Room Aff Neg \\\n", + " 0 1 Howarth 203 Northwood JS Newport KC \n", + " 1 1 Jones 206 Newport XT Bellingham NP \n", + " 2 2 Jones 206 Newport BL Mount Si DR \n", + " 3 1 Jones 208 Mercer Island JY Project Dialogue WZ \n", + " 4 2 Jones 208 Seattle JP Sehome RS \n", + " 5 1 McIntyre 202 Sehome EM Riverside SH \n", + " 6 2 McIntyre 202 Bellevue WL Woodinville VP \n", + " 7 1 McIntyre 203 Project Dialogue OX Overlake YK \n", + " 8 2 McIntyre 203 Puyallup KW Redmond JW \n", + " 9 1 McIntyre 204 Sehome AM Interlake SY \n", + " 10 2 McIntyre 204 Lake Washington AC Bainbridge CM \n", + " 11 1 McIntyre 320 Palisades Charter SM Mercer Island AZ \n", + " 12 2 McIntyre 320 Interlake JP Overlake RM \n", + " 13 1 Thompson 374 Bellingham MC Anacortes CH \n", + " 14 1 Wheelock 230A Gig Harbor AC Mount Si SP \n", + " 15 1 Wyatt 204 Overlake LA Mercer Island BF \n", + " 16 2 Wyatt 204 Amador Valley EM Seattle LL \n", + " 17 1 Wyatt 226 Bellevue HT Redmond KO \n", + " 18 2 Wyatt 226 Interlake YC Peninsula AR \n", + " 19 1 Wyatt 305 Renaissance CB Mount Vernon TK \n", + " 20 2 Wyatt 305 Newport BZ Interlake BD \n", + " 21 1 BYE Newport AL NaN \n", + " \n", + " Judge \n", + " 0 LIANG CHEN \n", + " 1 Robyn Brody \n", + " 2 Robyn Brody \n", + " 3 Grayson Parker \n", + " 4 Grayson Parker \n", + " 5 Lydia Wang \n", + " 6 Lydia Wang \n", + " 7 Serena Fitzgerald \n", + " 8 Serena Fitzgerald \n", + " 9 Ted Prosise \n", + " 10 Ted Prosise \n", + " 11 Elissa Lu \n", + " 12 Elissa Lu \n", + " 13 Amanda Swainston \n", + " 14 Laura Livingston \n", + " 15 Daniel Bomberger \n", + " 16 Daniel Bomberger \n", + " 17 Erin Gibson \n", + " 18 Erin Gibson \n", + " 19 Kristen East \n", + " 20 Kristen East \n", + " 21 NaN ]" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "\n", + "first_table = soup.find('table')\n", + "\n", + "table_html = str(first_table)\n", + "pd.read_html(table_html)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting lxml\n", + " Downloading lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl.metadata (3.8 kB)\n", + "Downloading lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl (8.1 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8.1/8.1 MB\u001b[0m \u001b[31m54.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hInstalling collected packages: lxml\n", + "Successfully installed lxml-5.3.0\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install lxml" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " Flt\n", + " \n", + " Room\n", + " \n", + " Aff\n", + " \n", + " Neg\n", + " \n", + " Judge\n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Howarth 203\n", + " \n", + " \n", + " \n", + " Northwood JS\n", + " \n", + " \n", + " \n", + " Newport KC\n", + " \n", + " \n", + " \n", + " LIANG CHEN\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Jones 206\n", + " \n", + " \n", + " \n", + " Newport XT\n", + " \n", + " \n", + " \n", + " Bellingham NP\n", + " \n", + " \n", + " \n", + " Robyn Brody\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Jones 206\n", + " \n", + " \n", + " \n", + " Newport BL\n", + " \n", + " \n", + " \n", + " Mount Si DR\n", + " \n", + " \n", + " \n", + " Robyn Brody\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Jones 208\n", + " \n", + " \n", + " \n", + " Mercer Island JY\n", + " \n", + " \n", + " \n", + " Project Dialogue WZ\n", + " \n", + " \n", + " \n", + " Grayson Parker\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Jones 208\n", + " \n", + " \n", + " \n", + " Seattle JP\n", + " \n", + " \n", + " \n", + " Sehome RS\n", + " \n", + " \n", + " \n", + " Grayson Parker\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 202\n", + " \n", + " \n", + " \n", + " Sehome EM\n", + " \n", + " \n", + " \n", + " Riverside SH\n", + " \n", + " \n", + " \n", + " Lydia Wang\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 202\n", + " \n", + " \n", + " \n", + " Bellevue WL\n", + " \n", + " \n", + " \n", + " Woodinville VP\n", + " \n", + " \n", + " \n", + " Lydia Wang\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 203\n", + " \n", + " \n", + " \n", + " Project Dialogue OX\n", + " \n", + " \n", + " \n", + " Overlake YK\n", + " \n", + " \n", + " \n", + " Serena Fitzgerald\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 203\n", + " \n", + " \n", + " \n", + " Puyallup KW\n", + " \n", + " \n", + " \n", + " Redmond JW\n", + " \n", + " \n", + " \n", + " Serena Fitzgerald\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 204\n", + " \n", + " \n", + " \n", + " Sehome AM\n", + " \n", + " \n", + " \n", + " Interlake SY\n", + " \n", + " \n", + " \n", + " Ted Prosise\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 204\n", + " \n", + " \n", + " \n", + " Lake Washington AC\n", + " \n", + " \n", + " \n", + " Bainbridge CM\n", + " \n", + " \n", + " \n", + " Ted Prosise\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 320\n", + " \n", + " \n", + " \n", + " Palisades Charter SM\n", + " \n", + " \n", + " \n", + " Mercer Island AZ\n", + " \n", + " \n", + " \n", + " Elissa Lu\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 320\n", + " \n", + " \n", + " \n", + " Interlake JP\n", + " \n", + " \n", + " \n", + " Overlake RM\n", + " \n", + " \n", + " \n", + " Elissa Lu\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Thompson 374\n", + " \n", + " \n", + " \n", + " Bellingham MC\n", + " \n", + " \n", + " \n", + " Anacortes CH\n", + " \n", + " \n", + " \n", + " Amanda Swainston\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Wheelock 230A\n", + " \n", + " \n", + " \n", + " Gig Harbor AC\n", + " \n", + " \n", + " \n", + " Mount Si SP\n", + " \n", + " \n", + " \n", + " Laura Livingston\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 204\n", + " \n", + " \n", + " \n", + " Overlake LA\n", + " \n", + " \n", + " \n", + " Mercer Island BF\n", + " \n", + " \n", + " \n", + " Daniel Bomberger\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 204\n", + " \n", + " \n", + " \n", + " Amador Valley EM\n", + " \n", + " \n", + " \n", + " Seattle LL\n", + " \n", + " \n", + " \n", + " Daniel Bomberger\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 226\n", + " \n", + " \n", + " \n", + " Bellevue HT\n", + " \n", + " \n", + " \n", + " Redmond KO\n", + " \n", + " \n", + " \n", + " Erin Gibson\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 226\n", + " \n", + " \n", + " \n", + " Interlake YC\n", + " \n", + " \n", + " \n", + " Peninsula AR\n", + " \n", + " \n", + " \n", + " Erin Gibson\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 305\n", + " \n", + " \n", + " \n", + " Renaissance CB\n", + " \n", + " \n", + " \n", + " Mount Vernon TK\n", + " \n", + " \n", + " \n", + " Kristen East\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 305\n", + " \n", + " \n", + " \n", + " Newport BZ\n", + " \n", + " \n", + " \n", + " Interlake BD\n", + " \n", + " \n", + " \n", + " Kristen East\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " BYE\n", + " \n", + " \n", + " Newport AL\n", + " \n", + " \n", + "
\n", + "\n" + ] + } + ], + "source": [ + "first_table = soup.find('table')\n", + "print(first_table.prettify())" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Flt Room \\\n", + "0 (1, []) (Howarth 203, []) \n", + "1 (1, []) (Jones 206, []) \n", + "2 (2, []) (Jones 206, []) \n", + "3 (1, []) (Jones 208, []) \n", + "4 (2, []) (Jones 208, []) \n", + "5 (1, []) (McIntyre 202, []) \n", + "6 (2, []) (McIntyre 202, []) \n", + "7 (1, []) (McIntyre 203, []) \n", + "8 (2, []) (McIntyre 203, []) \n", + "9 (1, []) (McIntyre 204, []) \n", + "10 (2, []) (McIntyre 204, []) \n", + "11 (1, []) (McIntyre 320, []) \n", + "12 (2, []) (McIntyre 320, []) \n", + "13 (1, []) (Thompson 374, []) \n", + "14 (1, []) (Wheelock 230A, []) \n", + "15 (1, []) (Wyatt 204, []) \n", + "16 (2, []) (Wyatt 204, []) \n", + "17 (1, []) (Wyatt 226, []) \n", + "18 (2, []) (Wyatt 226, []) \n", + "19 (1, []) (Wyatt 305, []) \n", + "20 (2, []) (Wyatt 305, []) \n", + "21 (1, []) (BYE, []) \n", + "\n", + " Aff \\\n", + "0 (Northwood JS, [/index/tourn/postings/entry_re... \n", + "1 (Newport XT, [/index/tourn/postings/entry_reco... \n", + "2 (Newport BL, [/index/tourn/postings/entry_reco... \n", + "3 (Mercer Island JY, [/index/tourn/postings/entr... \n", + "4 (Seattle JP, [/index/tourn/postings/entry_reco... \n", + "5 (Sehome EM, [/index/tourn/postings/entry_recor... \n", + "6 (Bellevue WL, [/index/tourn/postings/entry_rec... \n", + "7 (Project Dialogue OX, [/index/tourn/postings/e... \n", + "8 (Puyallup KW, [/index/tourn/postings/entry_rec... \n", + "9 (Sehome AM, [/index/tourn/postings/entry_recor... \n", + "10 (Lake Washington AC, [/index/tourn/postings/en... \n", + "11 (Palisades Charter SM, [/index/tourn/postings/... \n", + "12 (Interlake JP, [/index/tourn/postings/entry_re... \n", + "13 (Bellingham MC, [/index/tourn/postings/entry_r... \n", + "14 (Gig Harbor AC, [/index/tourn/postings/entry_r... \n", + "15 (Overlake LA, [/index/tourn/postings/entry_rec... \n", + "16 (Amador Valley EM, [/index/tourn/postings/entr... \n", + "17 (Bellevue HT, [/index/tourn/postings/entry_rec... \n", + "18 (Interlake YC, [/index/tourn/postings/entry_re... \n", + "19 (Renaissance CB, [/index/tourn/postings/entry_... \n", + "20 (Newport BZ, [/index/tourn/postings/entry_reco... \n", + "21 (Newport AL, [/index/tourn/postings/entry_reco... \n", + "\n", + " Neg \\\n", + "0 (Newport KC, [/index/tourn/postings/entry_reco... \n", + "1 (Bellingham NP, [/index/tourn/postings/entry_r... \n", + "2 (Mount Si DR, [/index/tourn/postings/entry_rec... \n", + "3 (Project Dialogue WZ, [/index/tourn/postings/e... \n", + "4 (Sehome RS, [/index/tourn/postings/entry_recor... \n", + "5 (Riverside SH, [/index/tourn/postings/entry_re... \n", + "6 (Woodinville VP, [/index/tourn/postings/entry_... \n", + "7 (Overlake YK, [/index/tourn/postings/entry_rec... \n", + "8 (Redmond JW, [/index/tourn/postings/entry_reco... \n", + "9 (Interlake SY, [/index/tourn/postings/entry_re... \n", + "10 (Bainbridge CM, [/index/tourn/postings/entry_r... \n", + "11 (Mercer Island AZ, [/index/tourn/postings/entr... \n", + "12 (Overlake RM, [/index/tourn/postings/entry_rec... \n", + "13 (Anacortes CH, [/index/tourn/postings/entry_re... \n", + "14 (Mount Si SP, [/index/tourn/postings/entry_rec... \n", + "15 (Mercer Island BF, [/index/tourn/postings/entr... \n", + "16 (Seattle LL, [/index/tourn/postings/entry_reco... \n", + "17 (Redmond KO, [/index/tourn/postings/entry_reco... \n", + "18 (Peninsula AR, [/index/tourn/postings/entry_re... \n", + "19 (Mount Vernon TK, [/index/tourn/postings/entry... \n", + "20 (Interlake BD, [/index/tourn/postings/entry_re... \n", + "21 (, []) \n", + "\n", + " Judge \n", + "0 (LIANG CHEN, [judge.mhtml?judge_id=2150126&tou... \n", + "1 (Robyn Brody, [judge.mhtml?judge_id=2096203&to... \n", + "2 (Robyn Brody, [judge.mhtml?judge_id=2096203&to... \n", + "3 (Grayson Parker, [judge.mhtml?judge_id=2149071... \n", + "4 (Grayson Parker, [judge.mhtml?judge_id=2149071... \n", + "5 (Lydia Wang, [judge.mhtml?judge_id=2152101&tou... \n", + "6 (Lydia Wang, [judge.mhtml?judge_id=2152101&tou... \n", + "7 (Serena Fitzgerald, [judge.mhtml?judge_id=2149... \n", + "8 (Serena Fitzgerald, [judge.mhtml?judge_id=2149... \n", + "9 (Ted Prosise, [judge.mhtml?judge_id=2147585&to... \n", + "10 (Ted Prosise, [judge.mhtml?judge_id=2147585&to... \n", + "11 (Elissa Lu, [judge.mhtml?judge_id=2140354&tour... \n", + "12 (Elissa Lu, [judge.mhtml?judge_id=2140354&tour... \n", + "13 (Amanda Swainston, [judge.mhtml?judge_id=21412... \n", + "14 (Laura Livingston, [judge.mhtml?judge_id=21490... \n", + "15 (Daniel Bomberger, [judge.mhtml?judge_id=21516... \n", + "16 (Daniel Bomberger, [judge.mhtml?judge_id=21516... \n", + "17 (Erin Gibson, [judge.mhtml?judge_id=2144335&to... \n", + "18 (Erin Gibson, [judge.mhtml?judge_id=2144335&to... \n", + "19 (Kristen East, [judge.mhtml?judge_id=2152582&t... \n", + "20 (Kristen East, [judge.mhtml?judge_id=2152582&t... \n", + "21 None \n" + ] + } + ], + "source": [ + "import requests\n", + "from bs4 import BeautifulSoup\n", + "import pandas as pd\n", + "\n", + "# Assuming 'link' contains the URL to be requested\n", + "response = requests.get(link)\n", + "soup = BeautifulSoup(response.text, 'html.parser')\n", + "\n", + "# Find the first element in the parsed HTML\n", + "first_table = soup.find('table')\n", + "\n", + "if first_table:\n", + " # Initialize lists to store table data\n", + " table_data = []\n", + " headers = []\n", + "\n", + " # Process table headers if they exist\n", + " thead = first_table.find('thead')\n", + " if thead:\n", + " header_row = thead.find('tr')\n", + " if header_row:\n", + " headers = [th.get_text(strip=True) for th in header_row.find_all('th')]\n", + "\n", + " # Process table rows\n", + " tbody = first_table.find('tbody')\n", + " if tbody:\n", + " rows = tbody.find_all('tr')\n", + " for row in rows:\n", + " cols = row.find_all('td')\n", + " row_data = []\n", + " for col in cols:\n", + " # Get text content\n", + " text = col.get_text(strip=True)\n", + " # Find all links in the cell\n", + " links = [a['href'] for a in col.find_all('a', href=True)]\n", + " # Append text and links as a tuple\n", + " row_data.append((text, links))\n", + " table_data.append(row_data)\n", + "\n", + " # Convert to DataFrame\n", + " if headers:\n", + " df = pd.DataFrame(table_data, columns=headers)\n", + " else:\n", + " df = pd.DataFrame(table_data)\n", + "\n", + " # Print DataFrame\n", + " print(df)\n", + "else:\n", + " print(\"No table found.\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Aff', 'Neg', 'Judge']" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[df.loc[0][column][1] != [] for column in df.columns]\n", + "\n", + "def has_link(column):\n", + "\treturn df.loc[0][column][1] != []\n", + "columns_with_links = list(filter(has_link, df.columns))\n", + "columns_with_links" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('Northwood JS',\n", + " ['/index/tourn/postings/entry_record.mhtml?tourn_id=29541&entry_id=5453086'])" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "team_or_judge_name, url = df[columns_with_links[0]][0]\n", + "team_or_judge_name, url" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=29541&entry_id=5453086'" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'https://www.tabroom.com'+url[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Kavya Rengan', 'Anna Charles']" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def get_name(url):\n", + "\tresponse = requests.get('https://www.tabroom.com'+url[0])\n", + "\tsoup = BeautifulSoup(response.text, 'html.parser')\n", + "\tfirst_h2 = soup.find_all('h4')\n", + "\telements = soup.find_all(class_=\"nospace semibold\")\n", + "\n", + "\t# print (elements)\n", + "\tif first_h2:\n", + "\t\treturn first_h2[-1]\\\n", + "\t\t\t.get_text(strip=True)\\\n", + "\t\t\t.replace(\"\\n\", \"\")\\\n", + "\t\t\t.replace(\"\\t\", \"\")\\\n", + "\t\t\t.split(\"&\")\n", + "\telse:\n", + "\t\treturn \"No Title Found\"\n", + "\n", + "get_name([\"/index/tourn/postings/entry_record.mhtml?tourn_id=29541&entry_id=5396865\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Jasmine Shao']" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_name(url)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Helper Functions/Python/Scratch Work/get_pairings_from_list_of_divisions_revised_v1.ipynb b/Helper Functions/Python/Scratch Work/get_pairings_from_list_of_divisions_revised_v1.ipynb new file mode 100644 index 0000000..d6ee5a1 --- /dev/null +++ b/Helper Functions/Python/Scratch Work/get_pairings_from_list_of_divisions_revised_v1.ipynb @@ -0,0 +1,1099 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.append('..')\n", + "import scrape_tournament_info\n", + "\n", + "import requests\n", + "import re\n", + "from bs4 import BeautifulSoup\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def parse_rounds(id, division_name, tournament_id, url):\n", + "\tresponse = requests.get(url)\n", + "\tround = BeautifulSoup(response.text, 'html.parser')\\\n", + "\t\t.find_all('h4')[-1]\\\n", + "\t\t.get_text(strip=True)\n", + "\tprint(f\"{id=}, {tournament_id=}, {division_name=}, {round=}, {url=}\")\n", + "\t# TODO: Add division to SQL" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "def parse_divisions(id, division_name, tournament_id):\n", + "\tresponse = requests.post(\n", + "\t\t\"https://www.tabroom.com/index/tourn/postings/index.mhtml\",\n", + "\t\tdata={\n", + "\t\t\t'tourn_id': tournament_id,\n", + "\t\t\t'event_id': id\n", + "\t\t}\n", + "\t)\n", + "\tpattern = r\"/index/tourn/postings/round\\.mhtml\\?tourn_id=\"+tournament_id+r\"&round_id=\\d+\"\n", + "\turls = set('https://www.tabroom.com'+match for match in re.findall(pattern, response.text))\n", + "\tfor url in urls:\n", + "\t\tparse_rounds(url.split('=')[-1], division_name, tournament_id, url)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "id='1094093', tournament_id='29541', division_name='CX Open', round='CXOP Round 1', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094093'\n", + "Not parsing Congress Open\n", + "Not parsing DUO Open\n", + "Not parsing Dramatic Interp Open\n", + "Not parsing EdCom\n", + "Not parsing Extemp Novice\n", + "Not parsing Extemp Open\n", + "Not parsing Humorous Interp Open\n", + "Not parsing Impromptu Novice\n", + "Not parsing Impromptu Open\n", + "Not parsing Informative Novice\n", + "Not parsing Informative Open\n", + "id='1094146', tournament_id='29541', division_name='LD Novice', round='LDNO Round 6', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094146'\n", + "id='1129549', tournament_id='29541', division_name='LD Novice', round='LDNO Round 5', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129549'\n", + "id='1094142', tournament_id='29541', division_name='LD Novice', round='LDNO Round 2', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094142'\n", + "id='1094143', tournament_id='29541', division_name='LD Novice', round='LDNO Round 4', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094143'\n", + "id='1129555', tournament_id='29541', division_name='LD Novice', round='LDNO Sems', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129555'\n", + "id='1128329', tournament_id='29541', division_name='LD Novice', round='LDNO Round 3', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1128329'\n", + "id='1094141', tournament_id='29541', division_name='LD Novice', round='LDNO Round 1', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094141'\n", + "id='1129554', tournament_id='29541', division_name='LD Novice', round='LDNO Quarters', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129554'\n", + "id='1128331', tournament_id='29541', division_name='LD Open', round='OLD Round 3', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1128331'\n", + "id='1094149', tournament_id='29541', division_name='LD Open', round='OLD Round 1', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094149'\n", + "id='1094150', tournament_id='29541', division_name='LD Open', round='OLD Round 2', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094150'\n", + "id='1129551', tournament_id='29541', division_name='LD Open', round='OLD Quarters', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129551'\n", + "id='1129550', tournament_id='29541', division_name='LD Open', round='OLD Octas', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129550'\n", + "id='1094154', tournament_id='29541', division_name='LD Open', round='OLD Round 6', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094154'\n", + "id='1094151', tournament_id='29541', division_name='LD Open', round='OLD Round 4', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094151'\n", + "id='1129552', tournament_id='29541', division_name='LD Open', round='OLD Sems', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129552'\n", + "id='1094157', tournament_id='29541', division_name='LD Open', round='OLD FINALS', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094157'\n", + "id='1129548', tournament_id='29541', division_name='LD Open', round='OLD Round 5', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129548'\n", + "id='1129952', tournament_id='29541', division_name='Novice Public Forum', round='NPF Semis', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129952'\n", + "id='1129949', tournament_id='29541', division_name='Novice Public Forum', round='NPF Round 5', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129949'\n", + "id='1129950', tournament_id='29541', division_name='Novice Public Forum', round='NPF Octos', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129950'\n", + "id='1129951', tournament_id='29541', division_name='Novice Public Forum', round='NPF Quarters', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129951'\n", + "id='1094163', tournament_id='29541', division_name='Novice Public Forum', round='NPF Round 6', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094163'\n", + "id='1094158', tournament_id='29541', division_name='Novice Public Forum', round='NPF Round 1', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094158'\n", + "id='1094160', tournament_id='29541', division_name='Novice Public Forum', round='NPF Round 4', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094160'\n", + "id='1128330', tournament_id='29541', division_name='Novice Public Forum', round='NPF Round 3', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1128330'\n", + "id='1094159', tournament_id='29541', division_name='Novice Public Forum', round='NPF Round 2', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094159'\n", + "id='1094166', tournament_id='29541', division_name='Novice Public Forum', round='NPF Finals', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094166'\n", + "id='1094175', tournament_id='29541', division_name='Open Public Forum', round='OPF Finals', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094175'\n", + "id='1128332', tournament_id='29541', division_name='Open Public Forum', round='OPF Round 3', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1128332'\n", + "id='1129954', tournament_id='29541', division_name='Open Public Forum', round='OPF Quarters', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129954'\n", + "id='1094167', tournament_id='29541', division_name='Open Public Forum', round='OPF Round 1', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094167'\n", + "id='1094172', tournament_id='29541', division_name='Open Public Forum', round='OPF Round 6', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094172'\n", + "id='1129948', tournament_id='29541', division_name='Open Public Forum', round='OPF Round 5', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129948'\n", + "id='1094168', tournament_id='29541', division_name='Open Public Forum', round='OPF Round 2', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094168'\n", + "id='1094169', tournament_id='29541', division_name='Open Public Forum', round='OPF Round 4', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094169'\n", + "id='1129953', tournament_id='29541', division_name='Open Public Forum', round='OPF Octos', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129953'\n", + "id='1129955', tournament_id='29541', division_name='Open Public Forum', round='OPF Semis', url='https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1129955'\n", + "Not parsing Oratory Novice\n", + "Not parsing Oratory Open\n", + "Not parsing POI Open\n", + "Not parsing SPAR\n" + ] + } + ], + "source": [ + "# exspect to take 30 sec\n", + "def parse_division_name(tournament_url):\n", + "\ttournament_id = scrape_tournament_info.get_id_from_url(tournament_url)\n", + "\t# TODO: CHeck if tournament id in DB and to scrape is false\n", + "\t# print(scrape_tournament_info.get_formats(tournament_url))\n", + "\n", + "\tfor id, division_name in scrape_tournament_info.get_formats(tournament_url):\n", + "\t\tif 'CX' in division_name or 'LD' in division_name or 'Public Forum' in division_name:\n", + "\t\t\tparse_divisions(id, division_name, tournament_id)\n", + "\t\telse:\n", + "\t\t\tprint(\"Not parsing \", division_name)\n", + "\t# TODO: Set tournament id in DB to scrape to true\n", + "\n", + "parse_division_name(\"https://www.tabroom.com/index/tourn/postings/index.mhtml?tourn_id=29541\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'soup' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[17], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m first_table \u001b[38;5;241m=\u001b[39m \u001b[43msoup\u001b[49m\u001b[38;5;241m.\u001b[39mfind(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtable\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3\u001b[0m table_html \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m(first_table)\n\u001b[1;32m 4\u001b[0m pd\u001b[38;5;241m.\u001b[39mread_html(table_html)\n", + "\u001b[0;31mNameError\u001b[0m: name 'soup' is not defined" + ] + } + ], + "source": [ + "\n", + "\n", + "first_table = soup.find('table')\n", + "\n", + "table_html = str(first_table)\n", + "pd.read_html(table_html)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " Flt\n", + " \n", + " Room\n", + " \n", + " Aff\n", + " \n", + " Neg\n", + " \n", + " Judge\n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Howarth 203\n", + " \n", + " \n", + " \n", + " Northwood JS\n", + " \n", + " \n", + " \n", + " Newport KC\n", + " \n", + " \n", + " \n", + " LIANG CHEN\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Jones 206\n", + " \n", + " \n", + " \n", + " Newport XT\n", + " \n", + " \n", + " \n", + " Bellingham NP\n", + " \n", + " \n", + " \n", + " Robyn Brody\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Jones 206\n", + " \n", + " \n", + " \n", + " Newport BL\n", + " \n", + " \n", + " \n", + " Mount Si DR\n", + " \n", + " \n", + " \n", + " Robyn Brody\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Jones 208\n", + " \n", + " \n", + " \n", + " Mercer Island JY\n", + " \n", + " \n", + " \n", + " Project Dialogue WZ\n", + " \n", + " \n", + " \n", + " Grayson Parker\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Jones 208\n", + " \n", + " \n", + " \n", + " Seattle JP\n", + " \n", + " \n", + " \n", + " Sehome RS\n", + " \n", + " \n", + " \n", + " Grayson Parker\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 202\n", + " \n", + " \n", + " \n", + " Sehome EM\n", + " \n", + " \n", + " \n", + " Riverside SH\n", + " \n", + " \n", + " \n", + " Lydia Wang\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 202\n", + " \n", + " \n", + " \n", + " Bellevue WL\n", + " \n", + " \n", + " \n", + " Woodinville VP\n", + " \n", + " \n", + " \n", + " Lydia Wang\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 203\n", + " \n", + " \n", + " \n", + " Project Dialogue OX\n", + " \n", + " \n", + " \n", + " Overlake YK\n", + " \n", + " \n", + " \n", + " Serena Fitzgerald\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 203\n", + " \n", + " \n", + " \n", + " Puyallup KW\n", + " \n", + " \n", + " \n", + " Redmond JW\n", + " \n", + " \n", + " \n", + " Serena Fitzgerald\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 204\n", + " \n", + " \n", + " \n", + " Sehome AM\n", + " \n", + " \n", + " \n", + " Interlake SY\n", + " \n", + " \n", + " \n", + " Ted Prosise\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 204\n", + " \n", + " \n", + " \n", + " Lake Washington AC\n", + " \n", + " \n", + " \n", + " Bainbridge CM\n", + " \n", + " \n", + " \n", + " Ted Prosise\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 320\n", + " \n", + " \n", + " \n", + " Palisades Charter SM\n", + " \n", + " \n", + " \n", + " Mercer Island AZ\n", + " \n", + " \n", + " \n", + " Elissa Lu\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " McIntyre 320\n", + " \n", + " \n", + " \n", + " Interlake JP\n", + " \n", + " \n", + " \n", + " Overlake RM\n", + " \n", + " \n", + " \n", + " Elissa Lu\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Thompson 374\n", + " \n", + " \n", + " \n", + " Bellingham MC\n", + " \n", + " \n", + " \n", + " Anacortes CH\n", + " \n", + " \n", + " \n", + " Amanda Swainston\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Wheelock 230A\n", + " \n", + " \n", + " \n", + " Gig Harbor AC\n", + " \n", + " \n", + " \n", + " Mount Si SP\n", + " \n", + " \n", + " \n", + " Laura Livingston\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 204\n", + " \n", + " \n", + " \n", + " Overlake LA\n", + " \n", + " \n", + " \n", + " Mercer Island BF\n", + " \n", + " \n", + " \n", + " Daniel Bomberger\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 204\n", + " \n", + " \n", + " \n", + " Amador Valley EM\n", + " \n", + " \n", + " \n", + " Seattle LL\n", + " \n", + " \n", + " \n", + " Daniel Bomberger\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 226\n", + " \n", + " \n", + " \n", + " Bellevue HT\n", + " \n", + " \n", + " \n", + " Redmond KO\n", + " \n", + " \n", + " \n", + " Erin Gibson\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 226\n", + " \n", + " \n", + " \n", + " Interlake YC\n", + " \n", + " \n", + " \n", + " Peninsula AR\n", + " \n", + " \n", + " \n", + " Erin Gibson\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 305\n", + " \n", + " \n", + " \n", + " Renaissance CB\n", + " \n", + " \n", + " \n", + " Mount Vernon TK\n", + " \n", + " \n", + " \n", + " Kristen East\n", + " \n", + "
\n", + " 2\n", + " \n", + " \n", + " \n", + " \n", + " Wyatt 305\n", + " \n", + " \n", + " \n", + " Newport BZ\n", + " \n", + " \n", + " \n", + " Interlake BD\n", + " \n", + " \n", + " \n", + " Kristen East\n", + " \n", + "
\n", + " 1\n", + " \n", + " \n", + " \n", + " BYE\n", + " \n", + " \n", + " Newport AL\n", + " \n", + " \n", + "
\n", + "\n" + ] + } + ], + "source": [ + "first_table = soup.find('table')\n", + "print(first_table.prettify())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Flt Room \\\n", + "0 (1, []) (Howarth 203, []) \n", + "1 (1, []) (Jones 206, []) \n", + "2 (2, []) (Jones 206, []) \n", + "3 (1, []) (Jones 208, []) \n", + "4 (2, []) (Jones 208, []) \n", + "5 (1, []) (McIntyre 202, []) \n", + "6 (2, []) (McIntyre 202, []) \n", + "7 (1, []) (McIntyre 203, []) \n", + "8 (2, []) (McIntyre 203, []) \n", + "9 (1, []) (McIntyre 204, []) \n", + "10 (2, []) (McIntyre 204, []) \n", + "11 (1, []) (McIntyre 320, []) \n", + "12 (2, []) (McIntyre 320, []) \n", + "13 (1, []) (Thompson 374, []) \n", + "14 (1, []) (Wheelock 230A, []) \n", + "15 (1, []) (Wyatt 204, []) \n", + "16 (2, []) (Wyatt 204, []) \n", + "17 (1, []) (Wyatt 226, []) \n", + "18 (2, []) (Wyatt 226, []) \n", + "19 (1, []) (Wyatt 305, []) \n", + "20 (2, []) (Wyatt 305, []) \n", + "21 (1, []) (BYE, []) \n", + "\n", + " Aff \\\n", + "0 (Northwood JS, [/index/tourn/postings/entry_re... \n", + "1 (Newport XT, [/index/tourn/postings/entry_reco... \n", + "2 (Newport BL, [/index/tourn/postings/entry_reco... \n", + "3 (Mercer Island JY, [/index/tourn/postings/entr... \n", + "4 (Seattle JP, [/index/tourn/postings/entry_reco... \n", + "5 (Sehome EM, [/index/tourn/postings/entry_recor... \n", + "6 (Bellevue WL, [/index/tourn/postings/entry_rec... \n", + "7 (Project Dialogue OX, [/index/tourn/postings/e... \n", + "8 (Puyallup KW, [/index/tourn/postings/entry_rec... \n", + "9 (Sehome AM, [/index/tourn/postings/entry_recor... \n", + "10 (Lake Washington AC, [/index/tourn/postings/en... \n", + "11 (Palisades Charter SM, [/index/tourn/postings/... \n", + "12 (Interlake JP, [/index/tourn/postings/entry_re... \n", + "13 (Bellingham MC, [/index/tourn/postings/entry_r... \n", + "14 (Gig Harbor AC, [/index/tourn/postings/entry_r... \n", + "15 (Overlake LA, [/index/tourn/postings/entry_rec... \n", + "16 (Amador Valley EM, [/index/tourn/postings/entr... \n", + "17 (Bellevue HT, [/index/tourn/postings/entry_rec... \n", + "18 (Interlake YC, [/index/tourn/postings/entry_re... \n", + "19 (Renaissance CB, [/index/tourn/postings/entry_... \n", + "20 (Newport BZ, [/index/tourn/postings/entry_reco... \n", + "21 (Newport AL, [/index/tourn/postings/entry_reco... \n", + "\n", + " Neg \\\n", + "0 (Newport KC, [/index/tourn/postings/entry_reco... \n", + "1 (Bellingham NP, [/index/tourn/postings/entry_r... \n", + "2 (Mount Si DR, [/index/tourn/postings/entry_rec... \n", + "3 (Project Dialogue WZ, [/index/tourn/postings/e... \n", + "4 (Sehome RS, [/index/tourn/postings/entry_recor... \n", + "5 (Riverside SH, [/index/tourn/postings/entry_re... \n", + "6 (Woodinville VP, [/index/tourn/postings/entry_... \n", + "7 (Overlake YK, [/index/tourn/postings/entry_rec... \n", + "8 (Redmond JW, [/index/tourn/postings/entry_reco... \n", + "9 (Interlake SY, [/index/tourn/postings/entry_re... \n", + "10 (Bainbridge CM, [/index/tourn/postings/entry_r... \n", + "11 (Mercer Island AZ, [/index/tourn/postings/entr... \n", + "12 (Overlake RM, [/index/tourn/postings/entry_rec... \n", + "13 (Anacortes CH, [/index/tourn/postings/entry_re... \n", + "14 (Mount Si SP, [/index/tourn/postings/entry_rec... \n", + "15 (Mercer Island BF, [/index/tourn/postings/entr... \n", + "16 (Seattle LL, [/index/tourn/postings/entry_reco... \n", + "17 (Redmond KO, [/index/tourn/postings/entry_reco... \n", + "18 (Peninsula AR, [/index/tourn/postings/entry_re... \n", + "19 (Mount Vernon TK, [/index/tourn/postings/entry... \n", + "20 (Interlake BD, [/index/tourn/postings/entry_re... \n", + "21 (, []) \n", + "\n", + " Judge \n", + "0 (LIANG CHEN, [judge.mhtml?judge_id=2150126&tou... \n", + "1 (Robyn Brody, [judge.mhtml?judge_id=2096203&to... \n", + "2 (Robyn Brody, [judge.mhtml?judge_id=2096203&to... \n", + "3 (Grayson Parker, [judge.mhtml?judge_id=2149071... \n", + "4 (Grayson Parker, [judge.mhtml?judge_id=2149071... \n", + "5 (Lydia Wang, [judge.mhtml?judge_id=2152101&tou... \n", + "6 (Lydia Wang, [judge.mhtml?judge_id=2152101&tou... \n", + "7 (Serena Fitzgerald, [judge.mhtml?judge_id=2149... \n", + "8 (Serena Fitzgerald, [judge.mhtml?judge_id=2149... \n", + "9 (Ted Prosise, [judge.mhtml?judge_id=2147585&to... \n", + "10 (Ted Prosise, [judge.mhtml?judge_id=2147585&to... \n", + "11 (Elissa Lu, [judge.mhtml?judge_id=2140354&tour... \n", + "12 (Elissa Lu, [judge.mhtml?judge_id=2140354&tour... \n", + "13 (Amanda Swainston, [judge.mhtml?judge_id=21412... \n", + "14 (Laura Livingston, [judge.mhtml?judge_id=21490... \n", + "15 (Daniel Bomberger, [judge.mhtml?judge_id=21516... \n", + "16 (Daniel Bomberger, [judge.mhtml?judge_id=21516... \n", + "17 (Erin Gibson, [judge.mhtml?judge_id=2144335&to... \n", + "18 (Erin Gibson, [judge.mhtml?judge_id=2144335&to... \n", + "19 (Kristen East, [judge.mhtml?judge_id=2152582&t... \n", + "20 (Kristen East, [judge.mhtml?judge_id=2152582&t... \n", + "21 None \n" + ] + } + ], + "source": [ + "\n", + "\n", + "# Assuming 'link' contains the URL to be requested\n", + "response = requests.get(link)\n", + "soup = BeautifulSoup(response.text, 'html.parser')\n", + "\n", + "# Find the first element in the parsed HTML\n", + "first_table = soup.find('table')\n", + "\n", + "if first_table:\n", + " # Initialize lists to store table data\n", + " table_data = []\n", + " headers = []\n", + "\n", + " # Process table headers if they exist\n", + " thead = first_table.find('thead')\n", + " if thead:\n", + " header_row = thead.find('tr')\n", + " if header_row:\n", + " headers = [th.get_text(strip=True) for th in header_row.find_all('th')]\n", + "\n", + " # Process table rows\n", + " tbody = first_table.find('tbody')\n", + " if tbody:\n", + " rows = tbody.find_all('tr')\n", + " for row in rows:\n", + " cols = row.find_all('td')\n", + " row_data = []\n", + " for col in cols:\n", + " # Get text content\n", + " text = col.get_text(strip=True)\n", + " # Find all links in the cell\n", + " links = [a['href'] for a in col.find_all('a', href=True)]\n", + " # Append text and links as a tuple\n", + " row_data.append((text, links))\n", + " table_data.append(row_data)\n", + "\n", + " # Convert to DataFrame\n", + " if headers:\n", + " df = pd.DataFrame(table_data, columns=headers)\n", + " else:\n", + " df = pd.DataFrame(table_data)\n", + "\n", + " # Print DataFrame\n", + " print(df)\n", + "else:\n", + " print(\"No table found.\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Aff', 'Neg', 'Judge']" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "[df.loc[0][column][1] != [] for column in df.columns]\n", + "\n", + "def has_link(column):\n", + "\treturn df.loc[0][column][1] != []\n", + "columns_with_links = list(filter(has_link, df.columns))\n", + "columns_with_links" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('Northwood JS',\n", + " ['/index/tourn/postings/entry_record.mhtml?tourn_id=29541&entry_id=5453086'])" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "team_or_judge_name, url = df[columns_with_links[0]][0]\n", + "team_or_judge_name, url" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=29541&entry_id=5453086'" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'https://www.tabroom.com'+url[0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Kavya Rengan', 'Anna Charles']" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def get_name(url):\n", + "\tresponse = requests.get('https://www.tabroom.com'+url[0])\n", + "\tsoup = BeautifulSoup(response.text, 'html.parser')\n", + "\tfirst_h2 = soup.find_all('h4')\n", + "\telements = soup.find_all(class_=\"nospace semibold\")\n", + "\n", + "\t# print (elements)\n", + "\tif first_h2:\n", + "\t\treturn first_h2[-1]\\\n", + "\t\t\t.get_text(strip=True)\\\n", + "\t\t\t.replace(\"\\n\", \"\")\\\n", + "\t\t\t.replace(\"\\t\", \"\")\\\n", + "\t\t\t.split(\"&\")\n", + "\telse:\n", + "\t\treturn \"No Title Found\"\n", + "\n", + "get_name([\"/index/tourn/postings/entry_record.mhtml?tourn_id=29541&entry_id=5396865\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Jasmine Shao']" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "get_name(url)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Helper Functions/Python/Scratch Work/get_team_and_judge_urls.ipynb b/Helper Functions/Python/Scratch Work/get_team_and_judge_urls.ipynb new file mode 100644 index 0000000..51751af --- /dev/null +++ b/Helper Functions/Python/Scratch Work/get_team_and_judge_urls.ipynb @@ -0,0 +1,149 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Either a judge or a division will spawn a bunch of teams and judges\n", + "\n", + "a team will spawn one or more debaters\n", + "\n", + "a judge will spawn one or more votes and one or more pairings\n", + "\n", + "a pairing.judge will not necacarily have a public.judge" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# goal find URL and to scrape for each team and judge given division ID" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(['https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4767468',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4740444',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4756380',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4750045',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4770005',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4754859',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4746833',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4747093',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4767467',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4763998',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4764001',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4749110',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4746834',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4754928',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4742940',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4739638',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4768841',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4757060',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4756385',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4778561',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4768165',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4754932',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4768842',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4743982',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4743980',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4745903',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4770004',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4752271',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4742941',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4745902',\n", + " 'https://www.tabroom.com/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4749319'],\n", + " ['https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1987735&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1968869&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1985922&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1970993&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1979687&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1985775&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1964234&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1985781&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1966003&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1977179&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1985717&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1966975&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1970215&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1982402&tourn_id=26620',\n", + " 'https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1980592&tourn_id=26620'])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import requests\n", + "from bs4 import BeautifulSoup\n", + "import urllib.parse\n", + "\n", + "url = \"https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=26620&round_id=981119\"\n", + "\n", + "def get_team_and_judge_urls_from_division(url):\n", + "\tteam_urls,judge_urls = [], []\n", + "\n", + "\t# Send a GET request to the URL\n", + "\tresponse = requests.get(url)\n", + "\n", + "\t# Check if the request was successful\n", + "\tif response.status_code == 200:\n", + "\t\tsoup = BeautifulSoup(response.text, 'html.parser')\n", + "\t\tlinks = soup.find_all('a')\n", + "\n", + "\t\t# Loop through all found tags\n", + "\t\tfor link in links:\n", + "\t\t\thref = link.get('href') # Get the href attribute of each tag\n", + "\t\t\tif href: # If href exists, add it to the list of URLs\n", + "\t\t\t\tfull_url = urllib.parse.urljoin(url, href)\n", + "\t\t\t\tif 'entry_record' in full_url:\n", + "\t\t\t\t\tteam_urls.append(full_url)\n", + "\t\t\t\telif 'judge.mhtml' in full_url:\n", + "\t\t\t\t\tjudge_urls.append(full_url)\n", + "\telse:\n", + "\t\tprint(f\"Failed to retrieve the page. Status code: {response.status_code}\")\n", + "\treturn team_urls, judge_urls\n", + "\n", + "get_team_and_judge_urls_from_division(url)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Helper Functions/Python/Scratch Work/judge_and_debater_details.ipynb b/Helper Functions/Python/Scratch Work/judge_and_debater_details.ipynb new file mode 100644 index 0000000..01d6eb6 --- /dev/null +++ b/Helper Functions/Python/Scratch Work/judge_and_debater_details.ipynb @@ -0,0 +1,429 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [], + "source": [ + "import requests" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Create Pairings Record" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [], + "source": [ + "# id to be auto generated\n", + "division = 981121\n", + "tournament = 26620\n", + "url = \"https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=26620&round_id=981121\"\n", + "# url = \"https://www.tabroom.com/index/tourn/postings/round.mhtml?tourn_id=29541&round_id=1094146\"" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [], + "source": [ + "# MAJOR SLOWDOWN: parse_rounds calls same url as this function\n", + "\n", + "from bs4 import BeautifulSoup\n", + "\n", + "\n", + "# response = requests.get('https://www.tabroom.com/index/tourn/results/round_results.mhtml?'+url.split(\"?\")[-1])\n", + "response = requests.get(url)\n", + "soup = BeautifulSoup(response.text, 'html.parser')\n", + "first_table = soup.find('table')\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "\n", + "table_data = []\n", + "headers = []\n", + "\n", + "# Process table headers if they exist\n", + "thead = first_table.find('thead')\n", + "if thead:\n", + "\theader_row = thead.find('tr')\n", + "\tif header_row:\n", + "\t\theaders = [th.get_text(strip=True) for th in header_row.find_all('th')]\n", + "\n", + "# Process table rows\n", + "tbody = first_table.find('tbody')\n", + "if tbody:\n", + "\trows = tbody.find_all('tr')\n", + "\tfor row in rows:\n", + "\t\tcols = row.find_all('td')\n", + "\t\trow_data = []\n", + "\t\tfor col in cols:\n", + "\t\t\t# Get text content\n", + "\t\t\ttext = col.get_text(strip=True)\n", + "\t\t\t# Find all links in the cell\n", + "\t\t\tlinks = [a['href'] for a in col.find_all('a', href=True)]\n", + "\t\t\t# Append text and links as a tuple\n", + "\t\t\trow_data.append((text, links))\n", + "\t\ttable_data.append(row_data)\n", + "df = pd.DataFrame(table_data, columns=headers)" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "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", + "
Judge
0(Redmond Neha Mahesh & Nikki Taleghani, [/inde...(Overlake Ammar Ghouse & Caitrin Walker, [/ind...(Hans Soderquist, [judge.mhtml?judge_id=197430...
1(Henrietta Lacks Health and Bioscience London ...(Ferris Ben Elrod & John Garten, [/index/tourn...(Girija Chintalapati, [judge.mhtml?judge_id=19...
2(Gonzaga Prep William Kladar & Max Johnson & S...(Tahoma Rex Dugan & Hailey Sato, [/index/tourn...(Emmett Simmons, [judge.mhtml?judge_id=1974939...
3(Interlake Clarence Guo & Daniel Jung, [/index...(Overlake Musab Chummun & Erik Vank, [/index/t...(Chris Price, [judge.mhtml?judge_id=1966977&to...
4(Mt. Spokane Ellie Henshaw & Beau Tampien, [/i...(Union Elliot Holden & Alice Schaak, [/index/t...(Paul Lorimer, [judge.mhtml?judge_id=1979687&t...
5(Eastside Prep Zubin Oommen & Jack Little, [/i...(Mountlake Terrace Nathaniel Ballard & Seth Me...(Amy Chapman, [judge.mhtml?judge_id=1985314&to...
6(Mount Vernon Dawn Rosas & Ailene Valles, [/in...(Battle Ground Elizabeth McAleer & Clarity Coo...(Skye Cordero, [judge.mhtml?judge_id=1971595&t...
7(Ferris Anvi Sehgal & Madeleine Schreiber, [/i...(Gig Harbor Logan Thoms & Madison Clement, [/i...(Thomas Cline, [judge.mhtml?judge_id=1985781&t...
8(Edmonds-Woodway Kaylee Meyers & Audrey Gibson...(Glacier Peak Naomi Varghese & Maisha Shirazi,...(Kaveh Dilmaghani, [judge.mhtml?judge_id=19669...
9(Kamiakin Ryan Kirby & Parker Vladimiroff, [/i...(Bainbridge Evelyn Cantwell & Eilise O'Hartiga...(Ying Ning, [judge.mhtml?judge_id=1985315&tour...
10(Gonzaga Prep Griffin Satterfield & Sophia McF...(Gig Harbor Ellis Adamson & Nichole Tian, [/in...(Yanti Sanusi, [judge.mhtml?judge_id=1965391&t...
11(Mountlake Terrace Asenat Ghebru & Laraine Sim...(Battle Ground Mackenzie Heffner & Marley Wing...(Willow Smith, [judge.mhtml?judge_id=1980592&t...
12(Eastside Prep Emma Lorimer & Raelin Engrav, [...(Interlake Aileen Liang & Jerry Li, [/index/to...(Amber Schaak, [judge.mhtml?judge_id=1970215&t...
13(Shadle Park Jayden Nadreau & daylynn oharran ...(Tahoma Lachlan Bailey & Jace Simon, [/index/t...(Marc Cantwell, [judge.mhtml?judge_id=1987191&...
14(stacey Gapesina, [/index/tourn/postings/entry...(Shadle Park Claire Bacon & Mayumi Deguzman, [...(Donald Hendrixson, [judge.mhtml?judge_id=1968...
15(Ephrata Piper Fransisco & Harper Grizzel, [/i...(, [])(1, [])
\n", + "" + ], + "text/plain": [ + " \\\n", + "0 (Redmond Neha Mahesh & Nikki Taleghani, [/inde... \n", + "1 (Henrietta Lacks Health and Bioscience London ... \n", + "2 (Gonzaga Prep William Kladar & Max Johnson & S... \n", + "3 (Interlake Clarence Guo & Daniel Jung, [/index... \n", + "4 (Mt. Spokane Ellie Henshaw & Beau Tampien, [/i... \n", + "5 (Eastside Prep Zubin Oommen & Jack Little, [/i... \n", + "6 (Mount Vernon Dawn Rosas & Ailene Valles, [/in... \n", + "7 (Ferris Anvi Sehgal & Madeleine Schreiber, [/i... \n", + "8 (Edmonds-Woodway Kaylee Meyers & Audrey Gibson... \n", + "9 (Kamiakin Ryan Kirby & Parker Vladimiroff, [/i... \n", + "10 (Gonzaga Prep Griffin Satterfield & Sophia McF... \n", + "11 (Mountlake Terrace Asenat Ghebru & Laraine Sim... \n", + "12 (Eastside Prep Emma Lorimer & Raelin Engrav, [... \n", + "13 (Shadle Park Jayden Nadreau & daylynn oharran ... \n", + "14 (stacey Gapesina, [/index/tourn/postings/entry... \n", + "15 (Ephrata Piper Fransisco & Harper Grizzel, [/i... \n", + "\n", + " \\\n", + "0 (Overlake Ammar Ghouse & Caitrin Walker, [/ind... \n", + "1 (Ferris Ben Elrod & John Garten, [/index/tourn... \n", + "2 (Tahoma Rex Dugan & Hailey Sato, [/index/tourn... \n", + "3 (Overlake Musab Chummun & Erik Vank, [/index/t... \n", + "4 (Union Elliot Holden & Alice Schaak, [/index/t... \n", + "5 (Mountlake Terrace Nathaniel Ballard & Seth Me... \n", + "6 (Battle Ground Elizabeth McAleer & Clarity Coo... \n", + "7 (Gig Harbor Logan Thoms & Madison Clement, [/i... \n", + "8 (Glacier Peak Naomi Varghese & Maisha Shirazi,... \n", + "9 (Bainbridge Evelyn Cantwell & Eilise O'Hartiga... \n", + "10 (Gig Harbor Ellis Adamson & Nichole Tian, [/in... \n", + "11 (Battle Ground Mackenzie Heffner & Marley Wing... \n", + "12 (Interlake Aileen Liang & Jerry Li, [/index/to... \n", + "13 (Tahoma Lachlan Bailey & Jace Simon, [/index/t... \n", + "14 (Shadle Park Claire Bacon & Mayumi Deguzman, [... \n", + "15 (, []) \n", + "\n", + " Judge \n", + "0 (Hans Soderquist, [judge.mhtml?judge_id=197430... \n", + "1 (Girija Chintalapati, [judge.mhtml?judge_id=19... \n", + "2 (Emmett Simmons, [judge.mhtml?judge_id=1974939... \n", + "3 (Chris Price, [judge.mhtml?judge_id=1966977&to... \n", + "4 (Paul Lorimer, [judge.mhtml?judge_id=1979687&t... \n", + "5 (Amy Chapman, [judge.mhtml?judge_id=1985314&to... \n", + "6 (Skye Cordero, [judge.mhtml?judge_id=1971595&t... \n", + "7 (Thomas Cline, [judge.mhtml?judge_id=1985781&t... \n", + "8 (Kaveh Dilmaghani, [judge.mhtml?judge_id=19669... \n", + "9 (Ying Ning, [judge.mhtml?judge_id=1985315&tour... \n", + "10 (Yanti Sanusi, [judge.mhtml?judge_id=1965391&t... \n", + "11 (Willow Smith, [judge.mhtml?judge_id=1980592&t... \n", + "12 (Amber Schaak, [judge.mhtml?judge_id=1970215&t... \n", + "13 (Marc Cantwell, [judge.mhtml?judge_id=1987191&... \n", + "14 (Donald Hendrixson, [judge.mhtml?judge_id=1968... \n", + "15 (1, []) " + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Create a boolean mask of columns where the first row's second element is not an empty list\n", + "columns_with_links = [idx for idx in range(len(df.columns)) if df.iloc[0, idx][1] != []]\n", + "\n", + "# Create a new DataFrame that only includes the filtered columns\n", + "df_filtered = df.iloc[:, columns_with_links].copy()\n", + "\n", + "# Display the filtered DataFrame\n", + "# print(df_filtered)\n", + "df_filtered\n" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(16, 3)" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_filtered.shape\n" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('Overlake Ammar Ghouse & Caitrin Walker', ['/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4746833'])\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/6w/yqthf3cx1v1gtm_3th5g0nk00000gp/T/ipykernel_69748/3617904887.py:2: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", + " print(i[1][1])\n" + ] + } + ], + "source": [ + "for i in list(df_filtered.iterrows())[:1]:\n", + "\tprint(i[1][1])" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": {}, + "outputs": [], + "source": [ + "def create_judge(given_role, url, content, pairing_id, first_url):\n", + "\tprint(url)\n", + "\tresponse = requests.get('https://www.tabroom.com/index/tourn/postings/'+url)\n", + "\t# soup = BeautifulSoup(response.text, 'html.parser')\n", + "\t# first_table = soup.find('table')\n", + "\t# print(f\"Judge: {content}\")\n", + "\n", + "def create_team(given_role, url, content, pairing_id):\n", + "\tprint(f\"Team: {content}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 130, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Team: ('Henrietta Lacks Health and Bioscience London Lockwood & Kenneth', ['/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4778561'])\n", + "Team: ('Ferris Ben Elrod & John Garten', ['/index/tourn/postings/entry_record.mhtml?tourn_id=26620&entry_id=4756380'])\n", + "judge.mhtml?judge_id=1985922&tourn_id=26620\n" + ] + } + ], + "source": [ + "def create_team_or_judge(given_role, content, pairing_id, first_url):\n", + "\turl = content[1][0]\n", + "\tif url.split(\".\")[0]=='judge':\n", + "\t\tcreate_judge(given_role, url, content, pairing_id, first_url)\n", + "\telse:\n", + "\t\tcreate_team(given_role, url, content, pairing_id)\n", + "\n", + "# TODO make this function spawn a bunch of concurent processes or better yet make a work pool\n", + "for match in list(df_filtered.itertuples())[1:2]:\n", + "\tif 'judge' not in str(match):\n", + "\t\tprint(match, \" is a bye\")\n", + "\t\t# return\n", + "\tfirst_url = match[1][1][0]\n", + "\t# TODO check if there is an exisitng pairing with the same division, tournament, and first ulr, if not,\n", + "\t# TODO make pairing row and pass its id to create team or judge\n", + "\tpairing_id = 1\n", + "\tfor index, content in enumerate(match[1:]):\n", + "\t\trole = df_filtered.columns[index]\n", + "\t\tif role == '': role = 'Competitor'\n", + "\t\tcreate_team_or_judge(role, content, pairing_id, first_url)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Create Judges Record" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Create Teams Record" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Helper Functions/Python/scrape_debaters_and_judges.py b/Helper Functions/Python/scrape_debaters_and_judges.py new file mode 100644 index 0000000..3ab781d --- /dev/null +++ b/Helper Functions/Python/scrape_debaters_and_judges.py @@ -0,0 +1,89 @@ +import requests +import re +from bs4 import BeautifulSoup +from collections import namedtuple + + +def get_debater_and_team_from_url(url): + html_content = requests.get(url).content + soup = BeautifulSoup(html_content, 'html.parser') + + debater_info = soup.find('span', class_='twothirds nospace') + if debater_info is None: + print(f"{url} is a private round so it not added to db") + return [], None + debater_names = debater_info.find('h4', class_='nospace semibold').text.strip() + team_name = debater_info.find('h6', class_='full nospace martop semibold bluetext').text.strip() + + debater_names = re.split(r'\s+&\s+', debater_names) + team_name =( + ' ' + .join(team_name.split()) + .split(':')[0] # If team name is SCHOOL: DEBATER, DEBATER then return SCHOOL + .split(debater_names[0])[0] # If team name is SCHOOL: FIRST DEBATER FIRST NAME... return SCHOOL + .split(debater_names[1] if len(debater_names) > 1 else "~~~")[0] # If team name is SCHOOL: SECOND DEBATER FIRST NAME... return SCHOOL + .split(debater_names[0].split()[-1])[0] # if team name is SCHOOL: LAST NAME... return school + ) + + return debater_names, team_name + +# get_debater_and_team_from_url(url) +Vote = namedtuple("Vote", ['judge_id', 'team_link', 'division_id', 'tourn_id', 'won', 'side']) +Speaker_Points = namedtuple("Speaker_Points", ['judge_id', 'team_link', 'name', 'division_id', 'tourn_id', 'points']) + +def get_votes_and_speaker_points_for_a_tournament_from_judge_url(st, url): + votes, speaker_points = [], [] + + judge_id,tourn_id = url.split("judge_id=")[-1].split('&tourn_id=') + + response = requests.get(url) + + # judge = get_judge_info() + + soup = BeautifulSoup(response.content, 'html.parser') + rows = soup.find_all('tr', class_='row smallish') + + for row in rows: + columns = row.find_all('td') + + division_link, team_link = ['https://www.tabroom.com/index/tourn/postings/'+link['href'] for link in row.find_all('a', href=True)] + division_id = division_link.split("round_id=")[-1].split('&')[0] + result = columns[3].text.strip().lower() + won = 'w' in result + # print("result is ", result) + # print(f"because the row is {columns} and the url is {url}") + if won or 'l' in result: + votes.append(Vote( + judge_id=judge_id, + team_link=team_link, + division_id=int(division_id), + tourn_id=int(tourn_id), + won=won, + side=columns[1].text.strip().lower() + )) + else: + st.write(f"no vote is added for {[column.text.strip() for column in columns]} because it doesn't assign a single winner (congress)") + + names_and_points = [col.get_text(strip=True).lower() for col in columns[4:]] + # print(url, names_and_points) + for name, points in zip(names_and_points[::2], names_and_points[1::2]): + try: + assert not name.isnumeric() + speaker_points.append(Speaker_Points( + judge_id=judge_id, + team_link=team_link, + name=name, + division_id=int(division_id), + tourn_id=int(tourn_id), + points=float(points) + )) + except ValueError: + st.write(f"Skipping {names_and_points} because it is an elim round that doesn't assign speaker points or is inconsistant about the order of speaker points and names ({url})") + except AssertionError: + st.write(f"Skipping {names_and_points} because the speaker points are where a name should be ({url})") + + return votes, speaker_points + +# votes, speaker_points = get_votes_and_speaker_points_for_a_tournament_from_judge_url('https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1985775&tourn_id=26620') +# for vote in votes: print(vote) +# for points in speaker_points: print(points) diff --git a/Helper Functions/Python/scrape_division_info.py b/Helper Functions/Python/scrape_division_info.py new file mode 100644 index 0000000..f3308c6 --- /dev/null +++ b/Helper Functions/Python/scrape_division_info.py @@ -0,0 +1,95 @@ +import scrape_tournament_info +import requests +import re +from bs4 import BeautifulSoup +import pandas as pd +import streamlit as st +from sqlalchemy import and_ +import urllib + + + +def parse_division_name(tournament_url, table, session): + tournament_id = scrape_tournament_info.get_id_from_url(tournament_url) + divisions = scrape_tournament_info.get_formats(tournament_url) + if len(divisions) == 0: + st.write(f"No division found for {tournament_url}") + return + division_progress = st.progress(0, f"Processing {divisions[0][1]}") + division_count = 1 + for id, division_name in divisions: + parse_events(id, division_name, tournament_id, table, session) + division_progress.progress(division_count/len(divisions), f"Finished Processing {division_name}") + division_count += 1 + division_progress.empty() + + +def parse_events(event_id, division_name, tournament_id, table, session): + response = requests.post( + "https://www.tabroom.com/index/tourn/postings/index.mhtml", + data={ + 'tourn_id': tournament_id, + 'event_id': event_id + } + ) + pattern = r"/index/tourn/postings/round\.mhtml\?tourn_id="+tournament_id+r"&round_id=\d+" + urls = set('https://www.tabroom.com'+match for match in re.findall(pattern, response.text)) + for url in urls: parse_rounds(division_name, tournament_id, url, table, session) + +def parse_rounds(division_name, tournament_id, url, table, session): + id = int(url.split("=")[-1]) + response = requests.get(url) + round = BeautifulSoup(response.text, 'html.parser')\ + .find_all('h4')[-1]\ + .get_text(strip=True) + + with session as session: + session.execute( + table\ + .delete()\ + .where(and_( + table.c.id == id, + table.c.tournament == tournament_id, + )) + ) + session.execute( + table\ + .insert()\ + .values( + id=id, + tournament=tournament_id, + division_name = division_name, + format = '', + level = '', + round = round, + is_elimination = None, + url=url, + details='{}', + to_scrape=True + ) + ) + session.commit() + +def get_team_and_judge_urls_from_division(url): + team_urls,judge_urls = [], [] + + # Send a GET request to the URL + response = requests.get(url) + + # Check if the request was successful + if response.status_code == 200: + soup = BeautifulSoup(response.text, 'html.parser') + links = soup.find_all('a') + + # Loop through all found tags + for link in links: + href = link.get('href') # Get the href attribute of each tag + if href: # If href exists, add it to the list of URLs + full_url = urllib.parse.urljoin(url, href) # type: ignore + if 'entry_record' in full_url: + team_urls.append(full_url) + elif 'judge.mhtml' in full_url: + judge_urls.append(full_url) + else: + print(f"Failed to retrieve the page. Status code: {response.status_code}") + return set(team_urls), set(judge_urls) diff --git a/Helper Functions/Python/scrape_judge.py b/Helper Functions/Python/scrape_judge.py new file mode 100644 index 0000000..80e9d56 --- /dev/null +++ b/Helper Functions/Python/scrape_judge.py @@ -0,0 +1,66 @@ +from bs4 import BeautifulSoup +import requests + +def get_judge_id(judge_url:str): + try: + return judge_url.split("judge_id=")[1].split('&')[0] + except: + return None + +def validate_judge_url(judge_url:str): + return get_judge_id(judge_url) != None + +def display_judges_tabroom_page(st, url): + if url: + try: + response = requests.get(url) + response.raise_for_status() + soup = BeautifulSoup(response.text, 'html.parser') + + # Find and remove the
tag if it exists + header = soup.find('header') + if header: + soup = header.extract() # Remove the header tag and its contents + + # Find and remove navigation bar + tabs = soup.find('ul', id='tabnav') # type: ignore + if tabs: + tabs.extract() + else: print("no tabnav found") + + + menu = soup.find(class_='main') # type: ignore + if menu: + soup = menu.extract() + + st.html(str(soup)) + + except requests.exceptions.RequestException as e: + st.error(f"An error occurred: {e}") + + +def get_judge_name(url): + response = requests.get(url) + # response.raise_for_status() # Check for request errors + soup = BeautifulSoup(response.text, 'html.parser') + header = soup.find('h3') + if header != None: + return ( + header + .text + .strip() + .lower() + ) + else: + return "No Name Found" + +def get_team_urls(url): + soup = BeautifulSoup(requests.get(url).text, 'html.parser') + return set( + 'https://www.tabroom.com'+link.get('href') + for link in soup.find_all('a') + if link.get('href') if 'postings/entry_record' in link.get('href') + ) + + +# get_team_urls('https://www.tabroom.com/index/tourn/postings/judge.mhtml?judge_id=1985775&tourn_id=26620') diff --git a/Helper Functions/Python/scrape_tournament_info.py b/Helper Functions/Python/scrape_tournament_info.py new file mode 100644 index 0000000..98ed915 --- /dev/null +++ b/Helper Functions/Python/scrape_tournament_info.py @@ -0,0 +1,30 @@ +import requests +from bs4 import BeautifulSoup +import re + +def url_is_in_exspected_format(url): + return re.fullmatch(r'https://www\.tabroom\.com/index/tourn/postings/index\.mhtml\?tourn_id=\d+', url) != None + +def get_id_from_url(url): + return url.split('=')[-1] + +def get_tournament_name_from_url(url): + response = requests.get(url) + soup = BeautifulSoup(response.text, 'html.parser') + first_h2 = soup.find('h2') + if first_h2: + return first_h2.get_text(strip=True) + else: + return "No Title Found" + +def get_formats(url): + response = requests.get(url) + soup = BeautifulSoup(response.text, 'html.parser') + first_dropdown = soup.find('select') + if first_dropdown: + return [ + (option.get('value'), option.text.strip()) + for option in first_dropdown.find_all('option')[1:] # type: ignore + ] + else: + return [None, "No Options Found"] diff --git a/Kanban.md b/Kanban.md new file mode 100644 index 0000000..5b10cec --- /dev/null +++ b/Kanban.md @@ -0,0 +1,43 @@ +--- + +kanban-plugin: board + +--- + +## Long Term + +- [ ] Scrape Judge From URL +- [ ] Data Analysis MVP +- [ ] Data Analysis by Judge +- [ ] Database status page (where are errors, how many entries, contribute to outstanding tasks) +- [ ] Connect to powerBI + + +## To Prioritize + +- [ ] Gender Binding From API #Sam +- [ ] Scrape Judge From Pairing #Lev + + +## To Do + +- [ ] Gender Binding From Dataset #Sam + + +## In Progress + +- [ ] Scrape Debater From Pairing #Lev + + +## Complete + +**Complete** + + + + +%% kanban:settings +``` +{"kanban-plugin":"board","list-collapse":[false,false,false,false,false],"tag-colors":[{"tagKey":"#Lev","color":"rgba(0, 0, 0, 1)","backgroundColor":"rgba(9, 255, 34, 0.1)"},{"tagKey":"#Sam","color":"rgba(0, 0, 0, 1)","backgroundColor":"rgba(0, 47, 255, 0.1)"}]} +``` +%% \ No newline at end of file diff --git a/README.md b/README.md index fb3e27e..80f52cf 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,34 @@ -# Debate-Judge-Bias-Calculator: Desktop program that aims to measure signs of debate judge bias from tabroom records. +# Debate-Judge-Bias-Calculator +## A Scraping and Analysis Tool Helping Citizen Data Scientists to Analyze Debate Records Across Tournaments and Judges ## Introduction -After spendingsix years in competitive academic debate as a judge, team captain, and competitor I have found unique role of the Debate Judge facination. One of the unique things about debate is the role of a judge. In the wider world, judges apply rules, but in debate, the judge's only job is to decides who is more convincing. This introduces a huge amount of freedom to the judge. With this freedom comes a huge amount of room for bias in the judge’s decision. Because of the deeply personal nature of debate and the judge's freedom, coaches exspect to hear angered students accuse judges of bias. Because of the frequency coaches often dismiss or ignore these acusations. Debate aboslutle has a bias problem. This tool's goal is to aid debaters when they make claims and help coaches sort through the noise. +Over Six years as a judge and competitor within academic debate, I've found the role of judges unique and fascinating. In other forms of competition, judges enforce rules or make judgments along a clearly defined rubric. In contrast, debate judges make a single decision (Which debated better upholds the resolution). The rubric they judge by is ephemeral, differs by judges (See judge adaptation and judge paradigms), and is partially defined within each round (See Framework, Value/Criterion, Kritik, .etc). This unique role makes judges decision effectively unchecked. -A benifit of moving from paper to a central tournaments managment software is the often decade long public record of every round a judge has prosided over. There are no tools to help debaters sort through this data because the data is relitively unhelpful in making future decisions (only including dividion, format, result, and the debaters' names). In 2021 I stumbled across an API that takes a name and returns the name's gender and condidance rating. While haldly a exact tool, by applying the API to guess at debater's genders, I can provide usful insights towards judges', tournaments', and leages', gender biases. +The arbitrary nature of judges decision making combined with the deeply personal nature of debate cause debaters to frequently level complaints against Judges. This frequency may cause Coaches to prematurely dismiss their students' complaints. **This tool's aims to augment current discussions around the rampant bias debate is struggling to address augment existing conversations with statistical insights.** -If you have any interest in learning about the rampant discrimination in United States Debate here are some great articles. -TLDR: there is a disgusting amount of sexism in debate which causes women to be forced out of the activity at depressing rates. There has been quantitative research on the effect of sexism but no substantial work on the effect and existance of discriminatory Judges within the activity. +Much of the debate community have long moved from running tournaments with paper to a central tournament management software: TabRoom. Because tournament records are public and standardized on TabRoom, A judges records can be reconstruct for the last decade. This tool explore tournament and judges records through a handful or lenses. +- Does a judge have an Aff-Neg bias (may be helpful when debaters have a coin flip to pick sides)? +- How do different debate leagues retention rates compare across time? +- How does a school's debate drop-out rate compare to its league's drop-out rate? +- How often do judges vote against a panel (a proxy for how different is a judge's decision making from the "average" judge). +- Does a judge give more or less speaker points than their peers (may be helpful when picking judge preferences). +- **Does a tournament, school, or league have a record of gender discrimination in who quits, who wins, and who earns more speaker points (May provide a unique link for a Fem-K or related argument)** +- **Do Judges appear to have a gender bias in their voting or assignment of speaker points?** + +To find correlations related to the last two bullet points, we need to know the gender of debaters. Understandably, TabRoom does not publish this information. To approximate gender, we take a dataset of all people born in the USA in the last some number of years, and group by first name. By comparing the number of girls to boys for a given name we find a very rough approximation of each names gender. This methodology is fundamentally flawed because it only considers names and genders assigned at birth, only considers people born/reported in the USA, and will only ever label individuals into two genders. To address these shortcomings: +- This tool can be configured to exclude gender neutral names or consider gender neutral as a third category. +- For names that do not belong to many USA born children, we turn to an external API that considers records from across the world. However, the cost of this API makes it untenable to rely on for all names and the API remains Eurocentric. +Despite the fundamental flaws in our methodology, by aggregating large number of rounds and explicitly calling out and considering the skew in our data, we believe the metrics this tool produces are better than no analysis. Have suggestions for improving our methodology? Please Reach out! + + +If you have any interest in learning about the rampant discrimination in United States Debate here are some great articles. - https://sarahisomcenter.org/blog/2019/11/20/combatting-sexism-in-speech-and-debate-programs - https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3715996 - https://www.semanticscholar.org/paper/Gender-Disparities-in-Competitive-High-School-New-Tartakovsky/28818fee3ee742cbb88eabb93644ebf8ea8e4370 --- -## How can I use this tool? +%% ## How can I use this tool? This project collects judges records, guesses at debaters gender, and gives debate members a simple to use tool. Debaters can use this tool to answer questions such as: @@ -31,65 +46,32 @@ For tournament and leauge organisers, this tool can answer questions like: For coaches this tool can answer questions like: 1. Which tournaments should I take my team to? -2. Which coaches should I hire? - -## How to Quantify Discrimination? - -Consider a Policy debate round (two teams of two debaters): - -1. Each debater's name is looked up, if the confidance level is lower than the cutoff, the process stops and this round doesn't effect the judge's bias rating. -2. For each woman who wins the round, the rounds score increments -3. For each woman who loses the round, the round score decrements -4. For each man who wins the round, the round score decrements -5. For each man who loses the round, the round score decrements - -This leaves a round score between -4 and 4 - -This same method works for any debate format with any number of debaters (Lincon Douglas ranges from 2 to -2). - -A judge's bias rating is the sum of all of their round scores - -### What does this look like? -- If two men win against two men, the round score is 0 (-1 + -1 + 1 + 1) -- If two women win against two women, the round score is 0 (1 + 1 + -1 + -1) -- If a man and a woman win against a man and a women, the round score is 0 (-1 + 1 + 1 + -1) -- If a man and a woman win agains a man and a person of unknown gender, the round score is 0 (if a name's gender confidance doesn't meet the threshold the entire round has no impact on the judge's bias rating) -- If two men win against two women, the score is -4 (-1 + -1 + -1 + -1) -- If two women win against two men, the score is 4 (1 + 1 + 1 + 1) -- If two women win against a man and a woman, the score is 2 (1 + 1 + 1 + -1) - -Consider the following Judge record: -| | Aff Team | Neg Team | Winning Team | Round Score | -| --- | --- | --- | --- | --- | -| Round 1 | Male/Female | Female/Female | Neg | 2 -| Round 2 | Male/Female | Female/Female | Aff | -2 -| Round 3 | Female/Female | Male/Male | Neg | -4 -| Round 4 | Male/Male | Male/Male | Aff | 0 -| Round 5 | Female/Male | Male/Male | Neg | -2 - -This judge's bias rating is -6 which shows a preference for voting for men. - -However with a p-value of 0.3, this preference is not significant (this could be explained by chance) so no conclusions can be make about the judge's bias. - -## Shortcommings - -- Doesn't count nonbinary people: Gender neutral names will be thrown out meaning that this tool has no chance of identifying bias against nonbinary people. - -- Garbage in, garbage out: If the API is based on data from western countries, debate rounds that include names less common in western countries are more likely to be thrown out. Meaning intersectional bias will be underestimated by this tool. - -- It's just a number: This tool doesn't devalue personal exsperences with a judge. This tool is meant to be used in conjunction with other evidence to make a case for bias. There is a hunderd ways for a judge to be biased without it showing up on this one particular measure. - -- It's all probability: When you consider 10,000 bias free judges, we would exspect 500 judges to have a p-value of 0.05 or less showing bias. This tool works best when focusing on tournaments and leauges, rather than individual judges. The larger the number of rounds considered, the more likely it is that a judge's bias rating is to reflect reality. - -## Timeline -TODO: write timeline +2. Which coaches should I hire? %% + +## Shortcomings + +- **Flawed Gender Methodology**: + - See above. +- **Garbage In, Garbage Out**: + - Because the API over-represents names from western countries. Debate rounds that include names less common in western countries may be more likely to be thrown out. Meaning intersectional bias will be underestimated by this tool. +- **It's Just a Number**: + - This is not meant to devalue your experiences with a judge. + - A failure to reject the null hypothesis has no meaning. In other words just because this tool does not identify bias does not mean that there is no bias. + - Technology is not the solution to rampant discrimination in debate. + - Who we demand proof from before we value their experiences and perception is colored by bias and historic power structures. + - This tool is simply meant to add another tool to those who are pushing the hard conversations +- **It's Not Intuitive to Interpret Probability**: + - While it is reasonable to consider a P-value of 0.05 the threshold for signs of statistically significant discrimination. If you repetitively ran this test on only 20 perfectly unbiased judges, you would expect to see (on average) one incorrectly identified as biased (See the family-wise error rate). + - Similarly, It is tempting to incorrectly assign a causal claim to a correlational analysis. This statistical analysis doesn't identify where the bias comes from. Perhaps the education system or social norms better equip one group to excel in debate. A judge who always votes for the better debater may consistently vote for the better prepared group causing a bias to appear in their voting record through no "fault" of the judge. + - This tool works best when focusing on tournaments and leagues, rather than individual judges so more rounds are considered in each analysis. + - This tool should not be miss-used by trawling through hundreds of judges to find a handful with weak statistical significance as these are likely false positives. If you wish to check many judges, lower your significance threshold or find the family-wise error rate. Better yet, don't run many statistical tests and instead come with a specific hypothesis about a single or handful of judges. ## Index of Files -TODO: link to scrape readme -## How to run this project? -1. Install Rust: https://www.rust-lang.org/tools/install +TODO -2. Install this git repo: `git clone https://github.com/levshuster/Debate-Judge-Bias-Calculator.git` +## How to run this project? -3. Run the project by navigating to the src folder and entering `cargo run ` \ No newline at end of file +TODO +- Start up SQL database +- Launch Streamlit App \ No newline at end of file diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 7fded8a..0000000 --- a/TODO.md +++ /dev/null @@ -1,15 +0,0 @@ -- [] Resolve Warnings -- [] Test on more judges to find edge cases and exspand enum set -- [] write a function that will graph the confidance range to help pick a threshold -- [] write a function that will give the p value of the judge gender voting history -- [] Alow data used in analysis to be filtered by Date -- [] Alow data used in analysis to be filtered by Division -- [] Alow data used in analysis to be filtered by Format -- [] Create scrape tournament -- [] create scrape league -- [] export washington debate leage as kaggle dataset -- [] create gui -- [] create stats on gender dirstibution of tournament winners -- [] make a tool so people can test name against the api: - - We included this tool in an effort to be transparent about the limitations of our tool. We hope to improve this tool in the future. - - This page is also helpful for determining a reasonable confidance threashold (try entering a name like 'alex' to see how our confidence falls with name common to multiple genders) diff --git a/Backup/Gender.py b/earlier work/Backup/Gender.py similarity index 100% rename from Backup/Gender.py rename to earlier work/Backup/Gender.py diff --git a/Backup/Judge.py b/earlier work/Backup/Judge.py similarity index 100% rename from Backup/Judge.py rename to earlier work/Backup/Judge.py diff --git a/Backup/from_tab.py b/earlier work/Backup/from_tab.py similarity index 100% rename from Backup/from_tab.py rename to earlier work/Backup/from_tab.py diff --git a/Backup/judge_stats.py b/earlier work/Backup/judge_stats.py similarity index 100% rename from Backup/judge_stats.py rename to earlier work/Backup/judge_stats.py diff --git a/Results/Dave Kerpen.bias b/earlier work/Results/Dave Kerpen.bias similarity index 100% rename from Results/Dave Kerpen.bias rename to earlier work/Results/Dave Kerpen.bias diff --git a/Results/Jennifer Johnson.bias b/earlier work/Results/Jennifer Johnson.bias similarity index 100% rename from Results/Jennifer Johnson.bias rename to earlier work/Results/Jennifer Johnson.bias diff --git a/Results/Laura Livingston.bias b/earlier work/Results/Laura Livingston.bias similarity index 100% rename from Results/Laura Livingston.bias rename to earlier work/Results/Laura Livingston.bias diff --git a/Results/Lev Shuster.bias b/earlier work/Results/Lev Shuster.bias similarity index 100% rename from Results/Lev Shuster.bias rename to earlier work/Results/Lev Shuster.bias diff --git a/Results/Lev2 Shuster2.bias b/earlier work/Results/Lev2 Shuster2.bias similarity index 100% rename from Results/Lev2 Shuster2.bias rename to earlier work/Results/Lev2 Shuster2.bias diff --git a/Results/Sam Daily.bias b/earlier work/Results/Sam Daily.bias similarity index 100% rename from Results/Sam Daily.bias rename to earlier work/Results/Sam Daily.bias diff --git a/Results/Todd Mincks.bias b/earlier work/Results/Todd Mincks.bias similarity index 100% rename from Results/Todd Mincks.bias rename to earlier work/Results/Todd Mincks.bias diff --git a/scrape/CLI Commands.md b/earlier work/scrape/CLI Commands.md similarity index 100% rename from scrape/CLI Commands.md rename to earlier work/scrape/CLI Commands.md diff --git a/scrape/Cargo.lock b/earlier work/scrape/Cargo.lock similarity index 100% rename from scrape/Cargo.lock rename to earlier work/scrape/Cargo.lock diff --git a/scrape/Cargo.toml b/earlier work/scrape/Cargo.toml similarity index 100% rename from scrape/Cargo.toml rename to earlier work/scrape/Cargo.toml diff --git a/scrape/Judge Lev Shuster.json b/earlier work/scrape/Judge Lev Shuster.json similarity index 100% rename from scrape/Judge Lev Shuster.json rename to earlier work/scrape/Judge Lev Shuster.json diff --git a/scrape/src/README.md b/earlier work/scrape/src/README.md similarity index 100% rename from scrape/src/README.md rename to earlier work/scrape/src/README.md diff --git a/scrape/src/args.rs b/earlier work/scrape/src/args.rs similarity index 100% rename from scrape/src/args.rs rename to earlier work/scrape/src/args.rs diff --git a/scrape/src/dict_thread_safe_api_and_storage.rs b/earlier work/scrape/src/dict_thread_safe_api_and_storage.rs similarity index 100% rename from scrape/src/dict_thread_safe_api_and_storage.rs rename to earlier work/scrape/src/dict_thread_safe_api_and_storage.rs diff --git a/scrape/src/main.rs b/earlier work/scrape/src/main.rs similarity index 100% rename from scrape/src/main.rs rename to earlier work/scrape/src/main.rs diff --git a/scrape/src/scrape.rs b/earlier work/scrape/src/scrape.rs similarity index 100% rename from scrape/src/scrape.rs rename to earlier work/scrape/src/scrape.rs diff --git a/scrape/src/search_for_judge.rs b/earlier work/scrape/src/search_for_judge.rs similarity index 100% rename from scrape/src/search_for_judge.rs rename to earlier work/scrape/src/search_for_judge.rs diff --git a/scrape/src/structs.rs b/earlier work/scrape/src/structs.rs similarity index 100% rename from scrape/src/structs.rs rename to earlier work/scrape/src/structs.rs