{
  "version": 3,
  "sources": ["/cdn/shop/t/24/assets/wmn-query-guard.js?wmn=20261102guard1"],
  "sourcesContent": ["/**\n * Block dirty / abusive query text from entering For You, intent field,\n * engagement prefs, and other ranking brains. Search UI may still run;\n * algorithms must not learn from blocked stems.\n */\n(function (window) {\n  'use strict';\n\n  /** Exact tokens (after normalize). Keep short words exact-only to avoid bass/ass. */\n  var BLOCKED_TOKENS = {\n    anal: 1,\n    anus: 1,\n    arse: 1,\n    arsehole: 1,\n    ass: 1,\n    asses: 1,\n    asshole: 1,\n    assholes: 1,\n    bastard: 1,\n    bastards: 1,\n    bitch: 1,\n    bitches: 1,\n    bitchy: 1,\n    blowjob: 1,\n    bollocks: 1,\n    boner: 1,\n    boob: 1,\n    boobs: 1,\n    bugger: 1,\n    bullshit: 1,\n    clit: 1,\n    clitoris: 1,\n    cock: 1,\n    cocks: 1,\n    coon: 1,\n    crap: 1,\n    cum: 1,\n    cumming: 1,\n    cunt: 1,\n    cunts: 1,\n    dick: 1,\n    dickhead: 1,\n    dicks: 1,\n    dildo: 1,\n    dyke: 1,\n    fag: 1,\n    faggot: 1,\n    faggots: 1,\n    felch: 1,\n    fellatio: 1,\n    feltch: 1,\n    fuck: 1,\n    fucked: 1,\n    fucker: 1,\n    fuckers: 1,\n    fuckin: 1,\n    fucking: 1,\n    fucks: 1,\n    fuckwit: 1,\n    handjob: 1,\n    homo: 1,\n    hooker: 1,\n    jizz: 1,\n    kike: 1,\n    labia: 1,\n    masturbate: 1,\n    masturbating: 1,\n    motherfucker: 1,\n    motherfuckers: 1,\n    motherfucking: 1,\n    nigg: 1,\n    nigger: 1,\n    niggers: 1,\n    nigga: 1,\n    niggas: 1,\n    nutsack: 1,\n    orgasm: 1,\n    penis: 1,\n    piss: 1,\n    pissed: 1,\n    pissing: 1,\n    porn: 1,\n    porno: 1,\n    pornography: 1,\n    prick: 1,\n    pubes: 1,\n    pussy: 1,\n    queef: 1,\n    retard: 1,\n    retarded: 1,\n    schlong: 1,\n    scrotum: 1,\n    semen: 1,\n    shit: 1,\n    shithead: 1,\n    shits: 1,\n    shitting: 1,\n    slut: 1,\n    sluts: 1,\n    slutty: 1,\n    spastic: 1,\n    sperm: 1,\n    spooge: 1,\n    tit: 1,\n    tits: 1,\n    titties: 1,\n    turd: 1,\n    twat: 1,\n    vagina: 1,\n    wank: 1,\n    wanker: 1,\n    whore: 1,\n    whores: 1,\n    xxx: 1\n  };\n\n  /** Multi-word phrases (normalized, space-joined). */\n  var BLOCKED_PHRASES = [\n    'fuck you',\n    'fuck off',\n    'fuck me',\n    'screw you',\n    'eat shit',\n    'piece of shit',\n    'son of a bitch',\n    'dumb ass',\n    'dumbass'\n  ];\n\n  /** Compound tokens often typed without spaces. */\n  var BLOCKED_COMPOUNDS = {\n    fuckyou: 1,\n    fuckoff: 1,\n    fuckme: 1,\n    motherfucker: 1,\n    dumbass: 1,\n    shithead: 1,\n    asshole: 1,\n    bullshit: 1\n  };\n\n  function normalize(str) {\n    var s = String(str || '').toLowerCase();\n    try {\n      s = s.normalize('NFKD').replace(/[\\u0300-\\u036f]/g, '');\n    } catch (e) {\n      /* ignore */\n    }\n    return s\n      .replace(/['']/g, '')\n      .replace(/[^a-z0-9]+/g, ' ')\n      .replace(/^\\s+|\\s+$/g, '')\n      .replace(/\\s+/g, ' ');\n  }\n\n  /** Light leetspeak fold for a single token. */\n  function foldLeet(tok) {\n    return String(tok || '')\n      .replace(/0/g, 'o')\n      .replace(/1/g, 'i')\n      .replace(/3/g, 'e')\n      .replace(/4/g, 'a')\n      .replace(/5/g, 's')\n      .replace(/\\$/g, 's')\n      .replace(/@/g, 'a');\n  }\n\n  function isBlockedToken(tok) {\n    if (!tok) return false;\n    if (BLOCKED_TOKENS[tok] || BLOCKED_COMPOUNDS[tok]) return true;\n    var folded = foldLeet(tok);\n    if (folded !== tok && (BLOCKED_TOKENS[folded] || BLOCKED_COMPOUNDS[folded])) {\n      return true;\n    }\n    // Long compounds containing a strong blocked stem (fuck/shit/cunt/\u2026)\n    if (tok.length >= 6) {\n      var stems = ['fuck', 'shit', 'cunt', 'nigger', 'nigga', 'motherfuck', 'dickhead'];\n      var i;\n      for (i = 0; i < stems.length; i++) {\n        if (tok.indexOf(stems[i]) !== -1 || folded.indexOf(stems[i]) !== -1) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n\n  /**\n   * @param {string} query\n   * @returns {boolean}\n   */\n  function isBlocked(query) {\n    var norm = normalize(query);\n    if (!norm || norm.length < 2) return false;\n\n    var pi;\n    for (pi = 0; pi < BLOCKED_PHRASES.length; pi++) {\n      if (norm === BLOCKED_PHRASES[pi] || norm.indexOf(BLOCKED_PHRASES[pi]) !== -1) {\n        return true;\n      }\n    }\n\n    var parts = norm.split(' ');\n    var i;\n    for (i = 0; i < parts.length; i++) {\n      if (isBlockedToken(parts[i])) return true;\n    }\n\n    // f u c k / f.u.c.k collapsed\n    var collapsed = norm.replace(/\\s+/g, '');\n    if (collapsed.length >= 3 && isBlockedToken(collapsed)) return true;\n\n    return false;\n  }\n\n  /**\n   * @param {string} query\n   * @returns {string|null} normalized query, or null when blocked/empty\n   */\n  function allowForAlgo(query) {\n    var norm = normalize(query);\n    if (!norm || norm.length < 2) return null;\n    if (isBlocked(norm)) return null;\n    return norm;\n  }\n\n  window.wmnQueryGuard = {\n    isBlocked: isBlocked,\n    allowForAlgo: allowForAlgo,\n    normalize: normalize\n  };\n})(window);\n"],
  "mappings": "CAKC,SAAUA,QAAQ,CACjB,aAGA,IAAI,eAAiB,CACnB,KAAM,EACN,KAAM,EACN,KAAM,EACN,SAAU,EACV,IAAK,EACL,MAAO,EACP,QAAS,EACT,SAAU,EACV,QAAS,EACT,SAAU,EACV,MAAO,EACP,QAAS,EACT,OAAQ,EACR,QAAS,EACT,SAAU,EACV,MAAO,EACP,KAAM,EACN,MAAO,EACP,OAAQ,EACR,SAAU,EACV,KAAM,EACN,SAAU,EACV,KAAM,EACN,MAAO,EACP,KAAM,EACN,KAAM,EACN,IAAK,EACL,QAAS,EACT,KAAM,EACN,MAAO,EACP,KAAM,EACN,SAAU,EACV,MAAO,EACP,MAAO,EACP,KAAM,EACN,IAAK,EACL,OAAQ,EACR,QAAS,EACT,MAAO,EACP,SAAU,EACV,OAAQ,EACR,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,QAAS,EACT,OAAQ,EACR,QAAS,EACT,MAAO,EACP,QAAS,EACT,QAAS,EACT,KAAM,EACN,OAAQ,EACR,KAAM,EACN,KAAM,EACN,MAAO,EACP,WAAY,EACZ,aAAc,EACd,aAAc,EACd,cAAe,EACf,cAAe,EACf,KAAM,EACN,OAAQ,EACR,QAAS,EACT,MAAO,EACP,OAAQ,EACR,QAAS,EACT,OAAQ,EACR,MAAO,EACP,KAAM,EACN,OAAQ,EACR,QAAS,EACT,KAAM,EACN,MAAO,EACP,YAAa,EACb,MAAO,EACP,MAAO,EACP,MAAO,EACP,MAAO,EACP,OAAQ,EACR,SAAU,EACV,QAAS,EACT,QAAS,EACT,MAAO,EACP,KAAM,EACN,SAAU,EACV,MAAO,EACP,SAAU,EACV,KAAM,EACN,MAAO,EACP,OAAQ,EACR,QAAS,EACT,MAAO,EACP,OAAQ,EACR,IAAK,EACL,KAAM,EACN,QAAS,EACT,KAAM,EACN,KAAM,EACN,OAAQ,EACR,KAAM,EACN,OAAQ,EACR,MAAO,EACP,OAAQ,EACR,IAAK,CACP,EAGI,gBAAkB,CACpB,WACA,WACA,UACA,YACA,WACA,gBACA,iBACA,WACA,SACF,EAGI,kBAAoB,CACtB,QAAS,EACT,QAAS,EACT,OAAQ,EACR,aAAc,EACd,QAAS,EACT,SAAU,EACV,QAAS,EACT,SAAU,CACZ,EAEA,SAAS,UAAU,IAAK,CACtB,IAAI,EAAI,OAAO,KAAO,EAAE,EAAE,YAAY,EACtC,GAAI,CACF,EAAI,EAAE,UAAU,MAAM,EAAE,QAAQ,mBAAoB,EAAE,CACxD,OAAS,EAAG,CAEZ,CACA,OAAO,EACJ,QAAQ,QAAS,EAAE,EACnB,QAAQ,cAAe,GAAG,EAC1B,QAAQ,aAAc,EAAE,EACxB,QAAQ,OAAQ,GAAG,CACxB,CAGA,SAAS,SAAS,IAAK,CACrB,OAAO,OAAO,KAAO,EAAE,EACpB,QAAQ,KAAM,GAAG,EACjB,QAAQ,KAAM,GAAG,EACjB,QAAQ,KAAM,GAAG,EACjB,QAAQ,KAAM,GAAG,EACjB,QAAQ,KAAM,GAAG,EACjB,QAAQ,MAAO,GAAG,EAClB,QAAQ,KAAM,GAAG,CACtB,CAEA,SAAS,eAAe,IAAK,CAC3B,GAAI,CAAC,IAAK,MAAO,GACjB,GAAI,eAAe,GAAG,GAAK,kBAAkB,GAAG,EAAG,MAAO,GAC1D,IAAI,OAAS,SAAS,GAAG,EACzB,GAAI,SAAW,MAAQ,eAAe,MAAM,GAAK,kBAAkB,MAAM,GACvE,MAAO,GAGT,GAAI,IAAI,QAAU,EAAG,CACnB,IAAI,MAAQ,CAAC,OAAQ,OAAQ,OAAQ,SAAU,QAAS,aAAc,UAAU,EAC5E,EACJ,IAAK,EAAI,EAAG,EAAI,MAAM,OAAQ,IAC5B,GAAI,IAAI,QAAQ,MAAM,CAAC,CAAC,IAAM,IAAM,OAAO,QAAQ,MAAM,CAAC,CAAC,IAAM,GAC/D,MAAO,EAGb,CACA,MAAO,EACT,CAMA,SAAS,UAAU,MAAO,CACxB,IAAI,KAAO,UAAU,KAAK,EAC1B,GAAI,CAAC,MAAQ,KAAK,OAAS,EAAG,MAAO,GAErC,IAAI,GACJ,IAAK,GAAK,EAAG,GAAK,gBAAgB,OAAQ,KACxC,GAAI,OAAS,gBAAgB,EAAE,GAAK,KAAK,QAAQ,gBAAgB,EAAE,CAAC,IAAM,GACxE,MAAO,GAIX,IAAI,MAAQ,KAAK,MAAM,GAAG,EACtB,EACJ,IAAK,EAAI,EAAG,EAAI,MAAM,OAAQ,IAC5B,GAAI,eAAe,MAAM,CAAC,CAAC,EAAG,MAAO,GAIvC,IAAI,UAAY,KAAK,QAAQ,OAAQ,EAAE,EACvC,MAAI,aAAU,QAAU,GAAK,eAAe,SAAS,EAGvD,CAMA,SAAS,aAAa,MAAO,CAC3B,IAAI,KAAO,UAAU,KAAK,EAE1B,MADI,CAAC,MAAQ,KAAK,OAAS,GACvB,UAAU,IAAI,EAAU,KACrB,IACT,CAEAA,QAAO,cAAgB,CACrB,UAAW,UACX,aAAc,aACd,UAAW,SACb,CACF,GAAG,MAAM",
  "names": ["window"]
}
