diff --git a/PKHeX.Core/Legality/Restrictions/WordFilter.cs b/PKHeX.Core/Legality/Restrictions/WordFilter.cs
deleted file mode 100644
index 252552760..000000000
--- a/PKHeX.Core/Legality/Restrictions/WordFilter.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-using System;
-using System.Collections.Concurrent;
-using System.Diagnostics.CodeAnalysis;
-using System.Text.RegularExpressions;
-
-namespace PKHeX.Core;
-
-///
-/// Bad-word Filter class containing logic to check against unsavory regular expressions.
-///
-public static class WordFilter
-{
- ///
- /// Regex patterns to check against
- ///
- /// No need to keep the original pattern strings around; the object retrieves this via
- private static readonly Regex[] Regexes = LoadPatterns(Util.GetStringResource("badwords"));
-
- // if you're running this as a server and don't mind a few extra seconds of startup, add RegexOptions.Compiled for slightly better checking.
- private const RegexOptions Options = RegexOptions.CultureInvariant;
-
- private static Regex[] LoadPatterns(ReadOnlySpan patterns)
- {
- var lineCount = 1 + patterns.Count('\n');
- var result = new Regex[lineCount];
- int i = 0;
- foreach (var line in patterns.EnumerateLines())
- result[i++] = new Regex(line.ToString(), Options);
- return result;
- }
-
- ///
- /// Checks to see if a phrase contains filtered content.
- ///
- /// Phrase to check for
- /// Matching regex that filters the phrase.
- /// Boolean result if the message is filtered or not.
- public static bool TryMatch(ReadOnlySpan message, [NotNullWhen(true)] out string? regMatch)
- {
- foreach (var regex in Regexes)
- {
- foreach (var _ in regex.EnumerateMatches(message))
- {
- regMatch = regex.ToString();
- return true;
- }
- }
- regMatch = null;
- return false;
- }
-
- ///
- /// Due to some messages repeating (Trainer names), keep a list of repeated values for faster lookup.
- ///
- private static readonly ConcurrentDictionary.AlternateLookup> Lookup =
- new ConcurrentDictionary().GetAlternateLookup>();
-
- ///
- /// Checks to see if a phrase contains filtered content.
- ///
- /// Phrase to check for
- /// Matching regex that filters the phrase.
- /// Boolean result if the message is filtered or not.
- public static bool IsFiltered(ReadOnlySpan message, [NotNullWhen(true)] out string? regMatch)
- {
- if (message.IsWhiteSpace() || message.Length <= 1)
- {
- regMatch = null;
- return false;
- }
-
- // Check dictionary
- if (Lookup.TryGetValue(message, out regMatch))
- return regMatch != null;
-
- // Make the string lowercase invariant
- Span lowercase = stackalloc char[message.Length];
- message.ToLowerInvariant(lowercase);
-
- // not in dictionary, check patterns
- if (TryMatch(lowercase, out regMatch))
- {
- Lookup.TryAdd(message, regMatch);
- return true;
- }
-
- // didn't match any pattern, cache result
- if ((Lookup.Dictionary.Count & ~MAX_COUNT) != 0)
- Lookup.Dictionary.Clear(); // reset
- Lookup.TryAdd(message, regMatch = null);
- return false;
- }
-
- private const int MAX_COUNT = (1 << 17) - 1; // arbitrary cap for max dictionary size
-}
diff --git a/PKHeX.Core/Legality/Restrictions/WordFilter/TextNormalizer.cs b/PKHeX.Core/Legality/Restrictions/WordFilter/TextNormalizer.cs
new file mode 100644
index 000000000..7cd863759
--- /dev/null
+++ b/PKHeX.Core/Legality/Restrictions/WordFilter/TextNormalizer.cs
@@ -0,0 +1,70 @@
+using System;
+
+namespace PKHeX.Core;
+
+///
+/// Simplistic normalization of a string used by the Nintendo 3DS and Nintendo Switch games.
+///
+public static class TextNormalizer
+{
+ private const string Dakuten = "カキクケコサシスセソタチツテトハヒフヘホ"; // 'ウ' handled separately
+ private const string Handakuten = "ハヒフヘホ";
+ private const string FullwidthKana = "ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン";
+ private const string SmallKana = "ァィゥェォッャュョヮ"; // 'ヵ', 'ヶ' handled separately
+
+ ///
+ /// Normalize a string to a simplified form for checking against a bad-word list.
+ ///
+ /// Input string to normalize
+ /// Output buffer to write the normalized string
+ public static int Normalize(ReadOnlySpan input, Span output)
+ {
+ int ctr = 0;
+ for (int i = 0; i < input.Length; i++)
+ {
+ var c = input[i];
+
+ // Skip spaces and halfwidth dakuten/handakuten
+ if (c is ' ' or '\u3000' or '゙' or '゚')
+ continue;
+
+ // Handle combining halfwidth dakuten/handakuten
+ ushort ofs = 0;
+ if (c is >= 'ヲ' and <= 'ン' && i + 1 < input.Length)
+ {
+ var d = input[i + 1];
+ if (d == '゙' && Dakuten.Contains(c))
+ ofs = 1;
+ else if (d == '゚' && Handakuten.Contains(c))
+ ofs = 2;
+ else if (d == '゙' && c == 'ウ')
+ ofs = 'ヴ' - 'ウ'; // 0x4E (78)
+ }
+
+ // Fold characters treated identically
+ c = char.ToLowerInvariant(c); // fold to lowercase
+ c = (char)(c switch
+ {
+ >= 'ぁ' and <= 'ゖ' => c + 0x60, // shift hiragana to katakana
+ >= '0' and <= '9' or >= 'a' and <= 'z' => c - 0xFEE0, // shift fullwidth numbers/letters to halfwidth
+ >= 'ヲ' and <= 'ン' => FullwidthKana[c - 'ヲ'] + ofs, // shift halfwidth katakana to fullwidth
+ _ => c,
+ });
+
+ // Shift small kana to normal kana
+ if (c is >= 'ァ' and <= 'ヶ')
+ {
+ if (SmallKana.Contains(c))
+ c += (char)1;
+ else if (c == 'ヵ')
+ c = 'カ';
+ else if (c == 'ヶ')
+ c = 'ケ';
+ }
+
+ output[ctr] = c;
+ ctr++;
+ }
+ return ctr;
+ }
+}
diff --git a/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilter.cs b/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilter.cs
new file mode 100644
index 000000000..0b53a6637
--- /dev/null
+++ b/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilter.cs
@@ -0,0 +1,116 @@
+using System;
+using System.Diagnostics.CodeAnalysis;
+using System.Text.RegularExpressions;
+
+namespace PKHeX.Core;
+
+///
+/// Bad-word Filter class containing logic to check against unsavory regular expressions.
+///
+public static class WordFilter
+{
+ // if you're running this as a server and don't mind a few extra seconds of startup, add RegexOptions.Compiled for slightly better checking.
+ private const RegexOptions Options = RegexOptions.CultureInvariant;
+
+ internal static Regex[] LoadPatterns(ReadOnlySpan patterns)
+ {
+ // Make it lowercase invariant
+ Span lowercase = stackalloc char[patterns.Length];
+ patterns.ToLowerInvariant(lowercase);
+
+ var lineCount = 1 + lowercase.Count('\n');
+ var result = new Regex[lineCount];
+ int i = 0;
+ foreach (var line in lowercase.EnumerateLines())
+ result[i++] = new Regex(line.ToString(), Options);
+ return result;
+ }
+
+ ///
+ /// Checks to see if a phrase contains filtered content.
+ ///
+ /// Phrase to check
+ /// Console regex set to check against.
+ /// Matching regex that filters the phrase.
+ /// Boolean result if the message is filtered or not.
+ internal static bool TryMatch(ReadOnlySpan message, ReadOnlySpan regexes, [NotNullWhen(true)] out string? regMatch)
+ {
+ // Clean the string
+ Span clean = stackalloc char[message.Length];
+ int ctr = TextNormalizer.Normalize(message, clean);
+ if (ctr != clean.Length)
+ clean = clean[..ctr];
+
+ foreach (var regex in regexes)
+ {
+ foreach (var _ in regex.EnumerateMatches(clean))
+ {
+ regMatch = regex.ToString();
+ return true;
+ }
+ }
+ regMatch = null;
+ return false;
+ }
+
+ ///
+ public static bool IsFiltered(ReadOnlySpan message, [NotNullWhen(true)] out string? regMatch,
+ EntityContext current)
+ => IsFiltered(message, out regMatch, current, current);
+
+ ///
+ /// Checks to see if a phrase contains filtered content.
+ ///
+ /// Phrase to check for
+ /// Matching regex that filters the phrase.
+ /// Current context to check.
+ /// Earliest context to check.
+ /// Boolean result if the message is filtered or not.
+ public static bool IsFiltered(ReadOnlySpan message, [NotNullWhen(true)] out string? regMatch,
+ EntityContext current, EntityContext original)
+ {
+ regMatch = null;
+ if (message.IsWhiteSpace() || message.Length <= 1)
+ return false;
+
+ // Only check against the single filter if requested
+ if (ParseSettings.Settings.WordFilter.DisableWordFilterPastGen)
+ return IsFilteredCurrentOnly(message, ref regMatch, current, original);
+
+ return IsFilteredLookBack(message, out regMatch, current, original);
+ }
+
+ private static bool IsFilteredCurrentOnly(ReadOnlySpan message, ref string? regMatch,
+ EntityContext current, EntityContext original) => current switch
+ {
+ EntityContext.Gen5 => WordFilter5.IsFiltered(message, out regMatch),
+
+ EntityContext.Gen6 => WordFilter3DS.IsFilteredGen6(message, out regMatch),
+ EntityContext.Gen7 when original is EntityContext.Gen6
+ => WordFilter3DS.IsFilteredGen6(message, out regMatch),
+
+ EntityContext.Gen7 => WordFilter3DS.IsFilteredGen7(message, out regMatch),
+ _ => current.GetConsole() switch
+ {
+ GameConsole.NX => WordFilterNX.IsFiltered(message, out regMatch, original),
+ _ => false,
+ },
+ };
+
+ private static bool IsFilteredLookBack(ReadOnlySpan message, [NotNullWhen(true)] out string? regMatch,
+ EntityContext current, EntityContext original)
+ {
+ // Switch 2 backwards transfer? Won't know for another couple years.
+ if (WordFilterNX.IsFiltered(message, out regMatch, original))
+ return true;
+
+ var generation = original.Generation();
+ if (generation > 7 || original is EntityContext.Gen7b)
+ return false;
+ if (WordFilter3DS.IsFiltered(message, out regMatch, original))
+ return true;
+
+ return generation == 5 && WordFilter5.IsFiltered(message, out regMatch);
+ // no other word filters (none in Gen3 or Gen4)
+ }
+}
diff --git a/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilter3DS.cs b/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilter3DS.cs
new file mode 100644
index 000000000..06da95f29
--- /dev/null
+++ b/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilter3DS.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Collections.Concurrent;
+using System.Diagnostics.CodeAnalysis;
+using System.Text.RegularExpressions;
+
+namespace PKHeX.Core;
+
+///
+/// Word filter for 3DS games.
+///
+public static class WordFilter3DS
+{
+ private static readonly Regex[] Regexes = WordFilter.LoadPatterns(Util.GetStringResource("badwords_3ds"));
+
+ ///
+ /// Regex patterns to check against
+ ///
+ /// No need to keep the original pattern strings around; the object retrieves this via
+ private static readonly ConcurrentDictionary.AlternateLookup> Lookup =
+ new ConcurrentDictionary().GetAlternateLookup>();
+
+ private const int MAX_COUNT = (1 << 17) - 1; // arbitrary cap for max dictionary size
+
+ ///
+ /// Generation 6 is case-sensitive.
+ public static bool IsFilteredGen6(ReadOnlySpan message, [NotNullWhen(true)] out string? regMatch)
+ => IsFiltered(message, out regMatch, EntityContext.Gen6);
+
+ ///
+ /// Generation 7 is case-insensitive.
+ public static bool IsFilteredGen7(ReadOnlySpan message, [NotNullWhen(true)] out string? regMatch)
+ => IsFiltered(message, out regMatch, EntityContext.Gen7);
+
+ ///
+ /// Checks to see if a phrase contains filtered content.
+ ///
+ /// Phrase to check
+ /// Matching regex that filters the phrase.
+ /// Earliest context to check.
+ /// Boolean result if the message is filtered or not.
+ public static bool IsFiltered(ReadOnlySpan message, [NotNullWhen(true)] out string? regMatch, EntityContext original)
+ {
+ regMatch = null;
+ if (IsSpeciesName(message, original))
+ return false;
+
+ // Check dictionary
+ if (Lookup.TryGetValue(message, out regMatch))
+ return regMatch != null;
+
+ // not in dictionary, check patterns
+ if (WordFilter.TryMatch(message, Regexes, out regMatch))
+ {
+ Lookup.TryAdd(message, regMatch);
+ return true;
+ }
+
+ // didn't match any pattern, cache result
+ if ((Lookup.Dictionary.Count & ~MAX_COUNT) != 0)
+ Lookup.Dictionary.Clear(); // reset
+ Lookup.TryAdd(message, regMatch = null);
+ return false;
+ }
+
+ ///
+ /// Check if the message is a species name
+ ///
+ /// Phrase to check
+ /// Earliest context to check.
+ public static bool IsSpeciesName(ReadOnlySpan message, EntityContext original)
+ {
+ // Gen6 is case-sensitive, Gen7 is case-insensitive.
+ if (original is EntityContext.Gen6) // Match case
+ return IsSpeciesNameGen6(message);
+ return IsSpeciesNameGen7(message);
+ }
+
+ private static bool IsSpeciesNameGen7(ReadOnlySpan message)
+ {
+ if (!SpeciesName.TryGetSpeciesAnyLanguageCaseInsensitive(message, out var s7, 7))
+ return false;
+ return s7 <= Legal.MaxSpeciesID_7_USUM;
+ }
+
+ private static bool IsSpeciesNameGen6(ReadOnlySpan message)
+ {
+ if (!SpeciesName.TryGetSpeciesAnyLanguage(message, out var s6, 6))
+ return false;
+ return s6 <= Legal.MaxSpeciesID_6;
+ }
+}
diff --git a/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilter5.cs b/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilter5.cs
new file mode 100644
index 000000000..3b37e26c1
--- /dev/null
+++ b/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilter5.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+
+namespace PKHeX.Core;
+
+public static class WordFilter5
+{
+ private static readonly HashSet.AlternateLookup> Words =
+ new HashSet(Util.GetStringList("badwords_gen5"))
+ .GetAlternateLookup>();
+
+ ///
+ /// Checks to see if a phrase contains filtered content.
+ ///
+ /// Phrase to check
+ /// Blocked word that filters the phrase.
+ /// Boolean result if the message is filtered or not.
+ public static bool IsFiltered(ReadOnlySpan message, [NotNullWhen(true)] out string? match)
+ {
+ Span clean = stackalloc char[message.Length];
+ Normalize(message, clean);
+ return Words.TryGetValue(clean, out match);
+ }
+
+ ///
+ /// Normalize a string to a simplified form for checking against a bad-word list.
+ ///
+ /// Input string to normalize
+ /// Output buffer to write the normalized string
+ public static void Normalize(ReadOnlySpan input, Span output)
+ {
+ Debug.Assert(input.Length == output.Length);
+ for (int i = 0; i < input.Length; i++)
+ {
+ var c = input[i];
+ c = char.ToUpperInvariant(c); // fold to uppercase
+ c = (char)(c switch
+ {
+ >= 'ァ' and <= 'ヶ' => c - 0x60, // shift katakana to hiragana
+ >= 'A' and <= 'Z' => c - 0xFEE0, // shift fullwidth letters to halfwidth
+ _ => c,
+ });
+ output[i] = c;
+ }
+ }
+}
diff --git a/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilterNX.cs b/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilterNX.cs
new file mode 100644
index 000000000..d82782300
--- /dev/null
+++ b/PKHeX.Core/Legality/Restrictions/WordFilter/WordFilterNX.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Concurrent;
+using System.Diagnostics.CodeAnalysis;
+using System.Text.RegularExpressions;
+
+namespace PKHeX.Core;
+
+///
+/// Word filter for Switch games.
+///
+public static class WordFilterNX
+{
+ ///
+ /// Regex patterns to check against
+ ///
+ /// No need to keep the original pattern strings around; the object retrieves this via
+ private static readonly Regex[] Regexes = WordFilter.LoadPatterns(Util.GetStringResource("badwords_switch"));
+
+ ///
+ /// Due to some messages repeating (Trainer names), keep a list of repeated values for faster lookup.
+ ///
+ private static readonly ConcurrentDictionary.AlternateLookup> Lookup =
+ new ConcurrentDictionary().GetAlternateLookup>();
+
+ private const int MAX_COUNT = (1 << 17) - 1; // arbitrary cap for max dictionary size
+
+ ///
+ /// Checks to see if a phrase contains filtered content.
+ ///
+ /// Phrase to check
+ /// Matching regex that filters the phrase.
+ /// Earliest context to check.
+ /// Boolean result if the message is filtered or not.
+ public static bool IsFiltered(ReadOnlySpan message, [NotNullWhen(true)] out string? regMatch, EntityContext original)
+ {
+ regMatch = null;
+ if (IsSpeciesName(message, original))
+ return false;
+
+ // Check dictionary
+ if (Lookup.TryGetValue(message, out regMatch))
+ return regMatch != null;
+
+ // not in dictionary, check patterns
+ if (WordFilter.TryMatch(message, Regexes, out regMatch))
+ {
+ Lookup.TryAdd(message, regMatch);
+ return true;
+ }
+
+ // didn't match any pattern, cache result
+ if ((Lookup.Dictionary.Count & ~MAX_COUNT) != 0)
+ Lookup.Dictionary.Clear(); // reset
+ Lookup.TryAdd(message, regMatch = null);
+ return false;
+ }
+
+ private static bool IsSpeciesName(ReadOnlySpan message, EntityContext origin)
+ {
+ var gen = origin.Generation();
+ if (!SpeciesName.TryGetSpeciesAnyLanguageCaseInsensitive(message, out var species, gen))
+ return false;
+ return species <= origin.GetSingleGameVersion().GetMaxSpeciesID();
+ }
+}
diff --git a/PKHeX.Core/Legality/Settings/Specialized/WordFilterSettings.cs b/PKHeX.Core/Legality/Settings/Specialized/WordFilterSettings.cs
index 270bf9c66..6a8c711e2 100644
--- a/PKHeX.Core/Legality/Settings/Specialized/WordFilterSettings.cs
+++ b/PKHeX.Core/Legality/Settings/Specialized/WordFilterSettings.cs
@@ -5,11 +5,11 @@ namespace PKHeX.Core;
[TypeConverter(typeof(ExpandableObjectConverter))]
public sealed class WordFilterSettings
{
- [LocalizedDescription("Checks player given Nicknames and Trainer Names for profanity. Bad words will be flagged using the 3DS console's regex lists.")]
+ [LocalizedDescription("Checks player given Nicknames and Trainer Names for profanity. Bad words will be flagged using the appropriate console's lists.")]
public bool CheckWordFilter { get; set; } = true;
- [LocalizedDescription("Disables the Word Filter check for formats prior to 3DS-era.")]
+ [LocalizedDescription("Disables retroactive Word Filter checks for earlier formats.")]
public bool DisableWordFilterPastGen { get; set; }
- public bool IsEnabled(int gen) => CheckWordFilter && (!DisableWordFilterPastGen || gen >= 6);
+ public bool IsEnabled(int gen) => CheckWordFilter && (!DisableWordFilterPastGen || gen >= 5);
}
diff --git a/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs b/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs
index 212f7e78b..4162a3a95 100644
--- a/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs
+++ b/PKHeX.Core/Legality/Verifiers/NicknameVerifier.cs
@@ -67,7 +67,8 @@ public override void Verify(LegalityAnalysis data)
// Non-nicknamed strings have already been checked.
if (ParseSettings.Settings.WordFilter.IsEnabled(pk.Format) && pk.IsNicknamed)
{
- if (WordFilter.IsFiltered(nickname, out var badPattern))
+ var mostRecentNicknameContext = pk.Format >= 8 ? pk.Context : enc.Context;
+ if (WordFilter.IsFiltered(nickname, out var badPattern, pk.Context, mostRecentNicknameContext))
data.AddLine(GetInvalid($"Word Filter: {badPattern}"));
if (TrainerNameVerifier.ContainsTooManyNumbers(nickname, data.Info.Generation))
data.AddLine(GetInvalid("Word Filter: Too many numbers."));
@@ -164,11 +165,9 @@ private bool VerifyUnNicknamedEncounter(LegalityAnalysis data, PKM pk, ReadOnlyS
return true;
}
}
- foreach (var language in Language.GetAvailableGameLanguages(pk.Format))
+ if (SpeciesName.TryGetSpeciesAnyLanguage(nickname, out var species, pk.Format))
{
- if (!SpeciesName.TryGetSpecies(nickname, language, out var species))
- continue;
- var msg = species == pk.Species && language != pk.Language ? LNickMatchNoOthersFail : LNickMatchLanguageFlag;
+ var msg = species == pk.Species ? LNickMatchLanguageFlag : LNickMatchNoOthersFail;
data.AddLine(Get(msg, ParseSettings.Settings.Nickname.NicknamedAnotherSpecies));
return true;
}
diff --git a/PKHeX.Core/Legality/Verifiers/TrainerNameVerifier.cs b/PKHeX.Core/Legality/Verifiers/TrainerNameVerifier.cs
index a4eb668ab..e8f9f4fc3 100644
--- a/PKHeX.Core/Legality/Verifiers/TrainerNameVerifier.cs
+++ b/PKHeX.Core/Legality/Verifiers/TrainerNameVerifier.cs
@@ -33,7 +33,7 @@ public override void Verify(LegalityAnalysis data)
trainer = trainer[..len];
if (trainer.Contains('\uffff') && pk is { Format: 4 })
{
- data.AddLine(GetInvalid("Trainer Name: Unkown Character"));
+ data.AddLine(GetInvalid("Trainer Name: Unknown Character"));
return;
}
@@ -54,14 +54,14 @@ public override void Verify(LegalityAnalysis data)
if (ParseSettings.Settings.WordFilter.IsEnabled(pk.Format))
{
- if (WordFilter.IsFiltered(trainer, out var badPattern))
+ if (WordFilter.IsFiltered(trainer, out var badPattern, pk.Context, enc.Context))
data.AddLine(GetInvalid($"Word Filter: {badPattern}"));
if (ContainsTooManyNumbers(trainer, data.Info.Generation))
data.AddLine(GetInvalid("Word Filter: Too many numbers."));
Span ht = stackalloc char[pk.TrashCharCountTrainer];
int nameLen = pk.LoadString(pk.HandlingTrainerTrash, ht);
- if (WordFilter.IsFiltered(ht[..nameLen], out badPattern))
+ if (WordFilter.IsFiltered(ht[..nameLen], out badPattern, pk.Context)) // HT context is always the current context
data.AddLine(GetInvalid($"Word Filter: {badPattern}"));
}
}
diff --git a/PKHeX.Core/PKM/Util/SpeciesName.cs b/PKHeX.Core/PKM/Util/SpeciesName.cs
index c2fd8fafe..40f0904fd 100644
--- a/PKHeX.Core/PKM/Util/SpeciesName.cs
+++ b/PKHeX.Core/PKM/Util/SpeciesName.cs
@@ -52,7 +52,10 @@ public static class SpeciesName
///
private static readonly Dictionary.AlternateLookup>[] SpeciesDict = GetDictionary(SpeciesLang);
- private static Dictionary.AlternateLookup>[] GetDictionary(string[][] names)
+ ///
+ private static readonly Dictionary.AlternateLookup>[] SpeciesDictLower = GetDictionary(SpeciesLang, true);
+
+ private static Dictionary.AlternateLookup>[] GetDictionary(string[][] names, bool lower = false)
{
var result = new Dictionary.AlternateLookup>[names.Length];
for (int i = 0; i < result.Length; i++)
@@ -61,7 +64,10 @@ public static class SpeciesName
var capacity = Math.Max(speciesList.Length - 1, 0);
var dict = new Dictionary(capacity);
for (ushort species = 1; species < speciesList.Length; species++)
- dict[speciesList[species]] = species;
+ {
+ var key = speciesList[species];
+ dict[lower ? key.ToLowerInvariant() : key] = species;
+ }
result[i] = dict.GetAlternateLookup>();
}
return result;
@@ -323,9 +329,28 @@ public static bool TryGetSpecies(ReadOnlySpan speciesName, int language, o
return SpeciesDict[language].TryGetValue(speciesName, out species);
}
- ///
- public static bool TryGetSpecies(string speciesName, int language, out ushort species)
+ public static bool TryGetSpeciesAnyLanguage(ReadOnlySpan speciesName, out ushort species, byte generation = LatestGeneration)
{
- return SpeciesDict[language].TryGetValue(speciesName, out species);
+ foreach (var language in Language.GetAvailableGameLanguages(generation))
+ {
+ if (SpeciesDict[language].TryGetValue(speciesName, out species))
+ return true;
+ }
+ species = 0;
+ return false;
+ }
+
+ public static bool TryGetSpeciesAnyLanguageCaseInsensitive(ReadOnlySpan speciesName, out ushort species, byte generation = LatestGeneration)
+ {
+ Span lowercase = stackalloc char[speciesName.Length];
+ speciesName.ToLowerInvariant(lowercase);
+
+ foreach (var language in Language.GetAvailableGameLanguages(generation))
+ {
+ if (SpeciesDictLower[language].TryGetValue(lowercase, out species))
+ return true;
+ }
+ species = 0;
+ return false;
}
}
diff --git a/PKHeX.Core/Resources/text/badwords/badwords_3ds.txt b/PKHeX.Core/Resources/text/badwords/badwords_3ds.txt
new file mode 100644
index 000000000..560e3cb21
--- /dev/null
+++ b/PKHeX.Core/Resources/text/badwords/badwords_3ds.txt
@@ -0,0 +1,3406 @@
+.*(ca|k|ka)ralh(inh|o|ã|õ).*
+.*18(넘|뇬|놈|롬|새끼|쉐리).*
+.*18禁.*
+.*A[级片].*
+.*Fu©k.*
+.*GCD.*
+.*[gj]ilip.*
+.*[买卖]春.*
+.*[做作]爱.*
+.*[買賣]春.*
+.*[늬니]미.*
+.*[뒈디]져.*
+.*[백빽]보지.*
+.*[붕븅빙]신.*
+.*[뻑뽀]큐.*
+.*[시씨]벨넘.*
+.*[좃좆]까.*
+.*[크클]리토리스.*
+.*[페패]니스.*
+.*aambei.*
+.*aarslik.*
+.*aarsneg.*
+.*abortus.*
+.*achterlijk.*
+.*aftrekken.*
+.*afzuig.*
+.*aidslijer.*
+.*analintruder.*
+.*anorexia.*
+.*anuslik.*
+.*apollarda.*
+.*asshole.*
+.*b[uo]cet[iuãaoõ].*
+.*baiser?.*
+.*bastard.*
+.*beflap.*
+.*bignews.*
+.*bitch.*
+.*bloody.*
+.*blowjob.*
+.*bo(qu|k)et.*
+.*boiola.*
+.*bollocks.*
+.*bolud.*
+.*breezah.*
+.*broekschijt.*
+.*bukkak.*
+.*buttnugget.*
+.*cabr[oó]n.*
+.*capulla.*
+.*capullo.*
+.*caraj[oó].*
+.*cazz.*
+.*cdjp.*
+.*censor.*
+.*chinaliberal.*
+.*chinamz.*
+.*chinesenewsnet.*
+.*ching$
+.*ching[^f].*
+.*choch.*
+.*chumino.*
+.*clitoris.*
+.*cnd.*
+.*cocknose.*
+.*cocksuck.*
+.*conejocachondo.*
+.*correrse.*
+.*couill(eo).*
+.*cretin.*
+.*crosseu?r.*
+.*culatton.*
+.*culirott.*
+.*culorott.*
+.*cumshot.*
+.*cunt.*
+.*dildo.*
+.*disney\.ne\.jp.*
+.*docomo\.ne\.jp.*
+.*dpp.*
+.*eikelbijt.*
+.*emnet\.ne\.jp.*
+.*encul(éeao).*
+.*ezweb\.ne\.jp.*
+.*f[uo]dendo$
+.*f[uo]der$
+.*f[uo]did(a|o|inh).*
+.*fag.*
+.*fascist.*
+.*fellatio.*
+.*feltch.*
+.*fichett.*
+.*fick.*
+.*ficon.*
+.*figat.*
+.*fighett.*
+.*figon.*
+.*fourre.*
+.*freechina.*
+.*fuck.*
+.*futtlapp.*
+.*gmail\.com.*
+.*goatse.*
+.*gollywog.*
+.*gordoseboso.*
+.*gスポツト.*
+.*heil Hitler!.*
+.*hentai.*
+.*hij(a|as|o|os)dep.*
+.*hitler.*
+.*homo.*
+.*hotmail\.co\.jp.*
+.*hrichina.*
+.*huanet.*
+.*hypermart.*
+.*i\.softbank\.jp.*
+.*idiota.*
+.*imbecille.*
+.*incest.*
+.*jesussucks.*
+.*jiangdongriji.*
+.*julandr.*
+.*klootviool.*
+.*kontkruip.*
+.*kontlik.*
+.*kontrid.*
+.*kringspier.*
+.*lamlul.*
+.*luldebehanger.*
+.*m[ea]rde?.*
+.*mamona.*
+.*mamón.*
+.*maricon.*
+.*matenaaier.*
+.*mecagoen.*
+.*milf.*
+.*mongólic.*
+.*mussolini.*
+.*másputaque.*
+.*n[èeé]gre.*
+.*nacb.*
+.*nazi.*
+.*nigga.*
+.*nigger.*
+.*nmis.*
+.*p0rn.*
+.*paedo.*
+.*pajero.*
+.*pedofil.*
+.*pedophile.*
+.*pendej.*
+.*penis.*
+.*pikje.*
+.*pikkenpijper.*
+.*pikomhoog.*
+.*pimp.*
+.*poep.*
+.*polvazo.*
+.*porn.*
+.*potenram.*
+.*pr0n.*
+.*preutelik.*
+.*punhet(a|inh|eir|er|ã|ona).*
+.*pussy.*
+.*putain.*
+.*rampetamp.*
+.*raparig(a|ona).*
+.*rectaal.*
+.*rentboy.*
+.*rfa$
+.*rimjob.*
+.*ringpiece.*
+.*safeweb.*
+.*sapat(a|ona|ão).*
+.*sarasa.*
+.*schaamlui.*
+.*scoregg.*
+.*scorregg.*
+.*sex.*
+.*shagged.*
+.*shit.*
+.*siriri[ck].*
+.*slemiel.*
+.*slut.*
+.*sob.*
+.*sodomita.*
+.*softbank\.ne\.jp.*
+.*spastic.*
+.*subnormal.*
+.*suceu?r.*
+.*sucka.*
+.*suicdebmbr.*
+.*suicide.*
+.*svdc.*
+.*swaffel.*
+.*syfilis.*
+.*tabarn.*
+.*tampeloer.*
+.*tapette.*
+.*terron.*
+.*tetten.*
+.*tibetalk.*
+.*tietje.*
+.*tmd.*
+.*tokus.*
+.*tontalculo.*
+.*tontalhaba.*
+.*tragaleche.*
+.*tragasable.*
+.*trave(co|cão|cona|quinh|ca).*
+.*trektiet.*
+.*triangleboy.*
+.*troia.*
+.*troud[eu]cul.*
+.*turkentrek.*
+.*twat.*
+.*tyfes.*
+.*unixbox.*
+.*ustibet.*
+.*v[ei]ad(o|os)$
+.*verg(a|as|on|ón)$
+.*verkracht.*
+.*veteatomarpor.*
+.*voa.*
+.*vulva.*
+.*wank.*
+.*warumoshi.*
+.*wiicom\.com.*
+.*willcom\.com.*
+.*wtf.*
+.*xxne\.jp.*
+.*xxx.*
+.*yahoo\.co\.jp.*
+.*zwartjoek.*
+.*бляд.*
+.*アナル.*
+.*イラマチオ.*
+.*エネマグラ.*
+.*エフエドリン.*
+.*オツパイ.*
+.*オナニー.*
+.*オナヌー.*
+.*オナネタ.*
+.*オナル.*
+.*オピオイドペプチド.*
+.*オマンチヨ.*
+.*オメコ.*
+.*オルガズム.*
+.*オーガズム.*
+.*キチガイ.*
+.*クリトリス.*
+.*クンニ.*
+.*ケチヤマン.*
+.*コカイン.*
+.*コンドーム.*
+.*ゴ有.*
+.*サセ子.*
+.*ザーメン.*
+.*ザー汁.*
+.*シコシコ.*
+.*スカトロ.*
+.*セツクス.*
+.*セフレ.*
+.*センズリ.*
+.*タヒネ.*
+.*ダツチワイフ.*
+.*チヤンコロ.*
+.*チンカス.*
+.*チンコ.*
+.*デイルド.*
+.*デイープスロート.*
+.*デカチン.*
+.*デカマラ.*
+.*デブ専.*
+.*ハメ撮リ.*
+.*バター犬.*
+.*パイズリ.*
+.*パイパン.*
+.*フアツキユー.*
+.*フアツク.*
+.*フエラチオ.*
+.*プツシー.*
+.*ヘロイン.*
+.*ペツテイング.*
+.*ホ別.*
+.*ポルチオ.*
+.*マジキチ.*
+.*マツトプレイ.*
+.*マナ板本番.*
+.*マンカス.*
+.*マンコ.*
+.*マンスジ.*
+.*マン毛.*
+.*マン汁.*
+.*マン臭.*
+.*ミコスリ半.*
+.*メアド.*
+.*メクラ.*
+.*メコスジ.*
+.*メスカリン.*
+.*メンヘラ.*
+.*ヤジユウ先輩.*
+.*ヤリマン.*
+.*ラブジユース.*
+.*リストカツト.*
+.*ルンペン.*
+.*レイプ.*
+.*レキソタン.*
+.*レンドルミン.*
+.*ロリコン.*
+.*ロンパリ.*
+.*ワルモシ.*
+.*ヴアギナ.*
+.*一中一台.*
+.*一人エツチ.*
+.*一党.*
+.*丁关根.*
+.*万维读者网.*
+.*三[级陪].*
+.*三个代表.*
+.*三国人.*
+.*下体.*
+.*专[政制].*
+.*东土耳其斯坦.*
+.*东社.*
+.*两个中国.*
+.*两会.*
+.*两岸关系.*
+.*个人崇拜.*
+.*乔石.*
+.*乞食.*
+.*习近平.*
+.*乱[交伦].*
+.*乳[头交].*
+.*乳[頭交].*
+.*乳輪.*
+.*亀甲縛リ.*
+.*亂[交倫].*
+.*事实独立.*
+.*于幼军.*
+.*人[大权].*
+.*人民报.*
+.*伦理.*
+.*低脳.*
+.*你妈逼.*
+.*你媽逼.*
+.*你老母.*
+.*偷[窥拍情].*
+.*內射.*
+.*全身舐メ.*
+.*共[产党匪军].*
+.*兽[交欲].*
+.*内[裤射].*
+.*冚家剷.*
+.*凌辱.*
+.*刘华清.*
+.*功法.*
+.*勃起.*
+.*包茎.*
+.*华建敏.*
+.*南極2号.*
+.*双十节.*
+.*发正念.*
+.*变态.*
+.*口交.*
+.*口内発射.*
+.*叫床.*
+.*台[独盟].*
+.*台湾会.*
+.*台湾建国运动组织.*
+.*台湾政论区.*
+.*台湾独立.*
+.*台湾自由联盟.*
+.*台湾青年独立联盟.*
+.*合法ハーブ.*
+.*同房.*
+.*吕秀莲.*
+.*吴官正.*
+.*吴邦国.*
+.*吹萧.*
+.*吹蕭.*
+.*周永康.*
+.*和姦.*
+.*善恶有报.*
+.*喷[精尿].*
+.*噴[精尿].*
+.*四仔.*
+.*国[军贼].*
+.*国家安全.*
+.*国家机密.*
+.*土人.*
+.*坐[交台].*
+.*基地外.*
+.*売女.*
+.*売春.*
+.*多党.*
+.*夜总会.*
+.*大纪元.*
+.*大麻.*
+.*太子党.*
+.*夾腸仔.*
+.*契弟.*
+.*女优.*
+.*女体盛リ.*
+.*奶子.*
+.*奸[情杀污淫].*
+.*奸[情殺汙淫].*
+.*妈个.*
+.*妓.*
+.*姜春云.*
+.*姦[情殺汙淫].*
+.*姦通.*
+.*婊子.*
+.*媽個.*
+.*嫖.*
+.*宇明网.*
+.*宋平.*
+.*宏法.*
+.*害児.*
+.*密穴.*
+.*封杀.*
+.*射精.*
+.*尉健行.*
+.*小日本.*
+.*少儿不宜.*
+.*屁眼.*
+.*屄.*
+.*屌(你妳).*
+.*屎忽鬼.*
+.*屎窟.*
+.*屠杀.*
+.*屠殺.*
+.*干[你他她].*
+.*幹[你他她].*
+.*幹死你.*
+.*幼[齿交幼].*
+.*床上功夫.*
+.*床上手.*
+.*底裤.*
+.*廖锡龙.*
+.*建国党.*
+.*开苞.*
+.*张万年.*
+.*強[暴奸姦].*
+.*弹劾.*
+.*强[暴奸迫].*
+.*後背位.*
+.*徐匡迪.*
+.*徐才厚.*
+.*性[愛交夥伴器欲].*
+.*性[爱病交伙伴器欲].*
+.*性奴隷.*
+.*性行為.*
+.*悔过书.*
+.*情[妇色].*
+.*愛奴.*
+.*愛液.*
+.*慰安妇.*
+.*慰安婦.*
+.*成人.*
+.*我慢汁.*
+.*戴相龙.*
+.*手コキ.*
+.*手マン.*
+.*打JJ.*
+.*打手枪.*
+.*打手槍.*
+.*打炮.*
+.*打真軍.*
+.*找五姑娘.*
+.*抗ウツ剤.*
+.*抗议.*
+.*护法.*
+.*捅[你我].*
+.*换妻.*
+.*插[插你他她我].*
+.*揭批书.*
+.*援交.*
+.*援助交際.*
+.*操你.*
+.*操死你.*
+.*攔坦.*
+.*支那.*
+.*收[皮爹].*
+.*政治.*
+.*文字狱.*
+.*文革.*
+.*新生网.*
+.*新闻封锁.*
+.*无毛.*
+.*明慧.*
+.*明盲.*
+.*暴[动干乱政].*
+.*曹刚川.*
+.*曾培炎.*
+.*曾庆红.*
+.*朝勃チ.*
+.*朱镕基.*
+.*李克强.*
+.*李小[鹏朋].*
+.*李岚清.*
+.*李洪志.*
+.*李瑞环.*
+.*李登辉.*
+.*李继耐.*
+.*李远哲.*
+.*李长春.*
+.*梁光烈.*
+.*機[八巴叭].*
+.*正见网.*
+.*死ネ.*
+.*死姦.*
+.*死蠢.*
+.*殺ス.*
+.*毛唐.*
+.*毛泽东.*
+.*毛片.*
+.*民[国意].*
+.*民族矛盾.*
+.*民进党.*
+.*気違イ.*
+.*池沼.*
+.*法轮功.*
+.*波霸.*
+.*洗脑.*
+.*洪哲胜.*
+.*淫.*
+.*温家宝.*
+.*滕文生.*
+.*潮吹.*
+.*炼功.*
+.*热比娅.*
+.*狂干.*
+.*狂幹.*
+.*狗日.*
+.*独[裁夫].*
+.*猛插.*
+.*獣姦.*
+.*獸[交欲].*
+.*玉舐メ.*
+.*玉責メ.*
+.*王宝森.*
+.*王沪宁.*
+.*王瑞林.*
+.*由喜贵.*
+.*疆独.*
+.*痴女.*
+.*痴汁.*
+.*痴漢.*
+.*盛华仁.*
+.*監禁.*
+.*直アド.*
+.*直メ.*
+.*看中国.*
+.*真善忍.*
+.*睪丸.*
+.*睾丸.*
+.*破处.*
+.*破處.*
+.*禁看.*
+.*私处.*
+.*穢多.*
+.*穴兄弟.*
+.*童貞.*
+.*粉饰太平.*
+.*粗チン.*
+.*精液.*
+.*素股.*
+.*红灯区.*
+.*红色恐怖.*
+.*统[独战].*
+.*罗干.*
+.*群[交射].*
+.*聾.*
+.*肉[棒洞棍欲].*
+.*肉壺.*
+.*肉奴隷.*
+.*肛.*
+.*背面座位.*
+.*胡锦涛.*
+.*胸罩.*
+.*脱光.*
+.*脱法ハーブ.*
+.*腐败.*
+.*膣.*
+.*自[焚拍慰].*
+.*自殺.*
+.*自由网.*
+.*舆论.*
+.*色[狼情友].*
+.*艳星.*
+.*花ビラ回転.*
+.*花花公子.*
+.*荡妇.*
+.*藏独.*
+.*虐待.*
+.*行房.*
+.*被[逼虐迫].*
+.*裸[体露奔].*
+.*視姦.*
+.*覚セイ剤.*
+.*讲法.*
+.*诱惑.*
+.*调教.*
+.*谢长廷.*
+.*賓周.*
+.*賤人.*
+.*賤民.*
+.*贺国强.*
+.*贾庆林.*
+.*贾廷安.*
+.*赤[匪化].*
+.*走光.*
+.*足コキ.*
+.*躝癱.*
+.*輪姦.*
+.*达赖.*
+.*近親相姦.*
+.*迟浩田.*
+.*迪里夏提.*
+.*迫害.*
+.*迷药.*
+.*逆援.*
+.*造爱.*
+.*邓小平.*
+.*郑义.*
+.*部落.*
+.*郭伯雄.*
+.*酥胸.*
+.*酷刑.*
+.*野獣先輩.*
+.*钱其琛.*
+.*钱国梁.*
+.*钱达.*
+.*镇压.*
+.*開苞.*
+.*閪.*
+.*闹事.*
+.*阳具.*
+.*阴[部道蒂茎毛门囊].*
+.*阿片.*
+.*陆委会.*
+.*陈希同.*
+.*陈水扁.*
+.*陰[唇部道蒂莖毛門囊].*
+.*陰嚢.*
+.*陰核.*
+.*陰茎.*
+.*陵辱.*
+.*陽具.*
+.*雞[八巴叭].*
+.*雪山狮子.*
+.*電動コケシ.*
+.*露[点毛].*
+.*青姦.*
+.*革命.*
+.*顔射.*
+.*顔騎.*
+.*项怀诚.*
+.*食屎.*
+.*骚[乱动].*
+.*高官.*
+.*鬼子.*
+.*鮮人.*
+.*鸡巴.*
+.*鸡毛信文汇.*
+.*麻薬.*
+.*黄[菊色].*
+.*黄丽满.*
+.*黄金水.*
+.*黑社会.*
+.*龜頭.*
+.*龟头.*
+.*강간.*
+.*개(고추|보지|부랄|자지|잡년|지랄).*
+.*개(넘|년|뇬|놈|롬|새끼|쉐리).*
+.*개[불붕]알.*
+.*개[좆좇좃].*
+.*개가튼(넘|년|뇬|놈|롬|새끼|쉐리).*
+.*개같은(넘|년|뇬|놈|롬|새끼|쉐리).*
+.*개걸[레래].*
+.*개색.*
+.*개쓰레기.*
+.*개작두(넘|년|뇬|놈|롬|새끼|쉐리).*
+.*개후라새끼.*
+.*걸[래레]년.*
+.*걸레같은년.*
+.*게섹.*
+.*귀두.*
+.*꼴[깝갑].*
+.*내[잠버자]지.*
+.*내꺼(핧아|빨아).*
+.*니씨브랄.*
+.*닝기미.*
+.*대갈통.*
+.*대굴빡.*
+.*돌대가리.*
+.*돌은(넘|년|뇬|놈|롬|새끼|쉐리).*
+.*등신.*
+.*딸딸이.*
+.*또라이.*
+.*띠발.*
+.*맛간년.*
+.*망나니.*
+.*미친(넘|년|뇬|놈|롬|새끼|쉐리|쉐이|씨부랄).*
+.*벌창같은년.*
+.*병[딱신].*
+.*보[지짓]물마셔.*
+.*보지(녀|따먹기|뚫어|물|박어|벌려|빨아|빨어|자지|정액|털|핥아|핥어).*
+.*보지찢어.*
+.*보짓물.*
+.*부랄.*
+.*불알.*
+.*빠가(씹새|새끼).*
+.*빠구리.*
+.*빠굴이.*
+.*사까시.*
+.*상년.*
+.*샹[넘년뇬놈].*
+.*성감대.*
+.*성관계.*
+.*성폭행.*
+.*성행위.*
+.*섹스.*
+.*쉐리.*
+.*시댕.*
+.*시방년.*
+.*시방새.*
+.*시벌넘.*
+.*시벨아.*
+.*시팍새끼.*
+.*시팔(넘|년|뇬|놈|롬|새끼|쉐리).*
+.*십[창탱].*
+.*십새야.*
+.*십셰리.*
+.*십팔.*
+.*쌍[넘년뇬놈롬].*
+.*쌍보지.*
+.*썅[넘년뇬놈롬].*
+.*쓰[발벌파].*
+.*쓰바새끼.*
+.*씨[뎅바].*
+.*씨발(넘|년|뇬|놈|롬|새끼|쉐리).*
+.*씨방새.*
+.*씨벌.*
+.*씨부[랄럴].*
+.*씨팍(새끼|쉐리).*
+.*씨팔.*
+.*씹(보지|부랄).*
+.*씹[년물창탱].*
+.*씹[새쎄].*
+.*씹쌔끼.*
+.*씹자지.*
+.*애미랄.*
+.*애쟈.*
+.*엄창.*
+.*염병.*
+.*엿먹어라.*
+.*오르가즘.*
+.*왕자지.*
+.*왕털(자지|보지).*
+.*우라질.*
+.*유두(빨어|핥어).*
+.*육갑.*
+.*자지(박어|빨아|빨아줘|빨어|털|핥아|핥어|핥아줘).*
+.*자지쓰레기.*
+.*작은보지.*
+.*잠지.*
+.*잡[것년놈].*
+.*저능아.*
+.*정액(짜|핥아|먹어|마셔).*
+.*젖탱이.*
+.*좃[물털].*
+.*좃같네.*
+.*좃대가리.*
+.*좃보지.*
+.*좃빠(구리|네).*
+.*좆.*
+.*죠또.*
+.*죳.*
+.*지랄.*
+.*창[녀부].*
+.*컴[섹색쌕].*
+.*콘돔.*
+.*폰[섹색쌕].*
+.*허벌(보지|자지|자식).*
+.*헐렁보지.*
+.*호로(새끼|자식).*
+.*화[양냥]년.*
+.*후장.*
+^(sm)$
+^(아날|애널)$
+^18년.*
+^Kaffir$
+^NSB.*
+^SA$
+^a55$
+^aars$
+^aarsatleet$
+^aarsridder$
+^abafapalhinha$
+^abc-diet$
+^abc-diät$
+^abcdiet$
+^abcdiät$
+^abcgroupdiet$
+^abruti$
+^abrutie$
+^abspritzer$
+^admin$
+^adolf$
+^adolf-fan$
+^adolf-verehrer$
+^adolffan$
+^adolfverehrer$
+^affanculo$
+^afterlecker$
+^afterlutscher$
+^afvalturk$
+^aids$
+^alkoholiker$
+^ana-boot-camp$
+^ana-mia$
+^ana/mia$
+^anaal .*
+^anaal.*
+^anaandmia$
+^anabelief$
+^anabeliefs$
+^anabook$
+^anabootcamp$
+^anabootcampdiet$
+^anadiction$
+^anal$
+^analfrosch$
+^analingus$
+^anamia$
+^anaymia$
+^anaymía$
+^anilingus$
+^ano$
+^anulingus$
+^anus$
+^anusacrobaat$
+^anussap$
+^aputadatuairma$
+^aputadatuairmã$
+^aputadatuamae$
+^aputadatuamãe$
+^arier$
+^arsch$
+^arschbratze$
+^arschgeburt$
+^arschgeige$
+^arschgesicht$
+^arschlecker$
+^arschloch$
+^arschlutscher$
+^arschnase$
+^arse$
+^arsebandit$
+^arsehole$
+^arsewipe$
+^asl$
+^asphyxiophilia$
+^ass$
+^asswipe$
+^atte$
+^auschwitz$
+^ausgeleiertefotze$
+^ausgeleiertevotze$
+^b17ch$
+^b1tch$
+^babaca$
+^badword$
+^badworda$
+^badwordc$
+^badworde$
+^badwordj$
+^badwordk$
+^badwordp$
+^badwordt$
+^baffen$
+^bafkoning$
+^bagasce$
+^bagasche$
+^bagascia$
+^bagascione$
+^baisable$
+^baisé$
+^baisée$
+^bajarsealpilón$
+^baldracca$
+^baldraccacce$
+^baldraccaccia$
+^baldracche$
+^baldraccona$
+^baldraccone$
+^ballbag$
+^ballenlikker$
+^balls$
+^ballsac$
+^ballsack$
+^baltringue$
+^balzak$
+^bardajona$
+^bareback$
+^baseado$
+^batard$
+^baterumapivia$
+^baterumapívea$
+^battona$
+^battone$
+^battyboy$
+^battyman$
+^bawbag$
+^bbwczh$
+^bbween$
+^bbwees$
+^bbwefr$
+^bbwept$
+^bbwjja$
+^bbwkko$
+^bbwpde$
+^bbwpen$
+^bbwpes$
+^bbwpfr$
+^bbwpit$
+^bbwpnl$
+^bbwppt$
+^bbwpru$
+^bbwten$
+^bbwtzh$
+^beastiality$
+^beaver$
+^bedave$
+^beefcurtains$
+^beffen$
+^befkoning$
+^befslet$
+^beftekkel$
+^bellend$
+^besonegro$
+^bestiality$
+^bettnässer$
+^bettnässerin$
+^bi7ch$
+^biba$
+^bich(a|inha|ona)$
+^bico$
+^bicot$
+^bijbal$
+^bilau$
+^bimbo$
+^bint$
+^biroute$
+^bistouquette$
+^bite$
+^bitzkrieg$
+^bix(a|inha|ona)$
+^bj$
+^blasfotze$
+^blasmöse$
+^blasvotze$
+^bltch$
+^blunt$
+^blödian$
+^blödmann$
+^bnv$
+^boabie$
+^bobo$
+^bocchinara$
+^bocchinare$
+^bocchinari$
+^bocchinaro$
+^boche$
+^boerenlul$
+^bokkelul$
+^bollera$
+^bollo$
+^bollox$
+^boner$
+^bong$
+^boobies$
+^boobjob$
+^boobs$
+^bordadacona$
+^bordasdacona$
+^borderline$
+^borracha$
+^borracho$
+^bosta$
+^bougnoul$
+^bougnoule$
+^bougnoulle$
+^bouillave$
+^boule$
+^boules$
+^bounioul$
+^bouyave$
+^branler$
+^branlette$
+^branletter$
+^branleur$
+^branleuse$
+^branquelo$
+^breezerslet$
+^broche$
+^brochista$
+^bronha$
+^budellodidio$
+^bufa$
+^buftie$
+^bugger$
+^buggery$
+^bujarra$
+^bujarron$
+^bujarrón$
+^bukake$
+^bulimia$
+^bumbandit$
+^bumchum$
+^bumsen$
+^bumser$
+^bumsklumpen$
+^bumsmatratze$
+^bumsmaus$
+^bunda$
+^bundona$
+^bunduda$
+^bundão$
+^burne$
+^burnes$
+^burro$
+^buscona$
+^bustadipiscio$
+^buttplug$
+^bv$
+^bwcz$
+^bwkk$
+^bwte$
+^bwtz$
+^bàdw$
+^bádw$
+^bédave$
+^bédo$
+^bóbó$
+^bückstück$
+^c0k$
+^cabra$
+^cabrao$
+^cabrão$
+^cacaminchia$
+^cacare$
+^cacasotto$
+^cacete$
+^cack$
+^caga$
+^cagada$
+^cagadeira$
+^cagadeiro$
+^cagalhona$
+^cagalhoto$
+^cagalhão$
+^cagaminchia$
+^caganita$
+^caganito$
+^cagapadentro$
+^cagapradentro$
+^cagar$
+^cagare$
+^cagarro$
+^cagasotto$
+^cagatório$
+^cago$
+^caguei$
+^cagueira$
+^cagueiro$
+^caillera$
+^calice$
+^calicer$
+^caliqueño$
+^calisse$
+^calisser$
+^cameltoe$
+^campamentodeana$
+^campamentopro-ana$
+^campamentoproana$
+^camslet$
+^canacciodidio$
+^canagliadidio$
+^caned'allah$
+^caned'eva$
+^canedidio$
+^canhola$
+^canholeiro$
+^canhoteiro$
+^cannabis$
+^capper$
+^caraculo$
+^caradebufa$
+^caradecabrao$
+^caradecaralhao$
+^caradecatane$
+^caradecatano$
+^caradecona$
+^caradecu$
+^caralhao$
+^caralheta$
+^caralhito$
+^caramierda$
+^carapedo$
+^carpetmuncher$
+^casposa$
+^casposo$
+^casse-burnes$
+^casse-couilles$
+^catin$
+^cayera$
+^cenaita$
+^cerdaca$
+^cerdaco$
+^cesso$
+^chapero$
+^chatroulette$
+^chatte$
+^chaudasse$
+^chebs$
+^checca$
+^checche$
+^chenolle$
+^chenolles$
+^chiante$
+^chiasse$
+^chiatique$
+^chiavare$
+^chiavata$
+^chiavate$
+^chiavatona$
+^chiavatone$
+^chibre$
+^chichi$
+^chichis$
+^chickswithdicks$
+^chiennasse$
+^chienne$
+^chiensale$
+^chier$
+^chieur$
+^chieuse$
+^chifruda$
+^chifrudo$
+^chink$
+^choad$
+^chocoprins$
+^chode$
+^chorra$
+^christus$
+^chumi$
+^chup(ão|ona|ador|adora)$
+^chupa$
+^chupa-meapicha$
+^chupa-meapixa$
+^chupa-meapiça$
+^chupa-meoolhodocu$
+^chupa-meopescoço$
+^chupabufa$
+^chupabufas$
+^chupacoños$
+^chupaculos$
+^chupameapicha$
+^chupameapiça$
+^chupameupau$
+^chupanabos$
+^chupapichas$
+^chupapollas$
+^chupaputas$
+^chupar$
+^chuparrabos$
+^chupetinha$
+^chúpameelnabo$
+^chúpameelrabo$
+^chúpamela$
+^chúpamelapolla$
+^chúpameloshuevos$
+^cipote$
+^cipotón$
+^ciucciamelo$
+^ciucciapalle$
+^clit$
+^clito$
+^clunge$
+^cocaine$
+^cocaína$
+^cock$
+^cockend$
+^cockgoblin$
+^cockmuncher$
+^cockring$
+^cocô$
+^cog[ei].*
+^cogliona$
+^coglionaggine$
+^coglionare$
+^coglionata$
+^coglionate$
+^coglionatore$
+^coglionatrice$
+^coglionatura$
+^coglionature$
+^coglionazzi$
+^coglionazzo$
+^coglioncelli$
+^coglioncello$
+^coglioncini$
+^coglioncino$
+^coglione$
+^coglioneria$
+^coglionerie$
+^coglioni$
+^cojonazos$
+^cojonear$
+^cojones$
+^cojonines$
+^cojonudo$
+^cojón$
+^cok$
+^cokehead$
+^colhanito$
+^colhao$
+^colhoes$
+^colhão$
+^colhões$
+^colocado$
+^comechichi$
+^comechichis$
+^comecoños$
+^comefelpudos$
+^comelefa$
+^comemierda$
+^comenabos$
+^comepollas$
+^comernocu$
+^comerrabos$
+^comesemen$
+^comexixi$
+^con$
+^cona$
+^conassa$
+^conaça$
+^concha$
+^conchatumadre$
+^coneira$
+^coneiro$
+^conil$
+^connard$
+^connasse$
+^conne$
+^connerie$
+^conneries$
+^coon$
+^coprofila$
+^coprofilia$
+^coprofilo$
+^corno$
+^cornudo$
+^cornutoilpapa$
+^corridon$
+^corridón$
+^couille$
+^couilles$
+^couillon$
+^couillonne$
+^couillonner$
+^couillonné$
+^coça-meocolhão$
+^coça-meoscolhões$
+^coñazo$
+^coño$
+^coñoardiente$
+^coñocachondo$
+^crackhead$
+^crackhoer$
+^crackwhore$
+^crap$
+^creampie$
+^credoana$
+^crevard$
+^crevure$
+^crica$
+^crika$
+^crioula$
+^crioulo$
+^crisse$
+^crisser$
+^cristod'undio$
+^cristodecapitato$
+^cristoincroce$
+^crossage$
+^crosseuse$
+^crouill$
+^crouilla$
+^crouillat$
+^crouille$
+^crouillebi$
+^crouya$
+^cu$
+^cuca$
+^cul$
+^culera$
+^culero$
+^culhão$
+^culhões$
+^culi$
+^culo$
+^culoabierto$
+^culona$
+^culone$
+^cum$
+^cumstain$
+^cunilingus$
+^cunni$
+^cunnilingus$
+^curoto$
+^cuz(ão|ona|inho|inha)$
+^cyberslet$
+^câlice$
+^câlicer$
+^câlisse$
+^câlisser$
+^cómemeelchichi$
+^cómemeelcoño$
+^cómemeelnabo$
+^cómemeelpotorro$
+^cómemeelrabo$
+^cómemelapolla$
+^cú$
+^dago$
+^damn$
+^damnit$
+^darkie$
+^darmtoerist$
+^darporculo$
+^darporelculo$
+^darporelojete$
+^dauerkiffer$
+^dauerkifferin$
+^debiel$
+^deficiente$
+^dekslet$
+^del$
+^delculo$
+^depp$
+^desvirgar$
+^diaf$
+^dick$
+^dickcheese$
+^dickhead$
+^dicknose$
+^dietaabc$
+^dietaana$
+^dietaanabootcamp$
+^dietabootcamp$
+^dietadell'abc$
+^dike$
+^dikzak$
+^diobestia$
+^diobestiazza$
+^dioboia$
+^diocan$
+^diocane$
+^diocannaiolo$
+^diocapra$
+^diocoglione$
+^diocomunista$
+^diocrasto$
+^diocristo$
+^diofa$
+^diofarabutto$
+^diofinocchio$
+^dioflagellato$
+^dioimpestato$
+^dioimpiccato$
+^dioladro$
+^diolebbroso$
+^diolobotomizzato$
+^diolurido$
+^diomaiale$
+^diomaledetto$
+^diominchione$
+^dionegro$
+^dioporco$
+^diopoveraccio$
+^diopovero$
+^diorotto$
+^diorottoinculo$
+^diorutto$
+^diosbudellato$
+^dioschifoso$
+^dioseppellito$
+^dioserpente$
+^diostracane$
+^diostronzo$
+^diosventrato$
+^dioverme$
+^dirne$
+^dobber$
+^doggiestyle$
+^doggystyle$
+^doublepenetration$
+^douche$
+^douchebag$
+^dp$
+^drecksack$
+^drecksarsch$
+^drecksau$
+^drecksfotze$
+^dreckshure$
+^drecksjude$
+^dreckskanacke$
+^dreckslesbe$
+^drecksluder$
+^drecksneger$
+^drecksnutte$
+^drecksschlampe$
+^dreckstück$
+^drecksvotze$
+^dreckswichser$
+^dreckswixer$
+^drogenabhängige$
+^drogenabhängiger$
+^drogensüchtige$
+^drogensüchtiger$
+^drol$
+^drollendeuker$
+^drolleneuker$
+^droogkloot$
+^droplul$
+^dschihad$
+^duce$
+^ducon$
+^dummenuss$
+^dummfotze$
+^dummkopf$
+^dummsau$
+^dummvotze$
+^dunecoon$
+^dyke$
+^débilmental$
+^dégobillage$
+^dégobiller$
+^dégueuler$
+^dégueulis$
+^dönergesicht$
+^dünnpfiff$
+^dünnschiss$
+^echarunkiki$
+^echarunpolvo$
+^echarunquiqui$
+^ednos$
+^eichel$
+^eikel$
+^ejacular$
+^ejaculate$
+^ejaculação$
+^ejakulat$
+^ejakulieren$
+^ejakulierer$
+^elcacas$
+^elkakas$
+^empurracocos$
+^empurracocós$
+^empurracócos$
+^empurracócós$
+^encavar$
+^enculador$
+^encular$
+^encule$
+^enculer$
+^enculeur$
+^enculeuse$
+^enculo$
+^enculé$
+^enculée$
+^enflure$
+^enfoiré$
+^enfoirée$
+^enrabada$
+^enrabado$
+^enrabar$
+^ereção$
+^escarreta$
+^escroto$
+^esgalha-me$
+^esgalha-mo$
+^esgalhamo$
+^esgalhamu$
+^esporra$
+^esporrada$
+^esporrado$
+^esporrar$
+^estoyhastaelrabo$
+^estoyhastalapolla$
+^estoyhastaloscojones$
+^estoyhastalosgüevos$
+^estoyhastaloshuevos$
+^estupido$
+^estupro$
+^eta$
+^etarra$
+^etterbak$
+^eunuchimneoprenanzug$
+^euthanasie$
+^evolutionsbremse$
+^eyaculador$
+^facciadaculo$
+^facho$
+^fadge$
+^fanculo$
+^fandan$
+^fanny$
+^fap$
+^fart$
+^faschist$
+^fascho$
+^fatma$
+^faz-meumbroche$
+^fazergaiolas$
+^fazerumbobó$
+^fcuk$
+^fdp$
+^fdx$
+^feck$
+^felatio$
+^felch$
+^fellate$
+^fenian$
+^fettarsch$
+^fettesau$
+^fettesschwein$
+^fettgondel$
+^fettsau$
+^fettwanst$
+^feuj$
+^ffs$
+^fica$
+^ficata$
+^ficate$
+^figa$
+^fighe$
+^figliadicane$
+^figliadimignotta$
+^figliadiputtana$
+^figlidicani$
+^figlidimignotta$
+^figlidiputtana$
+^figliedicani$
+^figliedimignotta$
+^figliediputtana$
+^figliodicane$
+^figliodimignotta$
+^figliodiputtana$
+^filhadaputa$
+^filhodaputa$
+^filhodeumagrandeputa$
+^filhodeumavaca$
+^filhodumacadela$
+^filhodumaputa$
+^filhodumavaca$
+^filhodumboi$
+^filsdepute$
+^fingerbang$
+^fion$
+^fiote$
+^fiotte$
+^fister$
+^fisting$
+^fixer$
+^flachwichser$
+^flachwixer$
+^flapkut$
+^flikker$
+^flittchen$
+^flubberkut$
+^fluffer$
+^fml$
+^foad$
+^foda$
+^foda-se$
+^fodace$
+^fodas$
+^fodass$
+^fodaxe$
+^fode$
+^fode-me$
+^fode-te$
+^fodemaricas$
+^fodepaneleiro$
+^fodeputas$
+^fodete$
+^fodeu$
+^fodevacas$
+^fodid$
+^fodilhao$
+^fodilhão$
+^foll.*
+^fook$
+^fooraap$
+^foorwijf$
+^foreskin$
+^fornicador$
+^fornicar$
+^fotass$
+^fotasse$
+^fotaç$
+^fottere$
+^fottiti$
+^fottuta$
+^fottute$
+^fottuti$
+^fottutissima$
+^fottutissime$
+^fottutissimi$
+^fottutissimo$
+^fottuto$
+^fotze$
+^fotzengesicht$
+^fotzenkruste$
+^fotzenkäse$
+^fotzenlecker$
+^fotzenlutscher$
+^fotzenrotz$
+^fotzenschleim$
+^foutre$
+^fregna$
+^fresse$
+^freudenmädchen$
+^frocetto$
+^froci$
+^frociara$
+^frociaro$
+^frociarola$
+^frociarolo$
+^frocio$
+^frocione$
+^frocioni$
+^frocissimo$
+^froschfotze$
+^froschvotze$
+^fucc$
+^fuccd$
+^fucced$
+^fuccer$
+^fucces$
+^fuccing$
+^fuccs$
+^fuct$
+^fude$
+^fudgepacker$
+^fudilhao$
+^fudilhão$
+^fufa$
+^fugly$
+^fuk$
+^fulana$
+^funbags$
+^fundillo$
+^furcia$
+^furz$
+^furzbirne$
+^furzer$
+^furzerin$
+^furzfresse$
+^furzkopf$
+^futjucken$
+^futlappen$
+^futtjucken$
+^fu©k$
+^fvck$
+^gangbang$
+^gangrape$
+^ganja$
+^ganza$
+^garce$
+^gaskammer$
+^gatslet$
+^gaylord$
+^gaytard$
+^gayzolas$
+^geheimestaatspolizei$
+^geil$
+^geiledrecksau$
+^geilesau$
+^geitenneuker$
+^genitalherpes$
+^genitalien$
+^gerbe$
+^geschiss$
+^geschissene$
+^geschissener$
+^gesichtsfotze$
+^gesichtsvotze$
+^gestapo$
+^gesùcristaccio$
+^gesùesorcizzato$
+^gesùhandicappato$
+^gesùimpasticcato$
+^gesùmalandato$
+^gesùradioattivo$
+^gesùsieropositivo$
+^gesùstordito$
+^gesùzozzo$
+^ghb$
+^gili$
+^gimp$
+^git$
+^gitan$
+^gizzum$
+^glandu$
+^glatze$
+^gloryhole$
+^goddammit$
+^goddamn$
+^godver$
+^godverdomme$
+^goebbels$
+^goebbels-fan$
+^goebbels-verehrer$
+^goebbelsfan$
+^goebbelsverehrer$
+^gogolle$
+^golfa$
+^gonads$
+^gooch$
+^gook$
+^goolies$
+^goorlap$
+^gortlap$
+^gortzak$
+^gosse$
+^gosses$
+^gostosa$
+^gostoso$
+^goudou$
+^gouinasse$
+^gouine$
+^grafkut$
+^gratenkut$
+^greppeldel$
+^grognasse$
+^grougnasse$
+^guarra$
+^guarrilla$
+^guarrillo$
+^guarro$
+^gueulard$
+^gueularde$
+^gueule$
+^guido$
+^gummifotze$
+^gummivotze$
+^gypo$
+^gyppo$
+^güevos$
+^hackfresse$
+^hafendirne$
+^hafenhure$
+^hafennutte$
+^hafenprostituierte$
+^halbidiot$
+^handjob$
+^hard-on$
+^hardcorekiffer$
+^hardcorekifferin$
+^hardgay$
+^hardon$
+^hell$
+^heroinabhängige$
+^heroinabhängiger$
+^herrenrasse$
+^hijadelagranputa$
+^hijaperra$
+^hijaputa$
+^hijodelagranputa$
+^hijoperra$
+^hijoputa$
+^himmler$
+^himmler-fan$
+^himmler-verehrer$
+^himmlerfan$
+^himmlerverehrer$
+^hirnfotze$
+^hirni$
+^hiv$
+^hoden$
+^hodenbeißer$
+^hodenlutscher$
+^hoer$
+^hoere.*
+^holocaust$
+^hondelul$
+^hooker$
+^hoor$
+^hoormister$
+^hosenkacker$
+^hosenpiesler$
+^hosenpisser$
+^hosenscheißer$
+^hostia$
+^hostiaputa$
+^hostiaza$
+^hostiazo$
+^hostion$
+^hostión$
+^huevon$
+^huevón$
+^hundsfott$
+^huppelkut$
+^huppeltrut$
+^hure$
+^hurensohn$
+^hängetitte$
+^hängetitten$
+^hühnerarsch$
+^idiot$
+^idiotin$
+^imbeciel$
+^imbecil$
+^imbécil$
+^impotent$
+^inculare$
+^inculata$
+^inculate$
+^infrociato$
+^intercourse$
+^ische$
+^j[óo]d.*
+^jackass$
+^jackingoff$
+^jackoff$
+^jamrag$
+^jap$
+^jap'seye$
+^japseye$
+^jaysis$
+^jaysus$
+^jean-foutre$
+^jerkingoff$
+^jerkoff$
+^jetslet$
+^jezus$
+^jiggaboo$
+^jihad$
+^jili$
+^jism$
+^jiz$
+^jizm$
+^jizz$
+^jock$
+^joint$
+^joputa$
+^jos$
+^joto$
+^judensau$
+^judenschwein$
+^julai$
+^kackdreck$
+^kacke$
+^kackfass$
+^kackhaufen$
+^kaffer$
+^kaffir$
+^kaillera$
+^kak$
+^kakfretter$
+^kamelenkut$
+^kamper$
+^kanack$
+^kanacke$
+^kanackenmörder$
+^kanackenmörderin$
+^kanker$
+^kankergeil$
+^kankerhard$
+^kankerlijer$
+^kankernep$
+^kapotje$
+^karalhu$
+^kastrat$
+^kastrieren$
+^kastrierer$
+^kayera$
+^keech$
+^kenga$
+^kenker$
+^kiffbirne$
+^kiffer$
+^kifferin$
+^kiffnase$
+^kifi$
+^kike$
+^kiki$
+^kinderschänder$
+^kinderschänderin$
+^kittelaar$
+^kitzler$
+^klitoris$
+^klojo$
+^kloothommel$
+^klootzak$
+^klote$
+^kloten$
+^klugscheißer$
+^klugscheißerin$
+^klunge$
+^klöte$
+^knackarsch$
+^knackers$
+^knob$
+^knobend$
+^knobhead$
+^knobjockey$
+^kont$
+^kontboor$
+^kontneuker$
+^kontvocht$
+^konzentrationslager$
+^koon$
+^kopkaas$
+^kot$
+^kotfresser$
+^kotfresserin$
+^kotnascher$
+^kotnascherin$
+^kotzbrocken$
+^kotzfresse$
+^kotztüte$
+^krapuul$
+^kraut$
+^kristallnacht$
+^ku$
+^kunt$
+^kut$
+^kuthoer$
+^kutjanus$
+^kutje$
+^kutlul$
+^kutmadam$
+^kutmarokkaan$
+^kuttekind$
+^kuttekop$
+^kutwijf$
+^kuzão$
+^kyke$
+^kz$
+^kú$
+^kübler$
+^lambe-cus$
+^lambe-meoregodocu$
+^lambecus$
+^lamberacrica$
+^lamberoscolhões$
+^lamechichis$
+^lamecoños$
+^lameculos$
+^lameojetes$
+^lamzak$
+^langonha$
+^lapzwans$
+^lardarse$
+^lardass$
+^larila$
+^larilas$
+^laternenschlampe$
+^leccaculi$
+^leccaculo$
+^leccafica$
+^leccafiga$
+^leccafighe$
+^leccapalle$
+^lefa$
+^lefero$
+^leichenschänder$
+^leichenschänderin$
+^lesbenfotze$
+^lesbenhasser$
+^lesbenmörder$
+^lesbensau$
+^lesbo$
+^levrette$
+^lezbo$
+^lezzer$
+^lezzie$
+^lijer$
+^lijkenneuker$
+^lluviablanca$
+^lluviadorada$
+^lolas$
+^lopette$
+^loquemesaledelapolla$
+^loquemesaledelaraja$
+^loquemesaledelcoño$
+^loquemesaledeloscojones$
+^loquemesaledelosgüevos$
+^loquemesaledeloshuevos$
+^loquemesaledelrabo$
+^lude$
+^luder$
+^lul$
+^lulhannes$
+^lulletje$
+^lullezuiger$
+^lümmeltüte$
+^machorra$
+^maconha$
+^maconheiro$
+^madonnaassassinata$
+^madonnacane$
+^madonnaimpestata$
+^madonnaisterica$
+^madonnalurida$
+^madonnamaiala$
+^madonnamongoloide$
+^madonnanegra$
+^madonnaputtana$
+^madonnaschiava$
+^madonnastregaccia$
+^madonnasudicia$
+^madonnasuicida$
+^madonnasurgelata$
+^madonnaviolentata$
+^madrazo$
+^makak$
+^malnacido$
+^malparida$
+^malparido$
+^mamabicho$
+^mamacallos$
+^mamada$
+^mamador$
+^mamahuevo$
+^mamalhuda$
+^mamame$
+^mamamela$
+^mamar$
+^mamarracho$
+^mamas$
+^mamon$
+^mangalho$
+^mannaggiacristo$
+^mannaggiadio$
+^mannaggiailbattesimo$
+^mannaggiailclero$
+^mannaggiaisanti$
+^mannaggial'arcangelo$
+^mannaggialabibbia$
+^mannaggialadiocesi$
+^mannaggialamadonna$
+^mannaggialaputtana$
+^mannaggiapadrepio$
+^mannaggiasangiuseppe$
+^maquerelle$
+^maric[oó].*
+^marica$
+^maricaloca$
+^maricamala$
+^maricas$
+^mariliendre$
+^mariquinha$
+^mariquita$
+^masterbate$
+^masterbation$
+^masturbando$
+^masturbar$
+^masturbat$
+^masturbate$
+^masturbateur$
+^masturbating$
+^masturbation$
+^masturbatrice$
+^masturbação$
+^masturber$
+^masturbieren$
+^masturbierer$
+^matagays$
+^matamaricas$
+^matanegros$
+^matennaaier$
+^meatspin$
+^meco$
+^meimportaunamierda$
+^meimportaunaputamierda$
+^meita$
+^melkmaschine$
+^meteteloporelculo$
+^metieneshastalapolla$
+^metieneshastaloscojones$
+^metieneshastalosgüevos$
+^metieneshastaloshuevos$
+^mezzasega$
+^mezzeseghe$
+^miaandana$
+^miaddiction$
+^miadiction$
+^mierda$
+^mierdero$
+^mierdosa$
+^mierdoso$
+^mierenneuker$
+^mietje$
+^mignotta$
+^mignotte$
+^mijada$
+^mijado$
+^mijao$
+^mijar$
+^mijão$
+^minchia$
+^minchiadura$
+^minchiaduro$
+^minchiata$
+^minchiate$
+^minchie$
+^minchione$
+^minchioni$
+^minete$
+^minga$
+^minge$
+^minger$
+^missgeburt$
+^mistkerl$
+^miststück$
+^mistvieh$
+^moederneuker$
+^mof$
+^moffen$
+^mofo$
+^molest$
+^mona$
+^mong$
+^mongola$
+^mongolo$
+^mongoloid$
+^mongoloide$
+^mongool$
+^mongui$
+^monsterschwanz$
+^morodemierda$
+^moromierda$
+^moron$
+^mota$
+^moukère$
+^mouquère$
+^mowdie$
+^muerdealmohadas$
+^muff$
+^mujerzuela$
+^munter$
+^muschi$
+^muschirotz$
+^mutha$
+^muzzo$
+^mámame$
+^mámamela$
+^mörder$
+^mörderin$
+^möse$
+^mösenlecker$
+^naadhopper$
+^narso$
+^narsso$
+^narço$
+^necrofiel$
+^neger$
+^negers$
+^negona$
+^negra$
+^negraca$
+^negraccia$
+^negraccio$
+^negraco$
+^negrata$
+^negraza$
+^negrazo$
+^negro$
+^negrona$
+^negrone$
+^negão$
+^nerchia$
+^neuk$
+^neuken$
+^neuker$
+^nhenha$
+^niaiserie$
+^niaiseries$
+^niak$
+^niakoué$
+^niaquoué$
+^nibards$
+^nichons$
+^nig$
+^nig-nog$
+^niga$
+^nignog$
+^nikker$
+^nip$
+^nique$
+^niquer$
+^niqueur$
+^nob$
+^nobhead$
+^nomejodas$
+^nometoqueselchichi$
+^nometoqueselcoño$
+^nometoqueselnabo$
+^nometoqueselrabo$
+^nometoqueslapolla$
+^nometoquesloscojones$
+^nometoqueslosgüevos$
+^nometoquesloshuevos$
+^nometoqueslosovarios$
+^nonce$
+^npd$
+^nsb.*
+^nsu$
+^numpty$
+^nutsack$
+^nutte$
+^nuttenschlampe$
+^négro$
+^ojete$
+^olhodocu$
+^oludo$
+^omfg$
+^onanierfaust$
+^opkankeren$
+^oprotten$
+^optyfen$
+^orgasm$
+^orgie$
+^orgy$
+^ostia$
+^ostiaputa$
+^ostiaza$
+^ostión$
+^ovarios$
+^paardenlul$
+^pachacha$
+^paja$
+^pajillero$
+^pajote$
+^paki$
+^panasca$
+^paneleira$
+^paneleiro$
+^panocha$
+^papzak$
+^parracha$
+^parraxa$
+^parreca$
+^partouze$
+^pasivaza$
+^pasivazo$
+^patareca$
+^patonza$
+^patonze$
+^pau$
+^paxaxa$
+^paxona$
+^pd$
+^pecker$
+^peda$
+^pedazodeinútil$
+^pederast$
+^pedete$
+^pedo.*
+^pedrado$
+^pedófilo$
+^peichacha$
+^peidar$
+^peido$
+^peidosa$
+^peidoso$
+^peitos$
+^peituda$
+^peitão$
+^peixaxa$
+^peixota$
+^pelandusca$
+^pelote$
+^pelotudo$
+^pendóndesorejao$
+^pene$
+^penetrar$
+^penetração$
+^penetrieren$
+^penetrierer$
+^penner$
+^pentelho$
+^pepa$
+^perra$
+^perracachonda$
+^perrasarnosa$
+^perrosarnoso$
+^pervers$
+^perverse$
+^perverser$
+^pestarsch$
+^pestbeule$
+^petasse$
+^pferdearsch$
+^pferdepimmel$
+^phallique$
+^phallus$
+^phuk$
+^pica$
+^picarabo$
+^picarabos$
+^picha$
+^pichabrava$
+^pichacorta$
+^pichafloja$
+^pichota$
+^piemel$
+^piesler$
+^pija$
+^pijo$
+^pijpbek$
+^pijpen$
+^pik$
+^pikey$
+^pila$
+^pilila$
+^pillermann$
+^pimmel$
+^pimmelbär$
+^pimmellecker$
+^pimmelleckerin$
+^pimmellutscher$
+^pimmellutscherin$
+^pimmelwichser$
+^pimmelwixer$
+^pinar$
+^pinche$
+^pincheculero$
+^pincheputa$
+^pincho$
+^pine$
+^piner$
+^pinga$
+^pintelho$
+^pintelhu$
+^pinto$
+^pipe$
+^pipian$
+^piroca$
+^pirona$
+^piruja$
+^pirujo$
+^pirulón$
+^pisciare$
+^pisciasotto$
+^pisciata$
+^pisciatina$
+^pisciato$
+^pisciatona$
+^piscio$
+^pisciona$
+^piscione$
+^piscioni$
+^pisnicht$
+^piss.*
+^pitareca$
+^pivia$
+^piçada$
+^piço$
+^piçudo$
+^piçudu$
+^pleures$
+^pleuris$
+^plote$
+^plotte$
+^poches$
+^poenani$
+^pokke$
+^pokketeef$
+^pokkewijf$
+^polacke$
+^polla$
+^pollaardiente$
+^pollacachonda$
+^pollaza$
+^pollazo$
+^pollon$
+^pollón$
+^polvete$
+^pompinara$
+^pompinare$
+^pompini$
+^pompino$
+^ponce$
+^poo$
+^poof$
+^poofter$
+^poon$
+^poonanie$
+^poontang$
+^popel$
+^popelnase$
+^popler$
+^poplerin$
+^popoklatscher$
+^popoklatscherin$
+^porcamadonna$
+^porcaputtana$
+^porcodidio$
+^porcodio$
+^porcoilclero$
+^porcoilsignore$
+^porculera$
+^porculero$
+^porculo$
+^porelculo$
+^porloscojones$
+^pormiscojones$
+^porr(a|as|inha|inhas)$
+^portosse$
+^pos$
+^potorro$
+^pottsau$
+^poucav$
+^poucave$
+^pouf$
+^poufe$
+^pouffe$
+^pouffiasse$
+^poufiasse$
+^pouilleuse$
+^pouilleux$
+^preut$
+^prick$
+^pringaillo$
+^pringao$
+^pringaíllo$
+^pro-ana$
+^pro-ana-mia$
+^pro-anarexia$
+^pro-anarexic$
+^pro-ano$
+^pro-anoressia$
+^pro-anorexic$
+^pro-anorexie$
+^pro-boulimie$
+^pro-bul$
+^pro-bulemia$
+^pro-bulemic$
+^pro-bulimia$
+^pro-bulimic$
+^pro-bulimie$
+^pro-ed$
+^pro-ednos$
+^pro-magersucht$
+^pro-mia$
+^pro-mía$
+^pro-self-injury$
+^pro-selfinjury$
+^pro-si$
+^pro-vulimia$
+^proana$
+^proanamia$
+^proanarexia$
+^proanarexic$
+^proano$
+^proanoresia$
+^proanoressia$
+^proanorexic$
+^proanorexie$
+^proboulimie$
+^probul$
+^probulemia$
+^probulemic$
+^probulimia$
+^probulimic$
+^probulimie$
+^proed$
+^proednos$
+^promagersucht$
+^promia$
+^promía$
+^pron$
+^proself-injury$
+^proselfinjury$
+^prosi$
+^prostipega$
+^prostituierte$
+^prostiuierter$
+^provinzschlampe$
+^provulimia$
+^pube$
+^pubes$
+^puceau$
+^pucelle$
+^puffbesucher$
+^pugnetta$
+^pugnette$
+^punani$
+^puntadelapolla$
+^puntadelnabo$
+^puntadelrabo$
+^puntalapolla$
+^puntalnabo$
+^puntalrrabo$
+^puppa$
+^puppamela$
+^puppamelo$
+^puppare$
+^puppe$
+^put(a|o|inh|ão|ões).*
+^pute$
+^putear$
+^puteiro$
+^puti$
+^puticlub$
+^putiferio$
+^putilla$
+^putita$
+^puttana$
+^puttanacce$
+^puttanaccia$
+^puttanaeva$
+^puttanamadonna$
+^puttanata$
+^puttanate$
+^puttane$
+^puttanella$
+^puttanelle$
+^puttaniere$
+^puttanieri$
+^puttano$
+^puttanona$
+^puttanone$
+^putón$
+^putónverbenero$
+^puñal$
+^puñeta$
+^päderast$
+^pädophil$
+^pädophile$
+^pädophiler$
+^pédale$
+^pédophile$
+^pédé$
+^pédéraste$
+^pénis$
+^péquenaud$
+^péquenot$
+^pétasse$
+^pêga$
+^pêgas$
+^pênis$
+^pêteuse$
+^pêteux$
+^pívia$
+^púdreteenelinfierno$
+^quadratarsch$
+^quadratarschloch$
+^queca$
+^queef$
+^queer$
+^quenga$
+^queteden$
+^quetedenporculo$
+^quetedenporelcoño$
+^quetedenporelculo$
+^quetedenporelojete$
+^quetefollen$
+^quetefolleunpez$
+^quetejodan$
+^queue$
+^quickie$
+^quim$
+^quiqui$
+^rabaco$
+^rabazo$
+^rabeta$
+^rabo$
+^rabza$
+^racaille$
+^radasse$
+^raghead$
+^rameira$
+^ramera$
+^rammler$
+^randdebiel$
+^rape$
+^rapidinha$
+^raping$
+^rapist$
+^raspone$
+^rasponi$
+^rata$
+^ratonnade$
+^ratonner$
+^ratonneur$
+^raveteef$
+^rectum$
+^reefteef$
+^reetkever$
+^reetridder$
+^regodocu$
+^relnicht$
+^resmenga$
+^retard$
+^retardada$
+^retardado$
+^retarded$
+^retrasadomental$
+^revientacoños$
+^revientaculos$
+^revolcón$
+^rfa.*
+^ricchione$
+^ricchioni$
+^riesenlümmel$
+^riesenpimmel$
+^riesenschwanz$
+^riesentitte$
+^riesentitten$
+^rimmen$
+^rimming$
+^rimpelkut$
+^rincoglionito$
+^roetmop$
+^rollobollo$
+^rompecoños$
+^rompeculos$
+^rompicoglioni$
+^rosette$
+^rosettendehner$
+^rosettenlecker$
+^rosettenlutscher$
+^rottinculo$
+^rotzak$
+^rotze$
+^roubignole$
+^roubignoles$
+^roulure$
+^roupette$
+^roupettes$
+^rouston$
+^roustons$
+^rubbernicht$
+^rugmuncher$
+^rugridder$
+^ruilnicht$
+^rukeend$
+^rukker$
+^rôla$
+^rülps$
+^rülpser$
+^rülpserin$
+^s1ut$
+^s1utd$
+^sa$
+^sacabicos$
+^sackarsch$
+^saco$
+^sadomaso$
+^sadomasoquista$
+^saftarsch$
+^salace$
+^salaud$
+^saligaud$
+^salop$
+^salopard$
+^salope$
+^saloperie$
+^sambo$
+^samenerguss$
+^sau$
+^saufkopf$
+^saufnase$
+^saukerl$
+^sausack$
+^sauschwein$
+^sbocchinare$
+^sbocchinato$
+^sbocchiniamolo$
+^sborra$
+^sborrare$
+^sborrata$
+^sborrate$
+^sborrato$
+^sborratona$
+^sburra$
+^sburrare$
+^scassacoglioni$
+^scassaminchia$
+^scat$
+^schamhaarschädel$
+^scheisendreck$
+^scheiss$
+^scheisse$
+^scheißdreck$
+^scheiße$
+^scheißendreck$
+^scheißer$
+^scheißhaufen$
+^schickse$
+^schijt$
+^schijten$
+^schijterd$
+^schijtluis$
+^schijtzak$
+^schlampe$
+^schleimhaufen$
+^schleimscheißer$
+^schlemiel$
+^schleu$
+^schlick$
+^schlong$
+^schnapsdrossel$
+^schorem$
+^schpountz$
+^schurft$
+^schurfthoofd$
+^schutzstaffel$
+^schwanz$
+^schwanzarsch$
+^schwanzgesicht$
+^schwanzlecker$
+^schwanzlutscher$
+^schwanzuslongus$
+^schwein$
+^schweinehund$
+^schwuchtel$
+^schwuledrecksau$
+^schwulesau$
+^schwulette$
+^schwuli$
+^scopare$
+^scopata$
+^scopate$
+^screw$
+^scrote$
+^scrotum$
+^secreet$
+^segaiolo$
+^seins$
+^sekreet$
+^seks$
+^selvanegra$
+^semen$
+^semental$
+^senaita$
+^shag$
+^sheepshagger$
+^shirtlifter$
+^sida$
+^sidosa$
+^sidoso$
+^siegheil!$
+^siegheil$
+^sittenstrolch$
+^skank$
+^skinhead$
+^slag$
+^slapper$
+^slet$
+^slettebak$
+^sloerie$
+^smeg$
+^smegma$
+^snatch$
+^snikkel$
+^snol$
+^soab$
+^sod$
+^sodding$
+^sodomia$
+^sodomie$
+^sodomise$
+^sodomiser$
+^sodomist$
+^sodomit$
+^sodomite$
+^sodomy$
+^soplanucas$
+^soplapollas$
+^soputa$
+^spacca$
+^spaccer$
+^spack$
+^spacken$
+^spas$
+^spast$
+^spasti$
+^spastiker$
+^spastisch$
+^spaz$
+^sperm$
+^sperma$
+^spermacontainer$
+^spermarutsche$
+^spermaspons$
+^sperme$
+^spermien$
+^spic$
+^spick$
+^spik$
+^spinner$
+^spleetoog$
+^spliff$
+^splooge$
+^spompinare$
+^spompinata$
+^spompinato$
+^spompiniamolo$
+^spunk$
+^ss$
+^stfu$
+^stiffy$
+^stinkfotze$
+^stinkhoer$
+^stinkschwanz$
+^stinktier$
+^stinkvotze$
+^stoephoer$
+^straathoer$
+^strap-on$
+^strapon$
+^stricher$
+^strichjunge$
+^stripper$
+^stripperin$
+^striptease$
+^stront$
+^stronzata$
+^stronzate$
+^stronzetta$
+^stronzette$
+^stronzetti$
+^stronzetto$
+^stronzina$
+^stronzine$
+^stronzini$
+^stronzino$
+^stronzo$
+^stronzoli$
+^stronzolo$
+^stronzomalcagato$
+^stronzona$
+^stronzone$
+^stronzoni$
+^struller$
+^strullermann$
+^sturmabteilung$
+^subno$
+^succhiamelo$
+^succhiaminchia$
+^succhiapalle$
+^suceuse$
+^sudaca$
+^sudacademierda$
+^suffkopp$
+^superflittchen$
+^superschlampe$
+^swinger$
+^säufer$
+^sêmen$
+^súbnor$
+^tabernacle$
+^tafiole$
+^taig$
+^takkenwijf$
+^takkewijf$
+^tamzak$
+^tantouse$
+^tantouze$
+^tarado$
+^tard$
+^tarlouse$
+^tarlouze$
+^tart$
+^tarzanelli$
+^tarzanello$
+^taspé$
+^tasspé$
+^taubenuss$
+^tca$
+^teabagged$
+^teabagging$
+^teef$
+^teelbal$
+^tentslet$
+^teppichluder$
+^tepu$
+^tering$
+^teringlijer$
+^teringwijf$
+^terrorist$
+^terroristin$
+^teso$
+^testes$
+^testicle$
+^testicules$
+^tesuda$
+^tesudo$
+^tesão$
+^teta$
+^tetalhuda$
+^tetas$
+^tetazas$
+^tetorras$
+^tetta$
+^tette$
+^tettekop$
+^tettina$
+^tettine$
+^tettona$
+^tettone$
+^tetuda$
+^teub$
+^teube$
+^thighgap$
+^thin-spiration$
+^thin-spo$
+^thinspiration$
+^thinspo$
+^tiet$
+^tieten$
+^tietenneuker$
+^tit$
+^tits$
+^titten$
+^titties$
+^titty$
+^toca-menopifaro$
+^toca-menopífaro$
+^toca-meógadanho$
+^tocamelrabo$
+^tocamenopifaro$
+^tocamenopífaro$
+^toges$
+^togus$
+^tokes$
+^tollie$
+^tomarnocu$
+^tontadelculo$
+^tontadelhaba$
+^tontodelculo$
+^tontodelhaba$
+^tontolculo$
+^tontolhaba$
+^tortillera$
+^tosser$
+^tosspot$
+^totons$
+^towelhead$
+^tragalefa$
+^tragamierda$
+^tragasemen$
+^trannie$
+^tranny$
+^transar$
+^transe$
+^travelo$
+^travestiet$
+^trepar$
+^trincapiças$
+^troie$
+^troietta$
+^troiette$
+^troio$
+^troiona$
+^troioncella$
+^troioncelle$
+^troione$
+^trombada$
+^trombare$
+^trombata$
+^trombatona$
+^trottel$
+^trou-du-cul$
+^troud'balle$
+^troud'cul$
+^troudeballe$
+^trouduc$
+^truchón$
+^trut$
+^trutje$
+^tubgirl$
+^tucke$
+^tugjob$
+^tuputamadre$
+^turd$
+^turdburglar$
+^tuttebel$
+^tyfus$
+^tétons$
+^tíaguarra$
+^tíaputa$
+^tíazorra$
+^tócameelcoño$
+^tócameelnabo$
+^tócameelrabo$
+^tócamelapolla$
+^tócateloscojones$
+^tócateloshuevos$
+^türkensau$
+^türkenschwein$
+^vacarrona$
+^vaccamadonna$
+^vacoila$
+^vadge$
+^vaffanculo$
+^vag$
+^vagin$
+^vagina$
+^vaiapanharnocu$
+^vaicomernocu$
+^vaj$
+^venusheuvel$
+^verdammterarsch$
+^verdammtesarschloch$
+^verdomme$
+^vergalho$
+^vergalhão$
+^vergasung$
+^verge$
+^vergewaltigen$
+^vergewaltiger$
+^vergewaltigte$
+^vergewaltigter$
+^vetealamierda$
+^vetealavergaguey$
+^vetealavergaruco/ruca$
+^vetklep$
+^vetzak$
+^viadinho$
+^vibrator$
+^vir-me$
+^viswijf$
+^vivaduce$
+^vivailduce$
+^volldepp$
+^vollidiot$
+^vollspacken$
+^volltrottel$
+^voorhuid$
+^vortzak$
+^votze$
+^votzengesicht$
+^votzenkruste$
+^votzenkäse$
+^votzenlecker$
+^votzenlutscher$
+^votzenrotz$
+^votzenschleim$
+^waffen-ss$
+^wap$
+^warmerbruder$
+^wduce$
+^weed$
+^whore$
+^wichser$
+^wichspisser$
+^wiet$
+^wilduce$
+^windowlicker$
+^wischsarsch$
+^wixer$
+^wixpisser$
+^wixxer$
+^wog$
+^wop$
+^xota$
+^xoxota$
+^xyй$
+^xуй$
+^yeule$
+^yid$
+^youpin$
+^youpine$
+^yunamierda$
+^yunapolla$
+^yunoscojones$
+^yunoshuevos$
+^zaadhoer$
+^zaadslikker$
+^zakkenwasser$
+^zboub$
+^zeik$
+^zeiken$
+^zeikerd$
+^zeikstraal$
+^zeikwijf$
+^zgeg$
+^zicke$
+^zimtzicke$
+^zinne$
+^zipfelklatscher$
+^zob$
+^zobbi$
+^zobby$
+^zobi$
+^zoby$
+^zoccola$
+^zoeloelip$
+^zoophilia$
+^zorra$
+^zorron$
+^zorrón$
+^zuhälter$
+^zuipen$
+^zwaffelen$
+^zwartje$
+^zyklonb$
+^ßädw$
+^éjaculateur$
+^éjaculation$
+^éjaculer$
+^éjaculé$
+^érection$
+^абассака$
+^азербон$
+^азербот$
+^алканавт$
+^алкаш$
+^америкос$
+^анально$
+^анаша$
+^анус$
+^армяшка$
+^ахуеть$
+^балда$
+^беспесды$
+^бздеть$
+^бзднуть$
+^бздун$
+^блин$
+^бля$
+^бляхамуха$
+^болван$
+^буфера$
+^бухарик$
+^бухать$
+^бухло$
+^быдло$
+^вагина$
+^вафлер$
+^вафлёр$
+^вафлёрка$
+^вмандячить$
+^въебать$
+^выебнулся$
+^гавно$
+^газенваген$
+^ганджа$
+^ганджубас$
+^гандон$
+^гашиш$
+^гей$
+^героин$
+^гнида$
+^говно$
+^говнюк$
+^гомик$
+^гомосек$
+^гомосятина$
+^гондон$
+^гунявый$
+^давалка$
+^дебил$
+^дерьмо$
+^дойки$
+^долбоеб$
+^драть$
+^дрочер$
+^дрочить$
+^дрючить$
+^дрянь$
+^дура$
+^дурак$
+^ебака$
+^ебало$
+^ебальник$
+^ебанат$
+^ебанашка$
+^ебанный$
+^ебанутый$
+^ебаный$
+^ебань$
+^ебанько$
+^ебарь$
+^ебатня$
+^ебаторий$
+^ебать$
+^ебашить$
+^ебись$
+^ебическаясила$
+^еблан$
+^ебля$
+^ебнутый$
+^ебонат$
+^еботня$
+^ебошить$
+^ебун$
+^ебырь$
+^едрить$
+^елда$
+^епти$
+^жид$
+^жлоб$
+^жоп$
+^задница$
+^задрот$
+^заеб$
+^залуп$
+^засранец$
+^идиот$
+^иннах$
+^ипаться$
+^ипацца$
+^какать$
+^какашка$
+^каннабис$
+^китаеза$
+^китаёза$
+^клитор$
+^кобель$
+^кокаин$
+^кретин$
+^кунка$
+^курва$
+^лесбианка$
+^лесбиянка$
+^лох$
+^лошара$
+^лягавый$
+^макаронщик$
+^манда$
+^мандохаться$
+^мандёжник$
+^марихуана$
+^мерзавец$
+^минет$
+^москаль$
+^мохнатка$
+^мразь$
+^мудак$
+^муде$
+^муди$
+^мудоеб$
+^мудозвон$
+^мудохать$
+^мурло$
+^мусор$
+^наеб$
+^нахер$
+^нахуй$
+^нацист$
+^недомерок$
+^недоносок$
+^недоумок$
+^немчура$
+^нехуй$
+^нигга$
+^ниггер$
+^ниибацца$
+^ниибет$
+^ниибёт$
+^ниипет$
+^ниипёт$
+^нихера$
+^обалдуй$
+^оболтус$
+^обоссака$
+^олух$
+^опездал$
+^орально$
+^оргазм$
+^остолоп$
+^отмудохать$
+^отсос$
+^оттопыриваться$
+^отыбись$
+^охуеть$
+^падла$
+^пархатый$
+^паскуда$
+^паскудец$
+^педераст$
+^педик$
+^педофил$
+^педрила$
+^педрило$
+^пелотка$
+^пендос$
+^пендостан$
+^пенис$
+^пердануть$
+^пердеть$
+^перднуть$
+^пердун$
+^пердёж$
+^песда$
+^пидар$
+^пидераст$
+^пидор$
+^пидорас$
+^пидрила$
+^пизд$
+^пиндос$
+^пипец$
+^писька$
+^пнх$
+^подлец$
+^подонок$
+^подъебнуть$
+^поеб$
+^порево$
+^порн$
+^потаскуха$
+^похуист$
+^придурок$
+^проститутка$
+^проституция$
+^простодырка$
+^прошмандовка$
+^пукать$
+^пёрднуть$
+^разеб$
+^разъеб$
+^рожа$
+^рыло$
+^сволочь$
+^секс$
+^сиськи$
+^скотина$
+^сперма$
+^срака$
+^срань$
+^срать$
+^срачь$
+^ссать$
+^ссх$
+^старпер$
+^старпёр$
+^стерва$
+^сука$
+^сучка$
+^сцать$
+^сцука$
+^сцукко$
+^сцуко$
+^титьки$
+^трахать$
+^ублюдок$
+^уеб$
+^узкоглазый$
+^урод$
+^ушлепок$
+^ушлёпок$
+^фаллос$
+^фашист$
+^хyй$
+^харя$
+^хач$
+^хезать$
+^хер$
+^хмырь$
+^хохол$
+^хрен$
+^хуе$
+^хуи$
+^хуй$
+^хули$
+^хуя$
+^хуё$
+^целка$
+^целочка$
+^черножопый$
+^черномазый$
+^черт$
+^член$
+^чмо$
+^чурек$
+^чурка$
+^чучмек$
+^чучмо$
+^шалава$
+^шалашовка$
+^шалошовка$
+^шваль$
+^шлюха$
+^япошка$
+^ёб$
+^ёпти$
+^リスカ$
+^坏用语$
+^나쁜단어$
+^나쁜문장$
+^씨발$
+^애자.*
+^자지$
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/badwords/badwords_gen5.txt b/PKHeX.Core/Resources/text/badwords/badwords_gen5.txt
new file mode 100644
index 000000000..2d8941022
--- /dev/null
+++ b/PKHeX.Core/Resources/text/badwords/badwords_gen5.txt
@@ -0,0 +1,362 @@
+9/11
+ABRUTI
+ABRUTIE
+ADHD
+AFFANCULO
+ANAL
+ANALPLUG
+ANALSEX
+ARSCH
+ARSCHLOCH
+ASS
+BAGASCIA
+BAISE
+BAISER
+BAISé
+BALDRACCA
+BASTARD
+BATARD
+BATTONA
+BITCH
+BITE
+BLOWJOB
+BOCCHINARA
+BOCCHINARO
+BOLLERA
+BOUGNOUL
+BRANLEUR
+BULLSHIT
+BURNE
+CABRON
+CABRONA
+CABRONAZO
+CABRóN
+CAPULLA
+CAPULLO
+CAZZI
+CAZZO
+CHIAVARE
+CHICHI
+CHIER
+CHINK
+CHOCHO
+CLIT
+COCK
+COCKSUCKER
+COCU
+COGLIONE
+COJON
+COJONES
+COJóN
+COMEPOLLAS
+CON
+CONNARD
+CONNASSE
+CONNE
+CONO
+COON
+COUILLE
+COUILLON
+COUILLONNE
+COñO
+CREVARD
+CUL
+CULATTONE
+CULO
+CUM
+CUMSHOT
+CUNT
+DAMN
+DICK
+DICKHEAD
+DILDO
+DIO BESTIA
+DIO CANE
+DIO PORCO
+DRECKSACK
+DRECKSAU
+DYKE
+ENCULE
+ENCULEE
+ENCULER
+ENCULé
+ENCULéE
+ENFOIRE
+ENFOIRé
+F.U.C.K.
+FAG
+FAGGOT
+FAGS
+FANCULO
+FCUK
+FICA
+FICKEN
+FICKFRESSE
+FIGA
+FION
+FOLLAR
+FOLLEN
+FOTTERE
+FOTZE
+FOUTRE
+FROCIO
+FUCK
+FUCKER
+FUCT
+FUK
+FURCIA
+GILIPOLLAS
+GOBSHITE
+GODDAMN
+GYPO
+HACKFRESSE
+HANDJOB
+HIJAPUTA
+HIJO PUTA
+HIJOPUTA
+HITLER
+HOLOCAUST
+HOMO
+HORE
+HOSTIA
+HURENSOHN
+INCULARE
+JESUSSUCKS
+JIZZ
+JIZZUM
+JODER
+JODETE
+JOPUTA
+JUDENSAU
+JóDETE
+KACKE
+KAFFIR
+KANACKE
+KIKE
+KUNT
+KZ
+LESBO
+MAMADA
+MAMON
+MAMONA
+MAMóN
+MARICA
+MARICON
+MARICONA
+MARICONAZO
+MARICóN
+MASTURBATE
+MERDE
+MIGNOTTA
+MINCHIA
+MISSGEBURT
+MOLEST
+NAZI
+NEGER
+NEGRE
+NEGRESSE
+NEGRO
+NIGGER
+NIQUE
+NIQUER
+NUTTE
+NèGRE
+NéGRESSE
+OJETE
+OSTIA
+PADOPHILER
+PAEDO
+PAEDOPHILE
+PAJILLERO
+PAKI
+PARTOUZE
+PD
+PECKER
+PEDE
+PEDO
+PEDOFILE
+PEDOPHILE
+PENDON
+PENDóN
+PENIS
+PETASSE
+PHUK
+PICHA
+PINE
+PISSER
+POLLA
+POLLON
+POLLóN
+POLVO
+POMPINARA
+POMPINO
+POOF
+PORCO DIO
+POTORRO
+POUFFE
+POUFFIASSE
+PUSSY
+PUTA
+PUTAIN
+PUTE
+PUTO
+PUTON
+PUTTANA
+PUTóN
+PäDOPHILER
+PéDé
+PéTASSE
+QUEER
+RAPE
+RAPED
+RAPES
+RAPIST
+RICCHIONE
+ROTTINCULO
+SA
+SALAUD
+SALOP
+SALOPARD
+SALOPE
+SAU
+SBORRA
+SCHEIßE
+SCHLAMPE
+SCHWANZ
+SCHWUCHTEL
+SCROTUM
+SEGAIOLO
+SEX
+SHIT
+SHIZ
+SIEG HEIL!
+SLAG
+SLUT
+SODOMIE
+SPASTI
+SPASTIC
+SPAZ
+SPERM
+SPUNK
+SS
+STRICHER
+SUCER
+TAPETTE
+TARE
+TARé
+TITS
+TORTILLERA
+TROIA
+TROIETTA
+TROIONA
+TROIONE
+TWAT
+VAFFANCULO
+VAGIN
+VAGINA
+VOLLIDIOT
+VULVA
+WANK
+WANKER
+WETBACK
+WHOR
+WHORE
+WICHSER
+WOG
+ZOB
+ZOCCOLA
+ZORRON
+ZORRóN
+あいえき
+いぬごろし
+いんぱい
+いんもう
+うんこ
+うんち
+おまんこ
+おめこ
+かたわ
+きちがい
+くろんぼ
+けとう
+ころす
+ごうかん
+さんごくじん
+しなじん
+しね
+せいえき
+せっくす
+ちゃんころ
+ちんこ
+ちんちん
+ちんば
+ちんぽ
+つんぼ
+とさつ
+どかた
+どもり
+にぐろ
+にんぴにん
+ひにん
+びっこ
+ふぇら
+ぶらく
+ぺにす
+まんこ
+めくら
+やらせろ
+やりまん
+りょうじょく
+れいぷ
+ろりこん
+ファック
+강간
+개새끼
+개지랄
+걸레같은년
+걸레년
+귀두
+내꺼빨아
+내꺼핥아
+니미랄
+딸딸이
+미친년
+미친놈
+병신
+보지
+부랄
+불알
+빠구리
+빠굴이
+사까시
+성감대
+성관계
+성폭행
+성행위
+섹스
+시팔년
+시팔놈
+쌍넘
+쌍년
+쌍놈
+쌍뇬
+씨발
+씨발넘
+씨발년
+씨발놈
+씨발뇬
+씹새끼
+엄창
+염병
+오르가즘
+왕자지
+유두
+자지
+잠지
+정액
+좆까
+창녀
+콘돔
+클리토리스
+페니스
+후장
\ No newline at end of file
diff --git a/PKHeX.Core/Resources/text/badwords.txt b/PKHeX.Core/Resources/text/badwords/badwords_switch.txt
similarity index 83%
rename from PKHeX.Core/Resources/text/badwords.txt
rename to PKHeX.Core/Resources/text/badwords/badwords_switch.txt
index 2fb85e965..55dc93ffb 100644
--- a/PKHeX.Core/Resources/text/badwords.txt
+++ b/PKHeX.Core/Resources/text/badwords/badwords_switch.txt
@@ -1,33 +1,11 @@
-.*(ca|k|ka)ralh(inh|o|ã|õ).*
-.*[gj]ilip.*
-.*[늬니]미.*
-.*[뒈디]져.*
-.*[백빽]보지.*
-.*[붕븅빙]신.*
-.*[뻑뽀]큐.*
-.*[시씨]벨넘.*
-.*[좃좆]까.*
-.*[크클]리토리스.*
-.*[페패]니스.*
-.*[买卖]春.*
-.*[做作]爱.*
-.*[買賣]春.*
-.*\$h!t.*
-.*\$hit.*
-.*==d.*
-.*==d.*
-.*○ンコ.*
-.*○ンタマ.*
-.*○ンチ.*
-.*◎ンコ.*
-.*◎ンチ.*
-.*●ンコ.*
-.*●ンチ.*
.*0ンコ.*
.*0ンチ.*
.*14word.*
-.*18(넘|뇬|놈|롬|새끼|쉐리).*
-.*18禁.*
+.*18넘.*
+.*18놈.*
+.*18뇬.*
+.*18롬.*
+.*18새끼.*
.*1タタ2タチ3タツaタテbタトc.*
.*2gender.*
.*4n4l.*
@@ -39,6 +17,7 @@
.*56ス.*
.*56セ.*
.*56ソ.*
+.*6ecnecды.*
.*6gorilion.*
.*6gorillian.*
.*6gorillion.*
@@ -47,34 +26,30 @@
.*6mwe.*
.*6mwne.*
.*8==.*
-.*8==.*
.*8=d.*
.*8=d.*
-.*A[级片].*
+.*8==.*
+.*==d.*
+.*\$h!t.*
+.*\$hit.*
.*a\$\$.*
.*a\$s.*
-.*aambei.*
.*aarsatleet.*
-.*aarslik.*
-.*aarsneg.*
+.*aarslikker.*
.*aarsridder.*
-.*àḃćďęḟğẖĩǰḳĺḿňß.*
.*abcdiet.*
.*abcgroupdiet.*
-.*abortus.*
.*abruti.*
.*abu\$e.*
.*abusayyaf.*
.*abuse.*
.*acab.*
-.*achterlijk.*
.*adamlanza.*
.*adolf.*
.*aelebe.*
.*aeleve.*
-.*aftrekken.*
.*afvalturk.*
-.*afzuig.*
+.*ahyc.*
.*aids.*
.*alekminassian.*
.*alqaeda.*
@@ -86,9 +61,7 @@
.*anaalridder.*
.*anaandmia.*
.*anabelief.*
-.*anabook.*
.*anabootcamp.*
-.*anadiction.*
.*anal.*
.*anamia.*
.*andersbehringbreivik.*
@@ -112,8 +85,10 @@
.*asshoie.*
.*asshole.*
.*asswipe.*
+.*axyetb.*
+.*azepboh.*
+.*aлkaш.*
.*b tarrant.*
-.*b[uo]cet[iuãaoõ].*
.*b1nlaaden.*
.*b1nladden.*
.*b1nladen.*
@@ -121,6 +96,7 @@
.*bafkoning.*
.*bagasc.*
.*baisable.*
+.*baise.*
.*baisé.*
.*bajarsealpilón.*
.*baldracc.*
@@ -132,6 +108,8 @@
.*bareback.*
.*bastard.*
.*batard.*
+.*batepunheta.*
+.*baterpunheta.*
.*battona.*
.*battone.*
.*battyboy.*
@@ -139,20 +117,17 @@
.*bawbag.*
.*beastiality.*
.*bedave.*
-.*bédave.*
.*bedo.*
-.*bédo.*
.*beefcurtain.*
.*beffen.*
.*beffer$
.*befkoning.*
-.*beflap.*
+.*beflapje.*
.*beftekkel.*
.*bellend.*
.*bestiality.*
.*biatch.*
.*bico$
-.*bignews.*
.*bijbal.*
.*bimbo.*
.*binlaaden.*
@@ -168,9 +143,12 @@
.*bloody.*
.*blowjob.*
.*blunt.*
-.*bo(qu|k)et.*
.*boabie.*
.*bocchinar.*
+.*boceta.*
+.*bocetinha.*
+.*bocetuda.*
+.*bocetão.*
.*boiola.*
.*boiud.*
.*bokoharam.*
@@ -181,18 +159,23 @@
.*boobies.*
.*boobjob.*
.*boong.*
+.*boquete.*
.*borderline.*
.*borrach.*
.*bougnoul.*
.*bouillave.*
.*bouyave.*
+.*boлbah.*
.*branlette.*
.*branleur.*
.*branleuse.*
-.*breezah.*
.*brentont.*
.*btarrant.*
.*btkkiller.*
+.*buceta.*
+.*bucetinha.*
+.*bucetuda.*
+.*bucetão.*
.*budellodidio.*
.*buftie.*
.*bugger.*
@@ -201,7 +184,8 @@
.*bujarrón.*
.*bukake.*
.*bukakke.*
-.*bukkak.*
+.*bukkake.*
+.*bukkakke.*
.*bulimia.*
.*bumbandit.*
.*bumchum.*
@@ -211,9 +195,14 @@
.*buscona.*
.*buttnugget.*
.*buttplug.*
+.*byxлo.*
+.*bédave.*
+.*bédo.*
+.*bлrдb.*
.*c0vid.*
.*c0vld.*
-.*cabr[oó]n.*
+.*cabron.*
+.*cabrón.*
.*cacare.*
.*cacasotto.*
.*cachond.*
@@ -233,10 +222,10 @@
.*canedidio.*
.*cannabis.*
.*capper$
-.*capulla.*
.*capullo.*
.*caraculo.*
-.*caraj[oó].*
+.*carajo.*
+.*carajó.*
.*caralh.*
.*carpetmuncher.*
.*casposa.*
@@ -244,8 +233,6 @@
.*catin.*
.*cayera.*
.*cazz.*
-.*cdjp.*
-.*censor.*
.*cerdaca.*
.*cerdaco.*
.*chapero.*
@@ -262,12 +249,9 @@
.*chieur.*
.*chieuse.*
.*chinadead.*
-.*chinaliberal.*
-.*chinamz.*
-.*chinesenewsnet.*
.*chinetoc.*
.*chinetoque.*
-.*ching[^f].*
+.*ching.*
.*chink.*
.*choch.*
.*chocoprins.*
@@ -276,12 +260,12 @@
.*chumino.*
.*chupaculos.*
.*chupame.*
-.*chúpame.*
.*chupaminhajeba.*
.*chupaminhapica.*
.*chupaminhapiça.*
.*chupanabos.*
.*chuparrabos.*
+.*chúpame.*
.*cipote.*
.*cipoton.*
.*cipotón.*
@@ -289,11 +273,11 @@
.*ciucciapalle.*
.*cliffordolson.*
.*clitoris.*
-.*clítoris.*
.*clunge.*
-.*cnd.*
-.*cocaína.*
+.*clítoris.*
+.*cndead.*
.*cocaine.*
+.*cocaína.*
.*cockend.*
.*cockgoblin.*
.*cockmuncher.*
@@ -308,59 +292,59 @@
.*comefelpudos.*
.*comelefa.*
.*comeme.*
-.*cómeme.*
.*comenabos.*
.*comerrabos.*
.*comevergas.*
.*commander rockwell.*
.*commanderrockwell.*
-.*coñazo.*
.*concha.*
.*coninhas$
.*connard.*
.*connasse.*
-.*coño.*
.*coprof.*
.*cornutoilpapa.*
.*coronavirus.*
-.*correrse.*
.*corridon.*
.*corridón.*
-.*couill(eo).*
.*couilla.*
.*couille.*
.*couillo.*
.*couillu.*
.*covid.*
.*covld.*
+.*coñazo.*
+.*coño.*
+.*cpahb.*
.*crackhead.*
.*crackwhore.*
.*creampie.*
.*credoana.*
-.*cretin.*
.*crevard.*
.*crevure.*
.*cristod'undio.*
.*cristodecapitato.*
.*cristodundio.*
.*cristoincroce.*
-.*crosseu?r.*
+.*crosser.*
+.*crosseur.*
.*crouia.*
-.*crouïa.*
.*crouill.*
.*crouya.*
+.*crouïa.*
+.*ctepva.*
.*cucluxclan.*
.*culatton.*
.*culera.*
.*culero.*
-.*culirott.*
.*culoabierto.*
-.*culorott.*
.*cumshot.*
.*cumstain.*
.*cunilingus.*
.*cunni.*
.*cunt.*
+.*cyka.*
+.*cómeme.*
+.*cцyko.*
.*damiensanderson.*
.*damn.*
.*darkie.*
@@ -426,11 +410,16 @@
.*doggystyle.*
.*doublepenetration.*
.*douche.*
-.*dpp.*
.*droogkloot.*
.*ducon.*
.*dunecoon.*
.*dylanklebold.*
+.*ebahytый.*
+.*ebatb.*
+.*ebathr.*
+.*ebaлo$
+.*ebhytый.*
+.*echarunpolvazo.*
.*echarunpolvo.*
.*echarunquiqui.*
.*ednos.*
@@ -442,18 +431,16 @@
.*emnet\.ne\.jp.*
.*encuia.*
.*encuie.*
-.*encuié.*
.*encuio.*
-.*encul(éeao).*
+.*encuié.*
.*encula.*
.*encule.*
-.*enculé.*
.*enculo.*
+.*enculé.*
.*enflure.*
.*enfoire.*
.*enfoiré.*
.*erection.*
-.*érection.*
.*escrota.*
.*escroto.*
.*estadoislamico.*
@@ -465,9 +452,7 @@
.*etterbak.*
.*eyaculador.*
.*ezweb\.ne\.jp.*
-.*f[uo]dendo$
-.*f[uo]der$
-.*f[uo]did(a|o|inh).*
+.*eлдa.*
.*facciadaculo.*
.*fachiste.*
.*facho.*
@@ -481,14 +466,15 @@
.*felatio.*
.*fellate.*
.*fellatio.*
-.*feltch.*
+.*feltch$
.*femoid.*
.*fenian$
.*feuj.*
.*fhuck.*
.*fichet.*
.*fick.*
-.*ficon.*
+.*ficona.*
+.*ficone.*
.*figa.*
.*fighe.*
.*figliadicane.*
@@ -515,8 +501,8 @@
.*follaniños.*
.*follaputas.*
.*follar.*
-.*follé.*
.*folleteo.*
+.*follé.*
.*fooraap.*
.*foorwijf.*
.*foreskin.*
@@ -526,7 +512,6 @@
.*fotze.*
.*fourre.*
.*francescovilli.*
-.*freechina.*
.*fregna.*
.*friedrichleibacher.*
.*froc.*
@@ -543,6 +528,7 @@
.*furz.*
.*futtlapp.*
.*fuuck.*
+.*fu©k.*
.*fvck.*
.*g-spot$
.*g\$p0t.*
@@ -556,13 +542,13 @@
.*gayhate.*
.*gaylord.*
.*gaytard.*
-.*GCD.*
.*geebag.*
.*geespot.*
.*geil.*
.*genital.*
.*gesu.*
.*gesù.*
+.*gilip.*
.*gizzum.*
.*glandu.*
.*gloryhole.*
@@ -577,7 +563,6 @@
.*gooch$
.*goolies.*
.*goorlap.*
-.*gordoseboso.*
.*gortlap.*
.*gortzak.*
.*goudou.*
@@ -597,9 +582,9 @@
.*guarro.*
.*gueulard.*
.*guevos.*
-.*güevos.*
.*guido.*
.*gyppo.*
+.*güevos.*
.*gスポツト.*
.*h0m0.*
.*h0mo.*
@@ -608,6 +593,7 @@
.*h1tler.*
.*h1tlr.*
.*h1ttler.*
+.*hae6.*
.*hakenkreuz.*
.*handjob.*
.*hard-on.*
@@ -617,16 +603,20 @@
.*hatejew.*
.*hatequeer.*
.*hatetrans.*
+.*haцuct.*
.*hdolfaitler.*
.*hdp.*
.*hdtpm.*
.*heil88.*
.*hentai.*
.*heroin.*
-.*hij(a|as|o|os)dep.*
.*hijadelagranputa.*
+.*hijadep.*
.*hijaputa.*
+.*hijasdep.*
.*hijodelagranputa.*
+.*hijodep.*
+.*hijosdep.*
.*himmler.*
.*hitier.*
.*hitl3.*
@@ -636,6 +626,12 @@
.*hittler.*
.*hizzler.*
.*hkdead.*
+.*hnnbёt.*
+.*hnnnet.*
+.*hnnnёt.*
+.*hnrra.*
+.*hnrrep.*
+.*hnubet.*
.*hoer.*
.*hom0.*
.*homo.*
@@ -644,13 +640,11 @@
.*hoormister.*
.*hotmail\.co\.jp.*
.*hpta.*
-.*hrichina.*
.*htlr.*
-.*huanet.*
.*huevon.*
.*huevón.*
.*hure.*
-.*hypermart.*
+.*huxepa.*
.*i\.softbank\.jp.*
.*ibum.*
.*icloud\.com.*
@@ -685,14 +679,13 @@
.*jewhate.*
.*jewslayer.*
.*jezus.*
-.*jiangdongriji.*
.*jiggaboo.*
.*jihad.*
+.*jilip.*
.*jism$
.*jizm.*
.*jizz.*
.*jodete.*
-.*jódete.*
.*jodida.*
.*jodido.*
.*johngacy.*
@@ -700,11 +693,12 @@
.*joint.*
.*joputa.*
.*joto.*
-.*julandr.*
+.*jódete.*
.*kack.*
.*kaffer.*
.*kaffir.*
.*kaillera.*
+.*kakaшka.*
.*kakfretter.*
.*kanack.*
.*kanak.*
@@ -720,25 +714,26 @@
.*kkk.*
.*klojo.*
.*kloothommel.*
-.*klootviool.*
.*klootzak.*
.*klote.*
-.*klöte.*
.*klunge.*
+.*klöte.*
.*knobend.*
.*knobjockey.*
-.*kontkruip.*
-.*kontlik.*
-.*kontrid.*
+.*kntaeea.*
.*kopkaas.*
.*kots.*
.*kotz.*
.*krapuul.*
-.*kringspier.*
+.*kringspiermusketier.*
+.*kringspierofficier.*
.*kukluxklan.*
.*kunt.*
.*kut.*
+.*kykah.*
.*kyke.*
+.*kypba$
+.*kлntop.*
.*k他命.*
.*lameculos.*
.*lamzak.*
@@ -763,7 +758,6 @@
.*lude.*
.*lukamagnotta.*
.*lul.*
-.*m[ea]rde?.*
.*m0ele\$t.*
.*m0elest.*
.*m0le\$t.*
@@ -771,6 +765,8 @@
.*m1lf.*
.*madon.*
.*madrazo.*
+.*mahдa.*
+.*mahдoxatbcr.*
.*makak.*
.*malnacido.*
.*malparida.*
@@ -779,24 +775,21 @@
.*mamacallos.*
.*mamada.*
.*mamahuevo.*
-.*mámame.*
.*mamameel.*
.*mamamel.*
.*mamarracho.*
-.*mamón.*
-.*mamona.*
.*manco.*
.*manko.*
.*mannaggia.*
.*maquerelle.*
.*marclepine.*
+.*mard.*
.*marica.*
.*maricon.*
.*maricón.*
.*mariliendre.*
.*martinbryant.*
.*masputaque.*
-.*másputaque.*
.*masterbate.*
.*masterbation.*
.*masturbando.*
@@ -804,20 +797,17 @@
.*masturbat.*
.*masturber.*
.*matagays.*
-.*matenaaier.*
.*matennaaier.*
.*mattisaari.*
.*mauriziominghella.*
.*meatspin.*
.*mecomesel.*
.*mecomesl.*
-.*merd(a|inha|ona).*
+.*merd.*
.*metieneshasta.*
.*mezzasega.*
.*mezzeseghe.*
.*miaandana.*
-.*miaddiction.*
-.*miadiction.*
.*michaelzehafbibeau.*
.*michelfourniret.*
.*mierda.*
@@ -830,6 +820,8 @@
.*milf.*
.*minch.*
.*minga.*
+.*mnhbet.*
+.*mnhet.*
.*moele\$t.*
.*moelest.*
.*mof$
@@ -838,14 +830,11 @@
.*mole\$t.*
.*molest.*
.*mongola.*
-.*mongólic.*
.*mongolo.*
.*mongool.*
.*mongui$
.*morder.*
-.*mörder.*
.*mose.*
-.*möse.*
.*moukere.*
.*moukère.*
.*mouquere.*
@@ -858,28 +847,38 @@
.*mussolini.*
.*muzzo.*
.*mylessanderson.*
+.*myдak.*
+.*myдoeb.*
+.*myдozvoh.*
+.*mámame.*
+.*másputaque.*
+.*mörder.*
+.*möse.*
.*n-word.*
-.*n¡gg.*
-.*n[èeé]gre.*
.*n19.*
.*n1g.*
.*n1llk1ggers.*
.*n1llkiggers.*
.*n1q.*
.*naadhopper.*
-.*nacb.*
.*nacionaria.*
.*nathanielveltman.*
.*naz1.*
.*nazi.*
.*nazl.*
.*necrofiel.*
+.*necдa.*
.*neger.*
.*negra.*
+.*negre.*
.*negro.*
-.*négro.*
+.*nepдeж.*
.*nerchia.*
.*neuk.*
+.*neдepact.*
+.*neдnk.*
+.*neдpnлa.*
+.*neлotka.*
.*ngger.*
.*nggr$
.*ni9.*
@@ -901,20 +900,34 @@
.*nl9.*
.*nlg.*
.*nlq.*
-.*nmis.*
+.*nnatbcr.*
+.*nneд.*
+.*nnдap.*
+.*nnдopac.*
+.*nnдpnлa.*
.*nobhead.*
+.*noe6.*
.*nomejodas.*
.*nometoquesel.*
.*nometoquesl.*
+.*noдъebhytb.*
.*numpt.*
.*nutsack.*
.*nutte.*
+.*nuдop.*
.*nword.*
+.*n¡gg.*
+.*nègre.*
+.*négre.*
+.*négro.*
+.*nдnot.*
+.*oboccaka.*
.*ochinchin.*
.*ojete.*
.*oludo.*
.*omarmateen.*
.*omfg.*
+.*onezдaл.*
.*oprotten.*
.*optyfen.*
.*orgasm.*
@@ -922,18 +935,19 @@
.*ostia.*
.*ostion.*
.*ostión.*
+.*otcoc.*
.*outlook\.com.*
.*ovarios.*
+.*oxyetb.*
.*oンコ.*
.*oンチ.*
.*p0rn.*
.*p3n1s.*
.*p3nis.*
.*paderast.*
-.*päderast.*
.*pado.*
-.*pädo.*
.*paedo.*
+.*paeъe6.*
.*pajero.*
.*pajillero.*
.*pajote.*
@@ -949,13 +963,13 @@
.*paunocu.*
.*paunocú.*
.*paytongendron.*
+.*pazeb.*
.*pedazodeinutil.*
.*pedazodeinútil.*
.*pederast.*
-.*pédéraste.*
-.*pedofil.*
-.*pedófilo.*
+.*pedofile.*
.*pedophile.*
+.*pedófilo.*
.*peganomeupau.*
.*peganomeupinto.*
.*pekkaauvinen.*
@@ -968,18 +982,13 @@
.*penis.*
.*penls.*
.*pequenaud.*
-.*péquenaud.*
.*pequenot.*
-.*péquenot.*
.*perra.*
.*perrosarnoso.*
.*pervers.*
.*petasse.*
-.*pétasse.*
.*peteuse.*
-.*pêteuse.*
.*peteux.*
-.*pêteux.*
.*phallique.*
.*phallus.*
.*picha.*
@@ -988,12 +997,9 @@
.*pijo.*
.*pijpbek.*
.*pijpen.*
-.*pikje.*
-.*pikkenpijper.*
-.*pikomhoog.*
.*pilinha$
.*pimmel.*
-.*pimp.*
+.*pimp$
.*pinche.*
.*pincho.*
.*pinga.*
@@ -1015,7 +1021,6 @@
.*polla.*
.*pollon.*
.*pollón.*
-.*polvazo.*
.*polvete.*
.*pompin.*
.*ponce.*
@@ -1031,7 +1036,7 @@
.*porkodio.*
.*porn.*
.*portosse.*
-.*potenram.*
+.*potenrammen.*
.*potorro.*
.*poucav.*
.*pouffiasse.*
@@ -1042,8 +1047,8 @@
.*preut.*
.*prick.*
.*pringaillo.*
-.*pringaíllo.*
.*pringao.*
+.*pringaíllo.*
.*pro-ana.*
.*pro-ano.*
.*pro-boulimie.*
@@ -1069,11 +1074,8 @@
.*pu\$\$y.*
.*pu\$sy.*
.*pubes$
-.*púdreteenelinfierno.*
.*pugnett.*
.*punani$
-.*puñeta.*
-.*punhet(a|inh|eir|er|ã|ona).*
.*puntadelnabo.*
.*puntadelrabo.*
.*puntalaverga.*
@@ -1097,8 +1099,18 @@
.*putoamo.*
.*putobaboso.*
.*puton.*
-.*putón.*
.*puttan.*
+.*putón.*
+.*puñeta.*
+.*päderast.*
+.*pädo.*
+.*pédéraste.*
+.*péquenaud.*
+.*péquenot.*
+.*pétasse.*
+.*pêteuse.*
+.*pêteux.*
+.*púdreteenelinfierno.*
.*queef$
.*queerh8.*
.*queerhate.*
@@ -1114,9 +1126,9 @@
.*radasse.*
.*raep$
.*raghead.*
+.*rahдoh.*
.*ramera.*
-.*rampetamp.*
-.*raparig(a|ona).*
+.*rampetampen.*
.*rape.*
.*raping.*
.*rapist.*
@@ -1127,7 +1139,7 @@
.*ratonnade.*
.*ratonneur.*
.*raveteef.*
-.*rectaal.*
+.*razehvareh.*
.*rectum.*
.*reefteef.*
.*reetkever.*
@@ -1139,7 +1151,7 @@
.*revientaculos.*
.*revolcon.*
.*revolcón.*
-.*rfa$
+.*reйck.*
.*ricchion.*
.*rimjob.*
.*rimmen.*
@@ -1147,8 +1159,11 @@
.*robertcrimo.*
.*robertpickton.*
.*robertsteinhaeuser.*
+.*robho.*
.*rochtheriaut.*
.*roetmop.*
+.*rohдoh.*
+.*romnk.*
.*rompeculos.*
.*ropeday.*
.*rotzak.*
@@ -1165,19 +1180,16 @@
.*sackgesicht.*
.*sackratte.*
.*sadomaso.*
-.*safeweb.*
.*salaud.*
.*saligaud.*
.*salope.*
.*salv8dor.*
.*salvadorramos.*
-.*sapat(a|ona|ão).*
-.*sarasa.*
.*sbocchinato.*
.*sbocchiniamolo.*
.*sborra.*
.*sburra.*
-.*schaamlui.*
+.*schaamluis.*
.*scheiss.*
.*schijt.*
.*schiss.*
@@ -1190,8 +1202,6 @@
.*schurft.*
.*schwachkopf.*
.*schwuchtel.*
-.*scoregg.*
-.*scorregg.*
.*scrote.*
.*scrotum.*
.*secreet.*
@@ -1210,7 +1220,6 @@
.*shit.*
.*shiネ.*
.*siegheil.*
-.*siriri[ck].*
.*siut.*
.*sixgorilion.*
.*sixgorillian.*
@@ -1223,14 +1232,12 @@
.*skank$
.*slapper.*
.*slave.*
-.*slemiel.*
.*slet.*
.*sloerie.*
.*slut.*
.*smegma.*
.*snikkel.*
.*snol.*
-.*sob.*
.*sodding.*
.*sodomi.*
.*sodomy.*
@@ -1246,7 +1253,6 @@
.*spleetoog.*
.*spliff.*
.*splooge.*
-.*ßädw.*
.*stephenpaddock.*
.*stfu$
.*stiffy.*
@@ -1258,11 +1264,11 @@
.*stronz.*
.*suamaeéumaputa.*
.*subnor.*
-.*súbnor.*
.*suca.*
.*succhiamelo.*
.*succhiapalle.*
-.*suceu?r.*
+.*sucer.*
+.*suceur.*
.*suceuse.*
.*sucka.*
.*suckmy.*
@@ -1270,19 +1276,17 @@
.*suicide.*
.*supremaciablanca.*
.*supremaciabranca.*
-.*svdc.*
-.*swaffel.*
+.*swaffelen.*
.*swastica.*
.*swastika.*
.*swinger.*
-.*syfilis.*
+.*súbnor.*
.*tabarn.*
.*tafiole.*
.*taig$
.*taiwandead.*
.*takkenwijf.*
.*takkewijf.*
-.*tampeloer.*
.*tamzak.*
.*tantouse.*
.*tantouze.*
@@ -1299,7 +1303,6 @@
.*tedkaczynski.*
.*teelbal.*
.*terf$
-.*terron.*
.*terrorist.*
.*testes.*
.*testicle.*
@@ -1308,7 +1311,7 @@
.*tetazas.*
.*tetorras.*
.*tettekop.*
-.*tetten.*
+.*tettenkop.*
.*tettine.*
.*tettona.*
.*tettone.*
@@ -1318,30 +1321,22 @@
.*thinspo.*
.*thomashamilton.*
.*tiaputa.*
-.*tíaputa.*
-.*tibetalk.*
.*tiet.*
.*timkretschmer.*
.*timurbekmansurov.*
.*titler.*
.*titt.*
-.*tmd.*
+.*titwank.*
.*tocameelnabo.*
-.*tócameelnabo.*
.*tocameelrabo.*
-.*tócameelrabo.*
.*tocamelaverga.*
-.*tócamelaverga.*
.*tocamelrabo.*
.*tocateloshuevos.*
-.*tócateloshuevos.*
.*toges.*
.*togus.*
.*tokes.*
.*tokus.*
.*tollie.*
-.*tontalculo.*
-.*tontalhaba.*
.*tontodelhaba.*
.*tontolaba.*
.*tontolculo.*
@@ -1350,17 +1345,13 @@
.*tosser.*
.*tosspot.*
.*towelhead.*
-.*tragaleche.*
+.*tpaxatb.*
.*tragalefa.*
-.*tragasable.*
.*trannie.*
.*tranny.*
.*transh8.*
.*transhate.*
-.*trave(co|cão|cona|quinh|ca).*
.*travelo.*
-.*triangleboy.*
-.*troia.*
.*troie.*
.*troion.*
.*trombare.*
@@ -1369,11 +1360,11 @@
.*trou-du-cul.*
.*troud'balle.*
.*troud'cul.*
-.*troud[eu]cul.*
.*troudballe.*
.*troudcul.*
.*troudeballe.*
.*troudecui.*
+.*troudecul.*
.*trouduc.*
.*truchon.*
.*truchón.*
@@ -1381,40 +1372,45 @@
.*tubgirl.*
.*tugjob.*
.*turdburglar.*
-.*turkentrek.*
+.*turkentrekker.*
.*tuttebel.*
.*twat.*
.*twdead.*
.*twogender.*
.*tyfes.*
.*tyfus.*
+.*tíaputa.*
+.*tócameelnabo.*
+.*tócameelrabo.*
+.*tócamelaverga.*
+.*tócateloshuevos.*
.*unabomber.*
-.*unixbox.*
.*unkiki.*
-.*ustibet.*
-.*v[ei]ad(o|os)$
.*vadge.*
.*vagin.*
.*valeryfabrikant.*
+.*varnha.*
.*venusheuvel.*
.*verdomme.*
-.*verg(a|as|on|ón)$
+.*verga$
.*vergon.*
-.*verkracht.*
+.*vergón$
+.*verkrachten.*
.*vetealaverga.*
-.*veteatomarpor.*
.*vetklep.*
.*vetzak.*
.*viswijf.*
.*vladimirmirgorod.*
.*vladislavroslyakov.*
-.*voa.*
.*voorhuid.*
.*vortzak.*
.*votze.*
.*vuckoborilovic.*
.*vulva.*
-.*wank.*
+.*vыebhyлcr.*
+.*wanker.*
+.*wankshaft.*
+.*wankstain.*
.*warumoshi.*
.*whipper.*
.*whippr.*
@@ -1428,18 +1424,24 @@
.*windowlicker.*
.*wix.*
.*wtf.*
+.*xoxoл.*
.*xxne\.jp.*
-.*xxx.*
.*xyи.*
-.*xyй.*
+.*xyё.*
.*xуй.*
.*yahoo\.co\.jp.*
.*yavuzyapicioglu.*
+.*ye6.*
+.*yephomaeый.*
.*yevgenychuplinsky.*
.*youpin.*
.*yunoshuevos.*
.*yvankeller.*
+.*yypek.*
+.*yyymek.*
+.*yzkorлazый.*
.*zaadslikker.*
+.*zaeb.*
.*zakkenwasser.*
.*zboub.*
.*zeik.*
@@ -1456,28 +1458,34 @@
.*zwaffelen.*
.*zwartje.*
.*zwartjoek.*
+.*àḃćďęḟğẖĩǰḳĺḿňß.*
+.*érection.*
+.*Οンコ.*
+.*Οンチ.*
+.*οンコ.*
+.*οンチ.*
+.*Оンコ.*
+.*Оンチ.*
.*абассака.*
.*азербон.*
.*азербот.*
.*алканавт.*
.*алкаш.*
.*америкос.*
-.*анально.*
.*анаша.*
-.*анус.*
.*армяшка.*
-.*балда.*
+.*балда$
.*беспесды.*
.*бздеть.*
.*бзднуть.*
.*бздун.*
-.*бляд.*
+.*блядь.*
.*бляхамуха.*
-.*болван.*
+.*болван$
.*буфера.*
.*бухарик.*
.*бухать.*
-.*бухло.*
+.*бухло$
.*быдло.*
.*вагина.*
.*вафлер.*
@@ -1493,16 +1501,19 @@
.*гашиш.*
.*геиск.*
.*гейск.*
-.*героин.*
.*гнида.*
.*говно.*
.*говнюк.*
.*гомик.*
-.*гомосек.*
+.*гомосек$
.*гомосятина.*
.*гондон.*
.*гунявыи.*
.*гунявый.*
+.*дebuл.*
+.*дepbmo.*
+.*дoлboeb.*
+.*дypa.*
.*давалка.*
.*дебил.*
.*дерьмо.*
@@ -1513,10 +1524,9 @@
.*дрочить.*
.*дрючить.*
.*дрянь.*
-.*дура.*
-.*ёб$
+.*дурак.*
.*ебака.*
-.*ебало.*
+.*ебало$
.*ебальник.*
.*ебанат.*
.*ебанашка.*
@@ -1536,7 +1546,7 @@
.*ебись.*
.*ебическ.*
.*еблан.*
-.*ебля.*
+.*ебля$
.*ебнутыи.*
.*ебнутый.*
.*ебонат.*
@@ -1546,7 +1556,8 @@
.*ебырь.*
.*едрить.*
.*елда.*
-.*ёпти.*
+.*жnд$
+.*жona.*
.*жид$
.*жидо.*
.*жлоб.*
@@ -1576,35 +1587,40 @@
.*куколд.*
.*кунка.*
.*курва.*
+.*лecba.*
+.*лox$
+.*лoлr.*
+.*лoшapa.*
.*лабатыи.*
.*лабатый.*
.*лабус.*
.*лесба.*
.*лесбианка.*
.*лесбиянка.*
-.*лох$
+.*лоля.*
.*лошара.*
.*лягавыи.*
.*лягавый.*
.*макаронщик.*
.*манда.*
.*мандежник.*
-.*мандёжник.*
.*мандохаться.*
+.*мандёжник.*
.*марихуана.*
.*мерзавец.*
.*минет.*
+.*миньет.*
.*москаль.*
.*мохнатка.*
.*мразь.*
.*мудак.*
.*муде.*
-.*муди.*
+.*муди$
.*мудоеб.*
.*мудозвон.*
.*мудохать.*
.*мурло.*
-.*мусор.*
+.*мусор$
.*наеб.*
.*нахер.*
.*нацист.*
@@ -1624,22 +1640,22 @@
.*обалдуй.*
.*оболтус.*
.*обоссака.*
-.*олух.*
+.*олух$
.*опездал.*
-.*орально.*
.*оргазм.*
.*остолоп.*
.*отсос.*
.*оттопыриваться.*
.*отыбись.*
+.*оンコ.*
+.*оンチ.*
.*падла.*
.*пархатыи.*
.*пархатый.*
.*паскуда.*
.*паскудец.*
.*педераст.*
-.*педик.*
-.*педо.*
+.*педик$
.*педрила.*
.*педрило.*
.*пелотка.*
@@ -1648,13 +1664,11 @@
.*пердак.*
.*пердануть.*
.*пердеж.*
-.*пердёж.*
.*пердеть.*
.*перднуть.*
-.*пёрднуть.*
.*пердун.*
+.*пердёж.*
.*песда.*
-.*пидар.*
.*пидераст.*
.*пидор.*
.*пидрила.*
@@ -1675,6 +1689,7 @@
.*простодырка.*
.*прошмандовка.*
.*пукать.*
+.*пёрднуть.*
.*разеб.*
.*разъеб.*
.*сволочь.*
@@ -1693,7 +1708,6 @@
.*стерва.*
.*сука.*
.*сучара.*
-.*сучка.*
.*сцать.*
.*сцука.*
.*сцукко.*
@@ -1705,24 +1719,23 @@
.*уеб.*
.*узкоглазыи.*
.*узкоглазый.*
-.*урод.*
.*ушлепок.*
.*ушлёпок.*
+.*фaшuct.*
.*фаллос.*
.*фап.*
.*фашист.*
.*хyй.*
-.*харя.*
.*хачик.*
.*хезать.*
.*хмырь.*
-.*хохол.*
-.*хрен.*
+.*хохол$
+.*хрен$
.*хуе.*
-.*хуё.*
.*хуи.*
.*хуй.*
.*хуя.*
+.*хуё.*
.*целка.*
.*целочка.*
.*черномазыи.*
@@ -1730,7 +1743,6 @@
.*член.*
.*чмошн.*
.*чурек.*
-.*чурка.*
.*чучмек.*
.*чучмо.*
.*шалава.*
@@ -1740,226 +1752,16 @@
.*шлик.*
.*шлюха.*
.*япошка.*
-.*갈보.*
-.*강간.*
-.*개(고추|보지|부랄|자지|잡년|지랄).*
-.*개(넘|년|뇬|놈|롬|새끼|쉐리).*
-.*개[불붕]알.*
-.*개[좆좇좃].*
-.*개가튼(넘|년|뇬|놈|롬|새끼|쉐리).*
-.*개같은(넘|년|뇬|놈|롬|새끼|쉐리).*
-.*개걸[레래].*
-.*개색.*
-.*개쌍도.*
-.*개쓰레기.*
-.*개작두(넘|년|뇬|놈|롬|새끼|쉐리).*
-.*개지랄[넘놈뇬].*
-.*개후라새끼.*
-.*걸[래레]년.*
-.*걸레같은년.*
-.*게섹.*
-.*귀두.*
-.*극혐.*
-.*근친상간.*
-.*급식충.*
-.*김치남.*
-.*김치녀.*
-.*꼴[깝갑].*
-.*나쁜단어.*
-.*나쁜문장.*
-.*남혐.*
-.*내[잠버자]지.*
-.*내꺼(핧아|빨아).*
-.*노무노무.*
-.*노브라.*
-.*노알라.*
-.*노팬티.*
-.*느그애미.*
-.*느그애비.*
-.*니미[랄럴].*
-.*니씨브랄.*
-.*니애미.*
-.*니애비.*
-.*닝기미.*
-.*대갈통.*
-.*대굴빡.*
-.*대딸.*
-.*대포차.*
-.*대포통장.*
-.*대포폰.*
-.*돌대가리.*
-.*돌은(넘|년|뇬|놈|롬|새끼|쉐리).*
-.*된장남.*
-.*된장녀.*
-.*등신.*
-.*딜도.*
-.*딸딸이.*
-.*또라이.*
-.*띠발.*
-.*룸사롱.*
-.*룸살롱.*
-.*룸싸롱.*
-.*룸쌀롱.*
-.*맘충.*
-.*맛간년.*
-.*망나니.*
-.*매퇘지.*
-.*메갈.*
-.*멜돔.*
-.*멜섭.*
-.*몸캠.*
-.*물뽕.*
-.*미친(넘|년|뇬|놈|롬|새끼|쉐리|쉐이|씨부랄).*
-.*바까라.*
-.*벌창같은년.*
-.*병[딱신].*
-.*병신(셰리|즐|씨발).*
-.*보[지짓]물마셔.*
-.*보빨.*
-.*보슬아치.*
-.*보지(녀|따먹기|뚫어|물|박어|벌려|빨아|빨어|자지|정액|털|핥아|핥어).*
-.*보지찢어.*
-.*보짓물.*
-.*보추.*
-.*보픈.*
-.*부랄.*
-.*부카케.*
-.*불알.*
-.*비아그라.*
-.*빠가(씹새|새끼).*
-.*빠구리.*
-.*빠굴이.*
-.*빨통.*
-.*사까시.*
-.*상년.*
-.*샹[넘년뇬놈].*
-.*설라디언.*
-.*성감대.*
-.*성관계.*
-.*성폭행.*
-.*성행위.*
-.*섹스.*
-.*소라넷.*
-.*쉐리.*
-.*스너프.*
-.*스와핑.*
-.*스팽킹.*
-.*슨상님.*
-.*시댕.*
-.*시방년.*
-.*시방새.*
-.*시벌넘.*
-.*시벨아.*
-.*시알리스.*
-.*시팍새끼.*
-.*시팔(넘|년|뇬|놈|롬|새끼|쉐리).*
-.*실잦이.*
-.*십[창탱].*
-.*십새야.*
-.*십셰리.*
-.*십팔.*
-.*쌍[넘년뇬놈롬].*
-.*쌍보지.*
-.*썅[넘년뇬놈롬].*
-.*쓰[발벌파].*
-.*쓰바새끼.*
-.*씨[뎅바].*
-.*씨발(넘|년|뇬|놈|롬|새끼|쉐리).*
-.*씨방새.*
-.*씨벌.*
-.*씨부[랄럴].*
-.*씨팍(새끼|쉐리).*
-.*씨팔.*
-.*씹(보지|부랄).*
-.*씹[년물창탱].*
-.*씹[새쎄].*
-.*씹쌔끼.*
-.*씹자지.*
-.*씹치.*
-.*아도사끼.*
-.*아헤가오.*
-.*애미뒤진.*
-.*애미디진.*
-.*애미랄.*
-.*애쟈.*
-.*앰창.*
-.*야겜.*
-.*야덩.*
-.*야동.*
-.*야똥.*
-.*야오이.*
-.*엄창.*
-.*엠창.*
-.*여혐.*
-.*염병.*
-.*엿먹어라.*
-.*오나니.*
-.*오르가즘.*
-.*오피남.*
-.*오피녀.*
-.*왕자지.*
-.*왕털(자지|보지).*
-.*우라질.*
-.*워마드.*
-.*유두(빨어|핥어).*
-.*육갑.*
-.*일간베스트.*
-.*일베.*
-.*자살.*
-.*자지(박어|빨아|빨아줘|빨어|털|핥아|핥어|핥아줘).*
-.*자지쓰레기.*
-.*작은보지.*
-.*잠지.*
-.*잡[것년놈].*
-.*저능아.*
-.*전라디언.*
-.*정액(짜|핥아|먹어|마셔).*
-.*젖탱이.*
-.*조건남.*
-.*조건녀.*
-.*조건만남.*
-.*좃[물털].*
-.*좃같네.*
-.*좃대가리.*
-.*좃목.*
-.*좃보지.*
-.*좃빠(구리|네).*
-.*좆.*
-.*죠또.*
-.*죳.*
-.*즐섹.*
-.*지랄.*
-.*짱깨.*
-.*짱께.*
-.*쪽바리.*
-.*쪽발이.*
-.*창[녀부].*
-.*체모.*
-.*체위.*
-.*컴[섹색쌕].*
-.*코카인.*
-.*콘돔.*
-.*쿰척쿰척.*
-.*틀딱.*
-.*파오후.*
-.*패티쉬.*
-.*팸돔.*
-.*팸섭.*
-.*페티시.*
-.*펠라치오.*
-.*폐녀자.*
-.*폰[섹색쌕].*
-.*핑유.*
-.*한남충.*
-.*허벌(보지|자지|자식).*
-.*헐렁보지.*
-.*호로(새끼|자식).*
-.*호모.*
-.*화[양냥]년.*
-.*후배위.*
-.*후빨.*
-.*후장.*
-.*흑두.*
+.*ёb$
+.*ёб$
+.*ёпти.*
+.*○ンコ.*
+.*○ンタマ.*
+.*○ンチ.*
+.*◎ンコ.*
+.*◎ンチ.*
+.*●ンコ.*
+.*●ンチ.*
.*アアアイアウアエアオアア.*
.*アナニー.*
.*アナル.*
@@ -1974,23 +1776,29 @@
.*アホバカ.*
.*イケヌマ.*
.*イラマチオ.*
+.*ウ0コ.*
+.*ウoコ.*
+.*ウΟコ.*
+.*ウοコ.*
+.*ウОコ.*
+.*ウоコ.*
.*ウ○コ.*
.*ウ◎コ.*
.*ウ●コ.*
-.*ウ0コ.*
-.*ウoコ.*
-.*ヴアギナ.*
.*ウンコ.*
.*ウンチ.*
.*ウンニ.*
.*エネマグラ.*
.*エフエドリン.*
+.*オ0ンポ.*
+.*オoンポ.*
+.*オΟンポ.*
+.*オοンポ.*
+.*オОンポ.*
+.*オоンポ.*
.*オ○ンポ.*
.*オ◎ンポ.*
.*オ●ンポ.*
-.*オーガズム.*
-.*オ0ンポ.*
-.*オoンポ.*
.*オツパイ.*
.*オテインテイン.*
.*オナキン.*
@@ -1998,7 +1806,7 @@
.*オナヌー.*
.*オナネタ.*
.*オナホ.*
-.*オナル.*
+.*オナル$
.*オナロウ.*
.*オピオイドペプチド.*
.*オマンチヨ.*
@@ -2007,8 +1815,7 @@
.*オヤコロ.*
.*オヤゴロ.*
.*オルガズム.*
-.*ガイジ.*
-.*ガガガギガグガゲガゴガガ.*
+.*オーガズム.*
.*カスアホ.*
.*カスクズ.*
.*カスクソ.*
@@ -2018,6 +1825,8 @@
.*カスドモ.*
.*カスバカ.*
.*カツス.*
+.*ガイジ.*
+.*ガガガギガグガゲガゴガガ.*
.*キ○タマ.*
.*キエウセロ.*
.*キエテ.*
@@ -2055,14 +1864,6 @@
.*ゲリベン.*
.*コカイン.*
.*コクヂン.*
-.*ゴミアホ.*
-.*ゴミカス.*
-.*ゴミクズ.*
-.*ゴミクソ.*
-.*ゴミシネ.*
-.*ゴミスギ.*
-.*ゴミドモ.*
-.*ゴミバカ.*
.*コロサレロ.*
.*コロシタ$
.*コロシテ$
@@ -2074,18 +1875,25 @@
.*コロスヨ.*
.*コロナウイルス.*
.*コンドーム.*
+.*ゴミアホ.*
+.*ゴミカス.*
+.*ゴミクズ.*
+.*ゴミクソ.*
+.*ゴミシネ.*
+.*ゴミスギ.*
+.*ゴミドモ.*
+.*ゴミバカ.*
.*ゴ有.*
-.*ザーメン.*
-.*ザー汁.*
-.*ザk.*
-.*ザコ.*
.*サササシサスサセサソササ$
.*サセ子.*
+.*ザk.*
+.*ザコ.*
.*ザツコ.*
+.*ザーメン.*
+.*ザー汁.*
.*シ''サツ.*
.*シne.*
.*シコシコ.*
-.*ジサツ.*
.*シツクスナイン.*
.*シツコ.*
.*シネ$
@@ -2094,10 +1902,10 @@
.*シネクズ.*
.*シネクソ.*
.*シネゴミ.*
-.*シネバ?$
.*シネバ$
.*シネバイイノニ.*
.*シネバカ.*
+.*シネバ?$
.*シネヤ$
.*シネヨ$
.*シヤセイ.*
@@ -2111,17 +1919,36 @@
.*シンデヤル$
.*シンデヨ$
.*シンドケ.*
+.*ジサツ.*
.*スカトロ.*
.*セツクス.*
-.*ゼツリン.*
.*セフレ.*
.*センズリ.*
.*センパン$
+.*ゼツリン.*
+.*タヒネ.*
.*ダイベン.*
.*ダウンシヨウ.*
.*ダツチワイフ.*
-.*タヒネ.*
.*ダマレ.*
+.*チ0コ.*
+.*チ0チ.*
+.*チ0ポ.*
+.*チoコ.*
+.*チoチ.*
+.*チoポ.*
+.*チΟコ.*
+.*チΟチ.*
+.*チΟポ.*
+.*チοコ.*
+.*チοチ.*
+.*チοポ.*
+.*チОコ.*
+.*チОチ.*
+.*チОポ.*
+.*チоコ.*
+.*チоチ.*
+.*チоポ.*
.*チ○コ.*
.*チ○チ.*
.*チ○ポ.*
@@ -2131,44 +1958,45 @@
.*チ●コ.*
.*チ●チ.*
.*チ●ポ.*
-.*チ0コ.*
-.*チ0チ.*
-.*チ0ポ.*
-.*チoコ.*
-.*チoチ.*
-.*チoポ.*
.*チカテツサリン.*
-.*チシヨー.*
.*チシヨウ.*
-.*チヤーカス.*
+.*チシヨー.*
.*チヤンコロ.*
-.*チン○.*
-.*チン◎.*
-.*チン●.*
+.*チヤーカス.*
.*チン0.*
.*チンo.*
.*チンpo.*
+.*チンΟ.*
+.*チンο.*
+.*チンО.*
+.*チンо.*
+.*チン○.*
+.*チン◎.*
+.*チン●.*
.*チンカス.*
.*チンコ.*
+.*チンチ0.*
+.*チンチo.*
+.*チンチΟ.*
+.*チンチο.*
+.*チンチО.*
+.*チンチо.*
.*チンチ○.*
.*チンチ◎.*
.*チンチ●.*
-.*チンチ0.*
-.*チンチo.*
.*チンチン.*
.*チンニ.*
-.*チンボ.*
-.*チンポ.*
.*チンホ°.*
.*チンホº.*
-.*デイープスロート.*
+.*チンボ.*
+.*チンポ.*
.*デイルド.*
+.*デイープスロート.*
.*デカチン.*
.*デカマラ.*
.*デブ専.*
.*トモダチヤメ.*
-.*パイズリ.*
-.*パイパン.*
+.*ハメ撮リ.*
.*バカアホ.*
.*バカカス.*
.*バカクズ.*
@@ -2178,8 +2006,9 @@
.*バカスギ.*
.*バカドモ.*
.*バター犬.*
+.*パイズリ.*
+.*パイパン.*
.*パパパピパプパペパポパパ.*
-.*ハメ撮リ.*
.*ヒトラー.*
.*フアツキユー.*
.*フアツク.*
@@ -2187,13 +2016,19 @@
.*ブツコロス.*
.*プツシー.*
.*ヘタクソ.*
+.*ヘロイン.*
.*ペツテイング.*
.*ペニス.*
-.*ヘロイン.*
-.*ポコチン.*
-.*ボツキ.*
-.*ポルチオ.*
.*ホ別.*
+.*ボツキ.*
+.*ポコチン.*
+.*ポルチオ.*
+.*マ0コ.*
+.*マoコ.*
+.*マΟコ.*
+.*マοコ.*
+.*マОコ.*
+.*マоコ.*
.*マ■コ.*
.*マ□コ.*
.*マ◆コ.*
@@ -2201,8 +2036,6 @@
.*マ○コ.*
.*マ◎コ.*
.*マ●コ.*
-.*マ0コ.*
-.*マoコ.*
.*マジキチ.*
.*マツトプレイ.*
.*マナ板本番.*
@@ -2235,80 +2068,54 @@
.*ロリコン.*
.*ロンパリ.*
.*ワルモシ.*
-.*一中一台.*
+.*ヴアギナ.*
.*一人エツチ.*
-.*一党.*
.*一夜情.*
-.*丁关根.*
-.*万维读者网.*
-.*三[级陪].*
-.*三个代表.*
.*三国人.*
+.*三陪.*
.*上你.*
.*上妳.*
-.*下体.*
.*下注.*
-.*专[政制].*
-.*东土耳其斯坦.*
-.*东社.*
-.*两个中国.*
-.*两会.*
-.*两岸关系.*
-.*个人崇拜.*
-.*乔石.*
.*乞食.*
-.*习近平.*
-.*乱[交伦].*
-.*乳[头交].*
-.*乳[頭交].*
+.*乡巴佬.*
+.*乱交.*
+.*乳交.*
+.*乳头.*
.*乳峰.*
.*乳房.*
.*乳晕.*
.*乳暈.*
.*乳輪.*
+.*乳頭.*
.*亀甲縛リ.*
-.*亂[交倫].*
-.*事实独立.*
-.*于幼军.*
-.*人[大权].*
-.*人民报.*
+.*人獸交.*
.*仆街.*
.*他娘.*
.*他媽的.*
.*他干.*
.*伟哥.*
-.*伦理.*
.*低脳.*
.*你妈了妹.*
.*你妈逼.*
-.*你媽逼.*
+.*來插我.*
.*侧那.*
.*做愛.*
-.*偷[窥拍情].*
+.*做爱.*
.*催情药.*
.*傻b.*
.*傻子.*
.*傻比.*
.*先奸后杀.*
-.*內射.*
.*全身舐メ.*
-.*共[产党匪军].*
-.*兽[交欲].*
-.*内[裤射].*
.*册那.*
.*再奸.*
-.*冚家剷.*
.*冰毒.*
.*凌辱.*
-.*刘华清.*
-.*𠝹手.*
-.*功法.*
.*勃起.*
.*包茎.*
.*包莖.*
.*午夜.*
.*卍.*
-.*华建敏.*
.*卐.*
.*卖逼.*
.*南極2号.*
@@ -2319,123 +2126,78 @@
.*去妳妈.*
.*去妳的.*
.*去死.*
-.*双十节.*
.*双飞.*
-.*发正念.*
.*发骚.*
.*变态.*
.*口交.*
.*口內發射.*
.*口内発射.*
-.*叫床.*
.*可卡因.*
-.*台[独盟].*
-.*台湾会.*
-.*台湾建国运动组织.*
-.*台湾政论区.*
-.*台湾独立.*
-.*台湾自由联盟.*
-.*台湾青年独立联盟.*
.*叼你.*
.*合法ハーブ.*
.*吉跋猫.*
-.*同房.*
-.*吕秀莲.*
.*吟稻雁.*
-.*吴官正.*
-.*吴邦国.*
.*吸毒.*
.*吹喇叭.*
.*吹箫.*
-.*吹萧.*
-.*吹蕭.*
-.*周永康.*
.*和姦.*
-.*善恶有报.*
-.*喷[精尿].*
.*嗑药.*
-.*噴[精尿].*
-.*四仔.*
-.*国[军贼].*
-.*国家安全.*
-.*国家机密.*
.*土人.*
.*地下鉄サリン.*
.*坏用语.*
-.*坐[交台].*
.*坐庄.*
.*基地外.*
.*売女.*
.*売春.*
-.*多党.*
-.*夜总会.*
.*夢遺.*
.*大便.*
-.*大纪元.*
.*大血比.*
.*大麻.*
-.*太子党.*
-.*夾腸仔.*
-.*契弟.*
-.*女优.*
.*女体盛リ.*
.*奶娘.*
.*奶子.*
-.*奸[情杀污淫].*
-.*奸[情殺汙淫].*
.*奸一奸.*
.*奸他.*
.*奸你.*
.*奸她.*
.*奸暴.*
.*她娘.*
-.*妈个.*
.*妈比.*
.*妈的.*
-.*妓.*
+.*妓女.*
.*妳娘的.*
-.*姜春云.*
-.*姦[情殺汙淫].*
.*姦屍.*
.*姦通.*
.*威而柔.*
.*威而钢.*
.*娼婦.*
.*婊子.*
-.*媽個.*
-.*嫖.*
+.*嫖妓.*
+.*嫖娼.*
.*嫩b.*
-.*宇明网.*
.*安非他命.*
-.*宋平.*
-.*宏法.*
.*害児.*
-.*密穴.*
-.*封杀.*
.*射精.*
-.*尉健行.*
.*小便.*
-.*小日本.*
.*小穴.*
-.*少儿不宜.*
.*尻.*
.*尾申鲸.*
.*尿道球腺液.*
.*屁眼.*
.*屄.*
.*屌.*
-.*屌(你妳).*
.*屎.*
.*屙.*
-.*屠杀.*
.*屠殺.*
.*帝顺.*
-.*干[你他她].*
.*干一干.*
+.*干他.*
+.*干你.*
.*干入.*
.*干到.*
.*干勒.*
.*干啦.*
+.*干她.*
.*干妳.*
.*干它.*
.*干尼.*
@@ -2450,69 +2212,42 @@
.*干爽.*
.*干牠.*
.*干鸡.*
-.*幹[你他她].*
-.*幹死你.*
-.*乡巴佬.*
-.*幼[齿交幼].*
-.*床上功夫.*
.*床上手.*
.*床上高手.*
-.*底裤.*
.*废物.*
-.*廖锡龙.*
-.*建国党.*
-.*开苞.*
-.*张万年.*
-.*強[暴奸姦].*
-.*弹劾.*
-.*强[暴奸迫].*
+.*強姦.*
+.*强奸.*
.*後背位.*
-.*徐匡迪.*
-.*徐才厚.*
-.*性[愛交夥伴器欲].*
-.*性[爱病交伙伴器欲].*
+.*性交.*
+.*性伴侶.*
.*性奴隷.*
+.*性愛.*
.*性慾.*
+.*性欲.*
.*性虐.*
.*性行為.*
.*性高潮.*
-.*悔过书.*
-.*情[妇色].*
+.*情色.*
.*愛奴.*
.*愛液.*
-.*慰安妇.*
-.*慰安婦.*
-.*成人.*
.*我咧干.*
.*我奸.*
.*我干.*
.*我慢汁.*
.*我操.*
.*我日.*
-.*戴相龙.*
.*戳你.*
.*手コキ.*
.*手マン.*
.*手交.*
-.*打JJ.*
-.*打手枪.*
-.*打手槍.*
-.*打炮.*
-.*打真軍.*
-.*找五姑娘.*
.*抗ウツ剤.*
.*抗抑鬱藥.*
-.*抗议.*
.*抢劫.*
-.*护法.*
.*抽头.*
.*拐卖.*
.*挨球.*
-.*捅[你我].*
-.*换妻.*
.*掯.*
-.*插[插你他她我].*
-.*揭批书.*
+.*插你.*
.*援交.*
.*援助交際.*
.*搞栗棒.*
@@ -2524,277 +2259,175 @@
.*操妳妈.*
.*操尼.*
.*操林.*
-.*操死你.*
-.*攔坦.*
.*支那.*
-.*收[皮爹].*
-.*政治.*
-.*文字狱.*
-.*文革.*
-.*新生网.*
-.*新闻封锁.*
-.*无毛.*
.*日你.*
.*日死.*
.*早泄.*
-.*明慧.*
.*明盲.*
.*晨勃.*
.*智障人士.*
-.*暴[动干乱政].*
-.*曹刚川.*
-.*曾培炎.*
-.*曾庆红.*
.*朝勃チ.*
-.*朱镕基.*
.*机八.*
.*机叭.*
.*机巴.*
.*机掰.*
-.*李克强.*
-.*李小[鹏朋].*
-.*李岚清.*
-.*李洪志.*
-.*李瑞环.*
-.*李登辉.*
-.*李继耐.*
-.*李远哲.*
-.*李长春.*
.*来干.*
+.*来插我.*
.*来爽我.*
-.*梁光烈.*
.*梅毒.*
.*梦遗.*
-.*機[八巴叭].*
.*欠人骑.*
.*欠干.*
.*欠骑.*
-.*正见网.*
.*死ネ.*
.*死姦.*
-.*死蠢.*
.*殺ス.*
.*毒品.*
.*毛唐.*
-.*毛泽东.*
-.*毛片.*
-.*民[国意].*
-.*民族矛盾.*
-.*民进党.*
.*気違イ.*
.*池沼.*
.*法克鱿.*
-.*法轮功.*
-.*波霸.*
-.*洗脑.*
-.*洪哲胜.*
.*测拿.*
.*海洛因.*
.*淋病.*
.*淫.*
.*渣波波.*
-.*温家宝.*
.*湿了.*
-.*滕文生.*
.*滥交.*
.*潜烈蟹.*
-.*潮吹.*
.*濫交.*
-.*炼功.*
.*烂人.*
.*烂逼.*
.*烂鸟.*
-.*热比娅.*
.*爱液.*
.*爱滋.*
.*爽你.*
-.*狂干.*
-.*狂幹.*
.*狗娘养的.*
.*狗干.*
-.*狗日.*
-.*独[裁夫].*
-.*猛插.*
.*猪猡.*
.*獣姦.*
-.*獸[交欲].*
.*玉舐メ.*
.*玉責メ.*
.*王八蛋.*
-.*王宝森.*
-.*王沪宁.*
-.*王瑞林.*
-.*由喜贵.*
-.*疆独.*
+.*玩弄睾丸.*
.*痴女.*
.*痴汁.*
.*痴漢.*
.*白痴.*
-.*盛华仁.*
.*監禁.*
.*直アド.*
.*直メ.*
.*看下.*
-.*看中国.*
-.*真善忍.*
-.*睪丸.*
-.*睾丸.*
-.*破处.*
-.*破處.*
.*破鞋.*
.*神经病.*
-.*視姦.*
-.*禁看.*
-.*私处.*
.*穢多.*
.*穴兄弟.*
.*童貞.*
.*笨蛋.*
-.*粉饰太平.*
.*粗チン.*
.*精子.*
.*精液.*
.*素股.*
.*絶倫.*
-.*红灯区.*
-.*红色恐怖.*
-.*统[独战].*
.*缔顺.*
-.*罗干.*
-.*群[交射].*
.*群p.*
.*老土.*
.*老外.*
.*老母.*
.*老漢推車.*
.*聾.*
-.*肉[棒洞棍欲].*
.*肉便器.*
.*肉壶.*
.*肉壺.*
.*肉奴隷.*
+.*肉棒.*
.*肏.*
-.*肛.*
+.*肛交.*
+.*肛門.*
+.*肛门.*
.*背面座位.*
-.*胡锦涛.*
-.*胸罩.*
-.*脱光.*
.*脱法ハーブ.*
-.*腐败.*
.*膣.*
-.*自[焚拍慰].*
+.*自慰.*
.*自殺.*
-.*自由网.*
.*臭机.*
.*臭西.*
.*臭鸡.*
-.*舆论.*
.*舔全身.*
-.*色[狼情友].*
-.*艳星.*
+.*舔睾丸.*
+.*色情.*
+.*色狼.*
.*花ビラ回転.*
-.*花花公子.*
.*草你.*
.*草拟妈.*
.*草泥马.*
.*荡妇.*
.*菊花蚕.*
.*蒂顺.*
-.*藏独.*
-.*虐待.*
.*處男.*
.*蠢猪.*
-.*行房.*
-.*被[逼虐迫].*
-.*裸[体露奔].*
.*要帶套.*
+.*視姦.*
.*覚セイ剤.*
.*览叫.*
-.*讲法.*
-.*诱惑.*
-.*调教.*
-.*谢长廷.*
-.*賓周.*
-.*賤人.*
+.*買春.*
.*賤民.*
.*賤貨.*
.*贱人.*
.*贱货.*
-.*贺国强.*
-.*贾庆林.*
-.*贾廷安.*
.*赛你娘.*
.*赛妳娘.*
-.*赤[匪化].*
-.*走光.*
.*足コキ.*
.*足交.*
-.*躝癱.*
.*輪姦.*
.*轮奸.*
.*轮干.*
.*轮流干.*
.*达菲鸡.*
-.*达赖.*
.*近親相姦.*
-.*迟浩田.*
-.*迪里夏提.*
-.*迫害.*
-.*迷药.*
.*逆援.*
.*通姦.*
-.*造爱.*
.*逼毛.*
.*遗精.*
.*避孕套.*
-.*邓小平.*
-.*郑义.*
.*部落.*
-.*郭伯雄.*
-.*酥胸.*
-.*酷刑.*
.*野獣先輩.*
.*野獸前輩.*
-.*钱其琛.*
-.*钱国梁.*
-.*钱达.*
-.*镇压.*
-.*開苞.*
-.*閪.*
-.*闹事.*
.*阳具.*
.*阳物.*
.*阳痿.*
-.*阴[部道蒂茎毛门囊].*
.*阴唇.*
.*阴户.*
.*阴核.*
+.*阴茎.*
+.*阴蒂.*
+.*阴道.*
+.*阴部.*
+.*阴门.*
.*阿片.*
-.*陆委会.*
-.*陈希同.*
-.*陈水扁.*
-.*陰[唇部道蒂莖毛門囊].*
+.*陰唇.*
.*陰嚢.*
.*陰戶.*
.*陰核.*
+.*陰毛.*
.*陰茎.*
+.*陰莖.*
+.*陰蒂.*
+.*陰道.*
+.*陰部.*
+.*陰門.*
.*陵辱.*
.*陽具.*
.*陽痿.*
.*雅蠛蝶.*
-.*雞[八巴叭].*
.*雞姦.*
.*雞雞.*
-.*雪山狮子.*
.*電動コケシ.*
.*電動小木偶.*
-.*露[点毛].*
.*青姦.*
.*靠你妈.*
-.*革命.*
.*顔射.*
.*顔騎.*
-.*项怀诚.*
.*颜射.*
.*食軟飯.*
.*騷貨.*
@@ -2803,11 +2436,8 @@
.*骑他.*
.*骑你.*
.*骑她.*
-.*骚[乱动].*
.*骚b.*
.*骚货.*
-.*高官.*
-.*鬼子.*
.*鮮人.*
.*鴉片.*
.*鸡八.*
@@ -2816,39 +2446,368 @@
.*鸡巴.*
.*鸡掰.*
.*鸡歪.*
-.*鸡毛信文汇.*
.*鸡鸡.*
.*麻薬.*
-.*黄[菊色].*
-.*黄丽满.*
.*黄金水.*
-.*黑社会.*
.*龜頭.*
.*龟头.*
-^(sm)$
-^(아날|애널)$
+.*갈보.*
+.*강간.*
+.*개가튼넘.*
+.*개가튼년.*
+.*개가튼놈.*
+.*개가튼뇬.*
+.*개가튼롬.*
+.*개가튼새끼.*
+.*개같은넘.*
+.*개같은년.*
+.*개같은놈.*
+.*개같은뇬.*
+.*개같은롬.*
+.*개같은새끼.*
+.*개걸래.*
+.*개걸레.*
+.*개고추.*
+.*개넘.*
+.*개년.*
+.*개놈.*
+.*개뇬.*
+.*개롬.*
+.*개보지.*
+.*개붕알.*
+.*개새끼.*
+.*개색.*
+.*개쌍도.*
+.*개쓰레기.*
+.*개자지.*
+.*개작두넘.*
+.*개작두년.*
+.*개작두놈.*
+.*개작두뇬.*
+.*개작두롬.*
+.*개작두새끼.*
+.*개좃.*
+.*개좇.*
+.*개후라새끼.*
+.*걸래년.*
+.*걸레같은년.*
+.*걸레년.*
+.*게섹.*
+.*귀두.*
+.*극혐.*
+.*근친상간.*
+.*급식충.*
+.*김치남.*
+.*김치녀.*
+.*꼴갑.*
+.*꼴깝.*
+.*나쁜단어.*
+.*나쁜문장.*
+.*남혐.*
+.*내꺼빨아.*
+.*내꺼핧아.*
+.*내버지.*
+.*내자지.*
+.*노무노무.*
+.*노브라.*
+.*노알라.*
+.*노팬티.*
+.*느그애미.*
+.*느그애비.*
+.*늬미.*
+.*니미.*
+.*니씨브랄.*
+.*니애미.*
+.*니애비.*
+.*닝기미.*
+.*대갈통.*
+.*대굴빡.*
+.*대딸.*
+.*대포차.*
+.*대포통장.*
+.*대포폰.*
+.*돌대가리.*
+.*돌은넘.*
+.*돌은년.*
+.*돌은놈.*
+.*돌은뇬.*
+.*돌은롬.*
+.*돌은새끼.*
+.*된장남.*
+.*된장녀.*
+.*뒈져.*
+.*등신.*
+.*디져.*
+.*딜도.*
+.*딸딸이.*
+.*또라이.*
+.*띠발.*
+.*룸사롱.*
+.*룸살롱.*
+.*룸싸롱.*
+.*룸쌀롱.*
+.*맘충.*
+.*맛간년.*
+.*망나니.*
+.*매퇘지.*
+.*메갈.*
+.*멜돔.*
+.*멜섭.*
+.*몸캠.*
+.*물뽕.*
+.*미친넘.*
+.*미친년.*
+.*미친놈.*
+.*미친뇬.*
+.*미친롬.*
+.*미친새끼.*
+.*미친쉐이.*
+.*바까라.*
+.*백보지.*
+.*벌창같은년.*
+.*병딱.*
+.*병신.*
+.*보빨.*
+.*보슬아치.*
+.*보지녀.*
+.*보지따먹기.*
+.*보지뚫어.*
+.*보지물.*
+.*보지박어.*
+.*보지벌려.*
+.*보지빨아.*
+.*보지빨어.*
+.*보지자지.*
+.*보지정액.*
+.*보지찢어.*
+.*보지털.*
+.*보지핥아.*
+.*보지핥어.*
+.*보짓물.*
+.*보추.*
+.*보픈.*
+.*부랄.*
+.*부카케.*
+.*불알.*
+.*붕신.*
+.*븅신.*
+.*비아그라.*
+.*빙신.*
+.*빠가새끼.*
+.*빠구리.*
+.*빠굴이.*
+.*빨통.*
+.*빽보지.*
+.*뻑큐.*
+.*뽀큐.*
+.*사까시.*
+.*상년.*
+.*샹넘.*
+.*샹년.*
+.*샹놈.*
+.*샹뇬.*
+.*설라디언.*
+.*성감대.*
+.*성관계.*
+.*성폭행.*
+.*성행위.*
+.*섹스.*
+.*소라넷.*
+.*쉐리.*
+.*스너프.*
+.*스와핑.*
+.*스팽킹.*
+.*슨상님.*
+.*시댕.*
+.*시방년.*
+.*시방새.*
+.*시벌넘.*
+.*시벨넘.*
+.*시벨아.*
+.*시알리스.*
+.*시팍새끼.*
+.*시팔넘.*
+.*시팔년.*
+.*시팔놈.*
+.*시팔뇬.*
+.*시팔롬.*
+.*시팔새끼.*
+.*실잦이.*
+.*십새야.*
+.*십셰리.*
+.*십창.*
+.*십탱.*
+.*십팔.*
+.*쌍넘.*
+.*쌍년.*
+.*쌍놈.*
+.*쌍뇬.*
+.*쌍롬.*
+.*쌍보지.*
+.*썅넘.*
+.*썅년.*
+.*썅놈.*
+.*썅뇬.*
+.*썅롬.*
+.*쓰바새끼.*
+.*쓰발.*
+.*쓰벌.*
+.*쓰파.*
+.*씨뎅.*
+.*씨바.*
+.*씨발넘.*
+.*씨발년.*
+.*씨발놈.*
+.*씨발뇬.*
+.*씨발롬.*
+.*씨발새끼.*
+.*씨방새.*
+.*씨벌.*
+.*씨벨넘.*
+.*씨부럴.*
+.*씨팍새끼.*
+.*씨팔.*
+.*씹년.*
+.*씹물.*
+.*씹보지.*
+.*씹새.*
+.*씹쌔끼.*
+.*씹쎄.*
+.*씹자지.*
+.*씹창.*
+.*씹치.*
+.*씹탱.*
+.*아도사끼.*
+.*아헤가오.*
+.*애미뒤진.*
+.*애미디진.*
+.*애미랄.*
+.*애쟈.*
+.*앰창.*
+.*야겜.*
+.*야덩.*
+.*야동.*
+.*야똥.*
+.*야오이.*
+.*엄창.*
+.*엠창.*
+.*여혐.*
+.*염병.*
+.*엿먹어라.*
+.*오나니.*
+.*오르가즘.*
+.*오피남.*
+.*오피녀.*
+.*왕자지.*
+.*왕털보지.*
+.*왕털자지.*
+.*우라질.*
+.*워마드.*
+.*유두빨어.*
+.*유두핥어.*
+.*육갑.*
+.*일간베스트.*
+.*일베.*
+.*자살.*
+.*자지박어.*
+.*자지빨아.*
+.*자지빨어.*
+.*자지쓰레기.*
+.*자지털.*
+.*자지핥아.*
+.*자지핥어.*
+.*작은보지.*
+.*잠지.*
+.*잡것.*
+.*잡년.*
+.*잡놈.*
+.*저능아.*
+.*전라디언.*
+.*정액마셔.*
+.*정액먹어.*
+.*정액짜.*
+.*정액핥아.*
+.*젖탱이.*
+.*조건남.*
+.*조건녀.*
+.*조건만남.*
+.*좃같네.*
+.*좃까.*
+.*좃대가리.*
+.*좃목.*
+.*좃물.*
+.*좃보지.*
+.*좃빠네.*
+.*좃털.*
+.*좆.*
+.*죠또.*
+.*죳.*
+.*즐섹.*
+.*지랄.*
+.*짱깨.*
+.*짱께.*
+.*쪽바리.*
+.*쪽발이.*
+.*창녀.*
+.*창부.*
+.*체모.*
+.*체위.*
+.*컴색.*
+.*컴섹.*
+.*컴쌕.*
+.*코카인.*
+.*콘돔.*
+.*쿰척쿰척.*
+.*크리토리스.*
+.*클리토리스.*
+.*틀딱.*
+.*파오후.*
+.*패니스.*
+.*패티쉬.*
+.*팸돔.*
+.*팸섭.*
+.*페니스.*
+.*페티시.*
+.*펠라치오.*
+.*폐녀자.*
+.*폰색.*
+.*폰섹.*
+.*폰쌕.*
+.*핑유.*
+.*한남충.*
+.*허벌보지.*
+.*허벌자식.*
+.*허벌자지.*
+.*헐렁보지.*
+.*호로새끼.*
+.*호로자식.*
+.*호모.*
+.*화냥년.*
+.*화양년.*
+.*후배위.*
+.*후빨.*
+.*후장.*
+.*흑두.*
+.*==d.*
+.*𠝹手.*
^1488$
^18년.*
^a55$
^aars.*
^abafapalhinha$
^abc-diat$
-^abc-diät$
^abc-diet$
+^abc-diät$
^abcdiat$
^abcdiät$
^abspritzer$
-^admin$
^afterlecker$
^afterlutscher$
^alkoholiker$
^alv$
^ana-boot-camp$
-^anaal.*
^anaymia$
^anaymía$
-^ano$
-^ânus$
^aputadatuairma$
^aputadatuairmã$
^aputadatuamae$
@@ -2866,13 +2825,10 @@
^arse$
^asl$
^ass$
-^atte$
^auschwitz$
^b17ch$
^b1tch$
^babaca$
-^bádw$
-^bàdw$
^badword$
^badworda$
^badwordc$
@@ -2885,8 +2841,8 @@
^bardajona$
^baseado$
^baterumapivea$
-^baterumapívea$
^baterumapivia$
+^baterumapívea$
^bbwczh$
^bbween$
^bbwees$
@@ -2902,32 +2858,30 @@
^bbwpnl$
^bbwppt$
^bbwpru$
-^bbwten$
^bbwtzh$
-^beaver$
^bettnasser$
-^bettnässer$
^bettnasserin$
+^bettnässer$
^bettnässerin$
^bi7ch$
^biba$
-^bich(a|inha|ona)$
+^bicha$
+^bichinha$
+^bichona$
^bicot$
^bilau$
^bint$
^bistouquette$
^bite$
^bitzkrieg$
-^bix(a|inha|ona)$
+^bixa$
^bj$
^blodian$
-^blödian$
^blodmann$
-^blödmann$
^bltch$
+^blödian$
+^blödmann$
^bnv$
-^bobo$
-^bóbó$
^boche$
^boner$
^boobs.*
@@ -2938,38 +2892,27 @@
^boules$
^bounioul$
^branler$
-^branquelo$
^broche$
^brochista$
^bronha$
^buckstuck$
-^bückstück$
^bufa$
-^bunda$
-^bundão$
^bundona$
^bunduda$
+^bundão$
^burra$
^burro$
^bv$
-^bwcz$
-^bwkk$
-^bwte$
-^bwtz$
+^bückstück$
^c0k$
^cabra$
^cabrao$
^cabrão$
-^cacete$
^cack$
^calice$
-^câlice$
^calicer$
-^câlicer$
^calisse$
-^câlisse$
^calisser$
-^câlisser$
^canhola$
^canholeiro$
^canhoteiro$
@@ -2987,7 +2930,6 @@
^chenolles$
^chiava.*
^chibre$
-^chichi$
^chienne$
^chiensale$
^chier$
@@ -2995,14 +2937,12 @@
^chifrudo$
^choad$
^chode$
-^chumi$
-^chup(ão|ona|ador|adora)$
+^chupa$
^chupa-meapica$
^chupa-meapiça$
^chupa-meoolhodocu$
^chupa-meopescoco$
^chupa-meopescoço$
-^chupa$
^chupabufa$
^chupabufas$
^chupaputas$
@@ -3010,21 +2950,19 @@
^chupetinha$
^clit.*
^coca-meocolhao$
-^coça-meocolhão$
^coca-meoscolhoes$
-^coça-meoscolhões$
^cocameocolhao$
-^coçameocolhão$
^cocameoscolhoes$
-^coçameoscolhões$
^cock$
^cocô$
-^cog[ei].*
+^coge.*
+^coger.*
+^cogi.*
^cok$
^colhanito$
^colhao$
-^colhão$
^colhoes$
+^colhão$
^colhões$
^comechichi$
^comecu$
@@ -3034,8 +2972,8 @@
^con$
^cona$
^conaca$
-^conaça$
^conassa$
+^conaça$
^coneira$
^coneiro$
^conil$
@@ -3046,7 +2984,12 @@
^coon.*
^corno$
^cornudo$
+^coça-meocolhão$
+^coça-meoscolhões$
+^coçameocolhão$
+^coçameoscolhões$
^crap$
+^cretin.*
^crica$
^crika$
^crioula$
@@ -3056,7 +2999,6 @@
^crossage$
^crosseuse$
^cu$
-^cú$
^cuca$
^cul$
^culhão$
@@ -3065,21 +3007,19 @@
^culo.*
^cum$
^curoto$
-^cuz(ão|ona|inho|inha)$
+^cuzão$
+^câlice$
+^câlicer$
+^câlisse$
+^câlisser$
+^cú$
^daesh$
^dago$
^daish$
-^débilmental$
-^dégobillage$
-^dégobiller$
-^dégueuler$
-^dégueulis$
^del$
^diaf$
^dike$
-^diofa$
^donergesicht$
-^dönergesicht$
^dotr$
^dp$
^drecksack$
@@ -3089,30 +3029,36 @@
^dreckslesbe$
^dreckstuck$
^dreckstück$
+^drogenabhangige$
+^drogenabhangiger$
^drogenabhängige$
^drogenabhängiger$
-^drogenabhngige$
-^drogenabhngiger$
^drogensuchtige$
-^drogensüchtige$
^drogensuchtiger$
+^drogensüchtige$
^drogensüchtiger$
^drol.*
^dschihad$
-^duce$
^dugland$
^dummenuss$
^dummkopf$
^dummsau$
^dunnpfiff$
-^dünnpfiff$
^dyke$
+^débilmental$
+^dégobillage$
+^dégobiller$
+^dégueuler$
+^dégueulis$
+^dönergesicht$
+^dünnpfiff$
+^ebahhый.*
+^ebaka.*
+^ebapb.*
+^ebyh.*
+^ebлr.*
^eichel$
^eiil$
-^éjaculateur$
-^éjaculation$
-^éjaculé$
-^éjaculer$
^ejakulat$
^ejakulieren$
^ejakulierer$
@@ -3139,7 +3085,6 @@
^estupro$
^eta$
^etarra$
-^eunuchimneoprenanzug$
^euthanasie$
^evolutionsbremse$
^fadge$
@@ -3148,7 +3093,6 @@
^fart$
^faschist$
^fascho$
-^fatma$
^faz-meumbroche$
^fazergaiolas$
^fazerumbobo$
@@ -3158,6 +3102,7 @@
^fdx$
^feck.*
^felch.*
+^feltch.*
^fenian.*
^fettarsch$
^fettesau$
@@ -3167,6 +3112,7 @@
^fettwanst$
^ffs$
^fica.*
+^ficat.*
^filhadaputa$
^filhodaputa$
^filhodeumagrandeputa$
@@ -3184,20 +3130,17 @@
^foll.*
^fook.*
^fotac$
-^fotaç$
^fotass$
^fotasse$
+^fotaç$
^foutre$
^fresse$
^freudenmadchen$
^freudenmädchen$
-^fuccd$
-^fucced$
-^fuccer$
-^fucces$
-^fuccing$
-^fuccs$
^fude$
+^fuder$
+^fudida$
+^fudido$
^fudilhao$
^fudilhão$
^fufa$
@@ -3218,12 +3161,10 @@
^git$
^gitan$
^glatze$
-^golfa$
^gook$
+^gordoseboso$
^gosse$
^gosses$
-^gostosa$
-^gostoso$
^gsp0t.*
^gspot.*
^gueule$
@@ -3245,14 +3186,12 @@
^hoor$
^hori$
^hosenpiesler$
-^hosenscheißer$
^huhnerarsch$
^hühnerarsch$
^ih8.*
^ische$
^isil$
^isis$
-^j[óo]d.*
^jap$
^jaysis.*
^jaysus.*
@@ -3260,29 +3199,27 @@
^jili$
^jism.*
^jiz$
-^jock$
+^jod.*
^jos$
^judensau$
^judenschwein$
-^julai$
+^jód.*
^kak$
^kamper$
+^karalho$
^karalhu$
^kastrat$
^kastrieren$
^kastrierer$
^kenga$
^kifi$
-^kiki$
^kill.*
^kinderschander$
-^kinderschänder$
^kinderschanderin$
+^kinderschänder$
^kinderschänderin$
^kitzler$
^klitoris$
-^klugscheißer$
-^klugscheißerin$
^knackarsch$
^knackers.*
^knob$
@@ -3297,10 +3234,9 @@
^kraut$
^kristallnacht$
^ku$
-^kú$
-^kübler$
^kuzão$
^kz$
+^kú$
^lambe-cus$
^lambe-meoregodocu$
^lambecus$
@@ -3314,8 +3250,8 @@
^lefa$
^lefero$
^leichenschander$
-^leichenschänder$
^leichenschanderin$
+^leichenschänder$
^leichenschänderin$
^lesbenhasser$
^lesbensau$
@@ -3332,8 +3268,8 @@
^mamar$
^mamas$
^mamon$
+^mamona$
^mangalho$
-^maric[oó].*
^mariquinha$
^mariquita$
^masturbação$
@@ -3345,8 +3281,8 @@
^mijada$
^mijado$
^mijao$
-^mijão$
^mijar$
+^mijão$
^minete$
^minge$
^minger$
@@ -3359,17 +3295,15 @@
^mona$
^mong$
^monsterschwanz$
-^moron$
^mota$
^muschi$
^muschirotz$
^mutha.*
^narco$
-^narço$
^narso$
^narsso$
-^negão$
-^negona$
+^narço$
+^nehnc.*
^nggr.*
^nhenha$
^niaiserie$
@@ -3377,14 +3311,13 @@
^niak$
^nig$
^niga$
-^nip$
^nique$
^niquer$
^niqueur$
^nob$
^nonce$
+^nopho.*
^npd$
-^nsb.*
^nsu$
^olhodocu$
^onanierfaust$
@@ -3407,32 +3340,23 @@
^pd$
^pecker$
^peda$
-^pédale$
-^pédé$
^pedete$
^pedo.*
-^pédophile$
^pedrado$
-^pêga$
-^pêgas$
^peichacha$
^peidar$
^peido$
^peidosa$
^peidoso$
-^peitão$
-^peitos$
^peituda$
^peixaxa$
^peixota$
^pelote$
^pene$
-^penetração$
^penetrar$
+^penetração$
^penetrieren$
^penetrierer$
-^pénis$
-^pênis$
^penner$
^pentelho$
^pepa$
@@ -3441,14 +3365,10 @@
^pferdearsch$
^phuk$
^pica$
-^piçada$
^picarabo$
^picarabos$
^picas$
^pichota$
-^piço$
-^piçudo$
-^piçudu$
^piesler$
^pik$
^pikey.*
@@ -3456,6 +3376,7 @@
^pilila$
^pilinha.*
^pillermann$
+^pimperperle$
^pinar$
^pine$
^piner$
@@ -3468,13 +3389,15 @@
^pitareca$
^pito.*
^pivia$
-^pívia$
^pixa.*
+^piçada$
+^piço$
+^piçudo$
+^piçudu$
^plote$
^plotte$
^poches$
^polacke$
-^poo$
^poof$
^poon$
^popel$
@@ -3483,7 +3406,7 @@
^poplerin$
^popoklatscher$
^popoklatscherin$
-^porr(a|as|inha|inhas)$
+^porra$
^pos$
^pottsau$
^pouf$
@@ -3497,42 +3420,58 @@
^pron.*
^prosi$
^prostipega$
-^prostiuierter$
^pube$
^puceau$
^pucelle$
^puffbesucher$
-^puñal$
-^puntalrrabo$
-^put(a|as|o|os).*
-^put(a|o|inh|ão|ões).*
+^punheta$
+^punhetaca$
+^punhetassa$
+^punhetaça$
+^punheteiro$
+^puta.*
+^putas.*
^puti$
+^putinha$
+^putinho$
+^puto.*
+^putos.*
+^putão$
+^puñal$
+^pédale$
+^pédophile$
+^pédé$
+^pénis$
+^pêga$
+^pêgas$
+^pênis$
+^pívia$
^quadratarsch$
^quadratarschloch$
^queca$
-^queer$
^quenga$
^queue$
^quickie$
^quiqui$
+^qxz$
^rabaco$
^rabeta$
^rabo$
^raep.*
^rameira$
^rammler$
+^rapariga$
^rapidinha$
^rata$
^ratonner$
^reeee$
^regodocu$
^resmenga$
-^rfa.*
+^reй$
^riesenlummel$
^riesenlümmel$
^riesenschwanz$
^rimming.*
-^rôla$
^rosette$
^rosettendehner$
^rosettenlecker$
@@ -3543,8 +3482,8 @@
^roupette$
^roupettes$
^rouston$
+^rôla$
^s1ut$
-^s1utd$
^sa$
^sackarsch$
^saco$
@@ -3554,9 +3493,12 @@
^salopard$
^sambo$
^samenerguss$
+^sapata$
+^sapatona$
+^sapatão$
+^sarasa$
^sau$
^saufer$
-^säufer$
^saufkopf$
^saufnase$
^saukerl$
@@ -3566,13 +3508,8 @@
^schamhaarschadel$
^schamhaarschädel$
^scheisendreck$
-^scheißdreck$
-^scheißendreck$
-^scheißer$
-^scheißhaufen$
^schickse$
^schleimhaufen$
-^schleimscheißer$
^schlick$
^schnapsdrossel$
^schutzstaffel$
@@ -3588,17 +3525,13 @@
^schwulesau$
^schwulette$
^schwuli$
-^scopare$
-^scopata$
-^scopate$
-^screw$
^seins$
-^sêmen$
^senaita$
^shag.*
^sida$
^sidosa$
^sidoso$
+^siririca$
^sittenstrolch$
^skinhead$
^slag$
@@ -3619,7 +3552,6 @@
^ss$
^stfu.*
^stinkschwanz$
-^stinktier$
^stoner$
^strichjunge$
^striptease$
@@ -3629,9 +3561,11 @@
^subno$
^sudaca$
^suffkopp$
+^säufer$
+^sêmen$
^tabernacle$
+^tafuder$
^tard$
-^tart$
^taspe$
^tasspe$
^taubenuss$
@@ -3641,17 +3575,15 @@
^terf.*
^tering.*
^tesao$
-^tesão$
^teso$
^testicules$
^tesuda$
^tesudo$
+^tesão$
^teta$
^tetalhuda$
-^tétons$
^tetta$
^tette$
-^tettina$
^tetuda$
^teub$
^teube$
@@ -3668,37 +3600,40 @@
^tocameogadanho$
^tocameógadanho$
^tomanocu$
-^tománocu$
^tomarnocu$
-^tontadelhaba$
+^tománocu$
^totons$
^transar$
^transe$
+^traveca$
+^traveco$
^trepar$
^trincapicas$
^trincapiças$
-^troio$
+^troia.*
^trombada$
^trottel$
^tucke$
^turd$
^turkensau$
-^türkensau$
^turkenschwein$
+^tétons$
+^türkensau$
^türkenschwein$
^vacarrona$
^vacoila$
^vag$
^vaiapanharnocu$
^vaicomernocu$
+^vaisefuder$
^vaitomarnocu$
^vaitomarnoseucu$
^vaj$
^verdammterarsch$
^verdammtesarschloch$
^vergalhao$
-^vergalhão$
^vergalho$
+^vergalhão$
^vergasung$
^verge$
^vergewaltigen$
@@ -3706,65 +3641,71 @@
^vergewaltigte$
^vergewaltigter$
^viadinho$
+^viado$
^vibrator$
^vir-me$
^virme$
-^vivaduce$
-^vivailduce$
^vollspacken$
^volltrottel$
^waffen-ss$
^waffenss$
+^wank$
^wap$
^warmerbruder$
-^wduce$
^weed.*
^wiet$
-^wilduce$
-^wischsarsch$
^wog$
^wop$
^xota$
^xoxota$
+^xyn$
+^xyй.*
+^xyлn$
^yeule$
^yid$
^zicke$
^zimtzicke$
^zipfelklatscher$
-^zobbi$
-^zobby$
-^zobi$
-^zoby$
^zuhalter$
^zuhälter$
^zyklonb$
-^блин$
+^ânus$
+^анально.*
+^анус.*
^бля$
^геи$
^гей$
+^героин.*
^драть$
+^дура.*
^епти.*
+^лоли.*
+^лох$
^мудач.*
+^орально.*
+^педо.*
+^пидар.*
^порн$
^порно.*
^рожа$
^рыло.*
^сукин$
+^сучка.*
^сучонок$
^трахнут.*
+^урод.*
^урылок$
+^харя.*
^хач$
^хер$
^хули$
^черт$
^чмо$
+^чурка.*
^шлюш.*
-^씨발$
-^애자.*
-^운지.*
-^자지$
^アオツテ.*
^アホ$
+^オナル.*
^カカカキカクカケカコカカ.*
^コロシタ.*
^コロシテ.*
@@ -3774,4 +3715,10 @@
^ダツプン$
^チンゲ$
^バカ$
-^リスカ$
\ No newline at end of file
+^リスカ$
+^씨발$
+^아날$
+^애널$
+^애자.*
+^운지.*
+^자지$
\ No newline at end of file
diff --git a/PKHeX.WinForms/Resources/text/lang_de.txt b/PKHeX.WinForms/Resources/text/lang_de.txt
index 26189075f..fa84871ee 100644
--- a/PKHeX.WinForms/Resources/text/lang_de.txt
+++ b/PKHeX.WinForms/Resources/text/lang_de.txt
@@ -170,7 +170,7 @@ LocalizedDescription.CheckWordFilter=Überprüft Spitznamen und Trainer Namen na
LocalizedDescription.CurrentHandlerMismatch=Schweregrad mit dem der aktuelle Besitzer eines Pokémons in der Legalitäts Analyse geprüft wird.
LocalizedDescription.DefaultBoxExportNamer=Selected File namer to use for box exports for the GUI, if multiple are available.
LocalizedDescription.DisableScalingDpi=Disables the GUI scaling based on Dpi on program startup, falling back to font scaling.
-LocalizedDescription.DisableWordFilterPastGen=Disables the Word Filter check for formats prior to 3DS-era.
+LocalizedDescription.DisableWordFilterPastGen=Disables retroactive Word Filter checks for earlier formats.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.Female=Female gender color.
diff --git a/PKHeX.WinForms/Resources/text/lang_en.txt b/PKHeX.WinForms/Resources/text/lang_en.txt
index 4137c3175..1612f09e0 100644
--- a/PKHeX.WinForms/Resources/text/lang_en.txt
+++ b/PKHeX.WinForms/Resources/text/lang_en.txt
@@ -166,11 +166,11 @@ LocalizedDescription.BAKEnabled=Automatic Save File Backups Enabled
LocalizedDescription.BAKPrompt=Tracks if the "Create Backup" prompt has been issued to the user.
LocalizedDescription.BoxExport=Settings to use for box exports.
LocalizedDescription.CheckActiveHandler=Checks the last loaded player save file data and Current Handler state to determine if the Pokémon's Current Handler does not match the expected value.
-LocalizedDescription.CheckWordFilter=Checks player given Nicknames and Trainer Names for profanity. Bad words will be flagged using the 3DS console's regex lists.
+LocalizedDescription.CheckWordFilter=Checks player given Nicknames and Trainer Names for profanity. Bad words will be flagged using the appropriate console's lists.
LocalizedDescription.CurrentHandlerMismatch=Severity to flag a Legality Check if Pokémon's Current Handler does not match the expected value.
LocalizedDescription.DefaultBoxExportNamer=Selected File namer to use for box exports for the GUI, if multiple are available.
LocalizedDescription.DisableScalingDpi=Disables the GUI scaling based on Dpi on program startup, falling back to font scaling.
-LocalizedDescription.DisableWordFilterPastGen=Disables the Word Filter check for formats prior to 3DS-era.
+LocalizedDescription.DisableWordFilterPastGen=Disables retroactive Word Filter checks for earlier formats.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.Female=Female gender color.
diff --git a/PKHeX.WinForms/Resources/text/lang_fr.txt b/PKHeX.WinForms/Resources/text/lang_fr.txt
index c248d4f1e..999e1bd82 100644
--- a/PKHeX.WinForms/Resources/text/lang_fr.txt
+++ b/PKHeX.WinForms/Resources/text/lang_fr.txt
@@ -166,11 +166,11 @@ LocalizedDescription.BAKEnabled=Sauvegarde automatique des fichiers activée
LocalizedDescription.BAKPrompt=Tracks if the "Create Backup" prompt has been issued to the user.
LocalizedDescription.BoxExport=Settings to use for box exports.
LocalizedDescription.CheckActiveHandler=Checks the last loaded player save file data and Current Handler state to determine if the Pokémon's Current Handler does not match the expected value.
-LocalizedDescription.CheckWordFilter=Checks player given Nicknames and Trainer Names for profanity. Bad words will be flagged using the 3DS console's regex lists.
+LocalizedDescription.CheckWordFilter=Checks player given Nicknames and Trainer Names for profanity. Bad words will be flagged using the appropriate console's lists.
LocalizedDescription.CurrentHandlerMismatch=Severity to flag a Legality Check if Pokémon's Current Handler does not match the expected value.
LocalizedDescription.DefaultBoxExportNamer=Selected File namer to use for box exports for the GUI, if multiple are available.
LocalizedDescription.DisableScalingDpi=Disables the GUI scaling based on Dpi on program startup, falling back to font scaling.
-LocalizedDescription.DisableWordFilterPastGen=Disables the Word Filter check for formats prior to 3DS-era.
+LocalizedDescription.DisableWordFilterPastGen=Disables retroactive Word Filter checks for earlier formats.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.Female=Female gender color.
diff --git a/PKHeX.WinForms/Resources/text/lang_it.txt b/PKHeX.WinForms/Resources/text/lang_it.txt
index 33f583905..08fbb63d4 100644
--- a/PKHeX.WinForms/Resources/text/lang_it.txt
+++ b/PKHeX.WinForms/Resources/text/lang_it.txt
@@ -170,7 +170,7 @@ LocalizedDescription.CheckWordFilter=Controlla la volgarità di Soprannomi e Nom
LocalizedDescription.CurrentHandlerMismatch=Forza una segnalazione di legalità se l'Ultimo Allenatore non corrisponde al valore aspettato.
LocalizedDescription.DefaultBoxExportNamer=Selected File namer to use for box exports for the GUI, if multiple are available.
LocalizedDescription.DisableScalingDpi=Disables the GUI scaling based on Dpi on program startup, falling back to font scaling.
-LocalizedDescription.DisableWordFilterPastGen=Disables the Word Filter check for formats prior to 3DS-era.
+LocalizedDescription.DisableWordFilterPastGen=Disables retroactive Word Filter checks for earlier formats.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.Female=Female gender color.
diff --git a/PKHeX.WinForms/Resources/text/lang_ko.txt b/PKHeX.WinForms/Resources/text/lang_ko.txt
index 0c00e4637..395630b77 100644
--- a/PKHeX.WinForms/Resources/text/lang_ko.txt
+++ b/PKHeX.WinForms/Resources/text/lang_ko.txt
@@ -166,11 +166,11 @@ LocalizedDescription.BAKEnabled=세이브 파일 자동 백업 사용
LocalizedDescription.BAKPrompt=Tracks if the "Create Backup" prompt has been issued to the user.
LocalizedDescription.BoxExport=Settings to use for box exports.
LocalizedDescription.CheckActiveHandler=Checks the last loaded player save file data and Current Handler state to determine if the Pokémon's Current Handler does not match the expected value.
-LocalizedDescription.CheckWordFilter=Checks player given Nicknames and Trainer Names for profanity. Bad words will be flagged using the 3DS console's regex lists.
+LocalizedDescription.CheckWordFilter=Checks player given Nicknames and Trainer Names for profanity. Bad words will be flagged using the appropriate console's lists.
LocalizedDescription.CurrentHandlerMismatch=Severity to flag a Legality Check if Pokémon's Current Handler does not match the expected value.
LocalizedDescription.DefaultBoxExportNamer=Selected File namer to use for box exports for the GUI, if multiple are available.
LocalizedDescription.DisableScalingDpi=Disables the GUI scaling based on Dpi on program startup, falling back to font scaling.
-LocalizedDescription.DisableWordFilterPastGen=Disables the Word Filter check for formats prior to 3DS-era.
+LocalizedDescription.DisableWordFilterPastGen=Disables retroactive Word Filter checks for earlier formats.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.Female=Female gender color.
diff --git a/PKHeX.WinForms/Resources/text/lang_zh-Hant.txt b/PKHeX.WinForms/Resources/text/lang_zh-Hant.txt
index 985a2dac4..6cabba2b5 100644
--- a/PKHeX.WinForms/Resources/text/lang_zh-Hant.txt
+++ b/PKHeX.WinForms/Resources/text/lang_zh-Hant.txt
@@ -170,7 +170,7 @@ LocalizedDescription.CheckWordFilter=檢查昵稱和訓練家名稱是否存在
LocalizedDescription.CurrentHandlerMismatch=如果寶可夢現時持有人與預期值不匹配,則使用高等級合法性檢查。
LocalizedDescription.DefaultBoxExportNamer=Selected File namer to use for box exports for the GUI, if multiple are available.
LocalizedDescription.DisableScalingDpi=Disables the GUI scaling based on Dpi on program startup, falling back to font scaling.
-LocalizedDescription.DisableWordFilterPastGen=Disables the Word Filter check for formats prior to 3DS-era.
+LocalizedDescription.DisableWordFilterPastGen=Disables retroactive Word Filter checks for earlier formats.
LocalizedDescription.ExportLegalityVerboseProperties=Display all properties of the encounter (auto-generated) when exporting a verbose report.
LocalizedDescription.ExtraProperties=Extra entity properties to try and show in addition to the default properties displayed.
LocalizedDescription.Female=Female gender color.
diff --git a/Tests/PKHeX.Core.Tests/Legality/LegalityTests.cs b/Tests/PKHeX.Core.Tests/Legality/LegalityTests.cs
index ed8d0b968..f254ff910 100644
--- a/Tests/PKHeX.Core.Tests/Legality/LegalityTests.cs
+++ b/Tests/PKHeX.Core.Tests/Legality/LegalityTests.cs
@@ -13,13 +13,78 @@ public class LegalityTest
static LegalityTest() => TestUtil.InitializeLegality();
[Theory]
- [InlineData("censor")]
- [InlineData("buttnugget")]
- [InlineData("18넘")]
- [InlineData("inoffensive", false)]
- public void CensorsBadWords(string badword, bool value = true)
+ [InlineData("Ass")]
+ [InlineData("Ass")]
+ [InlineData("9/11")]
+ [InlineData("9/11", false)]
+ [InlineData("baise")]
+ [InlineData("baisé", false)]
+ [InlineData("BAISÉ", false)]
+ [InlineData("scheiße")]
+ [InlineData("SCHEISSE", false)]
+ [InlineData("RICCHIONE ")]
+ [InlineData("RICCHIONE", false)]
+ [InlineData("せっくす")]
+ [InlineData("セックス")]
+ [InlineData("ふぁっく", false)]
+ [InlineData("ファック", false)]
+ [InlineData("kofagrigus", false)]
+ [InlineData("cofagrigus", false)]
+ public void CensorsBadWordsGen5(string badword, bool value = true)
{
- WordFilter.TryMatch(badword, out _).Should().Be(value, "the word should have been identified as a bad word");
+ var result = WordFilter5.IsFiltered(badword, out _);
+ result.Should().Be(value, $"the word {(value ? "should" : "should not")} have been identified as a bad word");
+ }
+
+ [Theory]
+ [InlineData("kofagrigus")]
+ [InlineData("cofagrigus")]
+ [InlineData("Cofagrigus", false)]
+ public void CensorsBadWordsGen6(string badword, bool value = true)
+ {
+ var result = WordFilter3DS.IsFilteredGen6(badword, out _);
+ result.Should().Be(value, $"the word {(value ? "should" : "should not")} have been identified as a bad word");
+ }
+
+ [Theory]
+ [InlineData("badword")]
+ [InlineData("butt nuggets")]
+ [InlineData("18년")]
+ [InlineData("ふぁっく")]
+ [InlineData("gcd")]
+ [InlineData("P0RN")]
+ [InlineData("gmail.com")]
+ [InlineData("kofagrigus")]
+ [InlineData("cofagrigus", false)]
+ [InlineData("Cofagrigus", false)]
+ [InlineData("inoffensive", false)]
+ public void CensorsBadWordsGen7(string badword, bool value = true)
+ {
+ var result = WordFilter3DS.IsFilteredGen7(badword, out _);
+ result.Should().Be(value, $"the word {(value ? "should" : "should not")} have been identified as a bad word");
+ }
+
+ [Theory]
+ [InlineData("badword")]
+ [InlineData("butt nuggets")]
+ [InlineData("18넘")]
+ [InlineData("ふぁっく")]
+ [InlineData("ヴァギナ")]
+ [InlineData("オッパイ")]
+ [InlineData("ファッ゙ク")]
+ [InlineData("ファヅク", false)]
+ [InlineData("ファッグ", false)]
+ [InlineData("sh!t")]
+ [InlineData("sh!t", false)]
+ [InlineData("abu$e")]
+ [InlineData("kofagrigus")]
+ [InlineData("cofagrigus", false)]
+ [InlineData("Cofagrigus", false)]
+ [InlineData("inoffensive", false)]
+ public void CensorsBadWordsSwitch(string badword, bool value = true)
+ {
+ var result = WordFilterNX.IsFiltered(badword, out _, EntityContext.Gen9);
+ result.Should().Be(value, $"the word {(value ? "should" : "should not")} have been identified as a bad word");
}
[Theory]