Index: imaps-frontend/node_modules/es-iterator-helpers/.eslintrc
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/.eslintrc	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/.eslintrc	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -22,4 +22,5 @@
 			"capIsNewExceptions": [
 				"Call",
+				"CreateDataPropertyOrThrow",
 				"CreateIteratorFromClosure",
 				"CreateIterResultObject",
@@ -30,15 +31,23 @@
 				"Get",
 				"GetIntrinsic",
+				"GetIterator",
 				"GetIteratorDirect",
 				"GetIteratorFlattenable",
 				"GetMethod",
+				"GetOptionsObject",
+				"IfAbruptCloseIterators",
+				"IsAccessorDescriptor",
 				"IsArray",
 				"IsCallable",
+				"IsDataDescriptor",
 				"IteratorClose",
+				"IteratorCloseAll",
+				"IteratorStep",
 				"IteratorStepValue",
-				"IteratorStep",
+				"IteratorZip",
 				"NormalCompletion",
 				"OrdinaryHasInstance",
 				"OrdinaryObjectCreate",
+				"ReturnCompletion",
 				"StringToCodePoints",
 				"ThrowCompletion",
@@ -64,4 +73,18 @@
 			},
 		},
+		{
+			"files": "Iterator.zip*/implementation.js",
+			"rules": {
+				"complexity": "off",
+				"max-depth": "off",
+			},
+		},
+		{
+			"files": "aos/IteratorZip.js",
+			"rules": {
+				"max-depth": "off",
+				"max-params": "off",
+			},
+		},
 	],
 }
Index: imaps-frontend/node_modules/es-iterator-helpers/CHANGELOG.md
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/CHANGELOG.md	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/CHANGELOG.md	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -5,4 +5,26 @@
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.2.0](https://github.com/es-shims/iterator-helpers/compare/v1.1.0...v1.2.0) - 2024-11-04
+
+### Commits
+
+- [New] add `Iterator.zip`, `Iterator.zipKeyed` [`d11073f`](https://github.com/es-shims/iterator-helpers/commit/d11073fd27fcdaf696c3d9b00634b6a5144f75b1)
+- [Fix] `concat`: add missing slot for `.return`; convert singular slot to plural slot [`cc4b586`](https://github.com/es-shims/iterator-helpers/commit/cc4b586cdb0ad6ba540043077c3d71ff79d528cd)
+- [Dev Deps] update `@es-shims/api` [`dd14f1b`](https://github.com/es-shims/iterator-helpers/commit/dd14f1b9f06c37f3bcb0a20bacd6e7f031c0724d)
+
+## [v1.1.0](https://github.com/es-shims/iterator-helpers/compare/v1.0.19...v1.1.0) - 2024-10-09
+
+### Commits
+
+- [New] add `Iterator.concat` [`1c07c21`](https://github.com/es-shims/iterator-helpers/commit/1c07c21d42fa6f3de516191a2b7fb848679314e7)
+- [readme] add ESM and CJS examples [`ae0b60c`](https://github.com/es-shims/iterator-helpers/commit/ae0b60cae42a5e6174809859e29d16085042e3b2)
+- [Dev Deps] update `@es-shims/api`, `auto-changelog`, `es-value-fixtures`, `eslint-plugin-import`, `tape` [`bd34766`](https://github.com/es-shims/iterator-helpers/commit/bd34766d527cc625dcbc242297290a793f21b055)
+- [Dev Deps] update `@ljharb/eslint-config`, `mock-property`, `object-inspect`, `tape` [`2016080`](https://github.com/es-shims/iterator-helpers/commit/201608082a32bc1fa114c012eeb72744e1bf5bfa)
+- [readme] fix copy-paste errors [`799255c`](https://github.com/es-shims/iterator-helpers/commit/799255ce358f9f19ab54cc2377aafb404463d917)
+- [Tests] replace `aud` with `npm audit` [`4c48a77`](https://github.com/es-shims/iterator-helpers/commit/4c48a77d90a6894863ad160fd0f88b3fc76653b6)
+- [Deps] update `globalthis` [`14d9e97`](https://github.com/es-shims/iterator-helpers/commit/14d9e971f976da482cbb7ee76b583db9ce17e056)
+- [Dev Deps] update `@es-shims/api` [`15d84bb`](https://github.com/es-shims/iterator-helpers/commit/15d84bbbe1864dfd028f30f98251cbdf19e74908)
+- [Dev Deps] add missing peer dep [`34559b9`](https://github.com/es-shims/iterator-helpers/commit/34559b9a263dfbc3551fd0ff586639692c04e514)
 
 ## [v1.0.19](https://github.com/es-shims/iterator-helpers/compare/v1.0.18...v1.0.19) - 2024-04-24
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/auto.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/auto.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/auto.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+'use strict';
+
+require('./shim')();
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/implementation.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,119 @@
+'use strict';
+
+var $TypeError = require('es-errors/type');
+
+var AdvanceStringIndex = require('es-abstract/2024/AdvanceStringIndex');
+var Call = require('es-abstract/2024/Call');
+var CompletionRecord = require('es-abstract/2024/CompletionRecord');
+var CreateIteratorFromClosure = require('../aos/CreateIteratorFromClosure');
+var GetIteratorDirect = require('../aos/GetIteratorDirect');
+var GetMethod = require('es-abstract/2024/GetMethod');
+var IsArray = require('es-abstract/2024/IsArray');
+var IteratorCloseAll = require('../aos/IteratorCloseAll');
+var IteratorStepValue = require('es-abstract/2024/IteratorStepValue');
+var ThrowCompletion = require('es-abstract/2024/ThrowCompletion');
+var Type = require('es-abstract/2024/Type');
+
+var forEach = require('es-abstract/helpers/forEach');
+var getIteratorMethod = require('es-abstract/helpers/getIteratorMethod');
+
+var callBound = require('call-bind/callBound');
+var $indexOf = callBound('Array.prototype.indexOf');
+var $splice = callBound('Array.prototype.splice');
+
+var iterHelperProto = require('../IteratorHelperPrototype');
+
+var SLOT = require('internal-slot');
+
+module.exports = function concat() {
+	if (this instanceof concat) {
+		throw new $TypeError('`Iterator.concat` is not a constructor');
+	}
+
+	var iterables = []; // step 1
+
+	forEach(arguments, function (item) { // step 2
+		if (Type(item) !== 'Object') {
+			throw new $TypeError('`Iterator.concat` requires all arguments to be objects'); // step 2.1
+		}
+		// var method = GetMethod(item, Symbol.iterator); // step 2.2
+		var method = getIteratorMethod(
+			{
+				AdvanceStringIndex: AdvanceStringIndex,
+				GetMethod: GetMethod,
+				IsArray: IsArray
+			},
+			item
+		);
+		if (typeof method === 'undefined') {
+			throw new $TypeError('`Iterator.concat` requires all arguments to be iterable'); // step 2.3
+		}
+		iterables[iterables.length] = { '[[OpenMethod]]': method, '[[Iterable]]': item }; // step 2.4
+	});
+
+	var openIters = []; // step 3
+	var sentinel = {};
+	var closeIfAbrupt = function (abruptCompletion) {
+		if (!(abruptCompletion instanceof CompletionRecord)) {
+			throw new $TypeError('`abruptCompletion` must be a Completion Record');
+		}
+		if (openIters.length > 0) {
+			IteratorCloseAll(
+				openIters,
+				abruptCompletion
+			);
+		}
+	};
+
+	var index = 0;
+	var closure = function () { // step 4
+		if (index < iterables.length) {
+		// forEach(iterables, function (iterable) { // step 4.a
+			var iteratorRecord;
+			if (openIters.length === 0) {
+				var iterable = iterables[index];
+				var iter = Call(iterable['[[OpenMethod]]'], iterable['[[Iterable]]']); // step 4.a.i
+				if (Type(iter) !== 'Object') {
+					closeIfAbrupt(ThrowCompletion(new $TypeError('???'))); // step 4.a.ii
+				}
+				iteratorRecord = GetIteratorDirect(iter); // step 4.a.iii
+				iteratorRecord.obj = iterable['[[Iterable]]'];
+				openIters[openIters.length] = iteratorRecord; // step 4.a.iv
+			} else {
+				iteratorRecord = openIters[0];
+			}
+
+			// var innerAlive = true; // step 4.a.v
+			// while (innerAlive) { // step 4.a.vi
+			{ // eslint-disable-line no-lone-blocks
+				// step 4.a.vi.3.a
+				var innerValue;
+				try {
+					innerValue = IteratorStepValue(iteratorRecord); // step 5.b.ix.4.a
+				} catch (e) {
+					// innerAlive = false;
+					$splice(openIters, $indexOf(openIters, iteratorRecord), 1); // step 4.a.vi.2.a
+					index += 1;
+					closeIfAbrupt(ThrowCompletion(e)); // step 4.a.vi.3.b
+				}
+				if (iteratorRecord['[[Done]]']) {
+					// innerAlive = false;
+					$splice(openIters, $indexOf(openIters, iteratorRecord), 1);
+					index += 1;
+					return closure();
+				}
+				return innerValue; // // step 4.a.vi.3.a
+			}
+		// });
+		}
+
+		// return ReturnCompletion(undefined); // step 4.b
+		return sentinel;
+	};
+	SLOT.set(closure, '[[Sentinel]]', sentinel); // for the userland implementation
+	SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation
+
+	var gen = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 5
+	SLOT.set(gen, '[[UnderlyingIterators]]', []); // step 6
+	return gen; // step 7
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/index.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/index.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/index.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,18 @@
+'use strict';
+
+var callBind = require('call-bind');
+var define = require('define-properties');
+
+var implementation = require('./implementation');
+var getPolyfill = require('./polyfill');
+var shim = require('./shim');
+
+var bound = callBind(getPolyfill(), null);
+
+define(bound, {
+	getPolyfill: getPolyfill,
+	implementation: implementation,
+	shim: shim
+});
+
+module.exports = bound;
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/polyfill.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/polyfill.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/polyfill.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,9 @@
+'use strict';
+
+var implementation = require('./implementation');
+
+var $Iterator = require('../Iterator');
+
+module.exports = function getPolyfill() {
+	return typeof $Iterator.concat === 'function' ? $Iterator.concat : implementation;
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/shim.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/shim.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.concat/shim.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,18 @@
+'use strict';
+
+var getPolyfill = require('./polyfill');
+var define = require('define-properties');
+
+var getIteratorPolyfill = require('../Iterator/polyfill');
+
+module.exports = function shimIteratorConcat() {
+	var $Iterator = getIteratorPolyfill();
+	var polyfill = getPolyfill();
+	define(
+		$Iterator,
+		{ concat: polyfill },
+		{ concat: function () { return $Iterator.concat !== polyfill; } }
+	);
+
+	return polyfill;
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.from/implementation.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.from/implementation.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.from/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -17,5 +17,5 @@
 	}
 
-	var iteratorRecord = GetIteratorFlattenable(O, 'iterate-strings'); // step 1
+	var iteratorRecord = GetIteratorFlattenable(O, 'ITERATE-STRINGS'); // step 1
 
 	var hasInstance = OrdinaryHasInstance($Iterator, iteratorRecord['[[Iterator]]']); // step 2
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.drop/implementation.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.drop/implementation.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.drop/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -86,7 +86,7 @@
 	SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation
 
-	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterator]]']); // step 4
+	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 4
 
-	SLOT.set(result, '[[UnderlyingIterator]]', iterated); // step 5
+	SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 5
 
 	return result; // step 6
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.filter/implementation.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.filter/implementation.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.filter/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -73,7 +73,7 @@
 	SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation
 
-	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterator]]']); // step 7
+	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 7
 
-	SLOT.set(result, '[[UnderlyingIterator]]', iterated); // step 8
+	SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 8
 
 	return result; // step 9
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/implementation.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/implementation.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.flatMap/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -77,5 +77,5 @@
 				var mapped = Call(mapper, void undefined, [value, counter]); // step 5.b.iv
 				// yield mapped // step 5.b.vi
-				innerIterator = GetIteratorFlattenable(mapped, 'reject-strings'); // step 5.b.vi
+				innerIterator = GetIteratorFlattenable(mapped, 'REJECT-STRINGS'); // step 5.b.vi
 			} catch (e) {
 				innerAlive = false;
@@ -111,7 +111,7 @@
 	SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation
 
-	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterator]]']); // step 7
+	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 7
 
-	SLOT.set(result, '[[UnderlyingIterator]]', iterated); // step 8
+	SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 8
 
 	return result; // step 9
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.map/implementation.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.map/implementation.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.map/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -69,7 +69,7 @@
 	SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation
 
-	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterator]]']); // step 7
+	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 7
 
-	SLOT.set(result, '[[UnderlyingIterator]]', iterated); // step 8
+	SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 8
 
 	return result; // step 9
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.take/implementation.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.take/implementation.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.prototype.take/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -77,7 +77,7 @@
 	SLOT.set(closure, '[[CloseIfAbrupt]]', closeIfAbrupt); // for the userland implementation
 
-	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterator]]']); // step 7
+	var result = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 7
 
-	SLOT.set(result, '[[UnderlyingIterator]]', iterated); // step 8
+	SLOT.set(result, '[[UnderlyingIterators]]', [iterated]); // step 8
 
 	return result; // step 9
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/auto.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/auto.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/auto.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+'use strict';
+
+require('./shim')();
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/implementation.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,122 @@
+'use strict';
+
+var $TypeError = require('es-errors/type');
+
+var Get = require('es-abstract/2024/Get');
+var GetIterator = require('es-abstract/2024/GetIterator');
+var GetIteratorFlattenable = require('../aos/GetIteratorFlattenable');
+var GetOptionsObject = require('../aos/GetOptionsObject');
+var IfAbruptCloseIterators = require('../aos/IfAbruptCloseIterators');
+var IteratorClose = require('es-abstract/2024/IteratorClose');
+var IteratorStepValue = require('es-abstract/2024/IteratorStepValue');
+var IteratorZip = require('../aos/IteratorZip');
+var NormalCompletion = require('es-abstract/2024/NormalCompletion');
+var ThrowCompletion = require('es-abstract/2024/ThrowCompletion');
+var Type = require('es-abstract/2024/Type');
+
+module.exports = function zip(iterables) {
+	if (this instanceof zip) {
+		throw new $TypeError('`Iterator.zip` is not a constructor');
+	}
+
+	if (Type(iterables) !== 'Object') {
+		throw new $TypeError('`iterables` must be an Object'); // step 1
+	}
+
+	var options = GetOptionsObject(arguments.length > 1 ? arguments[1] : undefined); // step 2
+
+	var mode = Get(options, 'mode'); // step 3
+
+	if (typeof mode === 'undefined') {
+		mode = 'shortest'; // step 4
+	}
+
+	if (mode !== 'shortest' && mode !== 'longest' && mode !== 'strict') {
+		throw new $TypeError('`mode` must be one of "shortest", "longest", or "strict"'); // step 5
+	}
+
+	var paddingOption; // step 6
+
+	if (mode === 'longest') {
+		paddingOption = Get(options, 'padding'); // step 7
+		if (typeof paddingOption !== 'undefined' && Type(paddingOption) !== 'Object') {
+			throw new $TypeError('`padding` option must be an Object'); // step 7.1
+		}
+	}
+
+	var iters = []; // step 8
+
+	var padding = []; // step 9
+
+	var inputIter = GetIterator(iterables, 'SYNC'); // step 10
+
+	var next; // = 'NOT-STARTED'; // step 11
+
+	while (!inputIter['[[Done]]']) { // step 12
+		try {
+			next = IteratorStepValue(inputIter); // step 12.a
+		} catch (e) {
+			IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 12.b
+		}
+
+		if (!inputIter['[[Done]]']) { // step 12.c
+			var iter;
+			try {
+				iter = GetIteratorFlattenable(next, 'REJECT-STRINGS'); // step 12.c.i
+			} catch (e) {
+				IfAbruptCloseIterators(ThrowCompletion(e), [].concat(inputIter, iters)); // step 12.c.ii
+			}
+			iters[iters.length] = iter; // step 12.c.iii
+		}
+	}
+
+	var iterCount = iters.length; // step 13
+
+	if (mode === 'longest') { // step 14
+		if (typeof paddingOption === 'undefined') { // step 14.a
+			for (var i = 0; i < iterCount; i++) { // step 14.a.i
+				padding[padding.length] = void undefined; // step 14.a.i.1
+			}
+		} else { // step 14.b
+			var paddingIter;
+			try {
+				paddingIter = GetIterator(paddingOption, 'SYNC'); // step 14.b.i
+			} catch (e) {
+				IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 14.b.ii
+			}
+			var usingIterator = true; // step 14.b.iii
+			for (var j = 0; j < iterCount; j++) { // step 14.b.iv
+				if (usingIterator) { // step 14.b.iv.1
+					try {
+						next = IteratorStepValue(paddingIter); // step 14.b.iv.1.a
+					} catch (e) {
+						IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 14.b.iv.1.b
+					}
+					if (paddingIter['[[Done]]']) { // step 14.b.iv.1.c
+						usingIterator = false; // step 14.b.iv.1.c.i
+					} else { // step 14.b.iv.1.d
+						padding[padding.length] = next; // step 14.b.iv.1.d.i
+					}
+				}
+				if (!usingIterator) {
+					padding[padding.length] = void undefined; // step 14.b.iv.2
+				}
+			}
+
+			if (usingIterator) { // step 14.b.v
+				try {
+					IteratorClose(paddingIter, NormalCompletion(undefined)); // step 14.b.v.1
+				} catch (e) {
+					IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 14.b.v.2
+				}
+			}
+		}
+	}
+
+	// eslint-disable-next-line no-sequences
+	var finishResults = (0, function (results) { // step 15
+		return results; // step 15.1
+	});
+
+	return IteratorZip(iters, mode, padding, finishResults); // step 16
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/index.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/index.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/index.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,5 @@
+'use strict';
+
+var getPolyfill = require('./polyfill');
+
+module.exports = getPolyfill();
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/polyfill.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/polyfill.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/polyfill.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,9 @@
+'use strict';
+
+var implementation = require('./implementation');
+
+var $Iterator = require('../Iterator');
+
+module.exports = function getPolyfill() {
+	return typeof $Iterator.zip === 'function' ? $Iterator.zip : implementation;
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/shim.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/shim.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zip/shim.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,18 @@
+'use strict';
+
+var getPolyfill = require('./polyfill');
+var define = require('define-properties');
+
+var getIteratorPolyfill = require('../Iterator/polyfill');
+
+module.exports = function shimIteratorZip() {
+	var $Iterator = getIteratorPolyfill();
+	var polyfill = getPolyfill();
+	define(
+		$Iterator,
+		{ zip: polyfill },
+		{ zip: function () { return $Iterator.zip !== polyfill; } }
+	);
+
+	return polyfill;
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/auto.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/auto.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/auto.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,3 @@
+'use strict';
+
+require('./shim')();
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/implementation.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/implementation.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,133 @@
+'use strict';
+
+var $TypeError = require('es-errors/type');
+
+var Call = require('es-abstract/2024/Call');
+var CreateDataPropertyOrThrow = require('es-abstract/2024/CreateDataPropertyOrThrow');
+var Get = require('es-abstract/2024/Get');
+var GetIteratorFlattenable = require('../aos/GetIteratorFlattenable');
+var GetOptionsObject = require('../aos/GetOptionsObject');
+var IfAbruptCloseIterators = require('../aos/IfAbruptCloseIterators');
+var IsAccessorDescriptor = require('es-abstract/2024/IsAccessorDescriptor');
+var IsDataDescriptor = require('es-abstract/2024/IsDataDescriptor');
+var IteratorZip = require('../aos/IteratorZip');
+var OrdinaryObjectCreate = require('es-abstract/2024/OrdinaryObjectCreate');
+var ThrowCompletion = require('es-abstract/2024/ThrowCompletion');
+var Type = require('es-abstract/2024/Type');
+
+var forEach = require('es-abstract/helpers/forEach');
+var ownKeys = require('es-abstract/helpers/OwnPropertyKeys');
+
+var gOPD = require('gopd');
+
+module.exports = function zipKeyed(iterables) {
+	if (this instanceof zipKeyed) {
+		throw new $TypeError('`Iterator.zip` is not a constructor');
+	}
+
+	if (Type(iterables) !== 'Object') {
+		throw new $TypeError('`iterables` must be an Object'); // step 1
+	}
+
+	var options = GetOptionsObject(arguments.length > 1 ? arguments[1] : undefined); // step 2
+
+	var mode = Get(options, 'mode'); // step 3
+
+	if (typeof mode === 'undefined') {
+		mode = 'shortest'; // step 4
+	}
+
+	if (mode !== 'shortest' && mode !== 'longest' && mode !== 'strict') {
+		throw new $TypeError('`mode` must be one of "shortest", "longest", or "strict"'); // step 5
+	}
+
+	var paddingOption; // step 6
+
+	if (mode === 'longest') {
+		paddingOption = Get(options, 'padding'); // step 7
+		if (typeof paddingOption !== 'undefined' && Type(paddingOption) !== 'Object') {
+			throw new $TypeError('`padding` option must be an Object'); // step 7.1
+		}
+	}
+
+	var iters = []; // step 8
+
+	var padding = []; // step 9
+
+	var allKeys = ownKeys(iterables); // step 10
+
+	var keys = []; // step 11
+
+	forEach(allKeys, function (key) { // step 12
+		var desc;
+		try {
+			desc = gOPD(iterables, key); // step 12.a
+		} catch (e) {
+			IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 12.b
+		}
+
+		if (typeof desc !== 'undefined' && desc['[[Enumerable]]'] === true) { // step 12.c
+			var value; // step 12.c.i
+			if (IsDataDescriptor(desc)) { // step 12.c.ii
+				value = desc['[[Value]]']; // step 12.c.ii.1
+			} else {
+				if (!IsAccessorDescriptor(desc)) {
+					throw new $TypeError('Assertion failed: IsAccessorDescriptor(desc) is not true'); // step 12.c.ii.1
+				}
+				var getter = desc['[[Get]]']; // step 12.c.iii.2
+				if (typeof getter !== 'undefined') { // step 12.c.iii.3
+					var getterResult;
+					try {
+						getterResult = Call(getter, iterables); // step 12.c.iii.3.a
+					} catch (e) {
+						// step 12.c.iii.3.b
+						// 2. IfAbruptCloseIterators(e, iters).
+					}
+					value = getterResult; // step 12.c.iii.3.c
+				}
+			}
+			if (typeof value !== 'undefined') { // step 12.c.iv
+				keys[keys.length] = key; // step 12.c.iv.1
+				var iter;
+				try {
+					iter = GetIteratorFlattenable(value, 'REJECT-STRINGS'); // step 12.c.iv.2
+				} catch (e) {
+					// step 12.c.iv.3
+					// 3. IfAbruptCloseIterators(e, iters).
+				}
+				iters[iters.length] = iter; // step 12.c.iv.4
+			}
+		}
+	});
+
+	var iterCount = iters.length; // step 13
+
+	if (mode === 'longest') { // step 14
+		if (typeof paddingOption === 'undefined') { // step 14.a
+			for (var j = 0; j < iterCount; j += 1) { // step 14.a.i
+				padding[padding.length] = void undefined; // step 14.a.i.1
+			}
+		} else { // step 14.b
+			forEach(keys, function (key) { // step 14.b.i
+				var value;
+				try {
+					value = Get(paddingOption, key); // step 14.b.i.1
+				} catch (e) {
+					IfAbruptCloseIterators(ThrowCompletion(e), iters); // step 14.b.i.2
+				}
+				padding[padding.length] = value; // step 14.b.i.3
+			});
+		}
+	}
+
+	// eslint-disable-next-line no-sequences
+	var finishResults = (0, function (results) { // step 15
+		var obj = OrdinaryObjectCreate(null); // step 15.a
+		for (var i = 0; i < iterCount; i += 1) { // step 15.b
+			CreateDataPropertyOrThrow(obj, keys[i], results[i]); // step 15.b.i
+		}
+		return obj; // step 15.c
+	});
+
+	return IteratorZip(iters, mode, padding, finishResults); // step 16
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/index.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/index.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/index.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,5 @@
+'use strict';
+
+var getPolyfill = require('./polyfill');
+
+module.exports = getPolyfill();
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/polyfill.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/polyfill.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/polyfill.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,9 @@
+'use strict';
+
+var implementation = require('./implementation');
+
+var $Iterator = require('../Iterator');
+
+module.exports = function getPolyfill() {
+	return typeof $Iterator.zipKeyed === 'function' ? $Iterator.zipKeyed : implementation;
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/shim.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/shim.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/Iterator.zipKeyed/shim.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,18 @@
+'use strict';
+
+var getPolyfill = require('./polyfill');
+var define = require('define-properties');
+
+var getIteratorPolyfill = require('../Iterator/polyfill');
+
+module.exports = function shimIteratorZipKeyed() {
+	var $Iterator = getIteratorPolyfill();
+	var polyfill = getPolyfill();
+	define(
+		$Iterator,
+		{ zipKeyed: polyfill },
+		{ zipKeyed: function () { return $Iterator.zipKeyed !== polyfill; } }
+	);
+
+	return polyfill;
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/IteratorHelperPrototype/index.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/IteratorHelperPrototype/index.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/IteratorHelperPrototype/index.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -6,10 +6,10 @@
 var SLOT = require('internal-slot');
 
-var CompletionRecord = require('es-abstract/2024/CompletionRecord');
 var CreateIterResultObject = require('es-abstract/2024/CreateIterResultObject');
 var GeneratorResume = require('../aos/GeneratorResume');
 var GeneratorResumeAbrupt = require('../aos/GeneratorResumeAbrupt');
-var IteratorClose = require('es-abstract/2024/IteratorClose');
+var IteratorCloseAll = require('../aos/IteratorCloseAll');
 var NormalCompletion = require('es-abstract/2024/NormalCompletion');
+var ReturnCompletion = require('../aos/ReturnCompletion');
 
 var implementation;
@@ -23,5 +23,5 @@
 			var O = this; // step 1
 
-			SLOT.assert(O, '[[UnderlyingIterator]]'); // step 2
+			SLOT.assert(O, '[[UnderlyingIterators]]'); // step 2
 
 			SLOT.assert(O, '[[GeneratorState]]'); // step 3
@@ -29,9 +29,9 @@
 			if (SLOT.get(O, '[[GeneratorState]]') === 'suspendedStart') { // step 4
 				SLOT.set(O, '[[GeneratorState]]', 'completed'); // step 4.a
-				IteratorClose(SLOT.get(O, '[[UnderlyingIterator]]'), NormalCompletion('unused')); // step 4.c
+				IteratorCloseAll(SLOT.get(O, '[[UnderlyingIterators]]'), NormalCompletion('unused')); // step 4.c
 				return CreateIterResultObject(void undefined, true); // step 4.d
 			}
 
-			var C = new CompletionRecord('return', void undefined); // step 5
+			var C = ReturnCompletion(void undefined); // step 5
 
 			return GeneratorResumeAbrupt(O, C, 'Iterator Helper'); // step 6
@@ -48,5 +48,5 @@
 	};
 	implementation['return'] = function () {
-		var C = new CompletionRecord('return', void undefined); // step 1
+		var C = ReturnCompletion(void undefined); // step 1
 		return GeneratorResumeAbrupt(this, C, 'Iterator Helper');
 	};
Index: imaps-frontend/node_modules/es-iterator-helpers/README.md
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/README.md	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/README.md	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -10,7 +10,7 @@
 An ESnext spec-compliant sync iterator helpers shim/polyfill/replacement that works as far down as ES3.
 
-This package implements the [es-shim API](https://github.com/es-shims/api) “multi” interface. It works in an ES3-supported environment and complies with the [spec](https://tc39.es/ecma262/#sec-additional-properties-of-the-string.prototype-object).
+This package implements the [es-shim API](https://github.com/es-shims/api) “multi” interface. It works in an ES3-supported environment and complies with the [iterator helpers spec](https://tc39.es/proposal-iterator-helpers/) and the [iterator sequencing spec](https://tc39.es/proposal-iterator-sequencing/).
 
-Because the `Iterator.prototype` methods depend on a receiver (the `this` value), the main export in each subdirectory takes the string to operate on as the first argument.
+Because the `Iterator.prototype` methods depend on a receiver (the `this` value), the main export in each subdirectory takes the iterator to operate on as the first argument.
 
 The main export of the package itself is simply an array of the available directory names. It’s sole intended use is for build tooling and testing.
@@ -20,4 +20,5 @@
  - [`Iterator` constructor](https://tc39.es/proposal-iterator-helpers/#sec-iterator-constructor)
  - [`Iterator.prototype`](https://tc39.es/proposal-iterator-helpers/#sec-iterator.prototype)
+ - [`Iterator.concat`](https://tc39.es/proposal-iterator-sequencing/)
  - [`Iterator.from`](https://tc39.es/proposal-iterator-helpers/#sec-iterator.from)
  - [`Iterator.prototype.constructor`](https://tc39.es/proposal-iterator-helpers/#sec-iteratorprototype.constructor)
@@ -38,4 +39,5 @@
  - node v22, Chrome >= v122: has a [bug](https://issues.chromium.org/issues/336839115)
  - node < v22, Chrome < v122, Safari <= v17.1, Firefox <= v125: not implemented
+ - all environments lack Iterator.concat
 
 ## Getting started
@@ -46,4 +48,6 @@
 
 ## Usage/Examples
+
+Using explicit imports:
 
 ```js
@@ -68,8 +72,19 @@
 ```
 
+Shim using `require`:
+
 ```js
-require('./auto'); // shim all of the methods
+require('es-iterator-helpers/auto'); // shim all of the methods
 
-require('./Iterator.prototype.map/auto'); // shim the “map” method
+require('es-iterator-helpers/Iterator.prototype.map/auto'); // shim the “map” method
+```
+
+Shim using `import` syntax:
+
+[](#preventEval)
+```js
+import 'es-iterator-helpers/auto'; // shim all of the methods
+
+import 'es-iterator-helpers/Iterator.prototype.map/auto'; // shim the “map” method
 ```
 
Index: imaps-frontend/node_modules/es-iterator-helpers/aos/GetIteratorFlattenable.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/aos/GetIteratorFlattenable.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/aos/GetIteratorFlattenable.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -12,7 +12,13 @@
 var getIteratorMethod = require('es-abstract/helpers/getIteratorMethod');
 
+// https://tc39.es/proposal-iterator-helpers/#sec-getiteratorflattenable
+
 module.exports = function GetIteratorFlattenable(obj, stringHandling) {
+	if (stringHandling !== 'REJECT-STRINGS' && stringHandling !== 'ITERATE-STRINGS') {
+		throw new $TypeError('Assertion failed: `stringHandling` must be "REJECT-STRINGS" or "ITERATE-STRINGS"');
+	}
+
 	if (Type(obj) !== 'Object') {
-		if (stringHandling === 'reject-strings' || typeof obj !== 'string') {
+		if (stringHandling === 'REJECT-STRINGS' || typeof obj !== 'string') {
 			throw new $TypeError('obj must be an Object'); // step 1.a
 		}
Index: imaps-frontend/node_modules/es-iterator-helpers/aos/GetOptionsObject.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/aos/GetOptionsObject.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/aos/GetOptionsObject.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,20 @@
+'use strict';
+
+var $TypeError = require('es-errors/type');
+
+// var OrdinaryObjectCreate = require('es-abstract/2024/OrdinaryObjectCreate');
+var Type = require('es-abstract/2024/Type');
+
+// https://tc39.es/proposal-joint-iteration/#sec-getoptionsobject
+
+module.exports = function GetOptionsObject(options) {
+	if (typeof options === 'undefined') { // step 1
+		// return OrdinaryObjectCreate(null); // step 1.a
+		return { __proto__: null }; // step 1.a
+	}
+	if (Type(options) === 'Object') { // step 2
+		return options; // step 2.a
+	}
+
+	throw new $TypeError('`options` must be an Object or undefined'); // step 3
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/aos/IfAbruptCloseIterators.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/aos/IfAbruptCloseIterators.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/aos/IfAbruptCloseIterators.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,19 @@
+'use strict';
+
+var $TypeError = require('es-errors/type');
+
+var CompletionRecord = require('es-abstract/2024/CompletionRecord');
+var IteratorCloseAll = require('./IteratorCloseAll');
+
+// https://tc39.es/proposal-joint-iteration/#sec-ifabruptcloseiterators
+
+module.exports = function IfAbruptCloseIterators(value, iteratorRecords) {
+	if (!(value instanceof CompletionRecord)) {
+		throw new $TypeError('Assertion failed: `value` must be a Completion Record'); // step 1
+	}
+	if (value.type() === 'throw') {
+		return IteratorCloseAll(iteratorRecords, value); // step 2
+	}
+
+	return value['!'](); // step
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/aos/IteratorCloseAll.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/aos/IteratorCloseAll.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/aos/IteratorCloseAll.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,34 @@
+'use strict';
+
+var $TypeError = require('es-errors/type');
+
+var CompletionRecord = require('es-abstract/2024/CompletionRecord');
+var IteratorClose = require('es-abstract/2024/IteratorClose');
+var ThrowCompletion = require('es-abstract/2024/ThrowCompletion');
+
+var IsArray = require('es-abstract/helpers/IsArray');
+var every = require('es-abstract/helpers/every');
+
+var isIteratorRecord = require('es-abstract/helpers/records/iterator-record');
+
+// https://tc39.es/proposal-joint-iteration/#sec-closeall
+
+module.exports = function IteratorCloseAll(iters, completion) {
+	if (!IsArray(iters) || !every(iters, isIteratorRecord)) {
+		throw new $TypeError('Assertion failed: `iters` must be a List of IteratorRecords');
+	}
+	if (!(completion instanceof CompletionRecord)) {
+		throw new $TypeError('Assertion failed: `completion` must be a Completion Record');
+	}
+
+	for (var i = iters.length - 1; i >= 0; i -= 1) { // step 1
+		try {
+			IteratorClose(iters[i], completion); // step 1.a
+		} catch (e) {
+			// eslint-disable-next-line no-param-reassign
+			completion = ThrowCompletion(e); // step 1.a
+		}
+	}
+
+	return completion['?'](); // step 2
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/aos/IteratorZip.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/aos/IteratorZip.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/aos/IteratorZip.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,147 @@
+'use strict';
+
+var $TypeError = require('es-errors/type');
+
+var CreateIteratorFromClosure = require('./CreateIteratorFromClosure');
+var IteratorCloseAll = require('./IteratorCloseAll');
+var IteratorStep = require('es-abstract/2024/IteratorStep');
+var IteratorStepValue = require('es-abstract/2024/IteratorStepValue');
+var NormalCompletion = require('es-abstract/2024/NormalCompletion');
+var ThrowCompletion = require('es-abstract/2024/ThrowCompletion');
+
+var isAbstractClosure = require('es-abstract/helpers/isAbstractClosure');
+var IsArray = require('es-abstract/helpers/IsArray');
+var isIteratorRecord = require('es-abstract/helpers/records/iterator-record');
+var some = require('es-abstract/helpers/some');
+
+var callBound = require('call-bind/callBound');
+
+var $indexOf = callBound('Array.prototype.indexOf');
+var $slice = callBound('Array.prototype.slice');
+var $splice = callBound('Array.prototype.splice');
+
+var iterHelperProto = require('../IteratorHelperPrototype');
+
+var SLOT = require('internal-slot');
+
+// https://tc39.es/proposal-joint-iteration/#sec-IteratorZip
+
+module.exports = function IteratorZip(iters, mode, padding, finishResults) {
+	if (!IsArray(iters) || !some(iters, isIteratorRecord)) {
+		throw new $TypeError('`iters` must be a List of IteratorRecords');
+	}
+
+	if (mode !== 'shortest' && mode !== 'longest' && mode !== 'strict') {
+		throw new $TypeError('`mode` must be one of "shortest", "longest", or "strict"');
+	}
+
+	if (!IsArray(padding)) {
+		throw new $TypeError('`padding` must be a List');
+	}
+
+	if (!isAbstractClosure(finishResults)) {
+		throw new $TypeError('`finishResults` must be an Abstract Closure');
+	}
+
+	var iterCount = iters.length; // step 1
+
+	var openIters = $slice(iters); // step 2
+
+	var sentinel = {};
+	var closure = function () {
+		if (iterCount === 0) {
+			// 1. If iterCount = 0, return ReturnCompletion(undefined).
+			return sentinel; // step 1
+		}
+		// while (true) {
+		{ // eslint-disable-line no-lone-blocks
+			var results = []; // step 3.b.i
+			if (openIters.length === 0) {
+				throw new $TypeError('Assertion failed: `openIters` is empty'); // step 3.b.ii
+			}
+			for (var i = 0; i < iterCount; ++i) { // step 3.b.iii
+				// for (var i = 0; i < iterCount; i += 1) { // step 3.b.iii
+				var result;
+
+				var iter = iters[i];
+				if (iter === null) { // step 3.b.iii.1
+					if (mode !== 'longest') {
+						throw new $TypeError('Assertion failed: `mode` is not "longest"'); // step 3.b.iii.1.a
+					}
+					result = padding[i]; // step 3.b.iii.1.b
+				} else { // step 2
+					try {
+						result = IteratorStepValue(iter); // step 3.b.iii.2.a, 3.b.iii.2.c
+					} catch (e) { // step 3.b.iii.2.b
+						$splice(openIters, $indexOf(openIters, iter), 1); // step 3.b.iii.2.b.i
+						return IteratorCloseAll(openIters, ThrowCompletion(e)); // step 3.b.iii.2.b.ii
+					}
+					if (iter['[[Done]]']) { // step 3.b.iii.2.d
+						$splice(openIters, $indexOf(openIters, iter), 1); // step 3.b.iii.2.d.i
+						if (mode === 'shortest') { // step 3.b.iii.2.d.ii
+							IteratorCloseAll(openIters, NormalCompletion(undefined)); // step 3.b.iii.2.d.ii.i
+							return sentinel;
+						} else if (mode === 'strict') { // step 3.b.iii.2.d.iii
+							if (i !== 0) { // step 3.b.iii.2.d.iii.i
+								return IteratorCloseAll(
+									openIters,
+									ThrowCompletion(new $TypeError('Assertion failed: `i` is not 0'))
+								); // step 3.b.iii.2.d.iii.i.i
+							}
+							for (var k = 1; k < iterCount; k += 1) { // step 3.b.iii.2.d.iii.ii
+								if (iters[k] === null) {
+									throw new $TypeError('Assertion failed: `iters[k]` is `null`'); // step 3.b.iii.2.d.iii.ii.i
+								}
+								try {
+									result = IteratorStep(iters[k]); // step 3.b.iii.2.d.iii.ii.ii, 3.b.iii.2.d.iii.ii.iii.ii.iv
+								} catch (e) { // step 3.b.iii.2.d.iii.ii.iii
+									return IteratorCloseAll(openIters, ThrowCompletion(e)); // step 3.b.iii.2.d.iii.ii.iii.ii
+								}
+
+								// if (open === false) { // step 3.b.iii.2.d.iii.ii.v
+								if (iters[k]['[[Done]]']) { // step 3.b.iii.2.d.iii.ii.v
+									$splice(openIters, $indexOf(openIters, iters[k]), 1); // step 3.b.iii.2.d.iii.ii.v.i
+								} else { // step 3.b.iii.2.d.iii.ii.vi
+									return IteratorCloseAll(
+										openIters,
+										ThrowCompletion(new $TypeError('Assertion failed: `open` is not `false`'))
+									); // step 3.b.iii.2.d.iii.ii.vi.i
+								}
+							}
+						} else { // step 3.b.iii.2.d.iv
+							if (mode !== 'longest') {
+								throw new $TypeError('Assertion failed: `mode` is not "longest"'); // step 3.b.iii.2.d.iv.i
+							}
+
+							if (openIters.length === 0) {
+								return sentinel; // ReturnCompletion(undefined); // step 3.b.iii.2.d.iv.ii
+							}
+
+							// eslint-disable-next-line no-param-reassign
+							iters[i] = null; // step 3.b.iii.2.d.iv.iii
+							// i += 1;
+
+							result = padding[i]; // step 3.b.iii.2.d.iv.iv
+						}
+					}
+				}
+
+				results[results.length] = result; // step 3.b.iii.3
+
+				//    5. Let completion be Completion(Yield(results)).
+				//    6. If completion is an abrupt completion, then
+				//   1. Return ? IteratorCloseAll(openIters, completion).
+			}
+		}
+
+		return finishResults(results); // step 3.b.iv
+	};
+	SLOT.set(closure, '[[Sentinel]]', sentinel); // for the userland implementation
+	SLOT.set(closure, '[[CloseIfAbrupt]]', finishResults); // for the userland implementation
+
+	var gen = CreateIteratorFromClosure(closure, 'Iterator Helper', iterHelperProto, ['[[UnderlyingIterators]]']); // step 4
+
+	SLOT.set(gen, '[[UnderlyingIterators]]', openIters); // step 5
+
+	return gen; // step 6
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/aos/ReturnCompletion.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/aos/ReturnCompletion.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/aos/ReturnCompletion.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,9 @@
+'use strict';
+
+var CompletionRecord = require('es-abstract/2024/CompletionRecord');
+
+// https://tc39.es/ecma262/#sec-returncompletion
+
+module.exports = function ReturnCompletion(value) {
+	return new CompletionRecord('return', value);
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/index.json
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/index.json	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/index.json	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -1,5 +1,8 @@
 [
 	"Iterator",
+	"Iterator.concat",
 	"Iterator.from",
+	"Iterator.zip",
+	"Iterator.zipKeyed",
 	"Iterator.prototype",
 	"Iterator.prototype.constructor",
Index: imaps-frontend/node_modules/es-iterator-helpers/package.json
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/package.json	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/package.json	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -1,5 +1,5 @@
 {
 	"name": "es-iterator-helpers",
-	"version": "1.0.19",
+	"version": "1.2.0",
 	"description": "An ESnext spec-compliant iterator helpers shim/polyfill/replacement that works as far down as ES3.",
 	"main": "index.json",
@@ -18,4 +18,9 @@
 		"./Iterator.prototype/implementation": "./Iterator.prototype/implementation.js",
 		"./Iterator.prototype/shim": "./Iterator.prototype/shim.js",
+		"./Iterator.concat": "./Iterator.concat/index.js",
+		"./Iterator.concat/auto": "./Iterator.concat/auto.js",
+		"./Iterator.concat/polyfill": "./Iterator.concat/polyfill.js",
+		"./Iterator.concat/implementation": "./Iterator.concat/implementation.js",
+		"./Iterator.concat/shim": "./Iterator.concat/shim.js",
 		"./Iterator.from": "./Iterator.from/index.js",
 		"./Iterator.from/auto": "./Iterator.from/auto.js",
@@ -23,4 +28,14 @@
 		"./Iterator.from/implementation": "./Iterator.from/implementation.js",
 		"./Iterator.from/shim": "./Iterator.from/shim.js",
+		"./Iterator.zip": "./Iterator.zip/index.js",
+		"./Iterator.zip/auto": "./Iterator.zip/auto.js",
+		"./Iterator.zip/polyfill": "./Iterator.zip/polyfill.js",
+		"./Iterator.zip/implementation": "./Iterator.zip/implementation.js",
+		"./Iterator.zip/shim": "./Iterator.zip/shim.js",
+		"./Iterator.zipKeyed": "./Iterator.zipKeyed/index.js",
+		"./Iterator.zipKeyed/auto": "./Iterator.zipKeyed/auto.js",
+		"./Iterator.zipKeyed/polyfill": "./Iterator.zipKeyed/polyfill.js",
+		"./Iterator.zipKeyed/implementation": "./Iterator.zipKeyed/implementation.js",
+		"./Iterator.zipKeyed/shim": "./Iterator.zipKeyed/shim.js",
 		"./Iterator.prototype.constructor": "./Iterator.prototype.constructor/index.js",
 		"./Iterator.prototype.constructor/auto": "./Iterator.prototype.constructor/auto.js",
@@ -89,5 +104,5 @@
 		"prepublishOnly": "safe-publish-latest",
 		"prepublish": "not-in-publish || npm run prepublishOnly",
-		"prelint": "es-shim-api --bound --multi --ignore-dirs=WrapForValidIteratorPrototype,IteratorHelperPrototype",
+		"prelint": "es-shim-api --type=multi --ignore-dirs=WrapForValidIteratorPrototype,IteratorHelperPrototype",
 		"lint": "eslint --ext=js,mjs .",
 		"postlint": "evalmd README.md",
@@ -95,5 +110,5 @@
 		"test": "npm run tests-only",
 		"tests-only": "nyc tape 'test/**/*.js'",
-		"posttest": "aud --production",
+		"posttest": "npx npm@'>=10.2' audit --production",
 		"version": "auto-changelog && git add CHANGELOG.md",
 		"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
@@ -139,20 +154,21 @@
 		"function-bind": "^1.1.2",
 		"get-intrinsic": "^1.2.4",
-		"globalthis": "^1.0.3",
+		"globalthis": "^1.0.4",
+		"gopd": "^1.0.1",
 		"has-property-descriptors": "^1.0.2",
 		"has-proto": "^1.0.3",
 		"has-symbols": "^1.0.3",
 		"internal-slot": "^1.0.7",
-		"iterator.prototype": "^1.1.2",
+		"iterator.prototype": "^1.1.3",
 		"safe-array-concat": "^1.1.2"
 	},
 	"devDependencies": {
-		"@es-shims/api": "^2.4.2",
-		"@ljharb/eslint-config": "^21.1.0",
-		"aud": "^2.0.4",
-		"auto-changelog": "^2.4.0",
-		"es-value-fixtures": "^1.4.2",
+		"@es-shims/api": "^3.0.1",
+		"@ljharb/eslint-config": "^21.1.1",
+		"auto-changelog": "^2.5.0",
+		"encoding": "^0.1.13",
+		"es-value-fixtures": "^1.5.0",
 		"eslint": "=8.8.0",
-		"eslint-plugin-import": "^2.29.1",
+		"eslint-plugin-import": "^2.31.0",
 		"evalmd": "^0.0.19",
 		"for-each": "^0.3.3",
@@ -163,10 +179,10 @@
 		"iterate-iterator": "^1.0.2",
 		"make-generator-function": "^2.0.0",
-		"mock-property": "^1.0.3",
+		"mock-property": "^1.1.0",
 		"npmignore": "^0.3.1",
 		"nyc": "^10.3.2",
-		"object-inspect": "^1.13.1",
+		"object-inspect": "^1.13.2",
 		"safe-publish-latest": "^2.0.0",
-		"tape": "^5.7.5"
+		"tape": "^5.9.0"
 	},
 	"auto-changelog": {
Index: imaps-frontend/node_modules/es-iterator-helpers/shim.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/shim.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/shim.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -3,4 +3,7 @@
 var shimIterator = require('./Iterator/shim');
 var shimIteratorFrom = require('./Iterator.from/shim');
+var shimIteratorConcat = require('./Iterator.concat/shim');
+var shimZip = require('./Iterator.zip/shim');
+var shimZipKeyed = require('./Iterator.zipKeyed/shim');
 var shimIteratorProto = require('./Iterator.prototype/shim');
 var shimIteratorCtor = require('./Iterator.prototype.constructor/shim');
@@ -19,6 +22,9 @@
 module.exports = function shimIteratorHelpers() {
 	shimIterator();
+	shimIteratorProto();
 	shimIteratorFrom();
-	shimIteratorProto();
+	shimIteratorConcat();
+	shimZip();
+	shimZipKeyed();
 	shimIteratorCtor();
 	shimIteratorDrop();
Index: imaps-frontend/node_modules/es-iterator-helpers/test/Iterator.concat.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/test/Iterator.concat.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/test/Iterator.concat.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,127 @@
+'use strict';
+
+var defineProperties = require('define-properties');
+var test = require('tape');
+var callBind = require('call-bind');
+var functionsHaveNames = require('functions-have-names')();
+var forEach = require('for-each');
+var debug = require('object-inspect');
+var v = require('es-value-fixtures');
+var hasSymbols = require('has-symbols/shams')();
+var mockProperty = require('mock-property');
+
+var index = require('../Iterator.concat');
+var impl = require('../Iterator.concat/implementation');
+var from = require('../Iterator.from/polyfill')();
+
+var isEnumerable = Object.prototype.propertyIsEnumerable;
+
+var testIterator = require('./helpers/testIterator');
+
+module.exports = {
+	tests: function (concat, name, t) {
+		t['throws'](
+			function () { return new concat(); }, // eslint-disable-line new-cap
+			TypeError,
+			'`' + name + '` itself is not a constructor'
+		);
+		t['throws'](
+			function () { return new concat({}); }, // eslint-disable-line new-cap
+			TypeError,
+			'`' + name + '` itself is not a constructor, with an argument'
+		);
+
+		forEach(v.primitives.concat(v.objects), function (nonIterator) {
+			t['throws'](
+				function () { concat(nonIterator); },
+				TypeError,
+				debug(nonIterator) + ' is not an iterable Object'
+			);
+		});
+
+		t.test('actual iteration', { skip: !hasSymbols }, function (st) {
+			forEach(v.nonFunctions, function (nonFunction) {
+				var badIterable = {};
+				badIterable[Symbol.iterator] = nonFunction;
+				st['throws'](
+					function () { concat([], badIterable, []).next(); },
+					TypeError,
+					debug(badIterable) + ' is not a function'
+				);
+			});
+
+			forEach(v.strings, function (string) {
+				st['throws'](
+					function () { concat(string); },
+					TypeError,
+					'non-objects are not considered iterable'
+				);
+				var stringIt = concat(['a'], [string], ['c']);
+				testIterator(stringIt, ['a', string, 'c'], st, 'string iterator: ' + debug(string));
+			});
+
+			var arrayIt = concat([1, 2, 3]);
+			st.equal(typeof arrayIt.next, 'function', 'has a `next` function');
+
+			st.test('real iterators', { skip: !hasSymbols }, function (s2t) {
+				var iter = [1, 2][Symbol.iterator]();
+				testIterator(concat(iter, [3]), [1, 2, 3], s2t, 'array iterator + array yields combined results');
+
+				s2t.end();
+			});
+
+			st.test('observability in a replaced String iterator', function (s2t) {
+				var originalStringIterator = String.prototype[Symbol.iterator];
+				var observedType;
+				s2t.teardown(mockProperty(String.prototype, Symbol.iterator, {
+					get: function () {
+						'use strict'; // eslint-disable-line strict, lines-around-directive
+
+						observedType = typeof this;
+						return originalStringIterator;
+					}
+				}));
+
+				concat(from(''));
+				s2t.equal(observedType, 'string', 'string primitive -> primitive receiver in Symbol.iterator getter');
+				concat(from(Object('')));
+				s2t.equal(observedType, 'object', 'boxed string -> boxed string in Symbol.iterator getter');
+
+				s2t.end();
+			});
+
+			st.end();
+		});
+	},
+	index: function () {
+		test('Iterator.concat: index', function (t) {
+			module.exports.tests(index, 'Iterator.concat', t);
+
+			t.end();
+		});
+	},
+	implementation: function () {
+		test('Iterator.concat: implementation', function (t) {
+			module.exports.tests(impl, 'Iterator.concat', t);
+
+			t.end();
+		});
+	},
+	shimmed: function () {
+		test('Iterator.concat: shimmed', function (t) {
+			t.test('Function name', { skip: !functionsHaveNames }, function (st) {
+				st.equal(Iterator.concat.name, 'concat', 'Iterator.concat has name "concat"');
+				st.end();
+			});
+
+			t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
+				et.equal(false, isEnumerable.call(Iterator, 'concat'), 'Iterator.concat is not enumerable');
+				et.end();
+			});
+
+			module.exports.tests(callBind(Iterator.concat, Iterator), 'Iterator.concat', t);
+
+			t.end();
+		});
+	}
+};
Index: imaps-frontend/node_modules/es-iterator-helpers/test/Iterator.from.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/test/Iterator.from.js	(revision d56544918790c0c3bc50f2f0a98c99f3d2988ccf)
+++ imaps-frontend/node_modules/es-iterator-helpers/test/Iterator.from.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -101,5 +101,12 @@
 			st.test('real iterators', { skip: !hasSymbols }, function (s2t) {
 				var iter = [][Symbol.iterator]();
-				s2t.equal(from(iter), iter, 'array iterator becomes itself');
+				// eslint-disable-next-line no-proto
+				var arrayIterHasIterProto = hasProto && iter.__proto__.__proto__ !== Object.prototype;
+				s2t.equal(
+					from(iter),
+					iter,
+					'array iterator becomes itself',
+					{ skip: !arrayIterHasIterProto && 'node 0.12 - 3 do not have Iterator.prototype in the proto chains' }
+				);
 
 				s2t.end();
Index: imaps-frontend/node_modules/es-iterator-helpers/test/Iterator.zip.js
===================================================================
--- imaps-frontend/node_modules/es-iterator-helpers/test/Iterator.zip.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
+++ imaps-frontend/node_modules/es-iterator-helpers/test/Iterator.zip.js	(revision 0c6b92add4cfaedcb91bcd37b45849f142f7d152)
@@ -0,0 +1,125 @@
+'use strict';
+
+var defineProperties = require('define-properties');
+var test = require('tape');
+var callBind = require('call-bind');
+var functionsHaveNames = require('functions-have-names')();
+var forEach = require('for-each');
+var debug = require('object-inspect');
+var v = require('es-value-fixtures');
+var hasSymbols = require('has-symbols/shams')();
+var mockProperty = require('mock-property');
+
+var index = require('../Iterator.zip');
+var impl = require('../Iterator.zip/implementation');
+var from = require('../Iterator.from/polyfill')();
+
+var isEnumerable = Object.prototype.propertyIsEnumerable;
+
+var testIterator = require('./helpers/testIterator');
+
+module.exports = {
+	tests: function (zip, name, t) {
+		t['throws'](
+			function () { return new zip(); }, // eslint-disable-line new-cap
+			TypeError,
+			'`' + name + '` itself is not a constructor'
+		);
+		t['throws'](
+			function () { return new zip({}); }, // eslint-disable-line new-cap
+			TypeError,
+			'`' + name + '` itself is not a constructor, with an argument'
+		);
+
+		forEach(v.primitives.concat(v.objects), function (nonIterator) {
+			t['throws'](
+				function () { zip(nonIterator, []); },
+				TypeError,
+				debug(nonIterator) + ' is not an iterable Object'
+			);
+		});
+
+		t.test('actual iteration', { skip: !hasSymbols }, function (st) {
+			forEach(v.nonFunctions, function (nonFunction) {
+				var badIterable = {};
+				badIterable[Symbol.iterator] = nonFunction;
+				st['throws'](
+					function () { zip([[], badIterable, []]).next(); },
+					TypeError,
+					debug(badIterable) + ' is not a function'
+				);
+			});
+
+			forEach(v.strings, function (string) {
+				st['throws'](
+					function () { zip([string]); },
+					TypeError,
+					'non-objects are not considered iterable'
+				);
+			});
+
+			var arrayIt = zip([[1, 2, 3]]);
+			st.equal(typeof arrayIt.next, 'function', 'has a `next` function');
+
+			st.test('real iterators', { skip: !hasSymbols }, function (s2t) {
+				var iter = [1, 2][Symbol.iterator]();
+				testIterator(zip([iter, [3, 4]]), [[1, 3], [2, 4]], s2t, 'array iterator + array yields combined results');
+
+				s2t.end();
+			});
+
+			st.test('observability in a replaced String iterator', function (s2t) {
+				var originalStringIterator = String.prototype[Symbol.iterator];
+				var observedType;
+				s2t.teardown(mockProperty(String.prototype, Symbol.iterator, {
+					get: function () {
+						'use strict'; // eslint-disable-line strict, lines-around-directive
+
+						observedType = typeof this;
+						return originalStringIterator;
+					}
+				}));
+
+				zip([from('')]);
+				s2t.equal(observedType, 'string', 'string primitive -> primitive receiver in Symbol.iterator getter');
+				zip([from(Object(''))]);
+				s2t.equal(observedType, 'object', 'boxed string -> boxed string in Symbol.iterator getter');
+
+				s2t.end();
+			});
+
+			st.end();
+		});
+	},
+	index: function () {
+		test('Iterator.zip: index', function (t) {
+			module.exports.tests(index, 'Iterator.zip', t);
+
+			t.end();
+		});
+	},
+	implementation: function () {
+		test('Iterator.zip: implementation', function (t) {
+			module.exports.tests(impl, 'Iterator.zip', t);
+
+			t.end();
+		});
+	},
+	shimmed: function () {
+		test('Iterator.zip: shimmed', function (t) {
+			t.test('Function name', { skip: !functionsHaveNames }, function (st) {
+				st.equal(Iterator.zip.name, 'zip', 'Iterator.zip has name "zip"');
+				st.end();
+			});
+
+			t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
+				et.equal(false, isEnumerable.call(Iterator, 'zip'), 'Iterator.zip is not enumerable');
+				et.end();
+			});
+
+			module.exports.tests(callBind(Iterator.zip, Iterator), 'Iterator.zip', t);
+
+			t.end();
+		});
+	}
+};
