import p from "./_SetCache.js";
import c from "./_arrayIncludes.js";
import A from "./_cacheHas.js";
import g from "./_createSet.js";
import u from "./_setToArray.js";
var w = 200;
function q(f, R, l) {
  var n = -1, s = c, o = f.length, h = !0, e = [], r = e;
  if (o >= w) {
    var a = g(f);
    if (a)
      return u(a);
    h = !1, s = A, r = new p();
  } else
    r = e;
  r:
    for (; ++n < o; ) {
      var i = f[n], t = i;
      if (i = i !== 0 ? i : 0, h && t === t) {
        for (var m = r.length; m--; )
          if (r[m] === t)
            continue r;
        e.push(i);
      } else s(r, t, l) || (r !== e && r.push(t), e.push(i));
    }
  return e;
}
export {
  q as default
};
