!(function (t, s) { "object" == typeof exports && "undefined" != typeof module ? (module.exports = s()) : "function" == typeof define && define.amd ? define(s) : ((t = "undefined" != typeof globalThis ? globalThis : t || self).FlatQueue = s()); })(this, function () { "use strict"; return class { constructor() { (this.ids = []), (this.values = []), (this.length = 0); } clear() { this.length = 0; } push(t, s) { let i = this.length++; for (; i > 0; ) { const t = (i - 1) >> 1, e = this.values[t]; if (s >= e) break; (this.ids[i] = this.ids[t]), (this.values[i] = e), (i = t); } (this.ids[i] = t), (this.values[i] = s); } pop() { if (0 === this.length) return; const t = this.ids[0]; if ((this.length--, this.length > 0)) { const t = (this.ids[0] = this.ids[this.length]), s = (this.values[0] = this.values[this.length]), i = this.length >> 1; let e = 0; for (; e < i; ) { let t = 1 + (e << 1); const i = t + 1; let h = this.ids[t], l = this.values[t]; const n = this.values[i]; if ((i < this.length && n < l && ((t = i), (h = this.ids[i]), (l = n)), l >= s)) break; (this.ids[e] = h), (this.values[e] = l), (e = t); } (this.ids[e] = t), (this.values[e] = s); } return t; } peek() { if (0 !== this.length) return this.ids[0]; } peekValue() { if (0 !== this.length) return this.values[0]; } shrink() { this.ids.length = this.values.length = this.length; } }; });