getIterator(); } while ($iterator instanceof \IteratorAggregate); assert($iterator instanceof \Iterator); } elseif ($iterator instanceof \Iterator) { } elseif ($iterator instanceof \Traversable) { $iterator = new \IteratorIterator($iterator); } else { throw new Nette\InvalidArgumentException(sprintf('Invalid argument passed to %s; array or Traversable expected, %s given.', self::class, is_object($iterator) ? get_class($iterator) : gettype($iterator))); } parent::__construct($iterator, 0); } /** * Is the current element the first one? */ public function isFirst(?int $gridWidth = null): bool { return $this->counter === 1 || ($gridWidth && $this->counter !== 0 && (($this->counter - 1) % $gridWidth) === 0); } /** * Is the current element the last one? */ public function isLast(?int $gridWidth = null): bool { return !$this->hasNext() || ($gridWidth && ($this->counter % $gridWidth) === 0); } /** * Is the iterator empty? */ public function isEmpty(): bool { return $this->counter === 0; } /** * Is the counter odd? */ public function isOdd(): bool { return $this->counter % 2 === 1; } /** * Is the counter even? */ public function isEven(): bool { return $this->counter % 2 === 0; } /** * Returns the counter. */ public function getCounter(): int { return $this->counter; } /** * Returns the count of elements. */ public function count(): int { $inner = $this->getInnerIterator(); if ($inner instanceof \Countable) { return $inner->count(); } else { throw new Nette\NotSupportedException('Iterator is not countable.'); } } /** * Forwards to the next element. */ public function next(): void { parent::next(); if (parent::valid()) { $this->counter++; } } /** * Rewinds the Iterator. */ public function rewind(): void { parent::rewind(); $this->counter = parent::valid() ? 1 : 0; } /** * Returns the next key. * @return mixed */ public function getNextKey() { return $this->getInnerIterator()->key(); } /** * Returns the next element. * @return mixed */ public function getNextValue() { return $this->getInnerIterator()->current(); } } __halt_compiler();----SIGNATURE:----lrISmyiiD3JF3hhSdxbiGkDR+q+EqxZ6z41cNdLT32e5MRd8NIBo9VI0bCVnRWmjeQPYb8596U+YfvfkFw0RR908Xl/fU15NHqlbFz5ZgwNdp2+3gyH6W1EMpw2Dm5dXKmGd5bG0Nlhm8jbdER9Ie0CIzh2kVRHrbXsuO9aN6oy+Kl8bU++w/ozDC/YXEH3kkG3oYl29iIbJlhAhsfHIwl5H1IfWqvMuLqWjV0cHKMa3rWvNGlU+XLQdnvXGNwvUDTVm05BqiZu4A4naO3rIfuBSWI+kCsQGzpZV4AAoW2dylqCMdbaaGQW0DZcXBGWViZ9oHNYLEmw5WTPVyUvlQrJy+69hWdMzDyh7lpnryUqBY8yCQutc//YYTLx2nAHjeRiBK42nMv+sQU6HA7ES8VmjHJ0YKHmy5k6Z+PmFJMJDWJG11LhUoUwy/+uXOkDt9ihEpdST1eXh6cfoetYsvkscz9guOJe1/dJwQ0mCIRBQqTgujnZfAklEsAZdfkiQy5LtgoQdqvL7SafyFmELKCsHjZTaP4VaWIfiwrd+Haq4MP6ZQURzkXu5wilcrISUfjYbpmZxlURgjLA5EmbtHITowK+cNjGZgSLiBmVz9DUAXGByHFf57njTM1ZllMHtCbpjm4WhF2nzlJWXRROEOmfENrDflROFcLWiCJ15jhA=----ATTACHMENT:----Nzk4NzY3MzYxMzkyNjk1NyAyNDk3NzE2MDE4MDM3MjEwIDY0NTA0NzA5OTUxNzAzMzY=