diff --git a/src/http.rs b/src/http.rs index 4ecd1ed..994d396 100644 --- a/src/http.rs +++ b/src/http.rs @@ -1,6 +1,6 @@ -use rouille::{router, Request, Response, try_or_400, post_input}; use crate::random_names::get_name; use crate::state::{Mailbox, State}; +use rouille::{post_input, router, try_or_400, Request, Response}; pub fn http_handler(request: &Request, state: &State) -> Response { router!(request, diff --git a/src/main.rs b/src/main.rs index 123c734..84a3cd3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,12 +1,12 @@ -extern crate rouille; extern crate rand; +extern crate rouille; use std::thread; mod http; mod random_names; -mod state; mod smtp; +mod state; fn main() { println!("Starting on localhost:8005"); diff --git a/src/random_names.rs b/src/random_names.rs index 470ad5d..4db88e0 100644 --- a/src/random_names.rs +++ b/src/random_names.rs @@ -1,7 +1,2749 @@ use rand::seq::SliceRandom; -const FIRST_NAMES: [&str; 2738] = ["Aaran", "Aaren", "Aarez", "Aarman", "Aaron", "Aaron-James", "Aarron", "Aaryan", "Aaryn", "Aayan", "Aazaan", "Abaan", "Abbas", "Abdallah", "Abdalroof", "Abdihakim", "Abdirahman", "Abdisalam", "Abdul", "Abdul-Aziz", "Abdulbasir", "Abdulkadir", "Abdulkarem", "Abdulkhader", "Abdullah", "Abdul-Majeed", "Abdulmalik", "Abdul-Rehman", "Abdur", "Abdurraheem", "Abdur-Rahman", "Abdur-Rehmaan", "Abel", "Abhinav", "Abhisumant", "Abid", "Abir", "Abraham", "Abu", "Abubakar", "Ace", "Adain", "Adam", "Adam-James", "Addison", "Addisson", "Adegbola", "Adegbolahan", "Aden", "Adenn", "Adie", "Adil", "Aditya", "Adnan", "Adrian", "Adrien", "Aedan", "Aedin", "Aedyn", "Aeron", "Afonso", "Ahmad", "Ahmed", "Ahmed-Aziz", "Ahoua", "Ahtasham", "Aiadan", "Aidan", "Aiden", "Aiden-Jack", "Aiden-Vee", "Aidian", "Aidy", "Ailin", "Aiman", "Ainsley", "Ainslie", "Airen", "Airidas", "Airlie", "AJ", "Ajay", "A-Jay", "Ajayraj", "Akan", "Akram", "Al", "Ala", "Alan", "Alanas", "Alasdair", "Alastair", "Alber", "Albert", "Albie", "Aldred", "Alec", "Aled", "Aleem", "Aleksandar", "Aleksander", "Aleksandr", "Aleksandrs", "Alekzander", "Alessandro", "Alessio", "Alex", "Alexander", "Alexei", "Alexx", "Alexzander", "Alf", "Alfee", "Alfie", "Alfred", "Alfy", "Alhaji", "Al-Hassan", "Ali", "Aliekber", "Alieu", "Alihaider", "Alisdair", "Alishan", "Alistair", "Alistar", "Alister", "Aliyaan", "Allan", "Allan-Laiton", "Allen", "Allesandro", "Allister", "Ally", "Alphonse", "Altyiab", "Alum", "Alvern", "Alvin", "Alyas", "Amaan", "Aman", "Amani", "Ambanimoh", "Ameer", "Amgad", "Ami", "Amin", "Amir", "Ammaar", "Ammar", "Ammer", "Amolpreet", "Amos", "Amrinder", "Amrit", "Amro", "Anay", "Andrea", "Andreas", "Andrei", "Andrejs", "Andrew", "Andy", "Anees", "Anesu", "Angel", "Angelo", "Angus", "Anir", "Anis", "Anish", "Anmolpreet", "Annan", "Anndra", "Anselm", "Anthony", "Anthony-John", "Antoine", "Anton", "Antoni", "Antonio", "Antony", "Antonyo", "Anubhav", "Aodhan", "Aon", "Aonghus", "Apisai", "Arafat", "Aran", "Arandeep", "Arann", "Aray", "Arayan", "Archibald", "Archie", "Arda", "Ardal", "Ardeshir", "Areeb", "Areez", "Aref", "Arfin", "Argyle", "Argyll", "Ari", "Aria", "Arian", "Arihant", "Aristomenis", "Aristotelis", "Arjuna", "Arlo", "Armaan", "Arman", "Armen", "Arnab", "Arnav", "Arnold", "Aron", "Aronas", "Arran", "Arrham", "Arron", "Arryn", "Arsalan", "Artem", "Arthur", "Artur", "Arturo", "Arun", "Arunas", "Arved", "Arya", "Aryan", "Aryankhan", "Aryian", "Aryn", "Asa", "Asfhan", "Ash", "Ashlee-jay", "Ashley", "Ashton", "Ashton-Lloyd", "Ashtyn", "Ashwin", "Asif", "Asim", "Aslam", "Asrar", "Ata", "Atal", "Atapattu", "Ateeq", "Athol", "Athon", "Athos-Carlos", "Atli", "Atom", "Attila", "Aulay", "Aun", "Austen", "Austin", "Avani", "Averon", "Avi", "Avinash", "Avraham", "Awais", "Awwal", "Axel", "Ayaan", "Ayan", "Aydan", "Ayden", "Aydin", "Aydon", "Ayman", "Ayomide", "Ayren", "Ayrton", "Aytug", "Ayub", "Ayyub", "Azaan", "Azedine", "Azeem", "Azim", "Aziz", "Azlan", "Azzam", "Azzedine", "Babatunmise", "Babur", "Bader", "Badr", "Badsha", "Bailee", "Bailey", "Bailie", "Bailley", "Baillie", "Baley", "Balian", "Banan", "Barath", "Barkley", "Barney", "Baron", "Barrie", "Barry", "Bartlomiej", "Bartosz", "Basher", "Basile", "Baxter", "Baye", "Bayley", "Beau", "Beinn", "Bekim", "Believe", "Ben", "Bendeguz", "Benedict", "Benjamin", "Benjamyn", "Benji", "Benn", "Bennett", "Benny", "Benoit", "Bentley", "Berkay", "Bernard", "Bertie", "Bevin", "Bezalel", "Bhaaldeen", "Bharath", "Bilal", "Bill", "Billy", "Binod", "Bjorn", "Blaike", "Blaine", "Blair", "Blaire", "Blake", "Blazej", "Blazey", "Blessing", "Blue", "Blyth", "Bo", "Boab", "Bob", "Bobby", "Bobby-Lee", "Bodhan", "Boedyn", "Bogdan", "Bohbi", "Bony", "Bowen", "Bowie", "Boyd", "Bracken", "Brad", "Bradan", "Braden", "Bradley", "Bradlie", "Bradly", "Brady", "Bradyn", "Braeden", "Braiden", "Brajan", "Brandan", "Branden", "Brandon", "Brandonlee", "Brandon-Lee", "Brandyn", "Brannan", "Brayden", "Braydon", "Braydyn", "Breandan", "Brehme", "Brendan", "Brendon", "Brendyn", "Breogan", "Bret", "Brett", "Briaddon", "Brian", "Brodi", "Brodie", "Brody", "Brogan", "Broghan", "Brooke", "Brooklin", "Brooklyn", "Bruce", "Bruin", "Bruno", "Brunon", "Bryan", "Bryce", "Bryden", "Brydon", "Brydon-Craig", "Bryn", "Brynmor", "Bryson", "Buddy", "Bully", "Burak", "Burhan", "Butali", "Butchi", "Byron", "Cabhan", "Cadan", "Cade", "Caden", "Cadon", "Cadyn", "Caedan", "Caedyn", "Cael", "Caelan", "Caelen", "Caethan", "Cahl", "Cahlum", "Cai", "Caidan", "Caiden", "Caiden-Paul", "Caidyn", "Caie", "Cailaen", "Cailean", "Caileb-John", "Cailin", "Cain", "Caine", "Cairn", "Cal", "Calan", "Calder", "Cale", "Calean", "Caleb", "Calen", "Caley", "Calib", "Calin", "Callahan", "Callan", "Callan-Adam", "Calley", "Callie", "Callin", "Callum", "Callun", "Callyn", "Calum", "Calum-James", "Calvin", "Cambell", "Camerin", "Cameron", "Campbel", "Campbell", "Camron", "Caolain", "Caolan", "Carl", "Carlo", "Carlos", "Carrich", "Carrick", "Carson", "Carter", "Carwyn", "Casey", "Casper", "Cassy", "Cathal", "Cator", "Cavan", "Cayden", "Cayden-Robert", "Cayden-Tiamo", "Ceejay", "Ceilan", "Ceiran", "Ceirin", "Ceiron", "Cejay", "Celik", "Cephas", "Cesar", "Cesare", "Chad", "Chaitanya", "Chang-Ha", "Charles", "Charley", "Charlie", "Charly", "Chase", "Che", "Chester", "Chevy", "Chi", "Chibudom", "Chidera", "Chimsom", "Chin", "Chintu", "Chiqal", "Chiron", "Chris", "Chris-Daniel", "Chrismedi", "Christian", "Christie", "Christoph", "Christopher", "Christopher-Lee", "Christy", "Chu", "Chukwuemeka", "Cian", "Ciann", "Ciar", "Ciaran", "Ciarian", "Cieran", "Cillian", "Cillin", "Cinar", "CJ", "C-Jay", "Clark", "Clarke", "Clayton", "Clement", "Clifford", "Clyde", "Cobain", "Coban", "Coben", "Cobi", "Cobie", "Coby", "Codey", "Codi", "Codie", "Cody", "Cody-Lee", "Coel", "Cohan", "Cohen", "Colby", "Cole", "Colin", "Coll", "Colm", "Colt", "Colton", "Colum", "Colvin", "Comghan", "Conal", "Conall", "Conan", "Conar", "Conghaile", "Conlan", "Conley", "Conli", "Conlin", "Conlly", "Conlon", "Conlyn", "Connal", "Connall", "Connan", "Connar", "Connel", "Connell", "Conner", "Connolly", "Connor", "Connor-David", "Conor", "Conrad", "Cooper", "Copeland", "Coray", "Corben", "Corbin", "Corey", "Corey-James", "Corey-Jay", "Cori", "Corie", "Corin", "Cormac", "Cormack", "Cormak", "Corran", "Corrie", "Cory", "Cosmo", "Coupar", "Craig", "Craig-James", "Crawford", "Creag", "Crispin", "Cristian", "Crombie", "Cruiz", "Cruz", "Cuillin", "Cullen", "Cullin", "Curtis", "Cyrus", "Daanyaal", "Daegan", "Daegyu", "Dafydd", "Dagon", "Dailey", "Daimhin", "Daithi", "Dakota", "Daksh", "Dale", "Dalong", "Dalton", "Damian", "Damien", "Damon", "Dan", "Danar", "Dane", "Danial", "Daniel", "Daniele", "Daniel-James", "Daniels", "Daniil", "Danish", "Daniyal", "Danniel", "Danny", "Dante", "Danyal", "Danyil", "Danys", "Daood", "Dara", "Darach", "Daragh", "Darcy", "D'arcy", "Dareh", "Daren", "Darien", "Darius", "Darl", "Darn", "Darrach", "Darragh", "Darrel", "Darrell", "Darren", "Darrie", "Darrius", "Darroch", "Darryl", "Darryn", "Darwyn", "Daryl", "Daryn", "Daud", "Daumantas", "Davi", "David", "David-Jay", "David-Lee", "Davie", "Davis", "Davy", "Dawid", "Dawson", "Dawud", "Dayem", "Daymian", "Deacon", "Deagan", "Dean", "Deano", "Decklan", "Declain", "Declan", "Declyan", "Declyn", "Dedeniseoluwa", "Deecan", "Deegan", "Deelan", "Deklain-Jaimes", "Del", "Demetrius", "Denis", "Deniss", "Dennan", "Dennin", "Dennis", "Denny", "Dennys", "Denon", "Denton", "Denver", "Denzel", "Deon", "Derek", "Derick", "Derin", "Dermot", "Derren", "Derrie", "Derrin", "Derron", "Derry", "Derryn", "Deryn", "Deshawn", "Desmond", "Dev", "Devan", "Devin", "Devlin", "Devlyn", "Devon", "Devrin", "Devyn", "Dex", "Dexter", "Dhani", "Dharam", "Dhavid", "Dhyia", "Diarmaid", "Diarmid", "Diarmuid", "Didier", "Diego", "Diesel", "Diesil", "Digby", "Dilan", "Dilano", "Dillan", "Dillon", "Dilraj", "Dimitri", "Dinaras", "Dion", "Dissanayake", "Dmitri", "Doire", "Dolan", "Domanic", "Domenico", "Domhnall", "Dominic", "Dominick", "Dominik", "Donald", "Donnacha", "Donnie", "Dorian", "Dougal", "Douglas", "Dougray", "Drakeo", "Dre", "Dregan", "Drew", "Dugald", "Duncan", "Duriel", "Dustin", "Dylan", "Dylan-Jack", "Dylan-James", "Dylan-John", "Dylan-Patrick", "Dylin", "Dyllan", "Dyllan-James", "Dyllon", "Eadie", "Eagann", "Eamon", "Eamonn", "Eason", "Eassan", "Easton", "Ebow", "Ed", "Eddie", "Eden", "Ediomi", "Edison", "Eduardo", "Eduards", "Edward", "Edwin", "Edwyn", "Eesa", "Efan", "Efe", "Ege", "Ehsan", "Ehsen", "Eiddon", "Eidhan", "Eihli", "Eimantas", "Eisa", "Eli", "Elias", "Elijah", "Eliot", "Elisau", "Eljay", "Eljon", "Elliot", "Elliott", "Ellis", "Ellisandro", "Elshan", "Elvin", "Elyan", "Emanuel", "Emerson", "Emil", "Emile", "Emir", "Emlyn", "Emmanuel", "Emmet", "Eng", "Eniola", "Enis", "Ennis", "Enrico", "Enrique", "Enzo", "Eoghain", "Eoghan", "Eoin", "Eonan", "Erdehan", "Eren", "Erencem", "Eric", "Ericlee", "Erik", "Eriz", "Ernie-Jacks", "Eroni", "Eryk", "Eshan", "Essa", "Esteban", "Ethan", "Etienne", "Etinosa", "Euan", "Eugene", "Evan", "Evann", "Ewan", "Ewen", "Ewing", "Exodi", "Ezekiel", "Ezra", "Fabian", "Fahad", "Faheem", "Faisal", "Faizaan", "Famara", "Fares", "Farhaan", "Farhan", "Farren", "Farzad", "Fauzaan", "Favour", "Fawaz", "Fawkes", "Faysal", "Fearghus", "Feden", "Felix", "Fergal", "Fergie", "Fergus", "Ferre", "Fezaan", "Fiachra", "Fikret", "Filip", "Filippo", "Finan", "Findlay", "Findlay-James", "Findlie", "Finlay", "Finley", "Finn", "Finnan", "Finnean", "Finnen", "Finnlay", "Finnley", "Fintan", "Fionn", "Firaaz", "Fletcher", "Flint", "Florin", "Flyn", "Flynn", "Fodeba", "Folarinwa", "Forbes", "Forgan", "Forrest", "Fox", "Francesco", "Francis", "Francisco", "Franciszek", "Franco", "Frank", "Frankie", "Franklin", "Franko", "Fraser", "Frazer", "Fred", "Freddie", "Frederick", "Fruin", "Fyfe", "Fyn", "Fynlay", "Fynn", "Gabriel", "Gallagher", "Gareth", "Garren", "Garrett", "Garry", "Gary", "Gavin", "Gavin-Lee", "Gene", "Geoff", "Geoffrey", "Geomer", "Geordan", "Geordie", "George", "Georgia", "Georgy", "Gerard", "Ghyll", "Giacomo", "Gian", "Giancarlo", "Gianluca", "Gianmarco", "Gideon", "Gil", "Gio", "Girijan", "Girius", "Gjan", "Glascott", "Glen", "Glenn", "Gordon", "Grady", "Graeme", "Graham", "Grahame", "Grant", "Grayson", "Greg", "Gregor", "Gregory", "Greig", "Griffin", "Griffyn", "Grzegorz", "Guang", "Guerin", "Guillaume", "Gurardass", "Gurdeep", "Gursees", "Gurthar", "Gurveer", "Gurwinder", "Gus", "Gustav", "Guthrie", "Guy", "Gytis", "Habeeb", "Hadji", "Hadyn", "Hagun", "Haiden", "Haider", "Hamad", "Hamid", "Hamish", "Hamza", "Hamzah", "Han", "Hansen", "Hao", "Hareem", "Hari", "Harikrishna", "Haris", "Harish", "Harjeevan", "Harjyot", "Harlee", "Harleigh", "Harley", "Harman", "Harnek", "Harold", "Haroon", "Harper", "Harri", "Harrington", "Harris", "Harrison", "Harry", "Harvey", "Harvie", "Harvinder", "Hasan", "Haseeb", "Hashem", "Hashim", "Hassan", "Hassanali", "Hately", "Havila", "Hayden", "Haydn", "Haydon", "Haydyn", "Hcen", "Hector", "Heddle", "Heidar", "Heini", "Hendri", "Henri", "Henry", "Herbert", "Heyden", "Hiro", "Hirvaansh", "Hishaam", "Hogan", "Honey", "Hong", "Hope", "Hopkin", "Hosea", "Howard", "Howie", "Hristomir", "Hubert", "Hugh", "Hugo", "Humza", "Hunter", "Husnain", "Hussain", "Hussan", "Hussnain", "Hussnan", "Hyden", "I", "Iagan", "Iain", "Ian", "Ibraheem", "Ibrahim", "Idahosa", "Idrees", "Idris", "Iestyn", "Ieuan", "Igor", "Ihtisham", "Ijay", "Ikechukwu", "Ikemsinachukwu", "Ilyaas", "Ilyas", "Iman", "Immanuel", "Inan", "Indy", "Ines", "Innes", "Ioannis", "Ireayomide", "Ireoluwa", "Irvin", "Irvine", "Isa", "Isaa", "Isaac", "Isaiah", "Isak", "Isher", "Ishwar", "Isimeli", "Isira", "Ismaeel", "Ismail", "Israel", "Issiaka", "Ivan", "Ivar", "Izaak", "J", "Jaay", "Jac", "Jace", "Jack", "Jacki", "Jackie", "Jack-James", "Jackson", "Jacky", "Jacob", "Jacques", "Jad", "Jaden", "Jadon", "Jadyn", "Jae", "Jagat", "Jago", "Jaheim", "Jahid", "Jahy", "Jai", "Jaida", "Jaiden", "Jaidyn", "Jaii", "Jaime", "Jai-Rajaram", "Jaise", "Jak", "Jake", "Jakey", "Jakob", "Jaksyn", "Jakub", "Jamaal", "Jamal", "Jameel", "Jameil", "James", "James-Paul", "Jamey", "Jamie", "Jan", "Jaosha", "Jardine", "Jared", "Jarell", "Jarl", "Jarno", "Jarred", "Jarvi", "Jasey-Jay", "Jasim", "Jaskaran", "Jason", "Jasper", "Jaxon", "Jaxson", "Jay", "Jaydan", "Jayden", "Jayden-James", "Jayden-Lee", "Jayden-Paul", "Jayden-Thomas", "Jaydn", "Jaydon", "Jaydyn", "Jayhan", "Jay-Jay", "Jayke", "Jaymie", "Jayse", "Jayson", "Jaz", "Jazeb", "Jazib", "Jazz", "Jean", "Jean-Lewis", "Jean-Pierre", "Jebadiah", "Jed", "Jedd", "Jedidiah", "Jeemie", "Jeevan", "Jeffrey", "Jensen", "Jenson", "Jensyn", "Jeremy", "Jerome", "Jeronimo", "Jerrick", "Jerry", "Jesse", "Jesuseun", "Jeswin", "Jevan", "Jeyun", "Jez", "Jia", "Jian", "Jiao", "Jimmy", "Jincheng", "JJ", "Joaquin", "Joash", "Jock", "Jody", "Joe", "Joeddy", "Joel", "Joey", "Joey-Jack", "Johann", "Johannes", "Johansson", "John", "Johnathan", "Johndean", "Johnjay", "John-Michael", "Johnnie", "Johnny", "Johnpaul", "John-Paul", "John-Scott", "Johnson", "Jole", "Jomuel", "Jon", "Jonah", "Jonatan", "Jonathan", "Jonathon", "Jonny", "Jonothan", "Jon-Paul", "Jonson", "Joojo", "Jordan", "Jordi", "Jordon", "Jordy", "Jordyn", "Jorge", "Joris", "Jorryn", "Josan", "Josef", "Joseph", "Josese", "Josh", "Joshiah", "Joshua", "Josiah", "Joss", "Jostelle", "Joynul", "Juan", "Jubin", "Judah", "Jude", "Jules", "Julian", "Julien", "Jun", "Junior", "Jura", "Justan", "Justin", "Justinas", "Kaan", "Kabeer", "Kabir", "Kacey", "Kacper", "Kade", "Kaden", "Kadin", "Kadyn", "Kaeden", "Kael", "Kaelan", "Kaelin", "Kaelum", "Kai", "Kaid", "Kaidan", "Kaiden", "Kaidinn", "Kaidyn", "Kaileb", "Kailin", "Kain", "Kaine", "Kainin", "Kainui", "Kairn", "Kaison", "Kaiwen", "Kajally", "Kajetan", "Kalani", "Kale", "Kaleb", "Kaleem", "Kal-el", "Kalen", "Kalin", "Kallan", "Kallin", "Kalum", "Kalvin", "Kalvyn", "Kameron", "Kames", "Kamil", "Kamran", "Kamron", "Kane", "Karam", "Karamvir", "Karandeep", "Kareem", "Karim", "Karimas", "Karl", "Karol", "Karson", "Karsyn", "Karthikeya", "Kasey", "Kash", "Kashif", "Kasim", "Kasper", "Kasra", "Kavin", "Kayam", "Kaydan", "Kayden", "Kaydin", "Kaydn", "Kaydyn", "Kaydyne", "Kayleb", "Kaylem", "Kaylum", "Kayne", "Kaywan", "Kealan", "Kealon", "Kean", "Keane", "Kearney", "Keatin", "Keaton", "Keavan", "Keayn", "Kedrick", "Keegan", "Keelan", "Keelin", "Keeman", "Keenan", "Keenan-Lee", "Keeton", "Kehinde", "Keigan", "Keilan", "Keir", "Keiran", "Keiren", "Keiron", "Keiryn", "Keison", "Keith", "Keivlin", "Kelam", "Kelan", "Kellan", "Kellen", "Kelso", "Kelum", "Kelvan", "Kelvin", "Ken", "Kenan", "Kendall", "Kendyn", "Kenlin", "Kenneth", "Kensey", "Kenton", "Kenyon", "Kenzeigh", "Kenzi", "Kenzie", "Kenzo", "Kenzy", "Keo", "Ker", "Kern", "Kerr", "Kevan", "Kevin", "Kevyn", "Kez", "Khai", "Khalan", "Khaleel", "Khaya", "Khevien", "Khizar", "Khizer", "Kia", "Kian", "Kian-James", "Kiaran", "Kiarash", "Kie", "Kiefer", "Kiegan", "Kienan", "Kier", "Kieran", "Kieran-Scott", "Kieren", "Kierin", "Kiern", "Kieron", "Kieryn", "Kile", "Killian", "Kimi", "Kingston", "Kinneil", "Kinnon", "Kinsey", "Kiran", "Kirk", "Kirwin", "Kit", "Kiya", "Kiyonari", "Kjae", "Klein", "Klevis", "Kobe", "Kobi", "Koby", "Koddi", "Koden", "Kodi", "Kodie", "Kody", "Kofi", "Kogan", "Kohen", "Kole", "Konan", "Konar", "Konnor", "Konrad", "Koray", "Korben", "Korbyn", "Korey", "Kori", "Korrin", "Kory", "Koushik", "Kris", "Krish", "Krishan", "Kriss", "Kristian", "Kristin", "Kristofer", "Kristoffer", "Kristopher", "Kruz", "Krzysiek", "Krzysztof", "Ksawery", "Ksawier", "Kuba", "Kurt", "Kurtis", "Kurtis-Jae", "Kyaan", "Kyan", "Kyde", "Kyden", "Kye", "Kyel", "Kyhran", "Kyie", "Kylan", "Kylar", "Kyle", "Kyle-Derek", "Kylian", "Kym", "Kynan", "Kyral", "Kyran", "Kyren", "Kyrillos", "Kyro", "Kyron", "Kyrran", "Lachlainn", "Lachlan", "Lachlann", "Lael", "Lagan", "Laird", "Laison", "Lakshya", "Lance", "Lancelot", "Landon", "Lang", "Lasse", "Latif", "Lauchlan", "Lauchlin", "Laughlan", "Lauren", "Laurence", "Laurie", "Lawlyn", "Lawrence", "Lawrie", "Lawson", "Layne", "Layton", "Lee", "Leigh", "Leigham", "Leighton", "Leilan", "Leiten", "Leithen", "Leland", "Lenin", "Lennan", "Lennen", "Lennex", "Lennon", "Lennox", "Lenny", "Leno", "Lenon", "Lenyn", "Leo", "Leon", "Leonard", "Leonardas", "Leonardo", "Lepeng", "Leroy", "Leven", "Levi", "Levon", "Levy", "Lewie", "Lewin", "Lewis", "Lex", "Leydon", "Leyland", "Leylann", "Leyton", "Liall", "Liam", "Liam-Stephen", "Limo", "Lincoln", "Lincoln-John", "Lincon", "Linden", "Linton", "Lionel", "Lisandro", "Litrell", "Liyonela-Elam", "LLeyton", "Lliam", "Lloyd", "Lloyde", "Loche", "Lochlan", "Lochlann", "Lochlan-Oliver", "Lock", "Lockey", "Logan", "Logann", "Logan-Rhys", "Loghan", "Lokesh", "Loki", "Lomond", "Lorcan", "Lorenz", "Lorenzo", "Lorne", "Loudon", "Loui", "Louie", "Louis", "Loukas", "Lovell", "Luc", "Luca", "Lucais", "Lucas", "Lucca", "Lucian", "Luciano", "Lucien", "Lucus", "Luic", "Luis", "Luk", "Luka", "Lukas", "Lukasz", "Luke", "Lukmaan", "Luqman", "Lyall", "Lyle", "Lyndsay", "Lysander", "Maanav", "Maaz", "Mac", "Macallum", "Macaulay", "Macauley", "Macaully", "Machlan", "Maciej", "Mack", "Mackenzie", "Mackenzy", "Mackie", "Macsen", "Macy", "Madaki", "Maddison", "Maddox", "Madison", "Madison-Jake", "Madox", "Mael", "Magnus", "Mahan", "Mahdi", "Mahmoud", "Maias", "Maison", "Maisum", "Maitlind", "Majid", "Makensie", "Makenzie", "Makin", "Maksim", "Maksymilian", "Malachai", "Malachi", "Malachy", "Malakai", "Malakhy", "Malcolm", "Malik", "Malikye", "Malo", "Ma'moon", "Manas", "Maneet", "Manmohan", "Manolo", "Manson", "Mantej", "Manuel", "Manus", "Marc", "Marc-Anthony", "Marcel", "Marcello", "Marcin", "Marco", "Marcos", "Marcous", "Marcquis", "Marcus", "Mario", "Marios", "Marius", "Mark", "Marko", "Markus", "Marley", "Marlin", "Marlon", "Maros", "Marshall", "Martin", "Marty", "Martyn", "Marvellous", "Marvin", "Marwan", "Maryk", "Marzuq", "Mashhood", "Mason", "Mason-Jay", "Masood", "Masson", "Matas", "Matej", "Mateusz", "Mathew", "Mathias", "Mathu", "Mathuyan", "Mati", "Matt", "Matteo", "Matthew", "Matthew-William", "Matthias", "Max", "Maxim", "Maximilian", "Maximillian", "Maximus", "Maxwell", "Maxx", "Mayeul", "Mayson", "Mazin", "Mcbride", "McCaulley", "McKade", "McKauley", "McKay", "McKenzie", "McLay", "Meftah", "Mehmet", "Mehraz", "Meko", "Melville", "Meshach", "Meyzhward", "Micah", "Michael", "Michael-Alexander", "Michael-James", "Michal", "Michat", "Micheal", "Michee", "Mickey", "Miguel", "Mika", "Mikael", "Mikee", "Mikey", "Mikhail", "Mikolaj", "Miles", "Millar", "Miller", "Milo", "Milos", "Milosz", "Mir", "Mirza", "Mitch", "Mitchel", "Mitchell", "Moad", "Moayd", "Mobeen", "Modoulamin", "Modu", "Mohamad", "Mohamed", "Mohammad", "Mohammad-Bilal", "Mohammed", "Mohanad", "Mohd", "Momin", "Momooreoluwa", "Montague", "Montgomery", "Monty", "Moore", "Moosa", "Moray", "Morgan", "Morgyn", "Morris", "Morton", "Moshy", "Motade", "Moyes", "Msughter", "Mueez", "Muhamadjavad", "Muhammad", "Muhammed", "Muhsin", "Muir", "Munachi", "Muneeb", "Mungo", "Munir", "Munmair", "Munro", "Murdo", "Murray", "Murrough", "Murry", "Musa", "Musse", "Mustafa", "Mustapha", "Muzammil", "Muzzammil", "Mykie", "Myles", "Mylo", "Nabeel", "Nadeem", "Nader", "Nagib", "Naif", "Nairn", "Narvic", "Nash", "Nasser", "Nassir", "Natan", "Nate", "Nathan", "Nathanael", "Nathanial", "Nathaniel", "Nathan-Rae", "Nawfal", "Nayan", "Neco", "Neil", "Nelson", "Neo", "Neshawn", "Nevan", "Nevin", "Ngonidzashe", "Nial", "Niall", "Nicholas", "Nick", "Nickhill", "Nicki", "Nickson", "Nicky", "Nico", "Nicodemus", "Nicol", "Nicolae", "Nicolas", "Nidhish", "Nihaal", "Nihal", "Nikash", "Nikhil", "Niki", "Nikita", "Nikodem", "Nikolai", "Nikos", "Nilav", "Niraj", "Niro", "Niven", "Noah", "Noel", "Nolan", "Noor", "Norman", "Norrie", "Nuada", "Nyah", "Oakley", "Oban", "Obieluem", "Obosa", "Odhran", "Odin", "Odynn", "Ogheneochuko", "Ogheneruno", "Ohran", "Oilibhear", "Oisin", "Ojima-Ojo", "Okeoghene", "Olaf", "Ola-Oluwa", "Olaoluwapolorimi", "Ole", "Olie", "Oliver", "Olivier", "Oliwier", "Ollie", "Olurotimi", "Oluwadamilare", "Oluwadamiloju", "Oluwafemi", "Oluwafikunayomi", "Oluwalayomi", "Oluwatobiloba", "Oluwatoni", "Omar", "Omri", "Oran", "Orin", "Orlando", "Orley", "Orran", "Orrick", "Orrin", "Orson", "Oryn", "Oscar", "Osesenagha", "Oskar", "Ossian", "Oswald", "Otto", "Owain", "Owais", "Owen", "Owyn", "Oz", "Ozzy", "Pablo", "Pacey", "Padraig", "Paolo", "Pardeepraj", "Parkash", "Parker", "Pascoe", "Pasquale", "Patrick", "Patrick-John", "Patrikas", "Patryk", "Paul", "Pavit", "Pawel", "Pawlo", "Pearce", "Pearse", "Pearsen", "Pedram", "Pedro", "Peirce", "Peiyan", "Pele", "Peni", "Peregrine", "Peter", "Phani", "Philip", "Philippos", "Phinehas", "Phoenix", "Phoevos", "Pierce", "Pierre-Antoine", "Pieter", "Pietro", "Piotr", "Porter", "Prabhjoit", "Prabodhan", "Praise", "Pranav", "Pravin", "Precious", "Prentice", "Presley", "Preston", "Preston-Jay", "Prinay", "Prince", "Prithvi", "Promise", "Puneetpaul", "Pushkar", "Qasim", "Qirui", "Quinlan", "Quinn", "Radmiras", "Raees", "Raegan", "Rafael", "Rafal", "Rafferty", "Rafi", "Raheem", "Rahil", "Rahim", "Rahman", "Raith", "Raithin", "Raja", "Rajab-Ali", "Rajan", "Ralfs", "Ralph", "Ramanas", "Ramit", "Ramone", "Ramsay", "Ramsey", "Rana", "Ranolph", "Raphael", "Rasmus", "Rasul", "Raul", "Raunaq", "Ravin", "Ray", "Rayaan", "Rayan", "Rayane", "Rayden", "Rayhan", "Raymond", "Rayne", "Rayyan", "Raza", "Reace", "Reagan", "Reean", "Reece", "Reed", "Reegan", "Rees", "Reese", "Reeve", "Regan", "Regean", "Reggie", "Rehaan", "Rehan", "Reice", "Reid", "Reigan", "Reilly", "Reily", "Reis", "Reiss", "Remigiusz", "Remo", "Remy", "Ren", "Renars", "Reng", "Rennie", "Reno", "Reo", "Reuben", "Rexford", "Reynold", "Rhein", "Rheo", "Rhett", "Rheyden", "Rhian", "Rhoan", "Rholmark", "Rhoridh", "Rhuairidh", "Rhuan", "Rhuaridh", "Rhudi", "Rhy", "Rhyan", "Rhyley", "Rhyon", "Rhys", "Rhys-Bernard", "Rhyse", "Riach", "Rian", "Ricards", "Riccardo", "Ricco", "Rice", "Richard", "Richey", "Richie", "Ricky", "Rico", "Ridley", "Ridwan", "Rihab", "Rihan", "Rihards", "Rihonn", "Rikki", "Riley", "Rio", "Rioden", "Rishi", "Ritchie", "Rivan", "Riyadh", "Riyaj", "Roan", "Roark", "Roary", "Rob", "Robbi", "Robbie", "Robbie-lee", "Robby", "Robert", "Robert-Gordon", "Robertjohn", "Robi", "Robin", "Rocco", "Roddy", "Roderick", "Rodrigo", "Roen", "Rogan", "Roger", "Rohaan", "Rohan", "Rohin", "Rohit", "Rokas", "Roman", "Ronald", "Ronan", "Ronan-Benedict", "Ronin", "Ronnie", "Rooke", "Roray", "Rori", "Rorie", "Rory", "Roshan", "Ross", "Ross-Andrew", "Rossi", "Rowan", "Rowen", "Roy", "Ruadhan", "Ruaidhri", "Ruairi", "Ruairidh", "Ruan", "Ruaraidh", "Ruari", "Ruaridh", "Ruben", "Rubhan", "Rubin", "Rubyn", "Rudi", "Rudy", "Rufus", "Rui", "Ruo", "Rupert", "Ruslan", "Russel", "Russell", "Ryaan", "Ryan", "Ryan-Lee", "Ryden", "Ryder", "Ryese", "Ryhs", "Rylan", "Rylay", "Rylee", "Ryleigh", "Ryley", "Rylie", "Ryo", "Ryszard", "Saad", "Sabeen", "Sachkirat", "Saffi", "Saghun", "Sahaib", "Sahbian", "Sahil", "Saif", "Saifaddine", "Saim", "Sajid", "Sajjad", "Salahudin", "Salman", "Salter", "Salvador", "Sam", "Saman", "Samar", "Samarjit", "Samatar", "Sambrid", "Sameer", "Sami", "Samir", "Sami-Ullah", "Samual", "Samuel", "Samuela", "Samy", "Sanaullah", "Sandro", "Sandy", "Sanfur", "Sanjay", "Santiago", "Santino", "Satveer", "Saul", "Saunders", "Savin", "Sayad", "Sayeed", "Sayf", "Scot", "Scott", "Scott-Alexander", "Seaan", "Seamas", "Seamus", "Sean", "Seane", "Sean-James", "Sean-Paul", "Sean-Ray", "Seb", "Sebastian", "Sebastien", "Selasi", "Seonaidh", "Sephiroth", "Sergei", "Sergio", "Seth", "Sethu", "Seumas", "Shaarvin", "Shadow", "Shae", "Shahmir", "Shai", "Shane", "Shannon", "Sharland", "Sharoz", "Shaughn", "Shaun", "Shaunpaul", "Shaun-Paul", "Shaun-Thomas", "Shaurya", "Shaw", "Shawn", "Shawnpaul", "Shay", "Shayaan", "Shayan", "Shaye", "Shayne", "Shazil", "Shea", "Sheafan", "Sheigh", "Shenuk", "Sher", "Shergo", "Sheriff", "Sherwyn", "Shiloh", "Shiraz", "Shreeram", "Shreyas", "Shyam", "Siddhant", "Siddharth", "Sidharth", "Sidney", "Siergiej", "Silas", "Simon", "Sinai", "Skye", "Sofian", "Sohaib", "Sohail", "Soham", "Sohan", "Sol", "Solomon", "Sonneey", "Sonni", "Sonny", "Sorley", "Soul", "Spencer", "Spondon", "Stanislaw", "Stanley", "Stefan", "Stefano", "Stefin", "Stephen", "Stephenjunior", "Steve", "Steven", "Steven-lee", "Stevie", "Stewart", "Stewarty", "Strachan", "Struan", "Stuart", "Su", "Subhaan", "Sudais", "Suheyb", "Suilven", "Sukhi", "Sukhpal", "Sukhvir", "Sulayman", "Sullivan", "Sultan", "Sung", "Sunny", "Suraj", "Surien", "Sweyn", "Syed", "Sylvain", "Symon", "Szymon", "Tadd", "Taddy", "Tadhg", "Taegan", "Taegen", "Tai", "Tait", "Taiwo", "Talha", "Taliesin", "Talon", "Talorcan", "Tamar", "Tamiem", "Tammam", "Tanay", "Tane", "Tanner", "Tanvir", "Tanzeel", "Taonga", "Tarik", "Tariq-Jay", "Tate", "Taylan", "Taylar", "Tayler", "Taylor", "Taylor-Jay", "Taylor-Lee", "Tayo", "Tayyab", "Tayye", "Tayyib", "Teagan", "Tee", "Teejay", "Tee-jay", "Tegan", "Teighen", "Teiyib", "Te-Jay", "Temba", "Teo", "Teodor", "Teos", "Terry", "Teydren", "Theo", "Theodore", "Thiago", "Thierry", "Thom", "Thomas", "Thomas-Jay", "Thomson", "Thorben", "Thorfinn", "Thrinei", "Thumbiko", "Tiago", "Tian", "Tiarnan", "Tibet", "Tieran", "Tiernan", "Timothy", "Timucin", "Tiree", "Tisloh", "Titi", "Titus", "Tiylar", "TJ", "Tjay", "T-Jay", "Tobey", "Tobi", "Tobias", "Tobie", "Toby", "Todd", "Tokinaga", "Toluwalase", "Tom", "Tomas", "Tomasz", "Tommi-Lee", "Tommy", "Tomson", "Tony", "Torin", "Torquil", "Torran", "Torrin", "Torsten", "Trafford", "Trai", "Travis", "Tre", "Trent", "Trey", "Tristain", "Tristan", "Troy", "Tubagus", "Turki", "Turner", "Ty", "Ty-Alexander", "Tye", "Tyelor", "Tylar", "Tyler", "Tyler-James", "Tyler-Jay", "Tyllor", "Tylor", "Tymom", "Tymon", "Tymoteusz", "Tyra", "Tyree", "Tyrnan", "Tyrone", "Tyson", "Ubaid", "Ubayd", "Uchenna", "Uilleam", "Umair", "Umar", "Umer", "Umut", "Urban", "Uri", "Usman", "Uzair", "Uzayr", "Valen", "Valentin", "Valentino", "Valery", "Valo", "Vasyl", "Vedantsinh", "Veeran", "Victor", "Victory", "Vinay", "Vince", "Vincent", "Vincenzo", "Vinh", "Vinnie", "Vithujan", "Vladimir", "Vladislav", "Vrishin", "Vuyolwethu", "Wabuya", "Wai", "Walid", "Wallace", "Walter", "Waqaas", "Warkhas", "Warren", "Warrick", "Wasif", "Wayde", "Wayne", "Wei", "Wen", "Wesley", "Wesley-Scott", "Wiktor", "Wilkie", "Will", "William", "William-John", "Willum", "Wilson", "Windsor", "Wojciech", "Woyenbrakemi", "Wyatt", "Wylie", "Wynn", "Xabier", "Xander", "Xavier", "Xiao", "Xida", "Xin", "Xue", "Yadgor", "Yago", "Yahya", "Yakup", "Yang", "Yanick", "Yann", "Yannick", "Yaseen", "Yasin", "Yasir", "Yassin", "Yoji", "Yong", "Yoolgeun", "Yorgos", "Youcef", "Yousif", "Youssef", "Yu", "Yuanyu", "Yuri", "Yusef", "Yusuf", "Yves", "Zaaine", "Zaak", "Zac", "Zach", "Zachariah", "Zacharias", "Zacharie", "Zacharius", "Zachariya", "Zachary", "Zachary-Marc", "Zachery", "Zack", "Zackary", "Zaid", "Zain", "Zaine", "Zaineddine", "Zainedin", "Zak", "Zakaria", "Zakariya", "Zakary", "Zaki", "Zakir", "Zakk", "Zamaar", "Zander", "Zane", "Zarran", "Zayd", "Zayn", "Zayne", "Ze", "Zechariah", "Zeek", "Zeeshan", "Zeid", "Zein", "Zen", "Zendel", "Zenith", "Zennon", "Zeph", "Zerah", "Zhen", "Zhi", "Zhong", "Zhuo", "Zi", "Zidane", "Zijie", "Zinedine", "Zion", "Zishan", "Ziya", "Ziyaan", "Zohaib", "Zohair", "Zoubaeir", "Zubair", "Zubayr", "Zuriel"]; +const FIRST_NAMES: [&str; 2738] = [ + "Aaran", + "Aaren", + "Aarez", + "Aarman", + "Aaron", + "Aaron-James", + "Aarron", + "Aaryan", + "Aaryn", + "Aayan", + "Aazaan", + "Abaan", + "Abbas", + "Abdallah", + "Abdalroof", + "Abdihakim", + "Abdirahman", + "Abdisalam", + "Abdul", + "Abdul-Aziz", + "Abdulbasir", + "Abdulkadir", + "Abdulkarem", + "Abdulkhader", + "Abdullah", + "Abdul-Majeed", + "Abdulmalik", + "Abdul-Rehman", + "Abdur", + "Abdurraheem", + "Abdur-Rahman", + "Abdur-Rehmaan", + "Abel", + "Abhinav", + "Abhisumant", + "Abid", + "Abir", + "Abraham", + "Abu", + "Abubakar", + "Ace", + "Adain", + "Adam", + "Adam-James", + "Addison", + "Addisson", + "Adegbola", + "Adegbolahan", + "Aden", + "Adenn", + "Adie", + "Adil", + "Aditya", + "Adnan", + "Adrian", + "Adrien", + "Aedan", + "Aedin", + "Aedyn", + "Aeron", + "Afonso", + "Ahmad", + "Ahmed", + "Ahmed-Aziz", + "Ahoua", + "Ahtasham", + "Aiadan", + "Aidan", + "Aiden", + "Aiden-Jack", + "Aiden-Vee", + "Aidian", + "Aidy", + "Ailin", + "Aiman", + "Ainsley", + "Ainslie", + "Airen", + "Airidas", + "Airlie", + "AJ", + "Ajay", + "A-Jay", + "Ajayraj", + "Akan", + "Akram", + "Al", + "Ala", + "Alan", + "Alanas", + "Alasdair", + "Alastair", + "Alber", + "Albert", + "Albie", + "Aldred", + "Alec", + "Aled", + "Aleem", + "Aleksandar", + "Aleksander", + "Aleksandr", + "Aleksandrs", + "Alekzander", + "Alessandro", + "Alessio", + "Alex", + "Alexander", + "Alexei", + "Alexx", + "Alexzander", + "Alf", + "Alfee", + "Alfie", + "Alfred", + "Alfy", + "Alhaji", + "Al-Hassan", + "Ali", + "Aliekber", + "Alieu", + "Alihaider", + "Alisdair", + "Alishan", + "Alistair", + "Alistar", + "Alister", + "Aliyaan", + "Allan", + "Allan-Laiton", + "Allen", + "Allesandro", + "Allister", + "Ally", + "Alphonse", + "Altyiab", + "Alum", + "Alvern", + "Alvin", + "Alyas", + "Amaan", + "Aman", + "Amani", + "Ambanimoh", + "Ameer", + "Amgad", + "Ami", + "Amin", + "Amir", + "Ammaar", + "Ammar", + "Ammer", + "Amolpreet", + "Amos", + "Amrinder", + "Amrit", + "Amro", + "Anay", + "Andrea", + "Andreas", + "Andrei", + "Andrejs", + "Andrew", + "Andy", + "Anees", + "Anesu", + "Angel", + "Angelo", + "Angus", + "Anir", + "Anis", + "Anish", + "Anmolpreet", + "Annan", + "Anndra", + "Anselm", + "Anthony", + "Anthony-John", + "Antoine", + "Anton", + "Antoni", + "Antonio", + "Antony", + "Antonyo", + "Anubhav", + "Aodhan", + "Aon", + "Aonghus", + "Apisai", + "Arafat", + "Aran", + "Arandeep", + "Arann", + "Aray", + "Arayan", + "Archibald", + "Archie", + "Arda", + "Ardal", + "Ardeshir", + "Areeb", + "Areez", + "Aref", + "Arfin", + "Argyle", + "Argyll", + "Ari", + "Aria", + "Arian", + "Arihant", + "Aristomenis", + "Aristotelis", + "Arjuna", + "Arlo", + "Armaan", + "Arman", + "Armen", + "Arnab", + "Arnav", + "Arnold", + "Aron", + "Aronas", + "Arran", + "Arrham", + "Arron", + "Arryn", + "Arsalan", + "Artem", + "Arthur", + "Artur", + "Arturo", + "Arun", + "Arunas", + "Arved", + "Arya", + "Aryan", + "Aryankhan", + "Aryian", + "Aryn", + "Asa", + "Asfhan", + "Ash", + "Ashlee-jay", + "Ashley", + "Ashton", + "Ashton-Lloyd", + "Ashtyn", + "Ashwin", + "Asif", + "Asim", + "Aslam", + "Asrar", + "Ata", + "Atal", + "Atapattu", + "Ateeq", + "Athol", + "Athon", + "Athos-Carlos", + "Atli", + "Atom", + "Attila", + "Aulay", + "Aun", + "Austen", + "Austin", + "Avani", + "Averon", + "Avi", + "Avinash", + "Avraham", + "Awais", + "Awwal", + "Axel", + "Ayaan", + "Ayan", + "Aydan", + "Ayden", + "Aydin", + "Aydon", + "Ayman", + "Ayomide", + "Ayren", + "Ayrton", + "Aytug", + "Ayub", + "Ayyub", + "Azaan", + "Azedine", + "Azeem", + "Azim", + "Aziz", + "Azlan", + "Azzam", + "Azzedine", + "Babatunmise", + "Babur", + "Bader", + "Badr", + "Badsha", + "Bailee", + "Bailey", + "Bailie", + "Bailley", + "Baillie", + "Baley", + "Balian", + "Banan", + "Barath", + "Barkley", + "Barney", + "Baron", + "Barrie", + "Barry", + "Bartlomiej", + "Bartosz", + "Basher", + "Basile", + "Baxter", + "Baye", + "Bayley", + "Beau", + "Beinn", + "Bekim", + "Believe", + "Ben", + "Bendeguz", + "Benedict", + "Benjamin", + "Benjamyn", + "Benji", + "Benn", + "Bennett", + "Benny", + "Benoit", + "Bentley", + "Berkay", + "Bernard", + "Bertie", + "Bevin", + "Bezalel", + "Bhaaldeen", + "Bharath", + "Bilal", + "Bill", + "Billy", + "Binod", + "Bjorn", + "Blaike", + "Blaine", + "Blair", + "Blaire", + "Blake", + "Blazej", + "Blazey", + "Blessing", + "Blue", + "Blyth", + "Bo", + "Boab", + "Bob", + "Bobby", + "Bobby-Lee", + "Bodhan", + "Boedyn", + "Bogdan", + "Bohbi", + "Bony", + "Bowen", + "Bowie", + "Boyd", + "Bracken", + "Brad", + "Bradan", + "Braden", + "Bradley", + "Bradlie", + "Bradly", + "Brady", + "Bradyn", + "Braeden", + "Braiden", + "Brajan", + "Brandan", + "Branden", + "Brandon", + "Brandonlee", + "Brandon-Lee", + "Brandyn", + "Brannan", + "Brayden", + "Braydon", + "Braydyn", + "Breandan", + "Brehme", + "Brendan", + "Brendon", + "Brendyn", + "Breogan", + "Bret", + "Brett", + "Briaddon", + "Brian", + "Brodi", + "Brodie", + "Brody", + "Brogan", + "Broghan", + "Brooke", + "Brooklin", + "Brooklyn", + "Bruce", + "Bruin", + "Bruno", + "Brunon", + "Bryan", + "Bryce", + "Bryden", + "Brydon", + "Brydon-Craig", + "Bryn", + "Brynmor", + "Bryson", + "Buddy", + "Bully", + "Burak", + "Burhan", + "Butali", + "Butchi", + "Byron", + "Cabhan", + "Cadan", + "Cade", + "Caden", + "Cadon", + "Cadyn", + "Caedan", + "Caedyn", + "Cael", + "Caelan", + "Caelen", + "Caethan", + "Cahl", + "Cahlum", + "Cai", + "Caidan", + "Caiden", + "Caiden-Paul", + "Caidyn", + "Caie", + "Cailaen", + "Cailean", + "Caileb-John", + "Cailin", + "Cain", + "Caine", + "Cairn", + "Cal", + "Calan", + "Calder", + "Cale", + "Calean", + "Caleb", + "Calen", + "Caley", + "Calib", + "Calin", + "Callahan", + "Callan", + "Callan-Adam", + "Calley", + "Callie", + "Callin", + "Callum", + "Callun", + "Callyn", + "Calum", + "Calum-James", + "Calvin", + "Cambell", + "Camerin", + "Cameron", + "Campbel", + "Campbell", + "Camron", + "Caolain", + "Caolan", + "Carl", + "Carlo", + "Carlos", + "Carrich", + "Carrick", + "Carson", + "Carter", + "Carwyn", + "Casey", + "Casper", + "Cassy", + "Cathal", + "Cator", + "Cavan", + "Cayden", + "Cayden-Robert", + "Cayden-Tiamo", + "Ceejay", + "Ceilan", + "Ceiran", + "Ceirin", + "Ceiron", + "Cejay", + "Celik", + "Cephas", + "Cesar", + "Cesare", + "Chad", + "Chaitanya", + "Chang-Ha", + "Charles", + "Charley", + "Charlie", + "Charly", + "Chase", + "Che", + "Chester", + "Chevy", + "Chi", + "Chibudom", + "Chidera", + "Chimsom", + "Chin", + "Chintu", + "Chiqal", + "Chiron", + "Chris", + "Chris-Daniel", + "Chrismedi", + "Christian", + "Christie", + "Christoph", + "Christopher", + "Christopher-Lee", + "Christy", + "Chu", + "Chukwuemeka", + "Cian", + "Ciann", + "Ciar", + "Ciaran", + "Ciarian", + "Cieran", + "Cillian", + "Cillin", + "Cinar", + "CJ", + "C-Jay", + "Clark", + "Clarke", + "Clayton", + "Clement", + "Clifford", + "Clyde", + "Cobain", + "Coban", + "Coben", + "Cobi", + "Cobie", + "Coby", + "Codey", + "Codi", + "Codie", + "Cody", + "Cody-Lee", + "Coel", + "Cohan", + "Cohen", + "Colby", + "Cole", + "Colin", + "Coll", + "Colm", + "Colt", + "Colton", + "Colum", + "Colvin", + "Comghan", + "Conal", + "Conall", + "Conan", + "Conar", + "Conghaile", + "Conlan", + "Conley", + "Conli", + "Conlin", + "Conlly", + "Conlon", + "Conlyn", + "Connal", + "Connall", + "Connan", + "Connar", + "Connel", + "Connell", + "Conner", + "Connolly", + "Connor", + "Connor-David", + "Conor", + "Conrad", + "Cooper", + "Copeland", + "Coray", + "Corben", + "Corbin", + "Corey", + "Corey-James", + "Corey-Jay", + "Cori", + "Corie", + "Corin", + "Cormac", + "Cormack", + "Cormak", + "Corran", + "Corrie", + "Cory", + "Cosmo", + "Coupar", + "Craig", + "Craig-James", + "Crawford", + "Creag", + "Crispin", + "Cristian", + "Crombie", + "Cruiz", + "Cruz", + "Cuillin", + "Cullen", + "Cullin", + "Curtis", + "Cyrus", + "Daanyaal", + "Daegan", + "Daegyu", + "Dafydd", + "Dagon", + "Dailey", + "Daimhin", + "Daithi", + "Dakota", + "Daksh", + "Dale", + "Dalong", + "Dalton", + "Damian", + "Damien", + "Damon", + "Dan", + "Danar", + "Dane", + "Danial", + "Daniel", + "Daniele", + "Daniel-James", + "Daniels", + "Daniil", + "Danish", + "Daniyal", + "Danniel", + "Danny", + "Dante", + "Danyal", + "Danyil", + "Danys", + "Daood", + "Dara", + "Darach", + "Daragh", + "Darcy", + "D'arcy", + "Dareh", + "Daren", + "Darien", + "Darius", + "Darl", + "Darn", + "Darrach", + "Darragh", + "Darrel", + "Darrell", + "Darren", + "Darrie", + "Darrius", + "Darroch", + "Darryl", + "Darryn", + "Darwyn", + "Daryl", + "Daryn", + "Daud", + "Daumantas", + "Davi", + "David", + "David-Jay", + "David-Lee", + "Davie", + "Davis", + "Davy", + "Dawid", + "Dawson", + "Dawud", + "Dayem", + "Daymian", + "Deacon", + "Deagan", + "Dean", + "Deano", + "Decklan", + "Declain", + "Declan", + "Declyan", + "Declyn", + "Dedeniseoluwa", + "Deecan", + "Deegan", + "Deelan", + "Deklain-Jaimes", + "Del", + "Demetrius", + "Denis", + "Deniss", + "Dennan", + "Dennin", + "Dennis", + "Denny", + "Dennys", + "Denon", + "Denton", + "Denver", + "Denzel", + "Deon", + "Derek", + "Derick", + "Derin", + "Dermot", + "Derren", + "Derrie", + "Derrin", + "Derron", + "Derry", + "Derryn", + "Deryn", + "Deshawn", + "Desmond", + "Dev", + "Devan", + "Devin", + "Devlin", + "Devlyn", + "Devon", + "Devrin", + "Devyn", + "Dex", + "Dexter", + "Dhani", + "Dharam", + "Dhavid", + "Dhyia", + "Diarmaid", + "Diarmid", + "Diarmuid", + "Didier", + "Diego", + "Diesel", + "Diesil", + "Digby", + "Dilan", + "Dilano", + "Dillan", + "Dillon", + "Dilraj", + "Dimitri", + "Dinaras", + "Dion", + "Dissanayake", + "Dmitri", + "Doire", + "Dolan", + "Domanic", + "Domenico", + "Domhnall", + "Dominic", + "Dominick", + "Dominik", + "Donald", + "Donnacha", + "Donnie", + "Dorian", + "Dougal", + "Douglas", + "Dougray", + "Drakeo", + "Dre", + "Dregan", + "Drew", + "Dugald", + "Duncan", + "Duriel", + "Dustin", + "Dylan", + "Dylan-Jack", + "Dylan-James", + "Dylan-John", + "Dylan-Patrick", + "Dylin", + "Dyllan", + "Dyllan-James", + "Dyllon", + "Eadie", + "Eagann", + "Eamon", + "Eamonn", + "Eason", + "Eassan", + "Easton", + "Ebow", + "Ed", + "Eddie", + "Eden", + "Ediomi", + "Edison", + "Eduardo", + "Eduards", + "Edward", + "Edwin", + "Edwyn", + "Eesa", + "Efan", + "Efe", + "Ege", + "Ehsan", + "Ehsen", + "Eiddon", + "Eidhan", + "Eihli", + "Eimantas", + "Eisa", + "Eli", + "Elias", + "Elijah", + "Eliot", + "Elisau", + "Eljay", + "Eljon", + "Elliot", + "Elliott", + "Ellis", + "Ellisandro", + "Elshan", + "Elvin", + "Elyan", + "Emanuel", + "Emerson", + "Emil", + "Emile", + "Emir", + "Emlyn", + "Emmanuel", + "Emmet", + "Eng", + "Eniola", + "Enis", + "Ennis", + "Enrico", + "Enrique", + "Enzo", + "Eoghain", + "Eoghan", + "Eoin", + "Eonan", + "Erdehan", + "Eren", + "Erencem", + "Eric", + "Ericlee", + "Erik", + "Eriz", + "Ernie-Jacks", + "Eroni", + "Eryk", + "Eshan", + "Essa", + "Esteban", + "Ethan", + "Etienne", + "Etinosa", + "Euan", + "Eugene", + "Evan", + "Evann", + "Ewan", + "Ewen", + "Ewing", + "Exodi", + "Ezekiel", + "Ezra", + "Fabian", + "Fahad", + "Faheem", + "Faisal", + "Faizaan", + "Famara", + "Fares", + "Farhaan", + "Farhan", + "Farren", + "Farzad", + "Fauzaan", + "Favour", + "Fawaz", + "Fawkes", + "Faysal", + "Fearghus", + "Feden", + "Felix", + "Fergal", + "Fergie", + "Fergus", + "Ferre", + "Fezaan", + "Fiachra", + "Fikret", + "Filip", + "Filippo", + "Finan", + "Findlay", + "Findlay-James", + "Findlie", + "Finlay", + "Finley", + "Finn", + "Finnan", + "Finnean", + "Finnen", + "Finnlay", + "Finnley", + "Fintan", + "Fionn", + "Firaaz", + "Fletcher", + "Flint", + "Florin", + "Flyn", + "Flynn", + "Fodeba", + "Folarinwa", + "Forbes", + "Forgan", + "Forrest", + "Fox", + "Francesco", + "Francis", + "Francisco", + "Franciszek", + "Franco", + "Frank", + "Frankie", + "Franklin", + "Franko", + "Fraser", + "Frazer", + "Fred", + "Freddie", + "Frederick", + "Fruin", + "Fyfe", + "Fyn", + "Fynlay", + "Fynn", + "Gabriel", + "Gallagher", + "Gareth", + "Garren", + "Garrett", + "Garry", + "Gary", + "Gavin", + "Gavin-Lee", + "Gene", + "Geoff", + "Geoffrey", + "Geomer", + "Geordan", + "Geordie", + "George", + "Georgia", + "Georgy", + "Gerard", + "Ghyll", + "Giacomo", + "Gian", + "Giancarlo", + "Gianluca", + "Gianmarco", + "Gideon", + "Gil", + "Gio", + "Girijan", + "Girius", + "Gjan", + "Glascott", + "Glen", + "Glenn", + "Gordon", + "Grady", + "Graeme", + "Graham", + "Grahame", + "Grant", + "Grayson", + "Greg", + "Gregor", + "Gregory", + "Greig", + "Griffin", + "Griffyn", + "Grzegorz", + "Guang", + "Guerin", + "Guillaume", + "Gurardass", + "Gurdeep", + "Gursees", + "Gurthar", + "Gurveer", + "Gurwinder", + "Gus", + "Gustav", + "Guthrie", + "Guy", + "Gytis", + "Habeeb", + "Hadji", + "Hadyn", + "Hagun", + "Haiden", + "Haider", + "Hamad", + "Hamid", + "Hamish", + "Hamza", + "Hamzah", + "Han", + "Hansen", + "Hao", + "Hareem", + "Hari", + "Harikrishna", + "Haris", + "Harish", + "Harjeevan", + "Harjyot", + "Harlee", + "Harleigh", + "Harley", + "Harman", + "Harnek", + "Harold", + "Haroon", + "Harper", + "Harri", + "Harrington", + "Harris", + "Harrison", + "Harry", + "Harvey", + "Harvie", + "Harvinder", + "Hasan", + "Haseeb", + "Hashem", + "Hashim", + "Hassan", + "Hassanali", + "Hately", + "Havila", + "Hayden", + "Haydn", + "Haydon", + "Haydyn", + "Hcen", + "Hector", + "Heddle", + "Heidar", + "Heini", + "Hendri", + "Henri", + "Henry", + "Herbert", + "Heyden", + "Hiro", + "Hirvaansh", + "Hishaam", + "Hogan", + "Honey", + "Hong", + "Hope", + "Hopkin", + "Hosea", + "Howard", + "Howie", + "Hristomir", + "Hubert", + "Hugh", + "Hugo", + "Humza", + "Hunter", + "Husnain", + "Hussain", + "Hussan", + "Hussnain", + "Hussnan", + "Hyden", + "I", + "Iagan", + "Iain", + "Ian", + "Ibraheem", + "Ibrahim", + "Idahosa", + "Idrees", + "Idris", + "Iestyn", + "Ieuan", + "Igor", + "Ihtisham", + "Ijay", + "Ikechukwu", + "Ikemsinachukwu", + "Ilyaas", + "Ilyas", + "Iman", + "Immanuel", + "Inan", + "Indy", + "Ines", + "Innes", + "Ioannis", + "Ireayomide", + "Ireoluwa", + "Irvin", + "Irvine", + "Isa", + "Isaa", + "Isaac", + "Isaiah", + "Isak", + "Isher", + "Ishwar", + "Isimeli", + "Isira", + "Ismaeel", + "Ismail", + "Israel", + "Issiaka", + "Ivan", + "Ivar", + "Izaak", + "J", + "Jaay", + "Jac", + "Jace", + "Jack", + "Jacki", + "Jackie", + "Jack-James", + "Jackson", + "Jacky", + "Jacob", + "Jacques", + "Jad", + "Jaden", + "Jadon", + "Jadyn", + "Jae", + "Jagat", + "Jago", + "Jaheim", + "Jahid", + "Jahy", + "Jai", + "Jaida", + "Jaiden", + "Jaidyn", + "Jaii", + "Jaime", + "Jai-Rajaram", + "Jaise", + "Jak", + "Jake", + "Jakey", + "Jakob", + "Jaksyn", + "Jakub", + "Jamaal", + "Jamal", + "Jameel", + "Jameil", + "James", + "James-Paul", + "Jamey", + "Jamie", + "Jan", + "Jaosha", + "Jardine", + "Jared", + "Jarell", + "Jarl", + "Jarno", + "Jarred", + "Jarvi", + "Jasey-Jay", + "Jasim", + "Jaskaran", + "Jason", + "Jasper", + "Jaxon", + "Jaxson", + "Jay", + "Jaydan", + "Jayden", + "Jayden-James", + "Jayden-Lee", + "Jayden-Paul", + "Jayden-Thomas", + "Jaydn", + "Jaydon", + "Jaydyn", + "Jayhan", + "Jay-Jay", + "Jayke", + "Jaymie", + "Jayse", + "Jayson", + "Jaz", + "Jazeb", + "Jazib", + "Jazz", + "Jean", + "Jean-Lewis", + "Jean-Pierre", + "Jebadiah", + "Jed", + "Jedd", + "Jedidiah", + "Jeemie", + "Jeevan", + "Jeffrey", + "Jensen", + "Jenson", + "Jensyn", + "Jeremy", + "Jerome", + "Jeronimo", + "Jerrick", + "Jerry", + "Jesse", + "Jesuseun", + "Jeswin", + "Jevan", + "Jeyun", + "Jez", + "Jia", + "Jian", + "Jiao", + "Jimmy", + "Jincheng", + "JJ", + "Joaquin", + "Joash", + "Jock", + "Jody", + "Joe", + "Joeddy", + "Joel", + "Joey", + "Joey-Jack", + "Johann", + "Johannes", + "Johansson", + "John", + "Johnathan", + "Johndean", + "Johnjay", + "John-Michael", + "Johnnie", + "Johnny", + "Johnpaul", + "John-Paul", + "John-Scott", + "Johnson", + "Jole", + "Jomuel", + "Jon", + "Jonah", + "Jonatan", + "Jonathan", + "Jonathon", + "Jonny", + "Jonothan", + "Jon-Paul", + "Jonson", + "Joojo", + "Jordan", + "Jordi", + "Jordon", + "Jordy", + "Jordyn", + "Jorge", + "Joris", + "Jorryn", + "Josan", + "Josef", + "Joseph", + "Josese", + "Josh", + "Joshiah", + "Joshua", + "Josiah", + "Joss", + "Jostelle", + "Joynul", + "Juan", + "Jubin", + "Judah", + "Jude", + "Jules", + "Julian", + "Julien", + "Jun", + "Junior", + "Jura", + "Justan", + "Justin", + "Justinas", + "Kaan", + "Kabeer", + "Kabir", + "Kacey", + "Kacper", + "Kade", + "Kaden", + "Kadin", + "Kadyn", + "Kaeden", + "Kael", + "Kaelan", + "Kaelin", + "Kaelum", + "Kai", + "Kaid", + "Kaidan", + "Kaiden", + "Kaidinn", + "Kaidyn", + "Kaileb", + "Kailin", + "Kain", + "Kaine", + "Kainin", + "Kainui", + "Kairn", + "Kaison", + "Kaiwen", + "Kajally", + "Kajetan", + "Kalani", + "Kale", + "Kaleb", + "Kaleem", + "Kal-el", + "Kalen", + "Kalin", + "Kallan", + "Kallin", + "Kalum", + "Kalvin", + "Kalvyn", + "Kameron", + "Kames", + "Kamil", + "Kamran", + "Kamron", + "Kane", + "Karam", + "Karamvir", + "Karandeep", + "Kareem", + "Karim", + "Karimas", + "Karl", + "Karol", + "Karson", + "Karsyn", + "Karthikeya", + "Kasey", + "Kash", + "Kashif", + "Kasim", + "Kasper", + "Kasra", + "Kavin", + "Kayam", + "Kaydan", + "Kayden", + "Kaydin", + "Kaydn", + "Kaydyn", + "Kaydyne", + "Kayleb", + "Kaylem", + "Kaylum", + "Kayne", + "Kaywan", + "Kealan", + "Kealon", + "Kean", + "Keane", + "Kearney", + "Keatin", + "Keaton", + "Keavan", + "Keayn", + "Kedrick", + "Keegan", + "Keelan", + "Keelin", + "Keeman", + "Keenan", + "Keenan-Lee", + "Keeton", + "Kehinde", + "Keigan", + "Keilan", + "Keir", + "Keiran", + "Keiren", + "Keiron", + "Keiryn", + "Keison", + "Keith", + "Keivlin", + "Kelam", + "Kelan", + "Kellan", + "Kellen", + "Kelso", + "Kelum", + "Kelvan", + "Kelvin", + "Ken", + "Kenan", + "Kendall", + "Kendyn", + "Kenlin", + "Kenneth", + "Kensey", + "Kenton", + "Kenyon", + "Kenzeigh", + "Kenzi", + "Kenzie", + "Kenzo", + "Kenzy", + "Keo", + "Ker", + "Kern", + "Kerr", + "Kevan", + "Kevin", + "Kevyn", + "Kez", + "Khai", + "Khalan", + "Khaleel", + "Khaya", + "Khevien", + "Khizar", + "Khizer", + "Kia", + "Kian", + "Kian-James", + "Kiaran", + "Kiarash", + "Kie", + "Kiefer", + "Kiegan", + "Kienan", + "Kier", + "Kieran", + "Kieran-Scott", + "Kieren", + "Kierin", + "Kiern", + "Kieron", + "Kieryn", + "Kile", + "Killian", + "Kimi", + "Kingston", + "Kinneil", + "Kinnon", + "Kinsey", + "Kiran", + "Kirk", + "Kirwin", + "Kit", + "Kiya", + "Kiyonari", + "Kjae", + "Klein", + "Klevis", + "Kobe", + "Kobi", + "Koby", + "Koddi", + "Koden", + "Kodi", + "Kodie", + "Kody", + "Kofi", + "Kogan", + "Kohen", + "Kole", + "Konan", + "Konar", + "Konnor", + "Konrad", + "Koray", + "Korben", + "Korbyn", + "Korey", + "Kori", + "Korrin", + "Kory", + "Koushik", + "Kris", + "Krish", + "Krishan", + "Kriss", + "Kristian", + "Kristin", + "Kristofer", + "Kristoffer", + "Kristopher", + "Kruz", + "Krzysiek", + "Krzysztof", + "Ksawery", + "Ksawier", + "Kuba", + "Kurt", + "Kurtis", + "Kurtis-Jae", + "Kyaan", + "Kyan", + "Kyde", + "Kyden", + "Kye", + "Kyel", + "Kyhran", + "Kyie", + "Kylan", + "Kylar", + "Kyle", + "Kyle-Derek", + "Kylian", + "Kym", + "Kynan", + "Kyral", + "Kyran", + "Kyren", + "Kyrillos", + "Kyro", + "Kyron", + "Kyrran", + "Lachlainn", + "Lachlan", + "Lachlann", + "Lael", + "Lagan", + "Laird", + "Laison", + "Lakshya", + "Lance", + "Lancelot", + "Landon", + "Lang", + "Lasse", + "Latif", + "Lauchlan", + "Lauchlin", + "Laughlan", + "Lauren", + "Laurence", + "Laurie", + "Lawlyn", + "Lawrence", + "Lawrie", + "Lawson", + "Layne", + "Layton", + "Lee", + "Leigh", + "Leigham", + "Leighton", + "Leilan", + "Leiten", + "Leithen", + "Leland", + "Lenin", + "Lennan", + "Lennen", + "Lennex", + "Lennon", + "Lennox", + "Lenny", + "Leno", + "Lenon", + "Lenyn", + "Leo", + "Leon", + "Leonard", + "Leonardas", + "Leonardo", + "Lepeng", + "Leroy", + "Leven", + "Levi", + "Levon", + "Levy", + "Lewie", + "Lewin", + "Lewis", + "Lex", + "Leydon", + "Leyland", + "Leylann", + "Leyton", + "Liall", + "Liam", + "Liam-Stephen", + "Limo", + "Lincoln", + "Lincoln-John", + "Lincon", + "Linden", + "Linton", + "Lionel", + "Lisandro", + "Litrell", + "Liyonela-Elam", + "LLeyton", + "Lliam", + "Lloyd", + "Lloyde", + "Loche", + "Lochlan", + "Lochlann", + "Lochlan-Oliver", + "Lock", + "Lockey", + "Logan", + "Logann", + "Logan-Rhys", + "Loghan", + "Lokesh", + "Loki", + "Lomond", + "Lorcan", + "Lorenz", + "Lorenzo", + "Lorne", + "Loudon", + "Loui", + "Louie", + "Louis", + "Loukas", + "Lovell", + "Luc", + "Luca", + "Lucais", + "Lucas", + "Lucca", + "Lucian", + "Luciano", + "Lucien", + "Lucus", + "Luic", + "Luis", + "Luk", + "Luka", + "Lukas", + "Lukasz", + "Luke", + "Lukmaan", + "Luqman", + "Lyall", + "Lyle", + "Lyndsay", + "Lysander", + "Maanav", + "Maaz", + "Mac", + "Macallum", + "Macaulay", + "Macauley", + "Macaully", + "Machlan", + "Maciej", + "Mack", + "Mackenzie", + "Mackenzy", + "Mackie", + "Macsen", + "Macy", + "Madaki", + "Maddison", + "Maddox", + "Madison", + "Madison-Jake", + "Madox", + "Mael", + "Magnus", + "Mahan", + "Mahdi", + "Mahmoud", + "Maias", + "Maison", + "Maisum", + "Maitlind", + "Majid", + "Makensie", + "Makenzie", + "Makin", + "Maksim", + "Maksymilian", + "Malachai", + "Malachi", + "Malachy", + "Malakai", + "Malakhy", + "Malcolm", + "Malik", + "Malikye", + "Malo", + "Ma'moon", + "Manas", + "Maneet", + "Manmohan", + "Manolo", + "Manson", + "Mantej", + "Manuel", + "Manus", + "Marc", + "Marc-Anthony", + "Marcel", + "Marcello", + "Marcin", + "Marco", + "Marcos", + "Marcous", + "Marcquis", + "Marcus", + "Mario", + "Marios", + "Marius", + "Mark", + "Marko", + "Markus", + "Marley", + "Marlin", + "Marlon", + "Maros", + "Marshall", + "Martin", + "Marty", + "Martyn", + "Marvellous", + "Marvin", + "Marwan", + "Maryk", + "Marzuq", + "Mashhood", + "Mason", + "Mason-Jay", + "Masood", + "Masson", + "Matas", + "Matej", + "Mateusz", + "Mathew", + "Mathias", + "Mathu", + "Mathuyan", + "Mati", + "Matt", + "Matteo", + "Matthew", + "Matthew-William", + "Matthias", + "Max", + "Maxim", + "Maximilian", + "Maximillian", + "Maximus", + "Maxwell", + "Maxx", + "Mayeul", + "Mayson", + "Mazin", + "Mcbride", + "McCaulley", + "McKade", + "McKauley", + "McKay", + "McKenzie", + "McLay", + "Meftah", + "Mehmet", + "Mehraz", + "Meko", + "Melville", + "Meshach", + "Meyzhward", + "Micah", + "Michael", + "Michael-Alexander", + "Michael-James", + "Michal", + "Michat", + "Micheal", + "Michee", + "Mickey", + "Miguel", + "Mika", + "Mikael", + "Mikee", + "Mikey", + "Mikhail", + "Mikolaj", + "Miles", + "Millar", + "Miller", + "Milo", + "Milos", + "Milosz", + "Mir", + "Mirza", + "Mitch", + "Mitchel", + "Mitchell", + "Moad", + "Moayd", + "Mobeen", + "Modoulamin", + "Modu", + "Mohamad", + "Mohamed", + "Mohammad", + "Mohammad-Bilal", + "Mohammed", + "Mohanad", + "Mohd", + "Momin", + "Momooreoluwa", + "Montague", + "Montgomery", + "Monty", + "Moore", + "Moosa", + "Moray", + "Morgan", + "Morgyn", + "Morris", + "Morton", + "Moshy", + "Motade", + "Moyes", + "Msughter", + "Mueez", + "Muhamadjavad", + "Muhammad", + "Muhammed", + "Muhsin", + "Muir", + "Munachi", + "Muneeb", + "Mungo", + "Munir", + "Munmair", + "Munro", + "Murdo", + "Murray", + "Murrough", + "Murry", + "Musa", + "Musse", + "Mustafa", + "Mustapha", + "Muzammil", + "Muzzammil", + "Mykie", + "Myles", + "Mylo", + "Nabeel", + "Nadeem", + "Nader", + "Nagib", + "Naif", + "Nairn", + "Narvic", + "Nash", + "Nasser", + "Nassir", + "Natan", + "Nate", + "Nathan", + "Nathanael", + "Nathanial", + "Nathaniel", + "Nathan-Rae", + "Nawfal", + "Nayan", + "Neco", + "Neil", + "Nelson", + "Neo", + "Neshawn", + "Nevan", + "Nevin", + "Ngonidzashe", + "Nial", + "Niall", + "Nicholas", + "Nick", + "Nickhill", + "Nicki", + "Nickson", + "Nicky", + "Nico", + "Nicodemus", + "Nicol", + "Nicolae", + "Nicolas", + "Nidhish", + "Nihaal", + "Nihal", + "Nikash", + "Nikhil", + "Niki", + "Nikita", + "Nikodem", + "Nikolai", + "Nikos", + "Nilav", + "Niraj", + "Niro", + "Niven", + "Noah", + "Noel", + "Nolan", + "Noor", + "Norman", + "Norrie", + "Nuada", + "Nyah", + "Oakley", + "Oban", + "Obieluem", + "Obosa", + "Odhran", + "Odin", + "Odynn", + "Ogheneochuko", + "Ogheneruno", + "Ohran", + "Oilibhear", + "Oisin", + "Ojima-Ojo", + "Okeoghene", + "Olaf", + "Ola-Oluwa", + "Olaoluwapolorimi", + "Ole", + "Olie", + "Oliver", + "Olivier", + "Oliwier", + "Ollie", + "Olurotimi", + "Oluwadamilare", + "Oluwadamiloju", + "Oluwafemi", + "Oluwafikunayomi", + "Oluwalayomi", + "Oluwatobiloba", + "Oluwatoni", + "Omar", + "Omri", + "Oran", + "Orin", + "Orlando", + "Orley", + "Orran", + "Orrick", + "Orrin", + "Orson", + "Oryn", + "Oscar", + "Osesenagha", + "Oskar", + "Ossian", + "Oswald", + "Otto", + "Owain", + "Owais", + "Owen", + "Owyn", + "Oz", + "Ozzy", + "Pablo", + "Pacey", + "Padraig", + "Paolo", + "Pardeepraj", + "Parkash", + "Parker", + "Pascoe", + "Pasquale", + "Patrick", + "Patrick-John", + "Patrikas", + "Patryk", + "Paul", + "Pavit", + "Pawel", + "Pawlo", + "Pearce", + "Pearse", + "Pearsen", + "Pedram", + "Pedro", + "Peirce", + "Peiyan", + "Pele", + "Peni", + "Peregrine", + "Peter", + "Phani", + "Philip", + "Philippos", + "Phinehas", + "Phoenix", + "Phoevos", + "Pierce", + "Pierre-Antoine", + "Pieter", + "Pietro", + "Piotr", + "Porter", + "Prabhjoit", + "Prabodhan", + "Praise", + "Pranav", + "Pravin", + "Precious", + "Prentice", + "Presley", + "Preston", + "Preston-Jay", + "Prinay", + "Prince", + "Prithvi", + "Promise", + "Puneetpaul", + "Pushkar", + "Qasim", + "Qirui", + "Quinlan", + "Quinn", + "Radmiras", + "Raees", + "Raegan", + "Rafael", + "Rafal", + "Rafferty", + "Rafi", + "Raheem", + "Rahil", + "Rahim", + "Rahman", + "Raith", + "Raithin", + "Raja", + "Rajab-Ali", + "Rajan", + "Ralfs", + "Ralph", + "Ramanas", + "Ramit", + "Ramone", + "Ramsay", + "Ramsey", + "Rana", + "Ranolph", + "Raphael", + "Rasmus", + "Rasul", + "Raul", + "Raunaq", + "Ravin", + "Ray", + "Rayaan", + "Rayan", + "Rayane", + "Rayden", + "Rayhan", + "Raymond", + "Rayne", + "Rayyan", + "Raza", + "Reace", + "Reagan", + "Reean", + "Reece", + "Reed", + "Reegan", + "Rees", + "Reese", + "Reeve", + "Regan", + "Regean", + "Reggie", + "Rehaan", + "Rehan", + "Reice", + "Reid", + "Reigan", + "Reilly", + "Reily", + "Reis", + "Reiss", + "Remigiusz", + "Remo", + "Remy", + "Ren", + "Renars", + "Reng", + "Rennie", + "Reno", + "Reo", + "Reuben", + "Rexford", + "Reynold", + "Rhein", + "Rheo", + "Rhett", + "Rheyden", + "Rhian", + "Rhoan", + "Rholmark", + "Rhoridh", + "Rhuairidh", + "Rhuan", + "Rhuaridh", + "Rhudi", + "Rhy", + "Rhyan", + "Rhyley", + "Rhyon", + "Rhys", + "Rhys-Bernard", + "Rhyse", + "Riach", + "Rian", + "Ricards", + "Riccardo", + "Ricco", + "Rice", + "Richard", + "Richey", + "Richie", + "Ricky", + "Rico", + "Ridley", + "Ridwan", + "Rihab", + "Rihan", + "Rihards", + "Rihonn", + "Rikki", + "Riley", + "Rio", + "Rioden", + "Rishi", + "Ritchie", + "Rivan", + "Riyadh", + "Riyaj", + "Roan", + "Roark", + "Roary", + "Rob", + "Robbi", + "Robbie", + "Robbie-lee", + "Robby", + "Robert", + "Robert-Gordon", + "Robertjohn", + "Robi", + "Robin", + "Rocco", + "Roddy", + "Roderick", + "Rodrigo", + "Roen", + "Rogan", + "Roger", + "Rohaan", + "Rohan", + "Rohin", + "Rohit", + "Rokas", + "Roman", + "Ronald", + "Ronan", + "Ronan-Benedict", + "Ronin", + "Ronnie", + "Rooke", + "Roray", + "Rori", + "Rorie", + "Rory", + "Roshan", + "Ross", + "Ross-Andrew", + "Rossi", + "Rowan", + "Rowen", + "Roy", + "Ruadhan", + "Ruaidhri", + "Ruairi", + "Ruairidh", + "Ruan", + "Ruaraidh", + "Ruari", + "Ruaridh", + "Ruben", + "Rubhan", + "Rubin", + "Rubyn", + "Rudi", + "Rudy", + "Rufus", + "Rui", + "Ruo", + "Rupert", + "Ruslan", + "Russel", + "Russell", + "Ryaan", + "Ryan", + "Ryan-Lee", + "Ryden", + "Ryder", + "Ryese", + "Ryhs", + "Rylan", + "Rylay", + "Rylee", + "Ryleigh", + "Ryley", + "Rylie", + "Ryo", + "Ryszard", + "Saad", + "Sabeen", + "Sachkirat", + "Saffi", + "Saghun", + "Sahaib", + "Sahbian", + "Sahil", + "Saif", + "Saifaddine", + "Saim", + "Sajid", + "Sajjad", + "Salahudin", + "Salman", + "Salter", + "Salvador", + "Sam", + "Saman", + "Samar", + "Samarjit", + "Samatar", + "Sambrid", + "Sameer", + "Sami", + "Samir", + "Sami-Ullah", + "Samual", + "Samuel", + "Samuela", + "Samy", + "Sanaullah", + "Sandro", + "Sandy", + "Sanfur", + "Sanjay", + "Santiago", + "Santino", + "Satveer", + "Saul", + "Saunders", + "Savin", + "Sayad", + "Sayeed", + "Sayf", + "Scot", + "Scott", + "Scott-Alexander", + "Seaan", + "Seamas", + "Seamus", + "Sean", + "Seane", + "Sean-James", + "Sean-Paul", + "Sean-Ray", + "Seb", + "Sebastian", + "Sebastien", + "Selasi", + "Seonaidh", + "Sephiroth", + "Sergei", + "Sergio", + "Seth", + "Sethu", + "Seumas", + "Shaarvin", + "Shadow", + "Shae", + "Shahmir", + "Shai", + "Shane", + "Shannon", + "Sharland", + "Sharoz", + "Shaughn", + "Shaun", + "Shaunpaul", + "Shaun-Paul", + "Shaun-Thomas", + "Shaurya", + "Shaw", + "Shawn", + "Shawnpaul", + "Shay", + "Shayaan", + "Shayan", + "Shaye", + "Shayne", + "Shazil", + "Shea", + "Sheafan", + "Sheigh", + "Shenuk", + "Sher", + "Shergo", + "Sheriff", + "Sherwyn", + "Shiloh", + "Shiraz", + "Shreeram", + "Shreyas", + "Shyam", + "Siddhant", + "Siddharth", + "Sidharth", + "Sidney", + "Siergiej", + "Silas", + "Simon", + "Sinai", + "Skye", + "Sofian", + "Sohaib", + "Sohail", + "Soham", + "Sohan", + "Sol", + "Solomon", + "Sonneey", + "Sonni", + "Sonny", + "Sorley", + "Soul", + "Spencer", + "Spondon", + "Stanislaw", + "Stanley", + "Stefan", + "Stefano", + "Stefin", + "Stephen", + "Stephenjunior", + "Steve", + "Steven", + "Steven-lee", + "Stevie", + "Stewart", + "Stewarty", + "Strachan", + "Struan", + "Stuart", + "Su", + "Subhaan", + "Sudais", + "Suheyb", + "Suilven", + "Sukhi", + "Sukhpal", + "Sukhvir", + "Sulayman", + "Sullivan", + "Sultan", + "Sung", + "Sunny", + "Suraj", + "Surien", + "Sweyn", + "Syed", + "Sylvain", + "Symon", + "Szymon", + "Tadd", + "Taddy", + "Tadhg", + "Taegan", + "Taegen", + "Tai", + "Tait", + "Taiwo", + "Talha", + "Taliesin", + "Talon", + "Talorcan", + "Tamar", + "Tamiem", + "Tammam", + "Tanay", + "Tane", + "Tanner", + "Tanvir", + "Tanzeel", + "Taonga", + "Tarik", + "Tariq-Jay", + "Tate", + "Taylan", + "Taylar", + "Tayler", + "Taylor", + "Taylor-Jay", + "Taylor-Lee", + "Tayo", + "Tayyab", + "Tayye", + "Tayyib", + "Teagan", + "Tee", + "Teejay", + "Tee-jay", + "Tegan", + "Teighen", + "Teiyib", + "Te-Jay", + "Temba", + "Teo", + "Teodor", + "Teos", + "Terry", + "Teydren", + "Theo", + "Theodore", + "Thiago", + "Thierry", + "Thom", + "Thomas", + "Thomas-Jay", + "Thomson", + "Thorben", + "Thorfinn", + "Thrinei", + "Thumbiko", + "Tiago", + "Tian", + "Tiarnan", + "Tibet", + "Tieran", + "Tiernan", + "Timothy", + "Timucin", + "Tiree", + "Tisloh", + "Titi", + "Titus", + "Tiylar", + "TJ", + "Tjay", + "T-Jay", + "Tobey", + "Tobi", + "Tobias", + "Tobie", + "Toby", + "Todd", + "Tokinaga", + "Toluwalase", + "Tom", + "Tomas", + "Tomasz", + "Tommi-Lee", + "Tommy", + "Tomson", + "Tony", + "Torin", + "Torquil", + "Torran", + "Torrin", + "Torsten", + "Trafford", + "Trai", + "Travis", + "Tre", + "Trent", + "Trey", + "Tristain", + "Tristan", + "Troy", + "Tubagus", + "Turki", + "Turner", + "Ty", + "Ty-Alexander", + "Tye", + "Tyelor", + "Tylar", + "Tyler", + "Tyler-James", + "Tyler-Jay", + "Tyllor", + "Tylor", + "Tymom", + "Tymon", + "Tymoteusz", + "Tyra", + "Tyree", + "Tyrnan", + "Tyrone", + "Tyson", + "Ubaid", + "Ubayd", + "Uchenna", + "Uilleam", + "Umair", + "Umar", + "Umer", + "Umut", + "Urban", + "Uri", + "Usman", + "Uzair", + "Uzayr", + "Valen", + "Valentin", + "Valentino", + "Valery", + "Valo", + "Vasyl", + "Vedantsinh", + "Veeran", + "Victor", + "Victory", + "Vinay", + "Vince", + "Vincent", + "Vincenzo", + "Vinh", + "Vinnie", + "Vithujan", + "Vladimir", + "Vladislav", + "Vrishin", + "Vuyolwethu", + "Wabuya", + "Wai", + "Walid", + "Wallace", + "Walter", + "Waqaas", + "Warkhas", + "Warren", + "Warrick", + "Wasif", + "Wayde", + "Wayne", + "Wei", + "Wen", + "Wesley", + "Wesley-Scott", + "Wiktor", + "Wilkie", + "Will", + "William", + "William-John", + "Willum", + "Wilson", + "Windsor", + "Wojciech", + "Woyenbrakemi", + "Wyatt", + "Wylie", + "Wynn", + "Xabier", + "Xander", + "Xavier", + "Xiao", + "Xida", + "Xin", + "Xue", + "Yadgor", + "Yago", + "Yahya", + "Yakup", + "Yang", + "Yanick", + "Yann", + "Yannick", + "Yaseen", + "Yasin", + "Yasir", + "Yassin", + "Yoji", + "Yong", + "Yoolgeun", + "Yorgos", + "Youcef", + "Yousif", + "Youssef", + "Yu", + "Yuanyu", + "Yuri", + "Yusef", + "Yusuf", + "Yves", + "Zaaine", + "Zaak", + "Zac", + "Zach", + "Zachariah", + "Zacharias", + "Zacharie", + "Zacharius", + "Zachariya", + "Zachary", + "Zachary-Marc", + "Zachery", + "Zack", + "Zackary", + "Zaid", + "Zain", + "Zaine", + "Zaineddine", + "Zainedin", + "Zak", + "Zakaria", + "Zakariya", + "Zakary", + "Zaki", + "Zakir", + "Zakk", + "Zamaar", + "Zander", + "Zane", + "Zarran", + "Zayd", + "Zayn", + "Zayne", + "Ze", + "Zechariah", + "Zeek", + "Zeeshan", + "Zeid", + "Zein", + "Zen", + "Zendel", + "Zenith", + "Zennon", + "Zeph", + "Zerah", + "Zhen", + "Zhi", + "Zhong", + "Zhuo", + "Zi", + "Zidane", + "Zijie", + "Zinedine", + "Zion", + "Zishan", + "Ziya", + "Ziyaan", + "Zohaib", + "Zohair", + "Zoubaeir", + "Zubair", + "Zubayr", + "Zuriel", +]; pub fn get_name() -> String { - return FIRST_NAMES.choose(&mut rand::thread_rng()).unwrap().to_string(); -} \ No newline at end of file + return FIRST_NAMES + .choose(&mut rand::thread_rng()) + .unwrap() + .to_string(); +} diff --git a/src/smtp.rs b/src/smtp.rs index 5834a3a..8c3bfb1 100644 --- a/src/smtp.rs +++ b/src/smtp.rs @@ -1,5 +1,5 @@ use std::io::{BufRead, BufReader, Write}; -use std::mem; + use std::net::{TcpListener, TcpStream}; pub fn start_server() { @@ -17,7 +17,12 @@ pub fn start_server() { eprintln!("System error: {}", e) } else { for mail in connection.messages { - println!("Mail from {} for {}\n{}", mail.sender, mail.recipients.join(", "), mail.data.unwrap_or("".to_string())) + println!( + "Mail from {} for {}\n{}", + mail.sender, + mail.recipients.join(", "), + mail.data.unwrap_or("".to_string()) + ) } } } @@ -85,7 +90,11 @@ impl Connection { } } - fn handle(&mut self, mut writer: TcpStream, mut reader: BufReader) -> Result<(), &str> { + fn handle( + &mut self, + mut writer: TcpStream, + mut reader: BufReader, + ) -> Result<(), &str> { send(&mut writer, MSG_BANNER)?; let mut line = String::new(); @@ -93,7 +102,7 @@ impl Connection { loop { let read_result = reader.read_line(&mut line); - if read_result.is_err() || line.len() == 0 { + if read_result.is_err() || line.is_empty() { return Err(ERR_READ_FAILED); } @@ -101,9 +110,7 @@ impl Connection { let response = self.handle_line(&line); - if let Err(_e) = response { - return Err(_e); // _e - } + response?; if let Ok(Some(out)) = response { send(&mut writer, out)?; @@ -116,10 +123,10 @@ impl Connection { line.clear() } - return Ok(()); + Ok(()) } - fn handle_line(&mut self, line: &String) -> Result, &'static str> { + fn handle_line(&mut self, line: &str) -> Result, &'static str> { match self.state { ConnectionState::PreHello => { if line.starts_with(CMD_HELLO) { @@ -129,7 +136,7 @@ impl Connection { } ConnectionState::Hello => { if line.starts_with(CMD_MAIL_FROM) { - self.current_message = Some(Message::new(line.clone())); + self.current_message = Some(Message::new(line.to_owned())); self.state = ConnectionState::Mail; return Ok(Some(MSG_OK)); } @@ -167,9 +174,7 @@ impl Connection { Ok(None) } - _ => { - Err(MSG_FAIL) - } + _ => Err(MSG_FAIL), }; } ConnectionState::Done => { @@ -189,17 +194,17 @@ impl Connection { } fn finalize_mail(&mut self) { - let current_message = mem::replace(&mut self.current_message, None); + let current_message = self.current_message.take(); if let Some(mail) = current_message { self.messages.push(mail) } } - fn add_recipient(&mut self, line: &String) -> Result<(), &'static str> { + fn add_recipient(&mut self, line: &str) -> Result<(), &'static str> { match self.current_message { Some(ref mut message) => { - message.recipients.push(line.clone()); + message.recipients.push(line.to_owned()); self.state = ConnectionState::PreData } _ => { @@ -217,4 +222,4 @@ fn send(writer: &mut TcpStream, message: &str) -> Result<(), &'static str> { } Ok(()) -} \ No newline at end of file +} diff --git a/src/state.rs b/src/state.rs index 8805c9b..894018e 100644 --- a/src/state.rs +++ b/src/state.rs @@ -1,6 +1,6 @@ +use chrono::{DateTime, Utc}; use std::collections::HashMap; use std::sync::Mutex; -use chrono::{DateTime, Utc}; pub type State = Mutex>; @@ -12,21 +12,21 @@ pub struct Message { pub from: String, pub received: DateTime, pub subject: String, - pub body: String + pub body: String, } pub struct Mailbox { pub email: String, pub messages: Vec, - pub created_at: DateTime + pub created_at: DateTime, } impl Mailbox { pub fn new(email: String) -> Self { - Self { - email, - messages: Vec::new(), - created_at: Utc::now() - } + Self { + email, + messages: Vec::new(), + created_at: Utc::now(), + } } -} \ No newline at end of file +}