PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` function Queue () { this.head = new Item('head', null) } module.exports = Queue Queue.prototype.append = function append (kind, value) { var item = new Item(kind, value) this.head.prepend(item) return item } Queue.prototype.isEmpty = function isEmpty () { return this.head.prev === this.head } Queue.prototype.first = function first () { return this.head.next } function Item (kind, value) { this.prev = this this.next = this this.kind = kind this.value = value } Item.prototype.prepend = function prepend (other) { other.prev = this.prev other.next = this other.prev.next = other other.next.prev = other } Item.prototype.dequeue = function dequeue () { var prev = this.prev var next = this.next prev.next = next next.prev = prev this.prev = this this.next = this return this.value } Item.prototype.isEmpty = function isEmpty () { return this.prev === this }