bekindprofanityfilter 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CONTRIBUTORS.md +106 -0
  2. package/LICENSE +22 -0
  3. package/README.md +1015 -0
  4. package/allprofanity.config.example.json +35 -0
  5. package/bin/init.js +49 -0
  6. package/config.schema.json +163 -0
  7. package/dist/algos/aho-corasick.d.ts +75 -0
  8. package/dist/algos/aho-corasick.js +238 -0
  9. package/dist/algos/aho-corasick.js.map +1 -0
  10. package/dist/algos/bloom-filter.d.ts +103 -0
  11. package/dist/algos/bloom-filter.js +208 -0
  12. package/dist/algos/bloom-filter.js.map +1 -0
  13. package/dist/algos/context-patterns.d.ts +102 -0
  14. package/dist/algos/context-patterns.js +484 -0
  15. package/dist/algos/context-patterns.js.map +1 -0
  16. package/dist/index.d.ts +1332 -0
  17. package/dist/index.js +2631 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/innocence-scoring.d.ts +23 -0
  20. package/dist/innocence-scoring.js +118 -0
  21. package/dist/innocence-scoring.js.map +1 -0
  22. package/dist/language-detector.d.ts +162 -0
  23. package/dist/language-detector.js +952 -0
  24. package/dist/language-detector.js.map +1 -0
  25. package/dist/language-dicts.d.ts +60 -0
  26. package/dist/language-dicts.js +2718 -0
  27. package/dist/language-dicts.js.map +1 -0
  28. package/dist/languages/arabic-words.d.ts +10 -0
  29. package/dist/languages/arabic-words.js +1649 -0
  30. package/dist/languages/arabic-words.js.map +1 -0
  31. package/dist/languages/bengali-words.d.ts +10 -0
  32. package/dist/languages/bengali-words.js +1696 -0
  33. package/dist/languages/bengali-words.js.map +1 -0
  34. package/dist/languages/brazilian-words.d.ts +10 -0
  35. package/dist/languages/brazilian-words.js +2122 -0
  36. package/dist/languages/brazilian-words.js.map +1 -0
  37. package/dist/languages/chinese-words.d.ts +10 -0
  38. package/dist/languages/chinese-words.js +2728 -0
  39. package/dist/languages/chinese-words.js.map +1 -0
  40. package/dist/languages/english-primary-all-languages.d.ts +23 -0
  41. package/dist/languages/english-primary-all-languages.js +36894 -0
  42. package/dist/languages/english-primary-all-languages.js.map +1 -0
  43. package/dist/languages/english-words.d.ts +5 -0
  44. package/dist/languages/english-words.js +5156 -0
  45. package/dist/languages/english-words.js.map +1 -0
  46. package/dist/languages/french-words.d.ts +10 -0
  47. package/dist/languages/french-words.js +2326 -0
  48. package/dist/languages/french-words.js.map +1 -0
  49. package/dist/languages/german-words.d.ts +10 -0
  50. package/dist/languages/german-words.js +2633 -0
  51. package/dist/languages/german-words.js.map +1 -0
  52. package/dist/languages/hindi-words.d.ts +10 -0
  53. package/dist/languages/hindi-words.js +2341 -0
  54. package/dist/languages/hindi-words.js.map +1 -0
  55. package/dist/languages/innocent-words.d.ts +41 -0
  56. package/dist/languages/innocent-words.js +109 -0
  57. package/dist/languages/innocent-words.js.map +1 -0
  58. package/dist/languages/italian-words.d.ts +10 -0
  59. package/dist/languages/italian-words.js +2287 -0
  60. package/dist/languages/italian-words.js.map +1 -0
  61. package/dist/languages/japanese-words.d.ts +11 -0
  62. package/dist/languages/japanese-words.js +2557 -0
  63. package/dist/languages/japanese-words.js.map +1 -0
  64. package/dist/languages/korean-words.d.ts +10 -0
  65. package/dist/languages/korean-words.js +2509 -0
  66. package/dist/languages/korean-words.js.map +1 -0
  67. package/dist/languages/russian-words.d.ts +10 -0
  68. package/dist/languages/russian-words.js +2175 -0
  69. package/dist/languages/russian-words.js.map +1 -0
  70. package/dist/languages/spanish-words.d.ts +11 -0
  71. package/dist/languages/spanish-words.js +2536 -0
  72. package/dist/languages/spanish-words.js.map +1 -0
  73. package/dist/languages/tamil-words.d.ts +10 -0
  74. package/dist/languages/tamil-words.js +1722 -0
  75. package/dist/languages/tamil-words.js.map +1 -0
  76. package/dist/languages/telugu-words.d.ts +10 -0
  77. package/dist/languages/telugu-words.js +1739 -0
  78. package/dist/languages/telugu-words.js.map +1 -0
  79. package/dist/romanization-detector.d.ts +50 -0
  80. package/dist/romanization-detector.js +779 -0
  81. package/dist/romanization-detector.js.map +1 -0
  82. package/package.json +79 -0
@@ -0,0 +1,2326 @@
1
+ // src/languages/french-words.ts
2
+ /**
3
+ * French profanity words list
4
+ * Contains common profanities, insults, and offensive terms. Includes variations.
5
+ * ⚠️ Warning: This file contains explicit language in French
6
+ */
7
+ const frenchBadWords = {
8
+ // ========================================
9
+ // === Core Profanities & Genitalia =====
10
+ // ========================================
11
+ "merde": { s: 3, c: 4 },
12
+ "putain": { s: 3, c: 4 },
13
+ "con": { s: 3, c: 4 },
14
+ "conne": { s: 1, c: 4 },
15
+ "connard": { s: 3, c: 4 },
16
+ "connasse": { s: 3, c: 4 },
17
+ "cul": { s: 4, c: 3 },
18
+ "bite": { s: 3, c: 4 },
19
+ "chatte": { s: 5, c: 5 },
20
+ "couilles": { s: 4, c: 4 },
21
+ "enculé": { s: 4, c: 3 },
22
+ "enculée": { s: 5, c: 5 },
23
+ "salope": { s: 3, c: 4 },
24
+ "salaud": { s: 3, c: 4 },
25
+ "bordel": { s: 4, c: 5 },
26
+ "foutre": { s: 4, c: 5 },
27
+ "niquer": { s: 4, c: 5 },
28
+ "baise": { s: 4, c: 3 },
29
+ "baiser": { s: 4, c: 5 },
30
+ "chier": { s: 4, c: 5 },
31
+ "pisser": { s: 3, c: 4 },
32
+ "gueule": { s: 4, c: 3 },
33
+ // ========================================
34
+ // === Variations & Related Terms =======
35
+ // ========================================
36
+ // --- Merde ---
37
+ "merdeux": { s: 3, c: 4 },
38
+ "merdeuse": { s: 3, c: 5 },
39
+ "merdique": { s: 3, c: 5 },
40
+ "emmerder": { s: 3, c: 4 },
41
+ "emmerdeur": { s: 3, c: 4 },
42
+ "emmerdeuse": { s: 3, c: 4 },
43
+ "démerder": { s: 3, c: 4 },
44
+ "se démerder": { s: 3, c: 4 },
45
+ "putain de merde": { s: 3, c: 5 },
46
+ "sac à merde": { s: 3, c: 5 },
47
+ // --- Putain ---
48
+ "putain de": { s: 3, c: 5 },
49
+ "fils de pute": { s: 3, c: 4 },
50
+ "fille de pute": { s: 3, c: 4 },
51
+ "putasserie": { s: 5, c: 4 },
52
+ "pute": { s: 5, c: 4 },
53
+ // --- Con / Connard ---
54
+ "connerie": { s: 1, c: 4 },
55
+ "déconner": { s: 3, c: 4 },
56
+ "à la con": { s: 1, c: 4 },
57
+ "pauvre con": { s: 1, c: 4 },
58
+ "roi des cons": { s: 1, c: 4 },
59
+ // --- Cul ---
60
+ "trou du cul": { s: 3, c: 4 },
61
+ "trouduc": { s: 3, c: 4 },
62
+ "lèche-cul": { s: 3, c: 4 },
63
+ "botter le cul": { s: 3, c: 4 },
64
+ "avoir le cul bordé de nouilles": { s: 3, c: 4 },
65
+ "se casser le cul": { s: 3, c: 4 },
66
+ "faux-cul": { s: 3, c: 4 },
67
+ // --- Bite / Chatte / Couilles ---
68
+ "casse-couilles": { s: 3, c: 4 },
69
+ "avoir des couilles": { s: 4, c: 4 },
70
+ "petite bite": { s: 4, c: 4 },
71
+ "lécher la chatte": { s: 4, c: 4 },
72
+ "sucer la bite": { s: 4, c: 4 },
73
+ // --- Enculé / Salope / Salaud ---
74
+ "enculage": { s: 3, c: 4 },
75
+ "enculer (qqn)": { s: 3, c: 5 },
76
+ "va te faire enculer": { s: 3, c: 5 },
77
+ "espèce de salope": { s: 3, c: 4 },
78
+ "grosse salope": { s: 1, c: 4 },
79
+ "vieux salaud": { s: 3, c: 4 },
80
+ // --- Bordel ---
81
+ "quel bordel!": { s: 3, c: 5 },
82
+ "foutre le bordel": { s: 3, c: 4 },
83
+ // --- Foutre / Niquer / Baiser ---
84
+ "va te faire foutre": { s: 3, c: 5 },
85
+ "rien à foutre": { s: 3, c: 5 },
86
+ "s'en foutre": { s: 3, c: 5 },
87
+ "je m'en fous": { s: 3, c: 5 },
88
+ "foutu": { s: 3, c: 4 },
89
+ "foutue": { s: 3, c: 4 },
90
+ "nique ta mère": { s: 3, c: 5 },
91
+ "nique sa mère": { s: 3, c: 5 },
92
+ "va te faire niquer": { s: 3, c: 5 },
93
+ "baisable": { s: 3, c: 5 },
94
+ "baiseur": { s: 3, c: 4 },
95
+ "baiseuse": { s: 3, c: 5 },
96
+ // --- Chier / Pisser ---
97
+ "fait chier": { s: 3, c: 4 },
98
+ "casse les pieds": { s: 1, c: 4 },
99
+ "va chier": { s: 3, c: 5 },
100
+ "pipi": { s: 3, c: 4 },
101
+ // --- Gueule ---
102
+ "ta gueule!": { s: 3, c: 5 },
103
+ "ferme ta gueule": { s: 3, c: 4 },
104
+ "gueuler": { s: 3, c: 4 },
105
+ "engueuler": { s: 3, c: 4 },
106
+ "gueule de bois": { s: 3, c: 4 },
107
+ "sale gueule": { s: 1, c: 4 },
108
+ // ========================================
109
+ // === Insults (Stupidity, etc.) ========
110
+ // ========================================
111
+ "idiot": { s: 1, c: 4 },
112
+ "idiote": { s: 1, c: 4 },
113
+ "imbécile": { s: 1, c: 4 },
114
+ "stupide": { s: 1, c: 4 },
115
+ "débile": { s: 1, c: 4 },
116
+ "crétin": { s: 1, c: 4 },
117
+ "crétine": { s: 1, c: 4 },
118
+ "abruti": { s: 1, c: 4 },
119
+ "abrutie": { s: 1, c: 4 },
120
+ "andouille": { s: 1, c: 4 },
121
+ "bouffon": { s: 1, c: 4 },
122
+ "bouffonne": { s: 1, c: 4 },
123
+ "nul": { s: 1, c: 4 },
124
+ "nulle": { s: 1, c: 4 },
125
+ "minable": { s: 1, c: 4 },
126
+ "taré": { s: 1, c: 4 },
127
+ "tarée": { s: 1, c: 4 },
128
+ "cinglé": { s: 1, c: 4 },
129
+ "cinglée": { s: 1, c: 4 },
130
+ "fou": { s: 1, c: 4 },
131
+ "folle": { s: 1, c: 4 },
132
+ "niais": { s: 1, c: 4 },
133
+ "niaise": { s: 1, c: 4 },
134
+ // ========================================
135
+ // === Offensive Slurs (Sexuality, Race, etc.) ===
136
+ // ========================================
137
+ "pédé": { s: 5, c: 4 },
138
+ "gouine": { s: 5, c: 4 },
139
+ "travelo": { s: 5, c: 4 },
140
+ "nègre": { s: 5, c: 4 },
141
+ "négresse": { s: 5, c: 5 },
142
+ "bougnoule": { s: 5, c: 4 },
143
+ "chinetoque": { s: 5, c: 4 },
144
+ "rital": { s: 5, c: 4 },
145
+ "polack": { s: 3, c: 4 },
146
+ "yid": { s: 3, c: 4 },
147
+ "youpin": { s: 5, c: 4 },
148
+ "youpine": { s: 5, c: 4 },
149
+ // ========================================
150
+ // === Other Offensive Terms & Insults ==
151
+ // ========================================
152
+ "bâtard": { s: 1, c: 4 },
153
+ "bâtarde": { s: 3, c: 4 },
154
+ "ordure": { s: 1, c: 4 },
155
+ "pourriture": { s: 1, c: 4 },
156
+ "raclure": { s: 1, c: 4 },
157
+ "fumier": { s: 3, c: 4 },
158
+ "chien": { s: 1, c: 4 },
159
+ "chienne": { s: 1, c: 4 },
160
+ "porc": { s: 1, c: 4 },
161
+ "cochon": { s: 1, c: 4 },
162
+ "cochonne": { s: 1, c: 4 },
163
+ "vache": { s: 1, c: 4 },
164
+ "chameau": { s: 1, c: 4 },
165
+ "morue": { s: 5, c: 4 },
166
+ "thune": { s: 1, c: 3 },
167
+ "pognon": { s: 1, c: 3 },
168
+ "fric": { s: 1, c: 3 },
169
+ "crevard": { s: 1, c: 4 },
170
+ "crevarde": { s: 1, c: 4 },
171
+ "clochard": { s: 1, c: 4 },
172
+ "clocharde": { s: 1, c: 4 },
173
+ "moche": { s: 1, c: 4 },
174
+ "laid": { s: 3, c: 4 },
175
+ "laide": { s: 1, c: 4 },
176
+ "dégueulasse": { s: 1, c: 4 },
177
+ "puant": { s: 1, c: 4 },
178
+ "puante": { s: 1, c: 4 },
179
+ "plouc": { s: 1, c: 4 },
180
+ "pécor": { s: 1, c: 4 },
181
+ "blaireau": { s: 1, c: 4 },
182
+ "gland": { s: 3, c: 4 },
183
+ "branleur": { s: 1, c: 4 },
184
+ "branleuse": { s: 1, c: 4 },
185
+ "branler": { s: 4, c: 4 },
186
+ "se branler": { s: 4, c: 4 },
187
+ "ne rien branler": { s: 3, c: 5 },
188
+ "poufiasse": { s: 1, c: 4 },
189
+ // ========================================
190
+ // === Mild / Contextually Offensive ====
191
+ // ========================================
192
+ "mince": { s: 2, c: 3 },
193
+ "zut": { s: 1, c: 4 },
194
+ "flûte": { s: 1, c: 4 },
195
+ "saperlipopette": { s: 3, c: 4 },
196
+ "purée": { s: 2, c: 3 },
197
+ "punaise": { s: 2, c: 3 },
198
+ "sacré bleu": { s: 3, c: 4 },
199
+ "la vache!": { s: 3, c: 5 },
200
+ "dégage!": { s: 3, c: 5 },
201
+ "fiche le camp!": { s: 3, c: 5 },
202
+ "tais-toi!": { s: 3, c: 5 },
203
+ "enculé de ta race": { s: 3, c: 5 },
204
+ "ta race": { s: 3, c: 4 },
205
+ "pet": { s: 2, c: 3 },
206
+ "sale": { s: 2, c: 3 },
207
+ "couillon": { s: 1, c: 4 },
208
+ "branlette": { s: 3, c: 4 },
209
+ "tantouse": { s: 3, c: 4 },
210
+ "pédéraste": { s: 3, c: 4 },
211
+ "nique": { s: 3, c: 5 },
212
+ "jean-foutre": { s: 3, c: 4 },
213
+ // Additional French profanity & verlan
214
+ "baisé": { s: 3, c: 5 },
215
+ "bâtard de merde": { s: 3, c: 4 },
216
+ "bolosse": { s: 1, c: 3 },
217
+ "casse-toi": { s: 3, c: 4 },
218
+ "chiasse": { s: 1, c: 4 },
219
+ "chieurchieuse": { s: 3, c: 4 },
220
+ "couille molle": { s: 3, c: 4 },
221
+ "crève": { s: 5, c: 5 },
222
+ "enc": { s: 3, c: 4 },
223
+ "enfoiréenfoirée": { s: 3, c: 4 },
224
+ "fdp": { s: 3, c: 4 },
225
+ "fiotte": { s: 3, c: 4 },
226
+ "grognasse": { s: 1, c: 4 },
227
+ "keh": { s: 3, c: 4 },
228
+ "ken": { s: 3, c: 5 },
229
+ "keuf": { s: 3, c: 4 },
230
+ "meuf": { s: 3, c: 4 },
231
+ "nique sa race": { s: 3, c: 5 },
232
+ "niquer sa mère": { s: 3, c: 5 },
233
+ "ntm": { s: 3, c: 4 },
234
+ "pétasse": { s: 3, c: 4 },
235
+ "péteuxpéteuse": { s: 1, c: 4 },
236
+ "putain de bordel": { s: 3, c: 5 },
237
+ "putain de sa mère": { s: 3, c: 5 },
238
+ "roubignoles": { s: 4, c: 4 },
239
+ "salopard": { s: 3, c: 4 },
240
+ "saloperie": { s: 3, c: 4 },
241
+ "schnock": { s: 1, c: 4 },
242
+ "ta mère": { s: 3, c: 4 },
243
+ "ta mère la pute": { s: 5, c: 4 },
244
+ "trou de balle": { s: 3, c: 4 },
245
+ "trouillardtrouillarde": { s: 1, c: 4 },
246
+ "va te faire mettre": { s: 3, c: 5 },
247
+ "va niquer ta mère": { s: 3, c: 5 },
248
+ // ========================================
249
+ // === Compound Insults ==================
250
+ // ========================================
251
+ "espèce de connard": { s: 3, c: 4 },
252
+ "espèce de con": { s: 1, c: 4 },
253
+ "espèce de merde": { s: 3, c: 5 },
254
+ "sale con": { s: 1, c: 4 },
255
+ "sale pute": { s: 5, c: 4 },
256
+ "grosse pute": { s: 1, c: 4 },
257
+ "gros porc": { s: 1, c: 4 },
258
+ "gros con": { s: 1, c: 4 },
259
+ "grosse conne": { s: 1, c: 4 },
260
+ "gros dégueulasse": { s: 1, c: 4 },
261
+ "sale bâtard": { s: 3, c: 4 },
262
+ "sale chien": { s: 1, c: 4 },
263
+ "sale merde": { s: 3, c: 5 },
264
+ "sale enculé": { s: 3, c: 5 },
265
+ "espèce de salaud": { s: 3, c: 4 },
266
+ "espèce de raclure": { s: 1, c: 4 },
267
+ "espèce de fumier": { s: 3, c: 4 },
268
+ "espèce d'enfoiré": { s: 1, c: 4 },
269
+ "sac à foutre": { s: 1, c: 4 },
270
+ "tas de merde": { s: 3, c: 5 },
271
+ "face de cul": { s: 3, c: 4 },
272
+ "tête de noeud": { s: 4, c: 4 },
273
+ "tête de con": { s: 4, c: 4 },
274
+ "tête de bite": { s: 4, c: 4 },
275
+ "tête de merde": { s: 3, c: 5 },
276
+ "gueule de con": { s: 1, c: 4 },
277
+ "sombre con": { s: 1, c: 4 },
278
+ "sombre merde": { s: 3, c: 5 },
279
+ "triple buse": { s: 1, c: 4 },
280
+ "triple andouille": { s: 1, c: 4 },
281
+ "sale race": { s: 1, c: 4 },
282
+ "sous-merde": { s: 5, c: 5 },
283
+ "moins que rien": { s: 1, c: 4 },
284
+ "bonne à rien": { s: 1, c: 4 },
285
+ "bon à rien": { s: 1, c: 4 },
286
+ // ========================================
287
+ // === More Vulgar Phrases ===============
288
+ // ========================================
289
+ "chier dans la colle": { s: 3, c: 5 },
290
+ "se faire mettre": { s: 3, c: 5 },
291
+ "se faire enculer": { s: 3, c: 5 },
292
+ "se faire baiser": { s: 3, c: 5 },
293
+ "se faire niquer": { s: 3, c: 5 },
294
+ "aller se faire foutre": { s: 3, c: 5 },
295
+ "nique ta race": { s: 3, c: 5 },
296
+ "mange tes morts": { s: 3, c: 4 },
297
+ "je t'encule": { s: 3, c: 5 },
298
+ "je te baise": { s: 3, c: 5 },
299
+ "je te nique": { s: 3, c: 5 },
300
+ "nique la police": { s: 3, c: 5 },
301
+ "on t'a pas sonné": { s: 3, c: 4 },
302
+ "va te faire voir": { s: 3, c: 5 },
303
+ "va crever": { s: 5, c: 5 },
304
+ "crève la gueule ouverte": { s: 5, c: 5 },
305
+ "je t'emmerde": { s: 3, c: 5 },
306
+ "je te chie dessus": { s: 3, c: 5 },
307
+ "je te pisse dessus": { s: 3, c: 4 },
308
+ "ferme ta putain de gueule": { s: 3, c: 5 },
309
+ "bouffe ma bite": { s: 4, c: 4 },
310
+ "suce ma bite": { s: 4, c: 4 },
311
+ "lèche-moi le cul": { s: 3, c: 4 },
312
+ "tu pues de la gueule": { s: 3, c: 4 },
313
+ "tu pues du cul": { s: 3, c: 4 },
314
+ // ========================================
315
+ // === Quebec French (Joual) =============
316
+ // ========================================
317
+ "tabernac": { s: 3, c: 4 },
318
+ "tabarnak": { s: 3, c: 4 },
319
+ "câlice": { s: 3, c: 4 },
320
+ "calice": { s: 3, c: 4 },
321
+ "crisse": { s: 3, c: 4 },
322
+ "ostie": { s: 3, c: 4 },
323
+ "osti": { s: 3, c: 4 },
324
+ "sacrement": { s: 3, c: 4 },
325
+ "ciboire": { s: 3, c: 4 },
326
+ "viarge": { s: 3, c: 4 },
327
+ "baptême": { s: 3, c: 4 },
328
+ "maudit": { s: 3, c: 4 },
329
+ "maudite": { s: 3, c: 4 },
330
+ "câlisse de crisse": { s: 3, c: 4 },
331
+ "ostie de tabarnak": { s: 3, c: 4 },
332
+ "crisse de câlice": { s: 3, c: 4 },
333
+ "sacramant": { s: 3, c: 4 },
334
+ "simonac": { s: 1, c: 4 },
335
+ "coliss": { s: 3, c: 4 },
336
+ "décâlisser": { s: 3, c: 4 },
337
+ "décrisser": { s: 3, c: 4 },
338
+ "encâlisser": { s: 3, c: 4 },
339
+ "tabarnouche": { s: 1, c: 4 },
340
+ "câline": { s: 1, c: 4 },
341
+ "crime": { s: 3, c: 4 },
342
+ "mosus": { s: 1, c: 4 },
343
+ "enfant de chienne": { s: 3, c: 4 },
344
+ "trou de cul": { s: 3, c: 4 },
345
+ "plotte": { s: 5, c: 5 },
346
+ "fourrer": { s: 3, c: 5 },
347
+ "crosseur": { s: 3, c: 4 },
348
+ "crosseuse": { s: 3, c: 4 },
349
+ "niaiser": { s: 1, c: 4 },
350
+ "niaiseux": { s: 1, c: 4 },
351
+ "niaiseuse": { s: 3, c: 4 },
352
+ "colon": { s: 3, c: 4 },
353
+ "épais": { s: 1, c: 4 },
354
+ "épaisse": { s: 3, c: 4 },
355
+ "cave": { s: 1, c: 4 },
356
+ "sans dessein": { s: 3, c: 4 },
357
+ "mongol": { s: 1, c: 4 },
358
+ "attardé": { s: 3, c: 4 },
359
+ "attardée": { s: 3, c: 4 },
360
+ "fif": { s: 3, c: 4 },
361
+ "tapette": { s: 3, c: 4 },
362
+ "moumoune": { s: 3, c: 4 },
363
+ "guidoune": { s: 5, c: 4 },
364
+ "agace": { s: 4, c: 4 },
365
+ "agace-pissette": { s: 4, c: 4 },
366
+ "pissou": { s: 1, c: 4 },
367
+ "chieux": { s: 1, c: 4 },
368
+ "licheux": { s: 3, c: 4 },
369
+ "téteux": { s: 3, c: 4 },
370
+ "téteuse": { s: 3, c: 4 },
371
+ // ========================================
372
+ // === Belgian French ====================
373
+ // ========================================
374
+ "dikkenek": { s: 1, c: 4 },
375
+ "sansen": { s: 1, c: 4 },
376
+ "poepzak": { s: 3, c: 4 },
377
+ "stoull": { s: 1, c: 4 },
378
+ "bachi-bouzouk": { s: 3, c: 4 },
379
+ // ========================================
380
+ // === Verlan (Reversed Slang) ===========
381
+ // ========================================
382
+ "tepu": { s: 5, c: 4 },
383
+ "relou": { s: 3, c: 4 },
384
+ "chelou": { s: 3, c: 4 },
385
+ "péta": { s: 3, c: 4 },
386
+ "téma": { s: 3, c: 4 },
387
+ "zarbi": { s: 3, c: 4 },
388
+ "renoi": { s: 3, c: 4 },
389
+ "rebeu": { s: 3, c: 4 },
390
+ "feuj": { s: 3, c: 4 },
391
+ "caillera": { s: 3, c: 4 },
392
+ "racaille": { s: 3, c: 4 },
393
+ "keum": { s: 3, c: 4 },
394
+ "ouf": { s: 3, c: 4 },
395
+ "vénère": { s: 3, c: 4 },
396
+ "chanmé": { s: 3, c: 4 },
397
+ "iench": { s: 3, c: 4 },
398
+ "keupon": { s: 3, c: 4 },
399
+ "beur": { s: 3, c: 4 },
400
+ "reubeu": { s: 3, c: 4 },
401
+ // ========================================
402
+ // === Internet / Youth Slang ============
403
+ // ========================================
404
+ "tmtc": { s: 2, c: 3 },
405
+ "ptdr": { s: 2, c: 3 },
406
+ "niktamère": { s: 2, c: 3 },
407
+ "wesh": { s: 2, c: 3 },
408
+ "wallah": { s: 3, c: 4 },
409
+ "starfoullah": { s: 2, c: 3 },
410
+ "zebi": { s: 4, c: 3 },
411
+ "zob": { s: 4, c: 3 },
412
+ "zobi": { s: 4, c: 3 },
413
+ "kahba": { s: 3, c: 4 },
414
+ "hmar": { s: 1, c: 3 },
415
+ "miskine": { s: 2, c: 3 },
416
+ "miskin": { s: 2, c: 3 },
417
+ "baltringue": { s: 1, c: 3 },
418
+ "tocard": { s: 1, c: 4 },
419
+ "tocarde": { s: 2, c: 3 },
420
+ "boloss": { s: 1, c: 4 },
421
+ "cassos": { s: 2, c: 3 },
422
+ "crevure": { s: 2, c: 3 },
423
+ "raclure de bidet": { s: 2, c: 3 },
424
+ "sous-race": { s: 2, c: 3 },
425
+ "fils de chien": { s: 2, c: 3 },
426
+ "bâtard de race": { s: 3, c: 4 },
427
+ // ========================================
428
+ // === Sexual Terms ======================
429
+ // ========================================
430
+ "sodomie": { s: 4, c: 4 },
431
+ "fellation": { s: 4, c: 5 },
432
+ "cunnilingus": { s: 4, c: 3 },
433
+ "masturber": { s: 4, c: 4 },
434
+ "se masturber": { s: 4, c: 4 },
435
+ "jouir": { s: 4, c: 4 },
436
+ "jouissance": { s: 4, c: 4 },
437
+ "orgasme": { s: 4, c: 4 },
438
+ "éjaculer": { s: 4, c: 4 },
439
+ "éjaculation": { s: 4, c: 4 },
440
+ "bander": { s: 4, c: 4 },
441
+ "bandant": { s: 4, c: 4 },
442
+ "bandante": { s: 4, c: 4 },
443
+ "débander": { s: 4, c: 4 },
444
+ "pénis": { s: 4, c: 4 },
445
+ "vagin": { s: 4, c: 4 },
446
+ "clitoris": { s: 4, c: 3 },
447
+ "testicule": { s: 4, c: 4 },
448
+ "testicules": { s: 4, c: 4 },
449
+ "scrotum": { s: 3, c: 4 },
450
+ "prépuce": { s: 4, c: 4 },
451
+ "anus": { s: 3, c: 4 },
452
+ "téton": { s: 4, c: 4 },
453
+ "seins": { s: 4, c: 4 },
454
+ "nichons": { s: 4, c: 4 },
455
+ "nibards": { s: 4, c: 4 },
456
+ "nénés": { s: 4, c: 4 },
457
+ "roberts": { s: 4, c: 4 },
458
+ "loches": { s: 4, c: 4 },
459
+ "miches": { s: 4, c: 4 },
460
+ "fesses": { s: 4, c: 4 },
461
+ "pétard": { s: 4, c: 4 },
462
+ "moule": { s: 4, c: 4 },
463
+ "cramouille": { s: 4, c: 4 },
464
+ "foufoune": { s: 4, c: 4 },
465
+ "foufounette": { s: 4, c: 4 },
466
+ "minette": { s: 4, c: 4 },
467
+ "minou": { s: 4, c: 4 },
468
+ "chagatte": { s: 4, c: 4 },
469
+ "pine": { s: 3, c: 4 },
470
+ "queue": { s: 4, c: 4 },
471
+ "quéquette": { s: 4, c: 4 },
472
+ "zizi": { s: 4, c: 4 },
473
+ "zgeg": { s: 4, c: 4 },
474
+ "teub": { s: 4, c: 4 },
475
+ "noeud": { s: 4, c: 4 },
476
+ "chibre": { s: 4, c: 4 },
477
+ "dard": { s: 4, c: 4 },
478
+ "gaule": { s: 4, c: 4 },
479
+ "trique": { s: 4, c: 4 },
480
+ "avoir la trique": { s: 4, c: 4 },
481
+ "sucer": { s: 4, c: 4 },
482
+ "pomper": { s: 4, c: 4 },
483
+ "tailler une pipe": { s: 4, c: 5 },
484
+ "pipe": { s: 4, c: 5 },
485
+ "turlute": { s: 4, c: 5 },
486
+ "gâterie": { s: 2, c: 3 },
487
+ "doigter": { s: 4, c: 4 },
488
+ "sodomiser": { s: 4, c: 4 },
489
+ "pénétrer": { s: 4, c: 4 },
490
+ "enfiler": { s: 4, c: 5 },
491
+ "tringler": { s: 4, c: 5 },
492
+ "tirer un coup": { s: 4, c: 4 },
493
+ "coup de bite": { s: 4, c: 4 },
494
+ "partie de jambes en l'air": { s: 4, c: 4 },
495
+ "coït": { s: 4, c: 4 },
496
+ "copuler": { s: 4, c: 4 },
497
+ "fornication": { s: 4, c: 4 },
498
+ "forniquer": { s: 4, c: 4 },
499
+ "prostituée": { s: 5, c: 4 },
500
+ "prostitué": { s: 5, c: 4 },
501
+ "maison close": { s: 4, c: 4 },
502
+ "proxénète": { s: 4, c: 4 },
503
+ "maquereau": { s: 4, c: 4 },
504
+ "maquerelle": { s: 4, c: 4 },
505
+ "micheton": { s: 5, c: 4 },
506
+ "michetonneuse": { s: 5, c: 4 },
507
+ "péripatéticienne": { s: 5, c: 4 },
508
+ "catin": { s: 5, c: 4 },
509
+ "garce": { s: 4, c: 4 },
510
+ "gourgandine": { s: 4, c: 4 },
511
+ "traînée": { s: 4, c: 4 },
512
+ "dévergondée": { s: 4, c: 4 },
513
+ "nymphomane": { s: 4, c: 4 },
514
+ "obsédé": { s: 4, c: 4 },
515
+ "obsédée": { s: 4, c: 4 },
516
+ "pervers": { s: 4, c: 4 },
517
+ "perverse": { s: 3, c: 4 },
518
+ "voyeur": { s: 3, c: 4 },
519
+ "voyeuse": { s: 4, c: 4 },
520
+ "exhibitionniste": { s: 4, c: 4 },
521
+ "fétichiste": { s: 4, c: 4 },
522
+ "vicieux": { s: 4, c: 4 },
523
+ "vicieuse": { s: 4, c: 4 },
524
+ "lubrique": { s: 4, c: 4 },
525
+ "libidineux": { s: 4, c: 4 },
526
+ "salace": { s: 4, c: 4 },
527
+ "cochonnerie": { s: 4, c: 4 },
528
+ "pornographie": { s: 4, c: 4 },
529
+ "porno": { s: 3, c: 4 },
530
+ // ========================================
531
+ // === More General Insults ==============
532
+ // ========================================
533
+ "larve": { s: 1, c: 4 },
534
+ "limace": { s: 1, c: 4 },
535
+ "cancrelat": { s: 4, c: 4 },
536
+ "cafard": { s: 4, c: 4 },
537
+ "mouchard": { s: 1, c: 4 },
538
+ "moucharde": { s: 1, c: 4 },
539
+ "balance": { s: 3, c: 4 },
540
+ "donneur": { s: 1, c: 4 },
541
+ "donneuse": { s: 1, c: 4 },
542
+ "crapule": { s: 1, c: 4 },
543
+ "fripouille": { s: 1, c: 4 },
544
+ "canaille": { s: 1, c: 4 },
545
+ "gredin": { s: 1, c: 4 },
546
+ "vaurien": { s: 1, c: 4 },
547
+ "vaurienne": { s: 1, c: 4 },
548
+ "voyou": { s: 1, c: 4 },
549
+ "gouape": { s: 1, c: 3 },
550
+ "marlou": { s: 1, c: 4 },
551
+ "arsouille": { s: 1, c: 3 },
552
+ "poivrot": { s: 1, c: 3 },
553
+ "poivrote": { s: 1, c: 4 },
554
+ "soûlard": { s: 1, c: 3 },
555
+ "soûlarde": { s: 1, c: 4 },
556
+ "alcoolo": { s: 1, c: 3 },
557
+ "pochetron": { s: 1, c: 3 },
558
+ "pochetronne": { s: 1, c: 4 },
559
+ "ivrogne": { s: 1, c: 3 },
560
+ "charogne": { s: 1, c: 4 },
561
+ "carne": { s: 1, c: 4 },
562
+ "rosse": { s: 1, c: 4 },
563
+ "peste": { s: 1, c: 4 },
564
+ "teigne": { s: 1, c: 4 },
565
+ "chipie": { s: 1, c: 4 },
566
+ "mégère": { s: 1, c: 4 },
567
+ "harpie": { s: 1, c: 4 },
568
+ "sorcière": { s: 1, c: 4 },
569
+ "morveux": { s: 1, c: 4 },
570
+ "morveuse": { s: 1, c: 4 },
571
+ "gamin de merde": { s: 3, c: 5 },
572
+ "petite merde": { s: 3, c: 5 },
573
+ "gros lard": { s: 1, c: 4 },
574
+ "grosse vache": { s: 1, c: 4 },
575
+ "gros tas": { s: 1, c: 4 },
576
+ "grosse truie": { s: 1, c: 4 },
577
+ "boudin": { s: 1, c: 4 },
578
+ "thon": { s: 3, c: 4 },
579
+ "laideron": { s: 1, c: 4 },
580
+ "mocheté": { s: 1, c: 4 },
581
+ // ========================================
582
+ // === More Quebec Sacres & Compounds ====
583
+ // ========================================
584
+ "tabarnak de câlice": { s: 3, c: 5 },
585
+ "câlice de tabarnak": { s: 3, c: 5 },
586
+ "osti de crisse": { s: 3, c: 5 },
587
+ "crisse de tabarnak": { s: 3, c: 5 },
588
+ "ostie de câlice": { s: 3, c: 5 },
589
+ "câlice de ciboire": { s: 3, c: 5 },
590
+ "tabarnak de ciboire": { s: 3, c: 5 },
591
+ "osti de câlice de tabarnak": { s: 3, c: 5 },
592
+ "crisse de câlice de tabarnak": { s: 3, c: 5 },
593
+ "sacrement de câlice": { s: 3, c: 5 },
594
+ "sacrement de tabarnak": { s: 3, c: 5 },
595
+ "baptême de tabarnak": { s: 3, c: 5 },
596
+ "viarge de tabarnak": { s: 3, c: 5 },
597
+ "maudit câlice": { s: 3, c: 5 },
598
+ "maudit tabarnak": { s: 3, c: 5 },
599
+ "maudit crisse": { s: 3, c: 5 },
600
+ "maudite ostie": { s: 3, c: 5 },
601
+ "ciboire de câlice": { s: 3, c: 5 },
602
+ "tabarnouche de câline": { s: 1, c: 5 },
603
+ "câliboire": { s: 1, c: 5 },
604
+ "tabarslac": { s: 1, c: 5 },
605
+ "câlisse": { s: 3, c: 5 },
606
+ "crissement": { s: 3, c: 5 },
607
+ "en tabarnak": { s: 3, c: 5 },
608
+ "en câlice": { s: 3, c: 5 },
609
+ "en crisse": { s: 3, c: 5 },
610
+ "en osti": { s: 3, c: 5 },
611
+ "se décâlisser": { s: 3, c: 5 },
612
+ "se décrisser": { s: 3, c: 5 },
613
+ "encâlissé": { s: 3, c: 5 },
614
+ "encâlissée": { s: 3, c: 5 },
615
+ "décrissé": { s: 3, c: 5 },
616
+ "décrissée": { s: 3, c: 5 },
617
+ "sacrament": { s: 3, c: 5 },
618
+ "bout de crisse": { s: 3, c: 5 },
619
+ "bout de viarge": { s: 3, c: 5 },
620
+ "charrue": { s: 1, c: 4 },
621
+ "mangeux de marde": { s: 3, c: 5 },
622
+ "marde": { s: 3, c: 5 },
623
+ "plein de marde": { s: 3, c: 5 },
624
+ "tête carrée": { s: 3, c: 5 },
625
+ "bloke": { s: 3, c: 5 },
626
+ "caltor": { s: 1, c: 4 },
627
+ "chaudasse": { s: 3, c: 5 },
628
+ "débile mental": { s: 3, c: 5 },
629
+ "lâche": { s: 1, c: 4 },
630
+ "licheux de cul": { s: 3, c: 5 },
631
+ "moron": { s: 1, c: 4 },
632
+ "ostination": { s: 3, c: 5 },
633
+ "ostiner": { s: 1, c: 4 },
634
+ "pissette": { s: 4, c: 5 },
635
+ "pogner le cul": { s: 3, c: 5 },
636
+ "sacreur": { s: 3, c: 5 },
637
+ "sacrures": { s: 3, c: 5 },
638
+ "slaquer": { s: 3, c: 5 },
639
+ "smatte": { s: 3, c: 5 },
640
+ "twit": { s: 1, c: 2 },
641
+ // ========================================
642
+ // === More Putain Compounds =============
643
+ // ========================================
644
+ "putain de bordel de merde": { s: 3, c: 5 },
645
+ "putain de ta mère": { s: 3, c: 5 },
646
+ "putain de sa race": { s: 3, c: 5 },
647
+ "putain de chiotte": { s: 3, c: 5 },
648
+ "oh putain": { s: 3, c: 5 },
649
+ "putain de connard": { s: 3, c: 4 },
650
+ "putain de connasse": { s: 3, c: 5 },
651
+ "putain de saloperie": { s: 3, c: 5 },
652
+ "putain de fait chier": { s: 3, c: 5 },
653
+ "nom de putain": { s: 5, c: 5 },
654
+ "sacré putain": { s: 5, c: 5 },
655
+ // ========================================
656
+ // === More Merde Compounds ==============
657
+ // ========================================
658
+ "emmerdement": { s: 3, c: 5 },
659
+ "démerdard": { s: 3, c: 5 },
660
+ "démerdarde": { s: 3, c: 5 },
661
+ "merdouille": { s: 3, c: 5 },
662
+ "merdouiller": { s: 3, c: 5 },
663
+ "merdier": { s: 3, c: 5 },
664
+ "emmerdant": { s: 3, c: 5 },
665
+ "emmerdante": { s: 3, c: 5 },
666
+ "dans la merde": { s: 3, c: 5 },
667
+ "jusqu'au cou dans la merde": { s: 3, c: 5 },
668
+ "remuer la merde": { s: 3, c: 5 },
669
+ "brasser la merde": { s: 3, c: 5 },
670
+ "bouffer de la merde": { s: 3, c: 5 },
671
+ "putain de merde de bordel": { s: 3, c: 5 },
672
+ "bordel de merde": { s: 3, c: 5 },
673
+ "merde alors": { s: 3, c: 5 },
674
+ "oh merde": { s: 3, c: 5 },
675
+ "sacré merde": { s: 3, c: 5 },
676
+ // ========================================
677
+ // === More Con Compounds ================
678
+ // ========================================
679
+ "connard de merde": { s: 3, c: 4 },
680
+ "connasse de merde": { s: 3, c: 5 },
681
+ "petit con": { s: 3, c: 5 },
682
+ "petite conne": { s: 3, c: 5 },
683
+ "sale connard": { s: 3, c: 4 },
684
+ "sale connasse": { s: 3, c: 5 },
685
+ "bande de cons": { s: 1, c: 4 },
686
+ "putain de con": { s: 1, c: 4 },
687
+ "quel con": { s: 1, c: 4 },
688
+ "quelle conne": { s: 1, c: 4 },
689
+ "sacré con": { s: 1, c: 4 },
690
+ "sacrée conne": { s: 1, c: 4 },
691
+ "vieux con": { s: 1, c: 4 },
692
+ "vieille conne": { s: 1, c: 4 },
693
+ "con comme la lune": { s: 1, c: 4 },
694
+ "con comme un balai": { s: 1, c: 4 },
695
+ "con comme ses pieds": { s: 1, c: 4 },
696
+ "tête de con de merde": { s: 4, c: 5 },
697
+ // ========================================
698
+ // === African French Profanity ==========
699
+ // ========================================
700
+ // --- Senegalese French ---
701
+ "niaw": { s: 1, c: 4 },
702
+ "dof": { s: 1, c: 4 },
703
+ "niak": { s: 3, c: 4 },
704
+ "gadjé": { s: 3, c: 4 },
705
+ "toubab": { s: 3, c: 4 },
706
+ "nègre de merde": { s: 3, c: 5 },
707
+ // --- Congolese French ---
708
+ "zoba": { s: 1, c: 4 },
709
+ "pombé": { s: 1, c: 3 },
710
+ "matiti": { s: 3, c: 4 },
711
+ "nyama": { s: 3, c: 4 },
712
+ "libulu": { s: 1, c: 4 },
713
+ "mwana nyama": { s: 3, c: 4 },
714
+ // --- Ivorian French ---
715
+ "gbê": { s: 5, c: 5 },
716
+ "dêh": { s: 3, c: 4 },
717
+ "gawa": { s: 3, c: 4 },
718
+ "groto": { s: 3, c: 4 },
719
+ "boucantier": { s: 3, c: 4 },
720
+ "djandjou": { s: 1, c: 3 },
721
+ "gnamoukoudji": { s: 3, c: 4 },
722
+ "tchoin": { s: 3, c: 4 },
723
+ "sapologie": { s: 3, c: 4 },
724
+ "bordelier": { s: 3, c: 4 },
725
+ "va te coucher": { s: 3, c: 5 },
726
+ // ========================================
727
+ // === More Belgian French ===============
728
+ // ========================================
729
+ "fieu": { s: 1, c: 4 },
730
+ "brol": { s: 3, c: 4 },
731
+ "schieve": { s: 3, c: 4 },
732
+ "zievereir": { s: 3, c: 5 },
733
+ "kansen": { s: 3, c: 4 },
734
+ "klansen": { s: 1, c: 4 },
735
+ "stoefer": { s: 3, c: 4 },
736
+ "snull": { s: 1, c: 4 },
737
+ "snulle": { s: 3, c: 4 },
738
+ "mansen": { s: 1, c: 4 },
739
+ "potje": { s: 3, c: 4 },
740
+ // ========================================
741
+ // === Swiss French Profanity ============
742
+ // ========================================
743
+ "bobet": { s: 1, c: 4 },
744
+ "bobette": { s: 1, c: 4 },
745
+ "cornichon": { s: 1, c: 4 },
746
+ "cucul": { s: 1, c: 4 },
747
+ "gnôle": { s: 3, c: 4 },
748
+ "pouet": { s: 1, c: 4 },
749
+ "poutze": { s: 3, c: 4 },
750
+ "schlingue": { s: 3, c: 4 },
751
+ "schlingueur": { s: 3, c: 4 },
752
+ "tacot": { s: 1, c: 4 },
753
+ "tartouille": { s: 1, c: 4 },
754
+ "tourte": { s: 1, c: 4 },
755
+ "vadrouille": { s: 3, c: 4 },
756
+ "gognand": { s: 1, c: 4 },
757
+ "gognande": { s: 1, c: 4 },
758
+ // ========================================
759
+ // === More Verlan =======================
760
+ // ========================================
761
+ "keufs": { s: 3, c: 4 },
762
+ "meufter": { s: 3, c: 4 },
763
+ "pécho": { s: 3, c: 4 },
764
+ "barjot": { s: 3, c: 4 },
765
+ "laisse béton": { s: 3, c: 4 },
766
+ "véner": { s: 3, c: 4 },
767
+ "genrou": { s: 3, c: 4 },
768
+ "ienchli": { s: 3, c: 4 },
769
+ "keubla": { s: 3, c: 4 },
770
+ "kainri": { s: 3, c: 4 },
771
+ "beuré": { s: 3, c: 4 },
772
+ "céfran": { s: 3, c: 4 },
773
+ "zonmé": { s: 3, c: 4 },
774
+ "teupu": { s: 5, c: 4 },
775
+ "teushi": { s: 3, c: 5 },
776
+ "relou de merde": { s: 3, c: 5 },
777
+ "chelou de ouf": { s: 3, c: 4 },
778
+ // ========================================
779
+ // === More Sexual Terms =================
780
+ // ========================================
781
+ "partouze": { s: 4, c: 4 },
782
+ "partouzard": { s: 4, c: 4 },
783
+ "partouzarde": { s: 4, c: 4 },
784
+ "gang bang": { s: 4, c: 4 },
785
+ "plan cul": { s: 4, c: 4 },
786
+ "plan à trois": { s: 4, c: 4 },
787
+ "soixante-neuf": { s: 4, c: 4 },
788
+ "levrette": { s: 4, c: 4 },
789
+ "missionnaire": { s: 4, c: 4 },
790
+ "anulingus": { s: 4, c: 4 },
791
+ "branlette espagnole": { s: 4, c: 4 },
792
+ "doigtage": { s: 4, c: 4 },
793
+ "enculade": { s: 4, c: 5 },
794
+ "godemiché": { s: 4, c: 4 },
795
+ "gode": { s: 4, c: 4 },
796
+ "éponger": { s: 4, c: 4 },
797
+ "mouiller": { s: 4, c: 4 },
798
+ "mouillée": { s: 4, c: 4 },
799
+ "giclée": { s: 4, c: 4 },
800
+ "gicler": { s: 4, c: 4 },
801
+ "décharger": { s: 4, c: 4 },
802
+ "juter": { s: 4, c: 4 },
803
+ "foutre en l'air": { s: 4, c: 5 },
804
+ "bouffer la chatte": { s: 4, c: 4 },
805
+ "brouter le gazon": { s: 4, c: 4 },
806
+ "brouter la moquette": { s: 4, c: 4 },
807
+ "se doigter": { s: 4, c: 4 },
808
+ "se goder": { s: 4, c: 4 },
809
+ "se toucher": { s: 4, c: 4 },
810
+ "se tripoter": { s: 4, c: 4 },
811
+ "tripoter": { s: 4, c: 4 },
812
+ "peloter": { s: 4, c: 4 },
813
+ "pelotage": { s: 4, c: 4 },
814
+ "attouchement": { s: 4, c: 4 },
815
+ "viol": { s: 5, c: 5 },
816
+ "violer": { s: 5, c: 5 },
817
+ "violeur": { s: 5, c: 5 },
818
+ "violeuse": { s: 5, c: 5 },
819
+ "pédophile": { s: 5, c: 5 },
820
+ "inceste": { s: 5, c: 5 },
821
+ "zoophile": { s: 4, c: 4 },
822
+ "zoophilie": { s: 4, c: 4 },
823
+ "nécrophile": { s: 4, c: 4 },
824
+ "sado-maso": { s: 4, c: 4 },
825
+ "dominatrice": { s: 4, c: 4 },
826
+ "soumise": { s: 4, c: 4 },
827
+ "soumis": { s: 4, c: 4 },
828
+ "fist-fucking": { s: 4, c: 5 },
829
+ "fisting": { s: 4, c: 5 },
830
+ "bukkake": { s: 4, c: 5 },
831
+ "creampie": { s: 4, c: 5 },
832
+ "éjac faciale": { s: 4, c: 4 },
833
+ "gorge profonde": { s: 4, c: 4 },
834
+ "pompe à bite": { s: 4, c: 4 },
835
+ "avaler": { s: 4, c: 4 },
836
+ "cracher": { s: 4, c: 4 },
837
+ "salope en chaleur": { s: 4, c: 4 },
838
+ "chienne en chaleur": { s: 4, c: 4 },
839
+ // ========================================
840
+ // === More Homophobic Slurs =============
841
+ // ========================================
842
+ "pédé de merde": { s: 5, c: 5 },
843
+ "sale pédé": { s: 5, c: 4 },
844
+ "gros pédé": { s: 1, c: 4 },
845
+ "pédale": { s: 5, c: 4 },
846
+ "grande folle": { s: 5, c: 4 },
847
+ "tarlouze": { s: 5, c: 4 },
848
+ "tarlouse": { s: 5, c: 4 },
849
+ "tafiole": { s: 5, c: 4 },
850
+ "lopette": { s: 5, c: 4 },
851
+ "lopètte": { s: 5, c: 4 },
852
+ "tantouze": { s: 5, c: 4 },
853
+ "tante": { s: 5, c: 4 },
854
+ "tata": { s: 5, c: 4 },
855
+ "enculé de pédé": { s: 5, c: 5 },
856
+ "suceuse de bite": { s: 5, c: 4 },
857
+ "tapette à mouches": { s: 5, c: 4 },
858
+ "inverti": { s: 5, c: 4 },
859
+ "invertie": { s: 5, c: 4 },
860
+ "sodomite": { s: 5, c: 4 },
861
+ "sale gouine": { s: 5, c: 4 },
862
+ "grosse gouine": { s: 1, c: 4 },
863
+ "gouinasse": { s: 5, c: 4 },
864
+ "broute-minou": { s: 5, c: 4 },
865
+ "camionneuse": { s: 5, c: 4 },
866
+ // ========================================
867
+ // === More Internet Slang ===============
868
+ // ========================================
869
+ "nktm": { s: 2, c: 3 },
870
+ "ftg": { s: 2, c: 3 },
871
+ "vtff": { s: 2, c: 3 },
872
+ "vtfe": { s: 2, c: 3 },
873
+ "jsp": { s: 2, c: 3 },
874
+ "osef": { s: 3, c: 5 },
875
+ "oklm": { s: 2, c: 3 },
876
+ "slt": { s: 2, c: 3 },
877
+ "ptn": { s: 2, c: 3 },
878
+ "mrd": { s: 2, c: 3 },
879
+ "enk": { s: 2, c: 3 },
880
+ "bsf": { s: 2, c: 3 },
881
+ "niqta": { s: 2, c: 3 },
882
+ "stp ferme ta gueule": { s: 3, c: 5 },
883
+ "wsh": { s: 2, c: 3 },
884
+ "cheh": { s: 2, c: 3 },
885
+ "la honte": { s: 3, c: 3 },
886
+ "cramé": { s: 2, c: 3 },
887
+ "cramée": { s: 2, c: 3 },
888
+ // ========================================
889
+ // === More Compound Phrases =============
890
+ // ========================================
891
+ "putain de bordel de merde de sa race": { s: 3, c: 5 },
892
+ "bordel de putain de merde": { s: 3, c: 5 },
893
+ "nique tout": { s: 3, c: 5 },
894
+ "nique le monde": { s: 3, c: 5 },
895
+ "enculé de sa race": { s: 3, c: 5 },
896
+ "bâtard de sa mère": { s: 3, c: 4 },
897
+ "fils de pute de merde": { s: 3, c: 5 },
898
+ "sale fils de pute": { s: 3, c: 5 },
899
+ "gros fils de pute": { s: 1, c: 4 },
900
+ "espèce de fils de pute": { s: 3, c: 5 },
901
+ "espèce de pourriture": { s: 3, c: 5 },
902
+ "espèce de déchet": { s: 3, c: 5 },
903
+ "déchet humain": { s: 3, c: 5 },
904
+ "poubelle humaine": { s: 3, c: 5 },
905
+ "sous-homme": { s: 5, c: 5 },
906
+ "sous-femme": { s: 3, c: 5 },
907
+ "erreur de la nature": { s: 3, c: 5 },
908
+ "accident de capote": { s: 3, c: 5 },
909
+ "fils de personne": { s: 3, c: 5 },
910
+ "sale gros porc": { s: 1, c: 4 },
911
+ "sale grosse truie": { s: 1, c: 4 },
912
+ "sale petite merde": { s: 3, c: 5 },
913
+ "sale petite pute": { s: 5, c: 5 },
914
+ "espèce de grosse merde": { s: 3, c: 5 },
915
+ "putain de ta mère la pute": { s: 5, c: 5 },
916
+ "nique ta mère la pute": { s: 5, c: 5 },
917
+ "va crever dans un fossé": { s: 5, c: 5 },
918
+ "je te baise ta mère": { s: 3, c: 5 },
919
+ "nique tes morts": { s: 3, c: 5 },
920
+ "ta mère en string": { s: 3, c: 5 },
921
+ "ta mère la grosse": { s: 1, c: 4 },
922
+ "ta mère en slip": { s: 3, c: 5 },
923
+ "ton père le chauve": { s: 1, c: 4 },
924
+ // ========================================
925
+ // === More General Vulgar Terms =========
926
+ // ========================================
927
+ "péter un câble": { s: 3, c: 4 },
928
+ "péter les plombs": { s: 3, c: 4 },
929
+ "péter un boulon": { s: 3, c: 4 },
930
+ "se faire chier": { s: 5, c: 5 },
931
+ "chiant": { s: 3, c: 5 },
932
+ "chiante": { s: 3, c: 4 },
933
+ "chier une pendule": { s: 3, c: 5 },
934
+ "casse-pieds": { s: 3, c: 4 },
935
+ "casse-bonbon": { s: 3, c: 4 },
936
+ "casse-burne": { s: 3, c: 4 },
937
+ "casse-burnes": { s: 3, c: 4 },
938
+ "pète-sec": { s: 3, c: 4 },
939
+ "gratte-cul": { s: 3, c: 4 },
940
+ "mange-merde": { s: 3, c: 5 },
941
+ "baise-en-ville": { s: 3, c: 5 },
942
+ "brûle-gueule": { s: 3, c: 4 },
943
+ "lèche-bottes": { s: 3, c: 4 },
944
+ "lèche-vitrine": { s: 3, c: 4 },
945
+ "pisse-froid": { s: 3, c: 4 },
946
+ "pisse-vinaigre": { s: 3, c: 4 },
947
+ "tire-au-cul": { s: 3, c: 4 },
948
+ "tire-au-flanc": { s: 3, c: 4 },
949
+ "torche-cul": { s: 3, c: 4 },
950
+ "foutriquet": { s: 3, c: 4 },
951
+ "foutraque": { s: 3, c: 4 },
952
+ "emmerdeur de première": { s: 3, c: 4 },
953
+ "chieur de première": { s: 3, c: 4 },
954
+ "saligaud": { s: 3, c: 4 },
955
+ "saligaude": { s: 3, c: 4 },
956
+ "souillon": { s: 3, c: 4 },
957
+ "salopiaud": { s: 3, c: 4 },
958
+ "enfant de putain": { s: 5, c: 4 },
959
+ "bougre": { s: 3, c: 4 },
960
+ "bougresse": { s: 3, c: 4 },
961
+ "sacré bougre": { s: 3, c: 4 },
962
+ "sacré nom de dieu": { s: 3, c: 4 },
963
+ "nom de dieu de bordel de merde": { s: 3, c: 5 },
964
+ "bon dieu de merde": { s: 3, c: 5 },
965
+ "sacré nom d'une pipe": { s: 3, c: 4 },
966
+ "p'tain": { s: 3, c: 4 },
967
+ "sa mère la pute": { s: 5, c: 4 },
968
+ "sa race": { s: 3, c: 4 },
969
+ "la putain de sa mère": { s: 5, c: 4 },
970
+ "sa mère": { s: 3, c: 4 },
971
+ "la mort": { s: 5, c: 5 },
972
+ "va mourir": { s: 5, c: 5 },
973
+ "crève sale chien": { s: 5, c: 5 },
974
+ // ========================================
975
+ // === Spelling Evasions / Leet Speak ====
976
+ // ========================================
977
+ // --- Putain evasions ---
978
+ "puta1n": { s: 3, c: 5 },
979
+ "put@in": { s: 3, c: 5 },
980
+ "pvtain": { s: 3, c: 5 },
981
+ "pu7ain": { s: 3, c: 5 },
982
+ "put4in": { s: 3, c: 5 },
983
+ "putaiin": { s: 3, c: 5 },
984
+ "puttain": { s: 3, c: 5 },
985
+ "puutain": { s: 3, c: 5 },
986
+ "putein": { s: 3, c: 5 },
987
+ "ptain": { s: 3, c: 5 },
988
+ "ptin": { s: 3, c: 5 },
989
+ "putaaain": { s: 3, c: 5 },
990
+ "pu-tain": { s: 3, c: 5 },
991
+ "pu.tain": { s: 3, c: 5 },
992
+ "put1": { s: 3, c: 5 },
993
+ "put@1n": { s: 3, c: 5 },
994
+ "puteuh": { s: 3, c: 5 },
995
+ // --- Merde evasions ---
996
+ "m3rde": { s: 3, c: 5 },
997
+ "m*rde": { s: 3, c: 5 },
998
+ "m€rde": { s: 3, c: 5 },
999
+ "merd3": { s: 3, c: 5 },
1000
+ "merrde": { s: 3, c: 5 },
1001
+ "mairde": { s: 3, c: 5 },
1002
+ "mrde": { s: 3, c: 5 },
1003
+ "mèrde": { s: 3, c: 5 },
1004
+ "me.rde": { s: 3, c: 5 },
1005
+ "mer-de": { s: 3, c: 5 },
1006
+ "merdum": { s: 3, c: 5 },
1007
+ "meeerde": { s: 3, c: 5 },
1008
+ // --- Connard evasions ---
1009
+ "c0nnard": { s: 3, c: 5 },
1010
+ "c0nnasse": { s: 3, c: 5 },
1011
+ "conna rd": { s: 3, c: 5 },
1012
+ "connar": { s: 3, c: 5 },
1013
+ "konar": { s: 3, c: 5 },
1014
+ "konard": { s: 3, c: 5 },
1015
+ "konnard": { s: 3, c: 5 },
1016
+ "konasse": { s: 3, c: 5 },
1017
+ "konnasse": { s: 3, c: 5 },
1018
+ // --- Enculé evasions ---
1019
+ "3nculé": { s: 3, c: 5 },
1020
+ "enkulé": { s: 3, c: 5 },
1021
+ "ankule": { s: 3, c: 5 },
1022
+ "enculay": { s: 3, c: 5 },
1023
+ "encul3": { s: 3, c: 5 },
1024
+ "enc.ulé": { s: 3, c: 5 },
1025
+ "en-culé": { s: 3, c: 5 },
1026
+ "nculé": { s: 3, c: 5 },
1027
+ "anculé": { s: 3, c: 5 },
1028
+ // --- Salope evasions ---
1029
+ "sal0pe": { s: 3, c: 5 },
1030
+ "s@lope": { s: 3, c: 5 },
1031
+ "sallope": { s: 3, c: 5 },
1032
+ "salop": { s: 3, c: 5 },
1033
+ "saloppe": { s: 3, c: 5 },
1034
+ "sal0p": { s: 3, c: 5 },
1035
+ "salôpe": { s: 3, c: 5 },
1036
+ "sa.lope": { s: 3, c: 5 },
1037
+ // --- Bite evasions ---
1038
+ "b1te": { s: 3, c: 5 },
1039
+ "b!te": { s: 3, c: 5 },
1040
+ "bîte": { s: 3, c: 5 },
1041
+ "bitte": { s: 3, c: 5 },
1042
+ "bi.te": { s: 3, c: 5 },
1043
+ "biite": { s: 3, c: 5 },
1044
+ // --- Nique evasions ---
1045
+ "n1que": { s: 3, c: 5 },
1046
+ "n!que": { s: 3, c: 5 },
1047
+ "niqu3": { s: 3, c: 5 },
1048
+ "nikk": { s: 3, c: 5 },
1049
+ "nik": { s: 3, c: 5 },
1050
+ "niker": { s: 3, c: 5 },
1051
+ "nikker": { s: 3, c: 5 },
1052
+ "niké": { s: 3, c: 5 },
1053
+ "nik ta mère": { s: 3, c: 5 },
1054
+ "nik sa mère": { s: 3, c: 5 },
1055
+ "nik ta race": { s: 3, c: 5 },
1056
+ // --- Pute evasions ---
1057
+ "put3": { s: 3, c: 5 },
1058
+ "pvte": { s: 3, c: 5 },
1059
+ "pu-te": { s: 3, c: 5 },
1060
+ "putte": { s: 3, c: 5 },
1061
+ "puut3": { s: 3, c: 5 },
1062
+ // --- Fils de pute evasions ---
1063
+ "fildepute": { s: 3, c: 5 },
1064
+ "filsdpute": { s: 3, c: 5 },
1065
+ "f1ls de pute": { s: 3, c: 5 },
1066
+ "fils 2 pute": { s: 3, c: 5 },
1067
+ "fils d pute": { s: 3, c: 5 },
1068
+ "fi de pu": { s: 3, c: 5 },
1069
+ // --- Pédé evasions ---
1070
+ "p3dé": { s: 3, c: 5 },
1071
+ "péd3": { s: 3, c: 5 },
1072
+ "ped3": { s: 3, c: 5 },
1073
+ "pedé": { s: 3, c: 5 },
1074
+ "pede": { s: 3, c: 5 },
1075
+ // --- Ta gueule evasions ---
1076
+ "ta gueul": { s: 3, c: 5 },
1077
+ "tagueule": { s: 3, c: 5 },
1078
+ "ta g": { s: 3, c: 5 },
1079
+ "tagel": { s: 3, c: 5 },
1080
+ "taggle": { s: 3, c: 5 },
1081
+ // --- General leet evasions ---
1082
+ "c0n": { s: 3, c: 5 },
1083
+ "cøn": { s: 3, c: 5 },
1084
+ "b0rdel": { s: 3, c: 5 },
1085
+ "f0utre": { s: 3, c: 5 },
1086
+ "ch1er": { s: 3, c: 5 },
1087
+ "p1sser": { s: 3, c: 5 },
1088
+ "br@nler": { s: 3, c: 5 },
1089
+ "s4laud": { s: 3, c: 5 },
1090
+ "b@tard": { s: 3, c: 5 },
1091
+ "m0ngol": { s: 3, c: 5 },
1092
+ "d3bile": { s: 3, c: 5 },
1093
+ // ========================================
1094
+ // === Additional Compound Phrases =======
1095
+ // ========================================
1096
+ "nique ton père": { s: 1, c: 4 },
1097
+ "mange ta mère": { s: 3, c: 5 },
1098
+ "mange la merde": { s: 3, c: 5 },
1099
+ "bouffe la merde": { s: 3, c: 5 },
1100
+ "casse-toi pauvre con": { s: 1, c: 4 },
1101
+ "casse-toi sale con": { s: 1, c: 4 },
1102
+ "ferme ta sale gueule": { s: 3, c: 5 },
1103
+ "ferme ta grande gueule": { s: 3, c: 5 },
1104
+ "ta gueule sale pute": { s: 5, c: 5 },
1105
+ "ta gueule connard": { s: 3, c: 5 },
1106
+ "ta gueule enculé": { s: 3, c: 5 },
1107
+ "dégage de là": { s: 3, c: 5 },
1108
+ "dégage sale merde": { s: 3, c: 5 },
1109
+ "je t'encule ta mère": { s: 3, c: 5 },
1110
+ "je m'en bats les couilles": { s: 4, c: 5 },
1111
+ "je m'en bats la race": { s: 3, c: 5 },
1112
+ "j'en ai rien à foutre": { s: 3, c: 5 },
1113
+ "j'en ai rien à battre": { s: 3, c: 5 },
1114
+ "j'en ai rien à branler": { s: 3, c: 5 },
1115
+ "j'en ai plein le cul": { s: 3, c: 5 },
1116
+ "tu fais chier le monde": { s: 3, c: 5 },
1117
+ "tu me fais chier": { s: 3, c: 5 },
1118
+ "tu me gonfles": { s: 3, c: 5 },
1119
+ "tu me les brises": { s: 4, c: 5 },
1120
+ "tu me les casses": { s: 4, c: 5 },
1121
+ "tu me les pèles": { s: 4, c: 5 },
1122
+ "tu me soûles": { s: 1, c: 3 },
1123
+ "va te pendre": { s: 5, c: 5 },
1124
+ "va te noyer": { s: 3, c: 5 },
1125
+ "va en enfer": { s: 3, c: 5 },
1126
+ "crève en enfer": { s: 5, c: 5 },
1127
+ "pourriture de merde": { s: 3, c: 5 },
1128
+ "fumier de merde": { s: 3, c: 5 },
1129
+ "ordure de merde": { s: 3, c: 5 },
1130
+ "charogne de merde": { s: 3, c: 5 },
1131
+ "espèce de pourriture de merde": { s: 3, c: 5 },
1132
+ "va niquer ta race": { s: 3, c: 5 },
1133
+ "je nique ta race": { s: 3, c: 5 },
1134
+ "nique ta famille": { s: 3, c: 5 },
1135
+ "nique ton père ta mère": { s: 1, c: 4 },
1136
+ "nique tes grands-morts": { s: 3, c: 5 },
1137
+ "sur la tête de ta mère": { s: 3, c: 5 },
1138
+ "ta mère la chienne": { s: 3, c: 5 },
1139
+ "ta mère suce des bites": { s: 4, c: 5 },
1140
+ "ton père suce des bites": { s: 1, c: 4 },
1141
+ "ta mère en short": { s: 3, c: 5 },
1142
+ "ta mère en maillot": { s: 3, c: 5 },
1143
+ "mange tes grands-morts": { s: 3, c: 5 },
1144
+ "je chie sur ta mère": { s: 3, c: 5 },
1145
+ "je chie sur ta race": { s: 3, c: 5 },
1146
+ "je pisse sur ta tombe": { s: 3, c: 5 },
1147
+ "sale merde de chien": { s: 3, c: 5 },
1148
+ "va bouffer tes morts": { s: 3, c: 5 },
1149
+ "ta daronne": { s: 3, c: 5 },
1150
+ "nique ta daronne": { s: 3, c: 5 },
1151
+ "ta daronne la pute": { s: 5, c: 5 },
1152
+ // ========================================
1153
+ // === Quebec Sacre Combinations =========
1154
+ // ========================================
1155
+ // --- Additional compound sacres ---
1156
+ "tabarnak de câlice de crisse": { s: 3, c: 5 },
1157
+ "ostie de câlice de crisse": { s: 3, c: 5 },
1158
+ "câlice de crisse de tabarnak": { s: 3, c: 5 },
1159
+ "crisse d'ostie de tabarnak": { s: 3, c: 5 },
1160
+ "tabarnak d'ostie de câlice": { s: 3, c: 5 },
1161
+ "sacrement d'ostie": { s: 3, c: 5 },
1162
+ "sacrement de crisse": { s: 3, c: 5 },
1163
+ "baptême de câlice": { s: 3, c: 5 },
1164
+ "baptême de crisse": { s: 3, c: 5 },
1165
+ "baptême d'ostie": { s: 3, c: 5 },
1166
+ "viarge de câlice": { s: 3, c: 5 },
1167
+ "viarge de crisse": { s: 3, c: 5 },
1168
+ "viarge d'ostie": { s: 3, c: 5 },
1169
+ "ciboire de tabarnak": { s: 3, c: 5 },
1170
+ "ciboire de crisse": { s: 3, c: 5 },
1171
+ "ciboire d'ostie": { s: 3, c: 5 },
1172
+ "maudit ciboire": { s: 3, c: 5 },
1173
+ "maudite câlice": { s: 3, c: 5 },
1174
+ "maudit sacrement": { s: 3, c: 5 },
1175
+ "maudit baptême": { s: 3, c: 5 },
1176
+ "maudite viarge": { s: 3, c: 5 },
1177
+ "ostie de marde": { s: 3, c: 5 },
1178
+ "câlice de marde": { s: 3, c: 5 },
1179
+ "tabarnak de marde": { s: 3, c: 5 },
1180
+ "crisse de marde": { s: 3, c: 5 },
1181
+ "ostie de con": { s: 1, c: 4 },
1182
+ "câlice de con": { s: 1, c: 4 },
1183
+ "tabarnak de con": { s: 1, c: 4 },
1184
+ "crisse de con": { s: 1, c: 4 },
1185
+ "ostie d'épais": { s: 3, c: 5 },
1186
+ "câlice d'épais": { s: 3, c: 5 },
1187
+ "crisse d'épais": { s: 3, c: 5 },
1188
+ "tabarnak d'épais": { s: 3, c: 5 },
1189
+ "ostie de cave": { s: 1, c: 4 },
1190
+ "câlice de cave": { s: 1, c: 4 },
1191
+ "tabarnak de cave": { s: 1, c: 4 },
1192
+ "crisse de cave": { s: 1, c: 4 },
1193
+ "ostie de niaiseux": { s: 1, c: 4 },
1194
+ "câlice de niaiseux": { s: 1, c: 4 },
1195
+ "tabarnak de niaiseux": { s: 1, c: 4 },
1196
+ "maudit niaiseux": { s: 1, c: 4 },
1197
+ "maudite niaiseuse": { s: 1, c: 4 },
1198
+ "ostie de mongol": { s: 3, c: 5 },
1199
+ "câlice de mongol": { s: 3, c: 5 },
1200
+ "en tabarnak de câlice": { s: 3, c: 5 },
1201
+ "en câlice de crisse": { s: 3, c: 5 },
1202
+ "en ostie de tabarnak": { s: 3, c: 5 },
1203
+ // --- Quebec sacre derivatives ---
1204
+ "tabarnaquer": { s: 3, c: 4 },
1205
+ "tabarnaqué": { s: 3, c: 4 },
1206
+ "tabarnaquée": { s: 3, c: 4 },
1207
+ "câlicer": { s: 3, c: 4 },
1208
+ "câlicé": { s: 3, c: 4 },
1209
+ "câlicée": { s: 3, c: 4 },
1210
+ "crisser": { s: 3, c: 4 },
1211
+ "crissé": { s: 3, c: 4 },
1212
+ "crissée": { s: 3, c: 4 },
1213
+ "ostiné": { s: 3, c: 4 },
1214
+ "ostinée": { s: 3, c: 4 },
1215
+ "sacrer": { s: 3, c: 4 },
1216
+ "sacré": { s: 3, c: 4 },
1217
+ "sacrée": { s: 3, c: 4 },
1218
+ "décâlisser la gueule": { s: 3, c: 4 },
1219
+ "décrisser le camp": { s: 3, c: 4 },
1220
+ // --- Additional Quebec mild variants ---
1221
+ "tabarouette": { s: 1, c: 4 },
1222
+ "tabarnane": { s: 1, c: 4 },
1223
+ "câline de bine": { s: 1, c: 4 },
1224
+ "câliboire de tabarouette": { s: 1, c: 4 },
1225
+ "crime pof": { s: 1, c: 4 },
1226
+ "bout de ciarge": { s: 1, c: 4 },
1227
+ "sacrament de viarge": { s: 3, c: 4 },
1228
+ "mosus de mosus": { s: 1, c: 4 },
1229
+ "mautadit": { s: 3, c: 4 },
1230
+ "mautadine": { s: 3, c: 4 },
1231
+ // ========================================
1232
+ // === African French (Expanded) =========
1233
+ // ========================================
1234
+ // --- Ivorian (Nouchi) ---
1235
+ "gaou": { s: 1, c: 4 },
1236
+ "s'enjailler": { s: 3, c: 4 },
1237
+ "daba": { s: 1, c: 4 },
1238
+ "gnaga": { s: 1, c: 4 },
1239
+ "blo": { s: 1, c: 4 },
1240
+ "dogba": { s: 3, c: 4 },
1241
+ "kpakpato": { s: 3, c: 4 },
1242
+ "yêrê": { s: 3, c: 4 },
1243
+ "gnata": { s: 3, c: 4 },
1244
+ "wôyô": { s: 3, c: 4 },
1245
+ "coco": { s: 1, c: 4 },
1246
+ "koutou": { s: 3, c: 4 },
1247
+ "flôsseur": { s: 3, c: 4 },
1248
+ "brouteur": { s: 3, c: 4 },
1249
+ "brouteuse": { s: 3, c: 4 },
1250
+ "môgô": { s: 3, c: 4 },
1251
+ "go de nuit": { s: 5, c: 4 },
1252
+ "faire le garba": { s: 3, c: 4 },
1253
+ "djôsseur": { s: 3, c: 4 },
1254
+ "bangala": { s: 4, c: 4 },
1255
+ "kokodjambou": { s: 1, c: 4 },
1256
+ "gbêssé": { s: 1, c: 4 },
1257
+ // --- Camerounais ---
1258
+ "mange-mille": { s: 3, c: 4 },
1259
+ "asso": { s: 1, c: 4 },
1260
+ "nkukuma": { s: 1, c: 4 },
1261
+ "nyanga": { s: 3, c: 4 },
1262
+ "kongossa": { s: 3, c: 4 },
1263
+ "tchatcher": { s: 3, c: 4 },
1264
+ "tara": { s: 1, c: 4 },
1265
+ "ndamba": { s: 5, c: 4 },
1266
+ "mbenguiste": { s: 3, c: 4 },
1267
+ "sans-papiers de merde": { s: 3, c: 5 },
1268
+ "mboutman": { s: 3, c: 5 },
1269
+ // --- Senegalese ---
1270
+ "tëgg": { s: 3, c: 4 },
1271
+ "soow": { s: 3, c: 4 },
1272
+ "niak sa mère": { s: 3, c: 5 },
1273
+ "deug": { s: 3, c: 4 },
1274
+ "gaïndé": { s: 3, c: 4 },
1275
+ "baadoola": { s: 1, c: 4 },
1276
+ "tangana": { s: 3, c: 4 },
1277
+ // --- Congolais (expanded) ---
1278
+ "moyibi": { s: 3, c: 4 },
1279
+ "moloki": { s: 3, c: 4 },
1280
+ "lokuta": { s: 3, c: 4 },
1281
+ "biso": { s: 3, c: 4 },
1282
+ "makango": { s: 3, c: 4 },
1283
+ "mwana pute": { s: 5, c: 4 },
1284
+ "pombé de merde": { s: 1, c: 3 },
1285
+ "ye!": { s: 3, c: 5 },
1286
+ // --- Malian French ---
1287
+ "doni doni": { s: 1, c: 4 },
1288
+ "fama": { s: 3, c: 4 },
1289
+ "wahala": { s: 3, c: 4 },
1290
+ "kounafoni": { s: 1, c: 4 },
1291
+ // --- Maghreb French (Arabic-French) ---
1292
+ "nta": { s: 3, c: 4 },
1293
+ "zamel": { s: 3, c: 4 },
1294
+ "zamelat": { s: 3, c: 4 },
1295
+ "teho": { s: 5, c: 4 },
1296
+ "hashouma": { s: 3, c: 4 },
1297
+ "achkoun nta": { s: 3, c: 4 },
1298
+ "kelb": { s: 3, c: 4 },
1299
+ "kelbek": { s: 3, c: 4 },
1300
+ "hmara": { s: 1, c: 4 },
1301
+ "khanzir": { s: 3, c: 4 },
1302
+ "weld el kahba": { s: 5, c: 5 },
1303
+ "bent el kahba": { s: 5, c: 4 },
1304
+ "yehdi": { s: 1, c: 4 },
1305
+ "nik ommok": { s: 3, c: 5 },
1306
+ "nik ta mère bâtard": { s: 3, c: 4 },
1307
+ "hashoumtek": { s: 3, c: 4 },
1308
+ "naâl": { s: 3, c: 4 },
1309
+ "naâl din ommok": { s: 3, c: 4 },
1310
+ "tfouh": { s: 3, c: 4 },
1311
+ "sir tnik ommok": { s: 3, c: 5 },
1312
+ "tboun ommok": { s: 4, c: 4 },
1313
+ "lmanyouk": { s: 3, c: 4 },
1314
+ "qahba": { s: 5, c: 4 },
1315
+ "khoroto": { s: 3, c: 5 },
1316
+ "khra": { s: 3, c: 5 },
1317
+ "wahd el khra": { s: 3, c: 5 },
1318
+ "wahd el hmar": { s: 3, c: 4 },
1319
+ "sale arabe": { s: 3, c: 4 },
1320
+ "sale rebeu": { s: 3, c: 4 },
1321
+ "sale noir": { s: 3, c: 4 },
1322
+ "sale blanc": { s: 3, c: 4 },
1323
+ "sale juif": { s: 3, c: 4 },
1324
+ // ========================================
1325
+ // === Racial / Ethnic Slurs (Expanded) ==
1326
+ // ========================================
1327
+ "bicot": { s: 5, c: 4 },
1328
+ "bougnoul": { s: 5, c: 4 },
1329
+ "crouille": { s: 5, c: 4 },
1330
+ "melon": { s: 5, c: 4 },
1331
+ "raton": { s: 5, c: 4 },
1332
+ "noraf": { s: 5, c: 4 },
1333
+ "fatma": { s: 5, c: 4 },
1334
+ "bamboula": { s: 5, c: 4 },
1335
+ "macaque": { s: 5, c: 4 },
1336
+ "singe": { s: 5, c: 4 },
1337
+ "boucaque": { s: 5, c: 4 },
1338
+ "négro": { s: 5, c: 4 },
1339
+ "négrillon": { s: 5, c: 4 },
1340
+ "négrillonne": { s: 5, c: 4 },
1341
+ "sale nègre": { s: 5, c: 4 },
1342
+ "gwer": { s: 5, c: 4 },
1343
+ "niakoué": { s: 5, c: 4 },
1344
+ "bridé": { s: 5, c: 4 },
1345
+ "bridée": { s: 5, c: 4 },
1346
+ "face de citron": { s: 5, c: 4 },
1347
+ "jaune": { s: 5, c: 4 },
1348
+ "chintok": { s: 5, c: 4 },
1349
+ "chinetoc": { s: 5, c: 4 },
1350
+ "ching chong": { s: 3, c: 4 },
1351
+ "sale chinois": { s: 5, c: 4 },
1352
+ "gitan": { s: 5, c: 4 },
1353
+ "gitane": { s: 5, c: 4 },
1354
+ "manouche": { s: 5, c: 4 },
1355
+ "romanichel": { s: 5, c: 4 },
1356
+ "romanichelle": { s: 5, c: 4 },
1357
+ "voleur de poules": { s: 5, c: 4 },
1358
+ "sale rom": { s: 5, c: 4 },
1359
+ "sale gitan": { s: 5, c: 4 },
1360
+ "roumain de merde": { s: 5, c: 5 },
1361
+ "sale polak": { s: 5, c: 4 },
1362
+ "sale rital": { s: 5, c: 4 },
1363
+ "espingouin": { s: 5, c: 4 },
1364
+ "espingoin": { s: 5, c: 4 },
1365
+ "amerloque": { s: 5, c: 4 },
1366
+ "amerlock": { s: 5, c: 4 },
1367
+ "rosbeef": { s: 5, c: 4 },
1368
+ "rosbif": { s: 5, c: 4 },
1369
+ "boche": { s: 5, c: 4 },
1370
+ "fridolin": { s: 5, c: 4 },
1371
+ "schleu": { s: 5, c: 4 },
1372
+ "youtre": { s: 5, c: 4 },
1373
+ // ========================================
1374
+ // === Transphobic Slurs (Expanded) ======
1375
+ // ========================================
1376
+ "travesti de merde": { s: 5, c: 5 },
1377
+ "sale travelo": { s: 5, c: 4 },
1378
+ "gros travelo": { s: 1, c: 4 },
1379
+ "shemale": { s: 5, c: 5 },
1380
+ "trans de merde": { s: 5, c: 5 },
1381
+ "homme-femme": { s: 5, c: 4 },
1382
+ "femme-homme": { s: 5, c: 4 },
1383
+ "transe": { s: 3, c: 4 },
1384
+ // ========================================
1385
+ // === Ableist Slurs (Expanded) ==========
1386
+ // ========================================
1387
+ "mongol de merde": { s: 5, c: 5 },
1388
+ "sale mongol": { s: 5, c: 4 },
1389
+ "gros mongol": { s: 1, c: 4 },
1390
+ "mongoloïde": { s: 5, c: 4 },
1391
+ "demeuré": { s: 5, c: 4 },
1392
+ "demeurée": { s: 5, c: 4 },
1393
+ "arriéré": { s: 5, c: 4 },
1394
+ "arriérée": { s: 5, c: 4 },
1395
+ "handicapé de merde": { s: 5, c: 5 },
1396
+ "infirme de merde": { s: 5, c: 5 },
1397
+ "gogol": { s: 5, c: 4 },
1398
+ "gogole": { s: 5, c: 4 },
1399
+ "débile profond": { s: 5, c: 4 },
1400
+ "attardé mental": { s: 5, c: 4 },
1401
+ "retardé": { s: 5, c: 4 },
1402
+ "autiste de merde": { s: 5, c: 5 },
1403
+ "spaz": { s: 5, c: 4 },
1404
+ "trisomique de merde": { s: 5, c: 5 },
1405
+ "sale gogol": { s: 5, c: 4 },
1406
+ // ========================================
1407
+ // === Internet Abbreviations (Expanded) =
1408
+ // ========================================
1409
+ "jtm pas": { s: 2, c: 3 },
1410
+ "jm'en bats": { s: 2, c: 3 },
1411
+ "jm'en fous": { s: 3, c: 5 },
1412
+ "jm'en branle": { s: 2, c: 3 },
1413
+ "stfu": { s: 3, c: 5 },
1414
+ "mdp": { s: 2, c: 3 },
1415
+ "nkl": { s: 2, c: 3 },
1416
+ "tmm": { s: 3, c: 5 },
1417
+ "ntm sa mère": { s: 2, c: 3 },
1418
+ "fdpc": { s: 2, c: 3 },
1419
+ "pgm": { s: 2, c: 3 },
1420
+ "azy": { s: 2, c: 3 },
1421
+ "azzy": { s: 2, c: 3 },
1422
+ "wllh": { s: 2, c: 3 },
1423
+ "sfll": { s: 2, c: 3 },
1424
+ "tgl": { s: 2, c: 3 },
1425
+ "ftg connard": { s: 2, c: 3 },
1426
+ "ntm fdp": { s: 2, c: 3 },
1427
+ "ptdr ta mère": { s: 2, c: 3 },
1428
+ "lmao ta race": { s: 2, c: 3 },
1429
+ // ========================================
1430
+ // === More Verlan (Expanded) ============
1431
+ // ========================================
1432
+ "teupu de merde": { s: 5, c: 5 },
1433
+ "ssalope": { s: 3, c: 4 },
1434
+ "deumer": { s: 3, c: 4 },
1435
+ "demer": { s: 3, c: 4 },
1436
+ "leucu": { s: 3, c: 4 },
1437
+ "gueudin": { s: 3, c: 4 },
1438
+ "golmon": { s: 3, c: 4 },
1439
+ "keussa": { s: 3, c: 4 },
1440
+ "rebou": { s: 1, c: 3 },
1441
+ "teboi": { s: 3, c: 4 },
1442
+ "genar": { s: 3, c: 4 },
1443
+ "bétar": { s: 3, c: 4 },
1444
+ "zemar": { s: 3, c: 4 },
1445
+ "zicmu": { s: 3, c: 4 },
1446
+ "laissebé": { s: 3, c: 4 },
1447
+ "teucha": { s: 4, c: 4 },
1448
+ "narvalo": { s: 3, c: 4 },
1449
+ "foncedé": { s: 3, c: 4 },
1450
+ "tiéquar": { s: 3, c: 4 },
1451
+ "ziva": { s: 3, c: 4 },
1452
+ // ========================================
1453
+ // === More Sexual / Body Slang ==========
1454
+ // ========================================
1455
+ "burne": { s: 4, c: 4 },
1456
+ "burnes": { s: 4, c: 4 },
1457
+ "roupettes": { s: 4, c: 4 },
1458
+ "valseuses": { s: 4, c: 4 },
1459
+ "bijoux de famille": { s: 4, c: 4 },
1460
+ "service trois pièces": { s: 4, c: 4 },
1461
+ "braquemart": { s: 4, c: 4 },
1462
+ "biroute": { s: 4, c: 4 },
1463
+ "bitoune": { s: 4, c: 4 },
1464
+ "quéquettard": { s: 4, c: 4 },
1465
+ "engin": { s: 4, c: 4 },
1466
+ "outil": { s: 4, c: 4 },
1467
+ "manche": { s: 4, c: 4 },
1468
+ "poireau": { s: 4, c: 4 },
1469
+ "asperge": { s: 4, c: 4 },
1470
+ "saucisse": { s: 4, c: 4 },
1471
+ "saucisson": { s: 4, c: 4 },
1472
+ "sifflet": { s: 4, c: 4 },
1473
+ "fifille": { s: 4, c: 4 },
1474
+ "frifri": { s: 4, c: 4 },
1475
+ "touffe": { s: 3, c: 4 },
1476
+ "abricot": { s: 4, c: 4 },
1477
+ "berlingot": { s: 3, c: 4 },
1478
+ "bouton de rose": { s: 3, c: 4 },
1479
+ "con comme la bite à jules": { s: 1, c: 4 },
1480
+ "couille de loup": { s: 3, c: 4 },
1481
+ "en avoir dans le froc": { s: 3, c: 4 },
1482
+ "se vider les couilles": { s: 4, c: 4 },
1483
+ "tirer son coup": { s: 3, c: 4 },
1484
+ "tremper le biscuit": { s: 3, c: 4 },
1485
+ "mettre la saucisse dans le potage": { s: 3, c: 4 },
1486
+ "s'envoyer en l'air": { s: 3, c: 4 },
1487
+ "sauter": { s: 3, c: 5 },
1488
+ "grimper": { s: 3, c: 5 },
1489
+ "chevaucher": { s: 3, c: 5 },
1490
+ "ken de ouf": { s: 3, c: 5 },
1491
+ "se taper": { s: 3, c: 5 },
1492
+ "se farcir": { s: 3, c: 5 },
1493
+ "culbuter": { s: 3, c: 5 },
1494
+ "ramoner": { s: 3, c: 5 },
1495
+ "défourrailler": { s: 3, c: 5 },
1496
+ "défoncer": { s: 3, c: 5 },
1497
+ "poutrer": { s: 3, c: 5 },
1498
+ "pilonner": { s: 3, c: 5 },
1499
+ "démonter": { s: 3, c: 5 },
1500
+ "dérouiller": { s: 3, c: 5 },
1501
+ "se faire défoncer": { s: 3, c: 5 },
1502
+ "se faire pilonner": { s: 3, c: 4 },
1503
+ "se faire démonter": { s: 3, c: 5 },
1504
+ "se faire ramoner": { s: 3, c: 5 },
1505
+ "échangisme": { s: 3, c: 4 },
1506
+ "échangiste": { s: 3, c: 4 },
1507
+ "coquin": { s: 3, c: 4 },
1508
+ "coquine": { s: 3, c: 4 },
1509
+ "cul de sac à foutre": { s: 3, c: 4 },
1510
+ "salope de merde": { s: 3, c: 5 },
1511
+ "pute à nègre": { s: 5, c: 4 },
1512
+ "pute à soldat": { s: 5, c: 5 },
1513
+ "pute de luxe": { s: 5, c: 4 },
1514
+ "pute de rue": { s: 5, c: 4 },
1515
+ "cougar de merde": { s: 3, c: 5 },
1516
+ // ========================================
1517
+ // === Religious Profanity (France) ======
1518
+ // ========================================
1519
+ "nom de dieu": { s: 2, c: 3 },
1520
+ "bon dieu": { s: 2, c: 3 },
1521
+ "sacré nom de dieu de merde": { s: 3, c: 5 },
1522
+ "nom de dieu de putain": { s: 5, c: 4 },
1523
+ "jésus christ de merde": { s: 3, c: 5 },
1524
+ "par le christ": { s: 2, c: 3 },
1525
+ "sacré christ": { s: 2, c: 3 },
1526
+ "dieu de merde": { s: 3, c: 5 },
1527
+ "sacré dieu": { s: 2, c: 3 },
1528
+ "nom d'un chien": { s: 2, c: 3 },
1529
+ "nom d'une pipe": { s: 2, c: 3 },
1530
+ "palsambleu": { s: 2, c: 3 },
1531
+ "morbleu": { s: 5, c: 5 },
1532
+ "sacrebleu": { s: 2, c: 3 },
1533
+ "ventrebleu": { s: 2, c: 3 },
1534
+ "corbleu": { s: 2, c: 3 },
1535
+ "jarnicoton": { s: 2, c: 3 },
1536
+ "par le sang dieu": { s: 2, c: 3 },
1537
+ // ========================================
1538
+ // === Threats & Violence ================
1539
+ // ========================================
1540
+ "je vais te tuer": { s: 5, c: 5 },
1541
+ "je vais te défoncer": { s: 5, c: 5 },
1542
+ "je vais te casser la gueule": { s: 5, c: 5 },
1543
+ "je vais te péter la gueule": { s: 5, c: 5 },
1544
+ "je vais te niquer ta mère": { s: 5, c: 5 },
1545
+ "je vais t'éclater": { s: 5, c: 5 },
1546
+ "je vais t'exploser": { s: 5, c: 5 },
1547
+ "je vais te crever": { s: 5, c: 5 },
1548
+ "je vais te buter": { s: 5, c: 5 },
1549
+ "je vais te fumer": { s: 5, c: 5 },
1550
+ "je vais te déchirer": { s: 5, c: 5 },
1551
+ "je vais te démonter la gueule": { s: 5, c: 5 },
1552
+ "je vais te refaire le portrait": { s: 5, c: 5 },
1553
+ "je vais t'arracher la tête": { s: 5, c: 5 },
1554
+ "je vais te mettre une balle": { s: 5, c: 5 },
1555
+ "tu vas morfler": { s: 5, c: 5 },
1556
+ "tu vas prendre cher": { s: 5, c: 5 },
1557
+ "tu vas déguster": { s: 5, c: 5 },
1558
+ "tu vas douiller": { s: 5, c: 5 },
1559
+ "je te défonce ta race": { s: 5, c: 5 },
1560
+ "casse-toi avant que je t'explose": { s: 5, c: 5 },
1561
+ "nique ta mère je vais te tuer": { s: 5, c: 5 },
1562
+ // ========================================
1563
+ // === Scatological (Expanded) ===========
1564
+ // ========================================
1565
+ "étron": { s: 3, c: 4 },
1566
+ "bouse": { s: 3, c: 4 },
1567
+ "bouse de vache": { s: 3, c: 5 },
1568
+ "crotte": { s: 1, c: 4 },
1569
+ "caca": { s: 3, c: 4 },
1570
+ "chiotte": { s: 3, c: 4 },
1571
+ "chiottes": { s: 3, c: 4 },
1572
+ "dans les chiottes": { s: 3, c: 5 },
1573
+ "aux chiottes": { s: 3, c: 4 },
1574
+ "chiure": { s: 3, c: 5 },
1575
+ "chiure de mouche": { s: 3, c: 4 },
1576
+ "pissat": { s: 3, c: 4 },
1577
+ "pisseux": { s: 3, c: 4 },
1578
+ "pisseuse": { s: 3, c: 4 },
1579
+ "pissotière": { s: 3, c: 4 },
1580
+ "vessie": { s: 3, c: 4 },
1581
+ "pet foireux": { s: 3, c: 4 },
1582
+ "péteux de merde": { s: 1, c: 4 },
1583
+ "chier des bulles": { s: 3, c: 5 },
1584
+ "chier dans son froc": { s: 3, c: 5 },
1585
+ "couler un bronze": { s: 3, c: 4 },
1586
+ "poser une pêche": { s: 3, c: 5 },
1587
+ "tartine de merde": { s: 3, c: 5 },
1588
+ "mouler un cake": { s: 3, c: 5 },
1589
+ "gerber": { s: 3, c: 4 },
1590
+ "dégueuler": { s: 3, c: 4 },
1591
+ "dégueulasser": { s: 3, c: 4 },
1592
+ "vomi": { s: 3, c: 4 },
1593
+ "vomir": { s: 3, c: 4 },
1594
+ "gerbe de merde": { s: 3, c: 5 },
1595
+ // ========================================
1596
+ // === Dismissive / Condescending ========
1597
+ // ========================================
1598
+ "ferme-la": { s: 3, c: 4 },
1599
+ "la ferme": { s: 3, c: 4 },
1600
+ "boucle-la": { s: 3, c: 4 },
1601
+ "écrase": { s: 3, c: 4 },
1602
+ "ras le bol": { s: 3, c: 4 },
1603
+ "ras le cul": { s: 3, c: 4 },
1604
+ "j'en ai marre": { s: 3, c: 4 },
1605
+ "j'en ai ma claque": { s: 3, c: 4 },
1606
+ "tu me saoules": { s: 3, c: 4 },
1607
+ "lâche-moi la grappe": { s: 3, c: 4 },
1608
+ "lâche-moi les baskets": { s: 3, c: 4 },
1609
+ "fous-moi la paix": { s: 3, c: 5 },
1610
+ "fiche-moi la paix": { s: 3, c: 4 },
1611
+ "va voir ailleurs si j'y suis": { s: 3, c: 4 },
1612
+ "tu me casses les pieds": { s: 3, c: 4 },
1613
+ "tu me gaves": { s: 3, c: 4 },
1614
+ "tu me prends la tête": { s: 3, c: 4 },
1615
+ "casse les couilles": { s: 4, c: 4 },
1616
+ "pète les couilles": { s: 4, c: 4 },
1617
+ "tu es nul à chier": { s: 3, c: 5 },
1618
+ "tu es con comme un manche": { s: 1, c: 4 },
1619
+ "tu as la capacité d'une huître": { s: 3, c: 4 },
1620
+ "tu es aussi utile qu'un cendrier sur une moto": { s: 3, c: 4 },
1621
+ // ========================================
1622
+ // === Misc Vulgar & Slang ===============
1623
+ // ========================================
1624
+ "salaud de merde": { s: 3, c: 4 },
1625
+ "enfoiré de merde": { s: 3, c: 5 },
1626
+ "fumier de la pire espèce": { s: 3, c: 4 },
1627
+ "pourriture ambulante": { s: 3, c: 4 },
1628
+ "déchet de la société": { s: 3, c: 4 },
1629
+ "raté": { s: 3, c: 4 },
1630
+ "ratée": { s: 3, c: 4 },
1631
+ "looseur": { s: 1, c: 4 },
1632
+ "looseuse": { s: 1, c: 4 },
1633
+ "looser": { s: 1, c: 4 },
1634
+ "naze": { s: 3, c: 5 },
1635
+ "nazes": { s: 3, c: 4 },
1636
+ "niquer la vie": { s: 3, c: 5 },
1637
+ "balek": { s: 3, c: 4 },
1638
+ "wallak": { s: 3, c: 4 },
1639
+ "on s'en bat les couilles": { s: 4, c: 4 },
1640
+ "osef de ta vie": { s: 3, c: 5 },
1641
+ "ta vie c'est de la merde": { s: 3, c: 5 },
1642
+ "ta vie de merde": { s: 3, c: 5 },
1643
+ "va te faire voir chez les grecs": { s: 3, c: 5 },
1644
+ "aller se faire cuire un oeuf": { s: 3, c: 4 },
1645
+ "tu peux te brosser": { s: 3, c: 4 },
1646
+ "dans ton cul": { s: 3, c: 4 },
1647
+ "je te le mets": { s: 3, c: 4 },
1648
+ "je te la mets": { s: 3, c: 4 },
1649
+ "profonde": { s: 3, c: 4 },
1650
+ "à sec": { s: 3, c: 4 },
1651
+ "bourrer": { s: 3, c: 5 },
1652
+ "se bourrer la gueule": { s: 3, c: 5 },
1653
+ "se déchirer la gueule": { s: 3, c: 4 },
1654
+ "se mettre une mine": { s: 1, c: 3 },
1655
+ "se prendre une branlée": { s: 3, c: 4 },
1656
+ "branlée": { s: 3, c: 4 },
1657
+ "raclée": { s: 3, c: 4 },
1658
+ "rouste": { s: 3, c: 4 },
1659
+ "peignée": { s: 3, c: 4 },
1660
+ "trempe": { s: 3, c: 4 },
1661
+ "tannée": { s: 3, c: 4 },
1662
+ "dérouillée": { s: 3, c: 4 },
1663
+ "biture": { s: 3, c: 4 },
1664
+ "cuite": { s: 1, c: 3 },
1665
+ "se cuiter": { s: 1, c: 3 },
1666
+ "se torcher": { s: 3, c: 4 },
1667
+ "torché": { s: 3, c: 4 },
1668
+ "pété": { s: 3, c: 4 },
1669
+ "pétée": { s: 3, c: 4 },
1670
+ "défoncé": { s: 3, c: 4 },
1671
+ "défoncée": { s: 3, c: 4 },
1672
+ "arraché": { s: 3, c: 4 },
1673
+ "arrachée": { s: 3, c: 4 },
1674
+ "niqué": { s: 3, c: 5 },
1675
+ "niquée": { s: 3, c: 5 },
1676
+ "baisé de merde": { s: 3, c: 5 },
1677
+ "foutu de merde": { s: 3, c: 5 },
1678
+ "pute borgne": { s: 5, c: 4 },
1679
+ "face de rat": { s: 3, c: 4 },
1680
+ "face de pet": { s: 3, c: 4 },
1681
+ "gueule de raie": { s: 3, c: 4 },
1682
+ "tronche de cake": { s: 1, c: 4 },
1683
+ "tronche de cul": { s: 3, c: 4 },
1684
+ "tronche de merde": { s: 3, c: 5 },
1685
+ "sale tronche": { s: 3, c: 4 },
1686
+ "sale face": { s: 3, c: 4 },
1687
+ "sale gueule de con": { s: 1, c: 4 },
1688
+ "pauvre type": { s: 3, c: 4 },
1689
+ "pauvre fille": { s: 3, c: 4 },
1690
+ "pauvre merde": { s: 3, c: 5 },
1691
+ "pauvre tache": { s: 3, c: 4 },
1692
+ "tache": { s: 1, c: 4 },
1693
+ "tocsin": { s: 3, c: 4 },
1694
+ "relou de première": { s: 3, c: 4 },
1695
+ "je t'encule profond": { s: 3, c: 5 },
1696
+ "nique tout le monde": { s: 3, c: 5 },
1697
+ "nique la vie": { s: 3, c: 5 },
1698
+ "nique le système": { s: 3, c: 5 },
1699
+ "bande de bâtards": { s: 3, c: 4 },
1700
+ "bande de fils de pute": { s: 3, c: 4 },
1701
+ "bande de connards": { s: 3, c: 4 },
1702
+ "bande d'enculés": { s: 3, c: 5 },
1703
+ "bande de merdes": { s: 3, c: 5 },
1704
+ "tous des cons": { s: 1, c: 4 },
1705
+ "tous des enculés": { s: 3, c: 5 },
1706
+ "tous des putes": { s: 5, c: 4 },
1707
+ "rien à battre": { s: 3, c: 4 },
1708
+ "rien à carrer": { s: 3, c: 5 },
1709
+ "on s'en tape": { s: 3, c: 4 },
1710
+ "on s'en branle": { s: 3, c: 4 },
1711
+ "on s'en carre": { s: 3, c: 5 },
1712
+ "grosse merde": { s: 3, c: 5 },
1713
+ "petit merdeux": { s: 3, c: 5 },
1714
+ "petite merdeuse": { s: 3, c: 5 },
1715
+ "enflure": { s: 3, c: 4 },
1716
+ "sac à merde ambulant": { s: 3, c: 5 },
1717
+ "triple connard": { s: 3, c: 4 },
1718
+ "triple enculé": { s: 3, c: 5 },
1719
+ "ultra-con": { s: 1, c: 4 },
1720
+ "méga-con": { s: 1, c: 4 },
1721
+ "super connard": { s: 3, c: 4 },
1722
+ "sale enfoiré de merde": { s: 3, c: 5 },
1723
+ "putain d'enfoiré": { s: 3, c: 5 },
1724
+ "putain d'enculé": { s: 3, c: 5 },
1725
+ "putain de fils de pute": { s: 3, c: 5 },
1726
+ "putain de bâtard": { s: 3, c: 4 },
1727
+ "putain de merde de sa race": { s: 3, c: 5 },
1728
+ "bordel de putain": { s: 5, c: 4 },
1729
+ "quel enculé": { s: 3, c: 5 },
1730
+ "quelle pute": { s: 5, c: 4 },
1731
+ "quel bâtard": { s: 3, c: 4 },
1732
+ "quel fils de pute": { s: 3, c: 4 },
1733
+ "espèce d'ordure": { s: 3, c: 4 },
1734
+ "espèce de charogne": { s: 3, c: 4 },
1735
+ "espèce de vermine": { s: 3, c: 4 },
1736
+ "espèce de cancrelat": { s: 4, c: 4 },
1737
+ "espèce de larve": { s: 3, c: 4 },
1738
+ "espèce de sous-merde": { s: 3, c: 5 },
1739
+ "vermine de merde": { s: 3, c: 5 },
1740
+ "vermine": { s: 3, c: 4 },
1741
+ "ramassis de merde": { s: 3, c: 5 },
1742
+ "amas de merde": { s: 3, c: 5 },
1743
+ "je te crache dessus": { s: 3, c: 4 },
1744
+ "je te chie dans la bouche": { s: 3, c: 5 },
1745
+ // ========================================
1746
+ // === Compound Insults & Combinations ===
1747
+ // ========================================
1748
+ "sale putain": { s: 5, c: 4 },
1749
+ "sale enfoiré": { s: 3, c: 4 },
1750
+ "sale chienne": { s: 1, c: 4 },
1751
+ "sale type": { s: 1, c: 4 },
1752
+ "sale porc": { s: 1, c: 4 },
1753
+ "sale pouffiasse": { s: 1, c: 4 },
1754
+ "sale clochard": { s: 1, c: 4 },
1755
+ "sale ordure": { s: 1, c: 4 },
1756
+ "sale vermine": { s: 1, c: 4 },
1757
+ "sale enflure": { s: 1, c: 4 },
1758
+ "sale raclure": { s: 1, c: 4 },
1759
+ "sale merdeux": { s: 3, c: 5 },
1760
+ "petit connard": { s: 3, c: 4 },
1761
+ "petite pute": { s: 5, c: 4 },
1762
+ "petit enculé": { s: 3, c: 5 },
1763
+ "gros connard": { s: 3, c: 4 },
1764
+ "grosse connasse": { s: 1, c: 4 },
1765
+ "gros enculé": { s: 3, c: 5 },
1766
+ "gros bâtard": { s: 3, c: 4 },
1767
+ "gros tas de merde": { s: 3, c: 5 },
1768
+ "grosse baleine": { s: 1, c: 4 },
1769
+ "gros plein de merde": { s: 3, c: 5 },
1770
+ "gros naze": { s: 1, c: 4 },
1771
+ "gros bouffon": { s: 1, c: 4 },
1772
+ "gros débile": { s: 1, c: 4 },
1773
+ "putain de ta race": { s: 5, c: 4 },
1774
+ "bordel de cul": { s: 3, c: 4 },
1775
+ "bordel à cul": { s: 3, c: 4 },
1776
+ "nom de dieu de merde": { s: 3, c: 5 },
1777
+ "nom de dieu de bordel": { s: 1, c: 4 },
1778
+ "foutu connard": { s: 3, c: 4 },
1779
+ "foutu enculé": { s: 3, c: 5 },
1780
+ "foutu merdeux": { s: 3, c: 5 },
1781
+ "foutue salope": { s: 1, c: 4 },
1782
+ "foutue pute": { s: 5, c: 4 },
1783
+ "sacrée merde": { s: 3, c: 5 },
1784
+ "sacré connard": { s: 3, c: 4 },
1785
+ "sacrée connasse": { s: 1, c: 4 },
1786
+ "sacrée putain": { s: 5, c: 4 },
1787
+ "satanée merde": { s: 3, c: 5 },
1788
+ "fichu connard": { s: 3, c: 4 },
1789
+ "fichue salope": { s: 1, c: 4 },
1790
+ "p'tit con": { s: 1, c: 4 },
1791
+ "p'tite pute": { s: 5, c: 4 },
1792
+ "p'tit enculé": { s: 3, c: 5 },
1793
+ "pauvre connard": { s: 3, c: 4 },
1794
+ "pauvre connasse": { s: 1, c: 4 },
1795
+ "pauvre mec": { s: 1, c: 4 },
1796
+ "pauvre naze": { s: 1, c: 4 },
1797
+ "triple con": { s: 1, c: 4 },
1798
+ "double buse": { s: 1, c: 4 },
1799
+ "espèce d'enculé": { s: 3, c: 5 },
1800
+ "espèce de connasse": { s: 1, c: 4 },
1801
+ "espèce de pute": { s: 5, c: 4 },
1802
+ "espèce d'abruti": { s: 1, c: 4 },
1803
+ "espèce de crétin": { s: 1, c: 4 },
1804
+ "espèce de débile": { s: 1, c: 4 },
1805
+ "espèce d'imbécile": { s: 1, c: 4 },
1806
+ "espèce d'idiot": { s: 1, c: 4 },
1807
+ "enculé de ta mère": { s: 3, c: 5 },
1808
+ "nique ta grand-mère": { s: 3, c: 5 },
1809
+ "nique ta sœur": { s: 3, c: 5 },
1810
+ "va te branler": { s: 4, c: 4 },
1811
+ "va sucer": { s: 1, c: 4 },
1812
+ "va bouffer de la merde": { s: 3, c: 5 },
1813
+ "je te crache à la gueule": { s: 1, c: 4 },
1814
+ "je vais te niquer": { s: 3, c: 5 },
1815
+ "je vais te démonter": { s: 1, c: 4 },
1816
+ "je vais te baiser": { s: 3, c: 5 },
1817
+ "ta gueule": { s: 1, c: 4 },
1818
+ "ferme ton clapet": { s: 1, c: 4 },
1819
+ "ta bouche": { s: 1, c: 4 },
1820
+ // ========================================
1821
+ // === Quebec French =====================
1822
+ // ========================================
1823
+ "criss": { s: 3, c: 4 },
1824
+ "tabarnac": { s: 3, c: 4 },
1825
+ "taboire": { s: 3, c: 4 },
1826
+ "estie": { s: 3, c: 4 },
1827
+ "esti": { s: 3, c: 4 },
1828
+ "hostie": { s: 3, c: 4 },
1829
+ "cibolac": { s: 3, c: 4 },
1830
+ "sacre": { s: 3, c: 4 },
1831
+ "batêche": { s: 3, c: 4 },
1832
+ "mauditement": { s: 3, c: 4 },
1833
+ "vierge": { s: 3, c: 4 },
1834
+ "saint-ciboire": { s: 3, c: 4 },
1835
+ "saint-sacrament": { s: 3, c: 4 },
1836
+ "câlice de crisse": { s: 3, c: 4 },
1837
+ "esti de câlice": { s: 3, c: 4 },
1838
+ "câlice de merde": { s: 3, c: 5 },
1839
+ "tabarnak de merde": { s: 3, c: 5 },
1840
+ "ostie de merde": { s: 3, c: 5 },
1841
+ "décâlissé": { s: 3, c: 4 },
1842
+ "plottes": { s: 5, c: 5 },
1843
+ "se crosser": { s: 4, c: 4 },
1844
+ "chieuse": { s: 3, c: 5 },
1845
+ "habitant": { s: 3, c: 4 },
1846
+ "taouin": { s: 1, c: 4 },
1847
+ "tarla": { s: 1, c: 4 },
1848
+ "tarlais": { s: 1, c: 4 },
1849
+ "sans-dessein": { s: 3, c: 4 },
1850
+ "guidounne": { s: 3, c: 4 },
1851
+ "pitoune": { s: 3, c: 4 },
1852
+ "mange de la marde": { s: 3, c: 5 },
1853
+ "baveux": { s: 3, c: 4 },
1854
+ "baveuse": { s: 3, c: 4 },
1855
+ "frais chié": { s: 3, c: 4 },
1856
+ "fraîche chiée": { s: 3, c: 4 },
1857
+ "enfant de nanane": { s: 3, c: 4 },
1858
+ "mon ostie": { s: 5, c: 5 },
1859
+ "mon câlice": { s: 5, c: 5 },
1860
+ "mon tabarnak": { s: 5, c: 5 },
1861
+ "mon crisse": { s: 5, c: 5 },
1862
+ "toé mon ostie": { s: 5, c: 5 },
1863
+ "mange d'la marde": { s: 3, c: 5 },
1864
+ "décâlisse": { s: 3, c: 5 },
1865
+ "décrisse": { s: 3, c: 5 },
1866
+ // ========================================
1867
+ // === Belgian French ====================
1868
+ // ========================================
1869
+ "une fois connard": { s: 3, c: 4 },
1870
+ "snotneus": { s: 3, c: 4 },
1871
+ "klootzak": { s: 3, c: 4 },
1872
+ "zot": { s: 3, c: 4 },
1873
+ "zotteke": { s: 3, c: 4 },
1874
+ "stront": { s: 3, c: 5 },
1875
+ "smeerkaas": { s: 3, c: 4 },
1876
+ "stommerik": { s: 1, c: 4 },
1877
+ "uilskuiken": { s: 1, c: 4 },
1878
+ // ========================================
1879
+ // === Swiss French ======================
1880
+ // ========================================
1881
+ "banane": { s: 3, c: 4 },
1882
+ "couillon de merde": { s: 1, c: 4 },
1883
+ "sapristi": { s: 2, c: 3 },
1884
+ "vingt dieux": { s: 3, c: 4 },
1885
+ "cré nom de Dieu": { s: 3, c: 4 },
1886
+ "bon sang de bois": { s: 3, c: 4 },
1887
+ // ========================================
1888
+ // === African French ====================
1889
+ // ========================================
1890
+ "bordel de Dieu": { s: 3, c: 4 },
1891
+ "gueule de singe": { s: 3, c: 4 },
1892
+ "bounty": { s: 3, c: 4 },
1893
+ "blédard": { s: 3, c: 4 },
1894
+ "gaouri": { s: 3, c: 4 },
1895
+ // ========================================
1896
+ // === Antillean/Caribbean French ========
1897
+ // ========================================
1898
+ "coucoune": { s: 4, c: 4 },
1899
+ "couloune": { s: 4, c: 4 },
1900
+ "makrel": { s: 3, c: 4 },
1901
+ "vyé manman": { s: 1, c: 4 },
1902
+ "manman ou": { s: 3, c: 4 },
1903
+ "lanmè manman ou": { s: 3, c: 4 },
1904
+ "kaka": { s: 3, c: 5 },
1905
+ "malpropre": { s: 3, c: 4 },
1906
+ "fènéyan": { s: 3, c: 4 },
1907
+ "vakabò": { s: 3, c: 4 },
1908
+ // ========================================
1909
+ // === Reunion French ====================
1910
+ // ========================================
1911
+ "bordel de la mare": { s: 3, c: 4 },
1912
+ "casse couille": { s: 3, c: 4 },
1913
+ "couilles molles": { s: 4, c: 4 },
1914
+ "tête de nœud": { s: 4, c: 4 },
1915
+ // ========================================
1916
+ // === Sexual Terms & Compounds ==========
1917
+ // ========================================
1918
+ "faire une pipe": { s: 4, c: 5 },
1919
+ "suceur": { s: 4, c: 4 },
1920
+ "suceuse": { s: 4, c: 4 },
1921
+ "pompeuse": { s: 4, c: 4 },
1922
+ "pompier": { s: 4, c: 5 },
1923
+ "enculer": { s: 3, c: 4 },
1924
+ "enculeur": { s: 4, c: 5 },
1925
+ "partouzeur": { s: 4, c: 4 },
1926
+ "partouzeuse": { s: 4, c: 4 },
1927
+ "triolisme": { s: 4, c: 4 },
1928
+ "bondage": { s: 3, c: 4 },
1929
+ "fétichisme": { s: 4, c: 4 },
1930
+ "voyeurisme": { s: 4, c: 4 },
1931
+ "perversion": { s: 4, c: 4 },
1932
+ "obsédé sexuel": { s: 4, c: 4 },
1933
+ "escort": { s: 3, c: 4 },
1934
+ "call-girl": { s: 4, c: 4 },
1935
+ "gigolo": { s: 4, c: 4 },
1936
+ "salaude": { s: 3, c: 4 },
1937
+ "dépravé": { s: 4, c: 4 },
1938
+ "dépravée": { s: 4, c: 4 },
1939
+ "lascif": { s: 4, c: 4 },
1940
+ "lascive": { s: 4, c: 4 },
1941
+ "libidineuse": { s: 4, c: 4 },
1942
+ "cochonner": { s: 4, c: 4 },
1943
+ "porcherie": { s: 4, c: 4 },
1944
+ "trousseur de jupons": { s: 4, c: 4 },
1945
+ "coureur de jupons": { s: 4, c: 4 },
1946
+ "coureuse": { s: 4, c: 4 },
1947
+ "fion": { s: 4, c: 4 },
1948
+ "rondelle": { s: 4, c: 4 },
1949
+ "troufion": { s: 4, c: 4 },
1950
+ "raie du cul": { s: 4, c: 4 },
1951
+ "verge": { s: 4, c: 4 },
1952
+ // ========================================
1953
+ // === Scatological Terms ================
1954
+ // ========================================
1955
+ "crotte de nez": { s: 3, c: 4 },
1956
+ "colombin": { s: 3, c: 4 },
1957
+ "fiente": { s: 3, c: 4 },
1958
+ "pisseur": { s: 3, c: 4 },
1959
+ "pisse": { s: 3, c: 4 },
1960
+ "péter": { s: 3, c: 4 },
1961
+ "prout": { s: 3, c: 4 },
1962
+ "prouter": { s: 3, c: 4 },
1963
+ "vesser": { s: 3, c: 4 },
1964
+ "vesse": { s: 3, c: 4 },
1965
+ "morve": { s: 3, c: 4 },
1966
+ "glaviot": { s: 3, c: 4 },
1967
+ "glavioter": { s: 3, c: 4 },
1968
+ "molard": { s: 3, c: 4 },
1969
+ "gerbe": { s: 3, c: 4 },
1970
+ "vomissure": { s: 3, c: 4 },
1971
+ "dégobiller": { s: 3, c: 4 },
1972
+ // ========================================
1973
+ // === Intelligence Insults ==============
1974
+ // ========================================
1975
+ "âne": { s: 1, c: 4 },
1976
+ "ballot": { s: 1, c: 4 },
1977
+ "benêt": { s: 1, c: 4 },
1978
+ "bêta": { s: 1, c: 4 },
1979
+ "bêtasse": { s: 1, c: 4 },
1980
+ "bête": { s: 1, c: 4 },
1981
+ "bête à manger du foin": { s: 1, c: 4 },
1982
+ "bourrique": { s: 1, c: 4 },
1983
+ "buse": { s: 1, c: 4 },
1984
+ "cloche": { s: 1, c: 4 },
1985
+ "couillonne": { s: 1, c: 4 },
1986
+ "courge": { s: 1, c: 4 },
1987
+ "cruche": { s: 1, c: 4 },
1988
+ "dadais": { s: 1, c: 4 },
1989
+ "dinde": { s: 1, c: 4 },
1990
+ "dindon": { s: 1, c: 4 },
1991
+ "empoté": { s: 1, c: 4 },
1992
+ "empotée": { s: 1, c: 4 },
1993
+ "flemmard": { s: 1, c: 4 },
1994
+ "flemmarde": { s: 1, c: 4 },
1995
+ "ganache": { s: 1, c: 4 },
1996
+ "glandeur": { s: 1, c: 4 },
1997
+ "glandeuse": { s: 1, c: 4 },
1998
+ "glander": { s: 1, c: 4 },
1999
+ "gogo": { s: 3, c: 4 },
2000
+ "gourde": { s: 1, c: 4 },
2001
+ "imbécile heureux": { s: 1, c: 4 },
2002
+ "inculte": { s: 1, c: 4 },
2003
+ "jobard": { s: 1, c: 4 },
2004
+ "loser": { s: 1, c: 3 },
2005
+ "mollasson": { s: 1, c: 4 },
2006
+ "mollassonne": { s: 1, c: 4 },
2007
+ "navet": { s: 1, c: 4 },
2008
+ "neuneu": { s: 1, c: 4 },
2009
+ "nigaud": { s: 1, c: 4 },
2010
+ "nigaude": { s: 1, c: 4 },
2011
+ "noix": { s: 1, c: 4 },
2012
+ "nul à chier": { s: 3, c: 5 },
2013
+ "nullard": { s: 1, c: 4 },
2014
+ "nullarde": { s: 1, c: 4 },
2015
+ "patate": { s: 1, c: 4 },
2016
+ "péquenaud": { s: 1, c: 4 },
2017
+ "péquenaude": { s: 1, c: 4 },
2018
+ "pignouf": { s: 1, c: 4 },
2019
+ "pigeon": { s: 1, c: 4 },
2020
+ "poire": { s: 1, c: 4 },
2021
+ "pomme": { s: 1, c: 4 },
2022
+ "sot": { s: 1, c: 4 },
2023
+ "sotte": { s: 1, c: 4 },
2024
+ "tanche": { s: 1, c: 4 },
2025
+ "tête de linotte": { s: 1, c: 4 },
2026
+ "tête de mule": { s: 1, c: 4 },
2027
+ "tête de pioche": { s: 1, c: 4 },
2028
+ "truffe": { s: 1, c: 4 },
2029
+ "zigoto": { s: 1, c: 4 },
2030
+ // ========================================
2031
+ // === Appearance Insults ================
2032
+ // ========================================
2033
+ "boudine": { s: 1, c: 4 },
2034
+ "boudinée": { s: 1, c: 4 },
2035
+ "cageot": { s: 1, c: 4 },
2036
+ "baleine": { s: 1, c: 4 },
2037
+ "hippopotame": { s: 1, c: 4 },
2038
+ "tonneau": { s: 1, c: 4 },
2039
+ "tas de graisse": { s: 1, c: 4 },
2040
+ "squelette": { s: 1, c: 4 },
2041
+ "planche à pain": { s: 1, c: 4 },
2042
+ "tête de cul": { s: 3, c: 4 },
2043
+ "tête à claques": { s: 1, c: 4 },
2044
+ "gueule cassée": { s: 1, c: 4 },
2045
+ "nain de jardin": { s: 1, c: 4 },
2046
+ // ========================================
2047
+ // === Behavioral Insults ================
2048
+ // ========================================
2049
+ "arriviste": { s: 1, c: 4 },
2050
+ "cafardeur": { s: 1, c: 4 },
2051
+ "cafardeuse": { s: 1, c: 4 },
2052
+ "cafteur": { s: 1, c: 4 },
2053
+ "cafteuse": { s: 1, c: 4 },
2054
+ "commère": { s: 1, c: 4 },
2055
+ "dégonflé": { s: 1, c: 4 },
2056
+ "dégonflée": { s: 1, c: 4 },
2057
+ "enquiquineur": { s: 1, c: 4 },
2058
+ "enquiquineuse": { s: 1, c: 4 },
2059
+ "escroc": { s: 1, c: 4 },
2060
+ "fainéant": { s: 1, c: 4 },
2061
+ "fainéante": { s: 1, c: 4 },
2062
+ "faux-jeton": { s: 1, c: 4 },
2063
+ "fouille-merde": { s: 3, c: 5 },
2064
+ "fouteur de merde": { s: 3, c: 5 },
2065
+ "fouteuse de merde": { s: 3, c: 5 },
2066
+ "froussard": { s: 1, c: 4 },
2067
+ "froussarde": { s: 1, c: 4 },
2068
+ "geignard": { s: 1, c: 4 },
2069
+ "geignarde": { s: 1, c: 4 },
2070
+ "grigou": { s: 1, c: 4 },
2071
+ "grognon": { s: 1, c: 4 },
2072
+ "grognonne": { s: 1, c: 4 },
2073
+ "magouilleur": { s: 1, c: 4 },
2074
+ "magouilleuse": { s: 1, c: 4 },
2075
+ "manipulateur": { s: 1, c: 4 },
2076
+ "manipulatrice": { s: 1, c: 4 },
2077
+ "menteur": { s: 1, c: 4 },
2078
+ "menteuse": { s: 1, c: 4 },
2079
+ "parasite": { s: 1, c: 4 },
2080
+ "pique-assiette": { s: 1, c: 4 },
2081
+ "pleurnichard": { s: 1, c: 4 },
2082
+ "pleurnicharde": { s: 1, c: 4 },
2083
+ "profiteur": { s: 1, c: 4 },
2084
+ "profiteuse": { s: 1, c: 4 },
2085
+ "radin": { s: 1, c: 4 },
2086
+ "radine": { s: 1, c: 4 },
2087
+ "trouillarde": { s: 1, c: 4 },
2088
+ "vendu": { s: 1, c: 4 },
2089
+ "voleur": { s: 1, c: 4 },
2090
+ "voleuse": { s: 1, c: 4 },
2091
+ // ========================================
2092
+ // === Slurs (Ethnic/Religious/LGBTQ) ====
2093
+ // ========================================
2094
+ "arabe de merde": { s: 5, c: 5 },
2095
+ "beurette": { s: 5, c: 4 },
2096
+ "mongole": { s: 5, c: 4 },
2097
+ "trisomique": { s: 5, c: 4 },
2098
+ "autiste": { s: 5, c: 4 },
2099
+ "péquenot": { s: 5, c: 4 },
2100
+ "bouseux": { s: 5, c: 4 },
2101
+ "bouseuse": { s: 5, c: 4 },
2102
+ "cul-terreux": { s: 5, c: 4 },
2103
+ "prolo": { s: 5, c: 4 },
2104
+ "babtou": { s: 5, c: 4 },
2105
+ "babtou fragile": { s: 5, c: 4 },
2106
+ "franchouillard": { s: 5, c: 4 },
2107
+ "franchouillarde": { s: 5, c: 4 },
2108
+ "facho": { s: 5, c: 5 },
2109
+ "gauchiasse": { s: 5, c: 4 },
2110
+ // ========================================
2111
+ // === Evasion Spellings =================
2112
+ // ========================================
2113
+ "p*tain": { s: 3, c: 5 },
2114
+ "c*nnard": { s: 3, c: 5 },
2115
+ "c*nnasse": { s: 3, c: 5 },
2116
+ "enc*lé": { s: 3, c: 5 },
2117
+ "encu1é": { s: 3, c: 5 },
2118
+ "s4lope": { s: 3, c: 5 },
2119
+ "b@iser": { s: 3, c: 5 },
2120
+ "b*iser": { s: 3, c: 5 },
2121
+ "p*te": { s: 3, c: 5 },
2122
+ "ntr": { s: 3, c: 5 },
2123
+ "p é d é": { s: 3, c: 5 },
2124
+ "m.e.r.d.e": { s: 3, c: 5 },
2125
+ "c o n n a r d": { s: 3, c: 5 },
2126
+ "s a l o p e": { s: 3, c: 5 },
2127
+ "n i q u e": { s: 3, c: 5 },
2128
+ "p u t a i n": { s: 3, c: 5 },
2129
+ "e n c u l é": { s: 3, c: 5 },
2130
+ // ========================================
2131
+ // === Internet Slang & Gaming ===========
2132
+ // ========================================
2133
+ "boulet": { s: 1, c: 4 },
2134
+ "enfoirée": { s: 3, c: 4 },
2135
+ "fragile": { s: 2, c: 3 },
2136
+ "mytho": { s: 2, c: 3 },
2137
+ "seum": { s: 2, c: 3 },
2138
+ "teubé": { s: 1, c: 4 },
2139
+ // ========================================
2140
+ // === Verb Conjugations =================
2141
+ // ========================================
2142
+ // --- niquer (to fuck) ---
2143
+ "niques": { s: 3, c: 5 },
2144
+ "niquent": { s: 3, c: 5 },
2145
+ "niquons": { s: 3, c: 5 },
2146
+ "niquais": { s: 3, c: 5 },
2147
+ "niquait": { s: 3, c: 5 },
2148
+ "niquerai": { s: 3, c: 5 },
2149
+ "niqueras": { s: 3, c: 5 },
2150
+ "niquerait": { s: 3, c: 5 },
2151
+ // --- baiser (to fuck) ---
2152
+ "baises": { s: 3, c: 5 },
2153
+ "baisée": { s: 3, c: 5 },
2154
+ "baisent": { s: 3, c: 5 },
2155
+ "baisons": { s: 3, c: 5 },
2156
+ "baisais": { s: 3, c: 5 },
2157
+ "baisait": { s: 3, c: 5 },
2158
+ "baiserai": { s: 3, c: 5 },
2159
+ // --- enculer (to ass-fuck) ---
2160
+ "encule": { s: 3, c: 5 },
2161
+ "encules": { s: 3, c: 5 },
2162
+ "enculés": { s: 3, c: 5 },
2163
+ "enculées": { s: 3, c: 5 },
2164
+ "enculant": { s: 3, c: 5 },
2165
+ "enculais": { s: 3, c: 5 },
2166
+ // --- emmerder (to shit-bother) ---
2167
+ "emmerde": { s: 3, c: 5 },
2168
+ "emmerdes": { s: 3, c: 5 },
2169
+ "emmerdé": { s: 3, c: 5 },
2170
+ "emmerdée": { s: 3, c: 5 },
2171
+ // --- branler (to jerk off) ---
2172
+ "branle": { s: 4, c: 4 },
2173
+ "branles": { s: 4, c: 4 },
2174
+ "branlé": { s: 3, c: 4 },
2175
+ // --- chier (to shit) ---
2176
+ "chie": { s: 3, c: 5 },
2177
+ "chies": { s: 3, c: 5 },
2178
+ "chié": { s: 3, c: 4 },
2179
+ "chiée": { s: 3, c: 4 },
2180
+ "chions": { s: 3, c: 5 },
2181
+ // --- foutre (to fuck/put) ---
2182
+ "fous": { s: 3, c: 5 },
2183
+ "fout": { s: 3, c: 5 },
2184
+ "foutent": { s: 3, c: 5 },
2185
+ "foutais": { s: 3, c: 5 },
2186
+ "foutaise": { s: 3, c: 5 },
2187
+ "foutaises": { s: 3, c: 5 },
2188
+ // --- dégueulasser (to make disgusting) ---
2189
+ "dégueulasses": { s: 3, c: 4 },
2190
+ "dégueulassé": { s: 3, c: 4 },
2191
+ // ========================================
2192
+ // === Diminutive & Augmentative =========
2193
+ // ========================================
2194
+ "putassier": { s: 3, c: 4 },
2195
+ "putassière": { s: 3, c: 4 },
2196
+ "saloperies": { s: 3, c: 4 },
2197
+ "merdiques": { s: 3, c: 5 },
2198
+ "merdasse": { s: 3, c: 5 },
2199
+ "connardise": { s: 3, c: 4 },
2200
+ "conneries": { s: 1, c: 4 },
2201
+ "foirade": { s: 3, c: 5 },
2202
+ // ========================================
2203
+ // === Threats & Violent Language =========
2204
+ // ========================================
2205
+ "je vais t'égorger": { s: 5, c: 5 },
2206
+ "je vais te planter": { s: 5, c: 5 },
2207
+ "je vais te latter": { s: 5, c: 5 },
2208
+ "je vais te défoncer la gueule": { s: 5, c: 5 },
2209
+ "je vais te fracasser": { s: 5, c: 5 },
2210
+ "je vais te démolir": { s: 5, c: 5 },
2211
+ "je vais te massacrer": { s: 5, c: 5 },
2212
+ "je vais te casser les dents": { s: 5, c: 5 },
2213
+ "je vais te péter la tronche": { s: 5, c: 5 },
2214
+ "dégage": { s: 5, c: 5 },
2215
+ "dégage connard": { s: 3, c: 4 },
2216
+ "crève la bouche ouverte": { s: 5, c: 5 },
2217
+ "meurs": { s: 5, c: 5 },
2218
+ "je t'éclate": { s: 5, c: 5 },
2219
+ "je te défonce": { s: 5, c: 5 },
2220
+ "on va te niquer": { s: 5, c: 5 },
2221
+ "on va te défoncer": { s: 5, c: 5 },
2222
+ // ========================================
2223
+ // === Additional Insults & Phrases ======
2224
+ // ========================================
2225
+ "avorton": { s: 1, c: 4 },
2226
+ "brute": { s: 1, c: 4 },
2227
+ "déchet": { s: 1, c: 4 },
2228
+ "goujat": { s: 1, c: 4 },
2229
+ "gredine": { s: 1, c: 4 },
2230
+ "gueux": { s: 1, c: 4 },
2231
+ "gueuse": { s: 1, c: 4 },
2232
+ "halunke": { s: 3, c: 4 },
2233
+ "malfrat": { s: 1, c: 4 },
2234
+ "malotru": { s: 1, c: 4 },
2235
+ "malotrue": { s: 1, c: 4 },
2236
+ "minus": { s: 1, c: 4 },
2237
+ "misérable": { s: 1, c: 4 },
2238
+ "rebut": { s: 1, c: 4 },
2239
+ "rebut de la société": { s: 1, c: 4 },
2240
+ "résidu de capote": { s: 1, c: 4 },
2241
+ "résidu de fausse couche": { s: 1, c: 4 },
2242
+ "serpent": { s: 1, c: 4 },
2243
+ "traître": { s: 1, c: 4 },
2244
+ "traîtresse": { s: 1, c: 4 },
2245
+ "truand": { s: 1, c: 4 },
2246
+ "truande": { s: 1, c: 4 },
2247
+ "vautour": { s: 1, c: 4 },
2248
+ "vipère": { s: 1, c: 4 },
2249
+ // ========================================
2250
+ // === Verlan (Reversed Slang) ===========
2251
+ // ========================================
2252
+ "reuf": { s: 3, c: 4 },
2253
+ "reum": { s: 3, c: 4 },
2254
+ "reup": { s: 1, c: 4 },
2255
+ "téci": { s: 3, c: 4 },
2256
+ "zyva": { s: 3, c: 4 },
2257
+ "belek": { s: 3, c: 4 },
2258
+ // ========================================
2259
+ // === Religious Expletives ==============
2260
+ // ========================================
2261
+ "parbleu": { s: 2, c: 3 },
2262
+ "jésus-christ de merde": { s: 3, c: 5 },
2263
+ "sacré bordel de dieu": { s: 2, c: 3 },
2264
+ // ========================================
2265
+ // === Additional Crude Compounds ========
2266
+ // ========================================
2267
+ "trou à bites": { s: 4, c: 5 },
2268
+ "chie-en-lit": { s: 3, c: 5 },
2269
+ "cul-de-sac": { s: 3, c: 5 },
2270
+ "brise-couilles": { s: 3, c: 5 },
2271
+ "va-nu-pieds": { s: 3, c: 5 },
2272
+ "crache-sang": { s: 3, c: 5 },
2273
+ "gratte-papier": { s: 3, c: 5 },
2274
+ "rond-de-cuir": { s: 3, c: 5 },
2275
+ "planche à repasser": { s: 3, c: 5 },
2276
+ "sac d'os": { s: 3, c: 5 },
2277
+ "tête de mort": { s: 5, c: 5 },
2278
+ "tête de gland": { s: 3, c: 5 },
2279
+ "tête de chibre": { s: 4, c: 5 },
2280
+ "gros cul": { s: 3, c: 5 },
2281
+ "gros nichons": { s: 4, c: 5 },
2282
+ "grosse pétasse": { s: 3, c: 5 },
2283
+ "pétasses": { s: 3, c: 5 },
2284
+ "pouffiasse": { s: 3, c: 5 },
2285
+ "pouf": { s: 3, c: 5 },
2286
+ "pouffe": { s: 3, c: 5 },
2287
+ "roulure": { s: 3, c: 5 },
2288
+ "marie-couche-toi-là": { s: 3, c: 5 },
2289
+ "marie-salope": { s: 3, c: 5 },
2290
+ "fille de joie": { s: 5, c: 5 },
2291
+ "fille des rues": { s: 3, c: 5 },
2292
+ "ribaude": { s: 3, c: 5 },
2293
+ "goton": { s: 3, c: 5 },
2294
+ "raccrocheuse": { s: 3, c: 5 },
2295
+ "michto": { s: 3, c: 5 },
2296
+ "suceuse de bites": { s: 4, c: 5 },
2297
+ "bouffeuse de bites": { s: 4, c: 5 },
2298
+ "avaleuse de sabres": { s: 3, c: 5 },
2299
+ "avaleuse de foutre": { s: 3, c: 5 },
2300
+ "branleur professionnel": { s: 3, c: 5 },
2301
+ "chieur professionnel": { s: 3, c: 5 },
2302
+ "emmerdeur professionnel": { s: 3, c: 5 },
2303
+ "brouteur de minou": { s: 4, c: 5 },
2304
+ "lécheur de cul": { s: 3, c: 5 },
2305
+ "lécheur de bottes": { s: 3, c: 5 },
2306
+ "lécheur de chiotte": { s: 3, c: 5 },
2307
+ "bouffeur de merde": { s: 3, c: 5 },
2308
+ "racleur de fond": { s: 5, c: 5 },
2309
+ "fond de bidet": { s: 3, c: 5 },
2310
+ "fond de poubelle": { s: 3, c: 5 },
2311
+ "lie de la société": { s: 3, c: 5 },
2312
+ "rebut de l'humanité": { s: 3, c: 5 },
2313
+ "raté de la vie": { s: 3, c: 5 },
2314
+ "ratée de la vie": { s: 3, c: 5 },
2315
+ "zéro pointé": { s: 3, c: 5 },
2316
+ "bolos": { s: 3, c: 5 },
2317
+ "flaque de pisse": { s: 3, c: 5 },
2318
+ "morceau de merde": { s: 3, c: 5 },
2319
+ "paquet de merde": { s: 3, c: 5 },
2320
+ "seau de merde": { s: 3, c: 5 },
2321
+ "crotte de bique": { s: 3, c: 5 },
2322
+ "fiente de pigeon": { s: 3, c: 5 },
2323
+ "trou duc": { s: 3, c: 5 }, // Ass (phonetic spelling of trou du cul)
2324
+ };
2325
+ export default frenchBadWords;
2326
+ //# sourceMappingURL=french-words.js.map