occam-languages 2.2.23 → 2.2.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -82,4 +82,4 @@ class ContinuationZipPass {
82
82
  }
83
83
  }
84
84
 
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvblppcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uWmlwUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0NvbmdydWVudCA9IGFyZUNoaWxkTm9kZXNDb25ncnVlbnQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2Rlcyk7XG5cbiAgICBpZiAoIWNoaWxkTm9kZXNDb25ncnVlbnQpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRlZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGRlc2NlbmRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSAtMTtcblxuICAgIHJldHVybiBldmVyeShnZW5lcmFsQ2hpbGROb2RlcywgKGdlbmVyYWxDaGlsZE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljQ2hpbGROb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cblxuICAgIGlmIChnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSAmJiBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxUZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGU7ICAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXRUZXJtaW5hbE5vZGUoZ2VuZXJhbFRlcm1pbmFsTm9kZSwgc3BlY2lmaWNUZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGNvbnN0IHZpc2l0ZWQgPSB0cnVlLFxuICAgICAgICAgIGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgfVxuXG4gIHZpc2l0Tm9uVGVybWluYWxOb2RlKGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBsZXQgeyBtYXBzIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgbWFwcyA9IFsgLy8vXG4gICAgICAuLi5tYXBzLFxuICAgICAge1xuICAgICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBydW46IChnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgICAgICAgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLCAvLy9cbiAgICAgICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgICAgICAgICBpZiAoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lICE9PSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBnZW5lcmFsQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICBzcGVjaWZpY0NoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXM7IC8vL1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuXG4gICAgbGV0IGdlbmVyYWxOb2RlLFxuICAgICAgICBzcGVjaWZpY05vZGU7XG5cbiAgICBjb25zdCBtYXAgPSBtYXBzLmZpbmQoKG1hcCkgPT4ge1xuICAgICAgY29uc3QgeyBnZW5lcmFsTm9kZVF1ZXJ5LCBzcGVjaWZpY05vZGVRdWVyeSB9ID0gbWFwO1xuXG4gICAgICBnZW5lcmFsTm9kZSA9IGdlbmVyYWxOb2RlUXVlcnkoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSk7XG4gICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY05vZGVRdWVyeShzcGVjaWZpY05vblRlcm1pbmFsTm9kZSk7XG5cbiAgICAgIGlmICgoZ2VuZXJhbE5vZGUgIT09IG51bGwpICYmIChzcGVjaWZpY05vZGUgIT09IG51bGwpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICBpZiAobWFwID09PSBudWxsKSB7XG4gICAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJ1biB9ID0gbWFwO1xuXG4gICAgcmV0dXJuIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDb250aW51YXRpb25aaXBQYXNzIiwicnVuIiwiZ2VuZXJhbE5vZGUiLCJzcGVjaWZpY05vZGUiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJjb250aW51YXRpb24iLCJwb3AiLCJ2aXNpdE5vZGUiLCJkZXNjZW5kIiwiZ2VuZXJhbENoaWxkTm9kZXMiLCJzcGVjaWZpY0NoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQ29uZ3J1ZW50IiwiYXJlQ2hpbGROb2Rlc0NvbmdydWVudCIsImRlc2NlbmRlZCIsImluZGV4IiwiZXZlcnkiLCJnZW5lcmFsQ2hpbGROb2RlIiwic3BlY2lmaWNDaGlsZE5vZGUiLCJnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlVGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSIsImdlbmVyYWxUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY1Rlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJ2aXNpdGVkIiwibWFwcyIsImdlbmVyYWxOb2RlUXVlcnkiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsInNwZWNpZmljTm9kZVF1ZXJ5IiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwibWFwIiwiZmluZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUFxQkE7Ozs4QkFIQztzQkFDdUM7QUFFOUMsTUFBTUE7SUFDbkJDLElBQUlDLFdBQVcsRUFBRUMsWUFBWSxFQUFFLEdBQUdDLGtCQUFrQixFQUFFO1FBQ3BELE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRztRQUUzQyxPQUFPLElBQUksQ0FBQ0MsU0FBUyxDQUFDTCxhQUFhQyxpQkFBaUJDLG9CQUFvQkM7SUFDMUU7SUFFQUcsUUFBUUMsaUJBQWlCLEVBQUVDLGtCQUFrQixFQUFFLEdBQUdOLGtCQUFrQixFQUFFO1FBQ3BFLE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ0ssc0JBQXNCQyxJQUFBQSw0QkFBc0IsRUFBQ0gsbUJBQW1CQztRQUV0RSxJQUFJLENBQUNDLHFCQUFxQjtZQUN4QixNQUFNRSxZQUFZO1lBRWxCLE9BQU9SLGFBQWFRLGNBQWNUO1FBQ3BDO1FBRUEsSUFBSVUsUUFBUSxDQUFDO1FBRWIsT0FBT0MsSUFBQUEsbUJBQUssRUFBQ04sbUJBQW1CLENBQUNPLGtCQUFrQixHQUFHWjtZQUNwRFU7WUFFQSxNQUFNVCxlQUFlRCxtQkFBbUJFLEdBQUcsSUFDckNXLG9CQUFvQlAsa0JBQWtCLENBQUNJLE1BQU0sRUFDN0NaLGNBQWNjLGtCQUNkYixlQUFlYyxtQkFBbUIsR0FBRztZQUUzQyxPQUFPLElBQUksQ0FBQ1YsU0FBUyxDQUFDTCxhQUFhQyxpQkFBaUJDLG9CQUFvQkM7UUFDMUUsTUFBTUQsb0JBQW9CQztJQUM1QjtJQUVBRSxVQUFVTCxXQUFXLEVBQUVDLFlBQVksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUMxRCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUcsSUFDckNZLDBCQUEwQmhCLFlBQVlpQixjQUFjLElBQ3BEQywy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
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvblppcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uWmlwUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0NvbmdydWVudCA9IGFyZUNoaWxkTm9kZXNDb25ncnVlbnQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2Rlcyk7XG5cbiAgICBpZiAoIWNoaWxkTm9kZXNDb25ncnVlbnQpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRlZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGRlc2NlbmRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSAtMTtcblxuICAgIHJldHVybiBldmVyeShnZW5lcmFsQ2hpbGROb2RlcywgKGdlbmVyYWxDaGlsZE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsQ2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljQ2hpbGROb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICB2aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGdlbmVyYWxOb2RlVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzTm9uVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG4gICAgXG4gICAgaWYgKGdlbmVyYWxOb2RlVGVybWluYWxOb2RlICYmIHNwZWNpZmljTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgZ2VuZXJhbFRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY1Rlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZTsgIC8vL1xuXG4gICAgICByZXR1cm4gdGhpcy52aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH1cblxuICAgIGlmIChnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSAmJiBzcGVjaWZpY05vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGU7IC8vL1xuXG4gICAgICByZXR1cm4gdGhpcy52aXNpdE5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgfVxuXG4gIHZpc2l0VGVybWluYWxOb2RlKGdlbmVyYWxUZXJtaW5hbE5vZGUsIHNwZWNpZmljVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHsgLy8vXG4gICAgY29uc3QgdmlzaXRlZCA9IHRydWUsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICB9XG5cbiAgdmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIGxldCB7IG1hcHMgfSA9IHRoaXMuY29uc3RydWN0b3I7XG5cbiAgICBtYXBzID0gWyAvLy9cbiAgICAgIC4uLm1hcHMsXG4gICAgICB7XG4gICAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBzcGVjaWZpY05vZGVRdWVyeTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIHJ1bjogKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICAgICAgICBnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksIC8vL1xuICAgICAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgICAgICAgIGlmIChnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUgIT09IHNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIGdlbmVyYWxDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgIHNwZWNpZmljQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlczsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5kZXNjZW5kKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF07XG5cbiAgICBsZXQgZ2VuZXJhbE5vZGUsXG4gICAgICAgIHNwZWNpZmljTm9kZTtcblxuICAgIGNvbnN0IG1hcCA9IG1hcHMuZmluZCgobWFwKSA9PiB7XG4gICAgICBjb25zdCB7IGdlbmVyYWxOb2RlUXVlcnksIHNwZWNpZmljTm9kZVF1ZXJ5IH0gPSBtYXA7XG5cbiAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbE5vZGVRdWVyeShnZW5lcmFsTm9uVGVybWluYWxOb2RlKTtcbiAgICAgIHNwZWNpZmljTm9kZSA9IHNwZWNpZmljTm9kZVF1ZXJ5KHNwZWNpZmljTm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgaWYgKChnZW5lcmFsTm9kZSAhPT0gbnVsbCkgJiYgKHNwZWNpZmljTm9kZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIGlmIChtYXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcnVuIH0gPSBtYXA7XG5cbiAgICByZXR1cm4gcnVuKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbnRpbnVhdGlvblppcFBhc3MiLCJydW4iLCJnZW5lcmFsTm9kZSIsInNwZWNpZmljTm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsInZpc2l0Tm9kZSIsImRlc2NlbmQiLCJnZW5lcmFsQ2hpbGROb2RlcyIsInNwZWNpZmljQ2hpbGROb2RlcyIsImNoaWxkTm9kZXNDb25ncnVlbnQiLCJhcmVDaGlsZE5vZGVzQ29uZ3J1ZW50IiwiZGVzY2VuZGVkIiwiaW5kZXgiLCJldmVyeSIsImdlbmVyYWxDaGlsZE5vZGUiLCJzcGVjaWZpY0NoaWxkTm9kZSIsImdlbmVyYWxOb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlIiwiZ2VuZXJhbFRlcm1pbmFsTm9kZSIsInNwZWNpZmljVGVybWluYWxOb2RlIiwidmlzaXRUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJ2aXNpdE5vblRlcm1pbmFsTm9kZSIsInZpc2l0ZWQiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5Iiwic3BlY2lmaWNOb2RlUXVlcnkiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJtYXAiLCJmaW5kIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXFCQTs7OzhCQUhDO3NCQUN1QztBQUU5QyxNQUFNQTtJQUNuQkMsSUFBSUMsV0FBVyxFQUFFQyxZQUFZLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDcEQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLE9BQU8sSUFBSSxDQUFDQyxTQUFTLENBQUNMLGFBQWFDLGlCQUFpQkMsb0JBQW9CQztJQUMxRTtJQUVBRyxRQUFRQyxpQkFBaUIsRUFBRUMsa0JBQWtCLEVBQUUsR0FBR04sa0JBQWtCLEVBQUU7UUFDcEUsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDSyxzQkFBc0JDLElBQUFBLDRCQUFzQixFQUFDSCxtQkFBbUJDO1FBRXRFLElBQUksQ0FBQ0MscUJBQXFCO1lBQ3hCLE1BQU1FLFlBQVk7WUFFbEIsT0FBT1IsYUFBYVEsY0FBY1Q7UUFDcEM7UUFFQSxJQUFJVSxRQUFRLENBQUM7UUFFYixPQUFPQyxJQUFBQSxtQkFBSyxFQUFDTixtQkFBbUIsQ0FBQ08sa0JBQWtCLEdBQUdaO1lBQ3BEVTtZQUVBLE1BQU1ULGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ1csb0JBQW9CUCxrQkFBa0IsQ0FBQ0ksTUFBTSxFQUM3Q1osY0FBY2Msa0JBQ2RiLGVBQWVjLG1CQUFtQixHQUFHO1lBRTNDLE9BQU8sSUFBSSxDQUFDVixTQUFTLENBQUNMLGFBQWFDLGlCQUFpQkMsb0JBQW9CQztRQUMxRSxNQUFNRCxvQkFBb0JDO0lBQzVCO0lBRUFFLFVBQVVMLFdBQVcsRUFBRUMsWUFBWSxFQUFFLEdBQUdDLGtCQUFrQixFQUFFO1FBQzFELE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQ1ksMEJBQTBCaEIsWUFBWWlCLGNBQWMsSUFDcERD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
@@ -63,11 +63,11 @@ const { filter: arrayFilter } = _necessary.arrayUtilities, { forEach: asynchrono
63
63
  function one(array, callback, ...initialArguments) {
64
64
  let success = false;
65
65
  const continuation = initialArguments.pop();
66
- let intermediateArguments = initialArguments; ///
66
+ let callbackArguments = initialArguments; ///
67
67
  return asynchronousForEach(array, (element, next, done)=>{
68
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
69
- const passed = callbackArguments.shift();
70
- intermediateArguments = callbackArguments; ///
68
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
69
+ const passed = intermediateArguments.shift();
70
+ callbackArguments = intermediateArguments; ///
71
71
  if (passed) {
72
72
  if (!success) {
73
73
  success = true;
@@ -80,18 +80,18 @@ function one(array, callback, ...initialArguments) {
80
80
  next();
81
81
  });
82
82
  }, ()=>{
83
- const finalArguments = intermediateArguments; ///
83
+ const finalArguments = callbackArguments; ///
84
84
  return continuation(success, ...finalArguments);
85
85
  });
86
86
  }
87
87
  function some(array, callback, ...initialArguments) {
88
88
  let success = false;
89
89
  const continuation = initialArguments.pop();
90
- let intermediateArguments = initialArguments; ///
90
+ let callbackArguments = initialArguments; ///
91
91
  return asynchronousForEach(array, (element, next, done)=>{
92
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
93
- const passed = callbackArguments.shift();
94
- intermediateArguments = callbackArguments; ///
92
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
93
+ const passed = intermediateArguments.shift();
94
+ callbackArguments = intermediateArguments; ///
95
95
  if (passed) {
96
96
  success = true;
97
97
  done();
@@ -100,18 +100,18 @@ function some(array, callback, ...initialArguments) {
100
100
  next();
101
101
  });
102
102
  }, ()=>{
103
- const finalArguments = intermediateArguments; ///
103
+ const finalArguments = callbackArguments; ///
104
104
  return continuation(success, ...finalArguments);
105
105
  });
106
106
  }
107
107
  function each(array, callback, ...initialArguments) {
108
108
  let success = false;
109
109
  const continuation = initialArguments.pop();
110
- let intermediateArguments = initialArguments; ///
110
+ let callbackArguments = initialArguments; ///
111
111
  return asynchronousForEach(array, (element, next, done)=>{
112
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
113
- const passed = callbackArguments.shift();
114
- intermediateArguments = callbackArguments; ///
112
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
113
+ const passed = intermediateArguments.shift();
114
+ callbackArguments = intermediateArguments; ///
115
115
  if (passed) {
116
116
  success = true;
117
117
  } else {
@@ -122,18 +122,18 @@ function each(array, callback, ...initialArguments) {
122
122
  next();
123
123
  });
124
124
  }, ()=>{
125
- const finalArguments = intermediateArguments; ///
125
+ const finalArguments = callbackArguments; ///
126
126
  return continuation(success, ...finalArguments);
127
127
  });
128
128
  }
129
129
  function every(array, callback, ...initialArguments) {
130
130
  let success = true;
131
131
  const continuation = initialArguments.pop();
132
- let intermediateArguments = initialArguments; ///
132
+ let callbackArguments = initialArguments; ///
133
133
  return asynchronousForEach(array, (element, next, done)=>{
134
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
135
- const passed = callbackArguments.shift();
136
- intermediateArguments = callbackArguments; ///
134
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
135
+ const passed = intermediateArguments.shift();
136
+ callbackArguments = intermediateArguments; ///
137
137
  if (!passed) {
138
138
  success = false;
139
139
  done();
@@ -142,47 +142,47 @@ function every(array, callback, ...initialArguments) {
142
142
  next();
143
143
  });
144
144
  }, ()=>{
145
- const finalArguments = intermediateArguments; ///
145
+ const finalArguments = callbackArguments; ///
146
146
  return continuation(success, ...finalArguments);
147
147
  });
148
148
  }
149
149
  function reduce(array, initialValue, callback, ...initialArguments) {
150
150
  let value = initialValue; ///
151
151
  const continuation = initialArguments.pop();
152
- let intermediateArguments = initialArguments; ///
152
+ let callbackArguments = initialArguments; ///
153
153
  return asynchronousForEach(array, (element, next, done)=>{
154
- return callback(value, element, ...intermediateArguments, (...callbackArguments)=>{
155
- const currentValue = callbackArguments.shift();
156
- intermediateArguments = callbackArguments; ///
154
+ return callback(value, element, ...callbackArguments, (...intermediateArguments)=>{
155
+ const currentValue = intermediateArguments.shift();
156
+ callbackArguments = intermediateArguments; ///
157
157
  value = currentValue; ///
158
158
  next();
159
159
  });
160
160
  }, ()=>{
161
- const finalArguments = intermediateArguments; ///
161
+ const finalArguments = callbackArguments; ///
162
162
  return continuation(value, ...finalArguments);
163
163
  });
164
164
  }
165
165
  function forEach(array, callback, ...initialArguments) {
166
166
  const continuation = initialArguments.pop();
167
- let intermediateArguments = initialArguments; ///
167
+ let callbackArguments = initialArguments; ///
168
168
  return asynchronousForEach(array, (element, next, done)=>{
169
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
170
- intermediateArguments = callbackArguments; ///
169
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
170
+ callbackArguments = intermediateArguments; ///
171
171
  next();
172
172
  });
173
173
  }, ()=>{
174
- const finalArguments = intermediateArguments; ///
174
+ const finalArguments = callbackArguments; ///
175
175
  return continuation(...finalArguments);
176
176
  });
177
177
  }
178
178
  function forwardsEvery(array, callback, ...initialArguments) {
179
179
  let success = true;
180
180
  const continuation = initialArguments.pop();
181
- let intermediateArguments = initialArguments; ///
181
+ let callbackArguments = initialArguments; ///
182
182
  return asynchronousForwardsForEach(array, (element, next, done)=>{
183
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
184
- const passed = callbackArguments.shift();
185
- intermediateArguments = callbackArguments; ///
183
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
184
+ const passed = intermediateArguments.shift();
185
+ callbackArguments = intermediateArguments; ///
186
186
  if (!passed) {
187
187
  success = false;
188
188
  done();
@@ -191,18 +191,18 @@ function forwardsEvery(array, callback, ...initialArguments) {
191
191
  next();
192
192
  });
193
193
  }, ()=>{
194
- const finalArguments = intermediateArguments; ///
194
+ const finalArguments = callbackArguments; ///
195
195
  return continuation(success, ...finalArguments);
196
196
  });
197
197
  }
198
198
  function backwardsEvery(array, callback, ...initialArguments) {
199
199
  let success = true;
200
200
  const continuation = initialArguments.pop();
201
- let intermediateArguments = initialArguments; ///
201
+ let callbackArguments = initialArguments; ///
202
202
  return asynchronousBackwardsForEach(array, (element, next, done)=>{
203
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
204
- const passed = callbackArguments.shift();
205
- intermediateArguments = callbackArguments; ///
203
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
204
+ const passed = intermediateArguments.shift();
205
+ callbackArguments = intermediateArguments; ///
206
206
  if (!passed) {
207
207
  success = false;
208
208
  done();
@@ -211,46 +211,46 @@ function backwardsEvery(array, callback, ...initialArguments) {
211
211
  next();
212
212
  });
213
213
  }, ()=>{
214
- const finalArguments = intermediateArguments; ///
214
+ const finalArguments = callbackArguments; ///
215
215
  return continuation(success, ...finalArguments);
216
216
  });
217
217
  }
218
218
  function forwardsForEach(array, callback, ...initialArguments) {
219
219
  const continuation = initialArguments.pop();
220
- let intermediateArguments = initialArguments; ///
220
+ let callbackArguments = initialArguments; ///
221
221
  return asynchronousForwardsForEach(array, (element, next, done)=>{
222
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
223
- intermediateArguments = callbackArguments; ///
222
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
223
+ callbackArguments = intermediateArguments; ///
224
224
  next();
225
225
  });
226
226
  }, ()=>{
227
- const finalArguments = intermediateArguments; ///
227
+ const finalArguments = callbackArguments; ///
228
228
  return continuation(...finalArguments);
229
229
  });
230
230
  }
231
231
  function backwardsForEach(array, callback, ...initialArguments) {
232
232
  const continuation = initialArguments.pop();
233
- let intermediateArguments = initialArguments; ///
233
+ let callbackArguments = initialArguments; ///
234
234
  return asynchronousBackwardsForEach(array, (element, next, done)=>{
235
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
236
- intermediateArguments = callbackArguments; ///
235
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
236
+ callbackArguments = intermediateArguments; ///
237
237
  next();
238
238
  });
239
239
  }, ()=>{
240
- const finalArguments = intermediateArguments; ///
240
+ const finalArguments = callbackArguments; ///
241
241
  return continuation(...finalArguments);
242
242
  });
243
243
  }
244
244
  function filter(array, callback, ...initialArguments) {
245
245
  const deletedElements = [];
246
246
  const continuation = initialArguments.pop();
247
- let intermediateArguments = initialArguments; ///
247
+ let callbackArguments = initialArguments; ///
248
248
  let index = array.length;
249
249
  return asynchronousBackwardsForEach(array, (element, next, done)=>{
250
250
  index--;
251
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
252
- const passed = callbackArguments.shift();
253
- intermediateArguments = callbackArguments; ///
251
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
252
+ const passed = intermediateArguments.shift();
253
+ callbackArguments = intermediateArguments; ///
254
254
  if (!passed) {
255
255
  const start = index, deleteCount = 1, deletedElement = array.splice(start, deleteCount).pop(); ///
256
256
  deletedElements.unshift(deletedElement); ///
@@ -258,20 +258,20 @@ function filter(array, callback, ...initialArguments) {
258
258
  next();
259
259
  });
260
260
  }, ()=>{
261
- const finalArguments = intermediateArguments; ///
261
+ const finalArguments = callbackArguments; ///
262
262
  return continuation(deletedElements, ...finalArguments);
263
263
  });
264
264
  }
265
265
  function prune(array, callback, ...initialArguments) {
266
266
  let deletedElement = undefined; ///
267
267
  const continuation = initialArguments.pop();
268
- let intermediateArguments = initialArguments; ///
268
+ let callbackArguments = initialArguments; ///
269
269
  let index = -1;
270
270
  return asynchronousForEach(array, (element, next, done)=>{
271
271
  index++;
272
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
273
- const passed = callbackArguments.shift();
274
- intermediateArguments = callbackArguments; ///
272
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
273
+ const passed = intermediateArguments.shift();
274
+ callbackArguments = intermediateArguments; ///
275
275
  if (!passed) {
276
276
  const start = index, deleteCount = 1;
277
277
  deletedElement = array.splice(start, deleteCount).pop(); ///
@@ -281,20 +281,20 @@ function prune(array, callback, ...initialArguments) {
281
281
  next();
282
282
  });
283
283
  }, ()=>{
284
- const finalArguments = intermediateArguments; ///
284
+ const finalArguments = callbackArguments; ///
285
285
  return continuation(deletedElement, ...finalArguments);
286
286
  });
287
287
  }
288
288
  function extract(array, callback, ...initialArguments) {
289
289
  let deletedElement = undefined; ///
290
290
  const continuation = initialArguments.pop();
291
- let intermediateArguments = initialArguments; ///
291
+ let callbackArguments = initialArguments; ///
292
292
  let index = -1;
293
293
  return asynchronousForEach(array, (element, next, done)=>{
294
294
  index++;
295
- return callback(element, ...intermediateArguments, (...callbackArguments)=>{
296
- const passed = callbackArguments.shift();
297
- intermediateArguments = callbackArguments; ///
295
+ return callback(element, ...callbackArguments, (...intermediateArguments)=>{
296
+ const passed = intermediateArguments.shift();
297
+ callbackArguments = intermediateArguments; ///
298
298
  if (passed) {
299
299
  const start = index, deleteCount = 1;
300
300
  deletedElement = array.splice(start, deleteCount).pop(); ///
@@ -304,7 +304,7 @@ function extract(array, callback, ...initialArguments) {
304
304
  next();
305
305
  });
306
306
  }, ()=>{
307
- const finalArguments = intermediateArguments; ///
307
+ const finalArguments = callbackArguments; ///
308
308
  return continuation(deletedElement, ...finalArguments);
309
309
  });
310
310
  }
@@ -317,13 +317,13 @@ function match(arrayA, arrayB, callback, ...initialArguments) {
317
317
  return continuation(success, ...initialArguments);
318
318
  }
319
319
  let index = -1;
320
- let intermediateArguments = initialArguments; ///
320
+ let callbackArguments = initialArguments; ///
321
321
  return asynchronousForEach(arrayA, (elementA, next, done)=>{
322
322
  index++;
323
323
  const elementB = arrayB[index];
324
- return callback(elementA, elementB, ...intermediateArguments, (...callbackArguments)=>{
325
- const passed = callbackArguments.shift();
326
- intermediateArguments = callbackArguments; ///
324
+ return callback(elementA, elementB, ...callbackArguments, (...intermediateArguments)=>{
325
+ const passed = intermediateArguments.shift();
326
+ callbackArguments = intermediateArguments; ///
327
327
  if (!passed) {
328
328
  success = false;
329
329
  done();
@@ -332,7 +332,7 @@ function match(arrayA, arrayB, callback, ...initialArguments) {
332
332
  next();
333
333
  });
334
334
  }, ()=>{
335
- const finalArguments = intermediateArguments; ///
335
+ const finalArguments = callbackArguments; ///
336
336
  return continuation(success, ...finalArguments);
337
337
  });
338
338
  }
@@ -341,13 +341,13 @@ function resolve(arrayA, arrayB, callback, ...initialArguments) {
341
341
  ...arrayA
342
342
  ];
343
343
  const continuation = initialArguments.pop();
344
- let intermediateArguments = initialArguments; ///
344
+ let callbackArguments = initialArguments; ///
345
345
  function nextPass() {
346
346
  let success = false;
347
347
  const arrayALength = arrayA.length;
348
348
  if (arrayALength === 0) {
349
349
  success = true;
350
- const finalArguments = intermediateArguments; ///
350
+ const finalArguments = callbackArguments; ///
351
351
  return continuation(success, ...finalArguments);
352
352
  }
353
353
  let index = -1;
@@ -357,7 +357,7 @@ function resolve(arrayA, arrayB, callback, ...initialArguments) {
357
357
  if (terminate) {
358
358
  if (!success) {
359
359
  success = false;
360
- const finalArguments = intermediateArguments; ///
360
+ const finalArguments = callbackArguments; ///
361
361
  return continuation(success, ...finalArguments);
362
362
  }
363
363
  arrayFilter(arrayA, (elementA)=>{
@@ -369,9 +369,9 @@ function resolve(arrayA, arrayB, callback, ...initialArguments) {
369
369
  nextPass();
370
370
  } else {
371
371
  const elementA = arrayA[index];
372
- return callback(elementA, ...intermediateArguments, (...callbackArguments)=>{
373
- const passed = callbackArguments.shift();
374
- intermediateArguments = callbackArguments; ///
372
+ return callback(elementA, ...callbackArguments, (...intermediateArguments)=>{
373
+ const passed = intermediateArguments.shift();
374
+ callbackArguments = intermediateArguments; ///
375
375
  if (passed) {
376
376
  const elementB = elementA; ///
377
377
  arrayB.push(elementB);
@@ -403,4 +403,4 @@ const _default = {
403
403
  resolve
404
404
  };
405
405
 
406
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlcjogYXJyYXlGaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBmb3JFYWNoOiBhc3luY2hyb25vdXNGb3JFYWNoLFxuICAgICAgICBmb3J3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCxcbiAgICAgICAgYmFja3dhcmRzRm9yRWFjaDogYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gb25lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7ICAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlKGFycmF5LCBpbml0aWFsVmFsdWUsIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCB2YWx1ZSA9IGluaXRpYWxWYWx1ZTsgLy8vXG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMsICguLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gY2FsbGJhY2tBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7ICAvLy9cblxuICAgICAgdmFsdWUgPSBjdXJyZW50VmFsdWU7ICAvLy9cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWx1ZSwgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMsICguLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgICAgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7ICAvLy9cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgIC8vL1xuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWNrd2FyZHNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcihhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgZGVsZXRlZEVsZW1lbnRzID0gW107XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgbGV0IGluZGV4ID0gYXJyYXkubGVuZ3RoO1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNCYWNrd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGluZGV4LS07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gYXJyYXkuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCkucG9wKCk7ICAvLy9cblxuICAgICAgICBkZWxldGVkRWxlbWVudHMudW5zaGlmdChkZWxldGVkRWxlbWVudCk7ICAvLy9cbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihkZWxldGVkRWxlbWVudHMsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcnVuZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICBsZXQgaW5kZXggPSAtMTtcblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFja0FyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXgsICAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxO1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gYXJyYXkuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCkucG9wKCk7IC8vL1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzLCAoLi4uY2FsbGJhY2tBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGNhbGxiYWNrQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IGluZGV4LCAgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudCA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLnBvcCgpOyAvLy9cblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKGRlbGV0ZWRFbGVtZW50LCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGNvbnN0IGFycmF5QUxlbmd0aCA9IGFycmF5QS5sZW5ndGgsXG4gICAgICAgIGFycmF5Qkxlbmd0aCA9IGFycmF5Qi5sZW5ndGg7XG5cbiAgaWYgKGFycmF5QUxlbmd0aCAhPT0gYXJyYXlCTGVuZ3RoKSB7XG4gICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5pbml0aWFsQXJndW1lbnRzKTtcbiAgfVxuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBpbnRlcm1lZGlhdGVBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheUEsIChlbGVtZW50QSwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjb25zdCBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMsICguLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gY2FsbGJhY2tBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgaW50ZXJtZWRpYXRlQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7ICAvLy9cblxuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGFycmF5QSA9IFsgIC8vL1xuICAgIC4uLmFycmF5QVxuICBdO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIGZ1bmN0aW9uIG5leHRQYXNzKCkge1xuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoO1xuXG4gICAgaWYgKGFycmF5QUxlbmd0aCA9PT0gMCkge1xuICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gLTE7XG5cbiAgICBmdW5jdGlvbiBuZXh0RWxlbWVudCgpIHtcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGNvbnN0IHRlcm1pbmF0ZSA9IChpbmRleCA9PT0gYXJyYXlBTGVuZ3RoKTtcblxuICAgICAgaWYgKHRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5RmlsdGVyKGFycmF5QSwgKGVsZW1lbnRBKSA9PiB7XG4gICAgICAgICAgY29uc3QgYXJyYXlCSW5jbHVkZXNFbGVtZW50QSA9IGFycmF5Qi5pbmNsdWRlcyhlbGVtZW50QSk7XG5cbiAgICAgICAgICBpZiAoIWFycmF5QkluY2x1ZGVzRWxlbWVudEEpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmV4dFBhc3MoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudEEsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cywgKC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFzc2VkID0gY2FsbGJhY2tBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgICAgIGludGVybWVkaWF0ZUFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50QiA9IGVsZW1lbnRBOyAgLy8vXG5cbiAgICAgICAgICAgIGFycmF5Qi5wdXNoKGVsZW1lbnRCKTtcblxuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV4dEVsZW1lbnQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV4dEVsZW1lbnQoKTtcbiAgfVxuXG4gIG5leHRQYXNzKCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgb25lLFxuICBzb21lLFxuICBlYWNoLFxuICBldmVyeSxcbiAgcmVkdWNlLFxuICBmb3JFYWNoLFxuICBmb3J3YXJkc0V2ZXJ5LFxuICBiYWNrd2FyZHNFdmVyeSxcbiAgZm9yd2FyZHNGb3JFYWNoLFxuICBiYWNrd2FyZHNGb3JFYWNoLFxuICBmaWx0ZXIsXG4gIHBydW5lLFxuICBleHRyYWN0LFxuICBtYXRjaCxcbiAgcmVzb2x2ZVxufTtcbiJdLCJuYW1lcyI6WyJiYWNrd2FyZHNFdmVyeSIsImJhY2t3YXJkc0ZvckVhY2giLCJlYWNoIiwiZXZlcnkiLCJleHRyYWN0IiwiZmlsdGVyIiwiZm9yRWFjaCIsImZvcndhcmRzRXZlcnkiLCJmb3J3YXJkc0ZvckVhY2giLCJtYXRjaCIsIm9uZSIsInBydW5lIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJhcnJheUZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsImFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2giLCJhc3luY2hyb25vdXNVdGlsaXRpZXMiLCJhcnJheSIsImNhbGxiYWNrIiwiaW5pdGlhbEFyZ3VtZW50cyIsInN1Y2Nlc3MiLCJjb250aW51YXRpb24iLCJwb3AiLCJpbnRlcm1lZGlhdGVBcmd1bWVudHMiLCJlbGVtZW50IiwibmV4dCIsImRvbmUiLCJjYWxsYmFja0FyZ3VtZW50cyIsInBhc3NlZCIsInNoaWZ0IiwiZmluYWxBcmd1bWVudHMiLCJpbml0aWFsVmFsdWUiLCJ2YWx1ZSIsImN1cnJlbnRWYWx1ZSIsImRlbGV0ZWRFbGVtZW50cyIsImluZGV4IiwibGVuZ3RoIiwic3RhcnQiLCJkZWxldGVDb3VudCIsImRlbGV0ZWRFbGVtZW50Iiwic3BsaWNlIiwidW5zaGlmdCIsInVuZGVmaW5lZCIsImFycmF5QSIsImFycmF5QiIsImFycmF5QUxlbmd0aCIsImFycmF5Qkxlbmd0aCIsImVsZW1lbnRBIiwiZWxlbWVudEIiLCJuZXh0UGFzcyIsIm5leHRFbGVtZW50IiwidGVybWluYXRlIiwiYXJyYXlCSW5jbHVkZXNFbGVtZW50QSIsImluY2x1ZGVzIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBK01nQkE7ZUFBQUE7O1FBZ0RBQztlQUFBQTs7UUFxUGhCO2VBQUE7O1FBM2FnQkM7ZUFBQUE7O1FBZ0NBQztlQUFBQTs7UUErT0FDO2VBQUFBOztRQXZFQUM7ZUFBQUE7O1FBbEhBQztl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
406
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlcjogYXJyYXlGaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBmb3JFYWNoOiBhc3luY2hyb25vdXNGb3JFYWNoLFxuICAgICAgICBmb3J3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCxcbiAgICAgICAgYmFja3dhcmRzRm9yRWFjaDogYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gb25lKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgIC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29tZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7ICAvLy9cblxuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBjYWxsYmFja0FyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IHZhbHVlID0gaW5pdGlhbFZhbHVlOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayh2YWx1ZSwgZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBjYWxsYmFja0FyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgIC8vL1xuXG4gICAgICB2YWx1ZSA9IGN1cnJlbnRWYWx1ZTsgIC8vL1xuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24odmFsdWUsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7ICAvLy9cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBjYWxsYmFja0FyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyKGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBkZWxldGVkRWxlbWVudHMgPSBbXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIGxldCBpbmRleCA9IGFycmF5Lmxlbmd0aDtcblxuICByZXR1cm4gYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBpbmRleC0tO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IGluZGV4LCAgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMSxcbiAgICAgICAgICAgICAgZGVsZXRlZEVsZW1lbnQgPSBhcnJheS5zcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50KS5wb3AoKTsgIC8vL1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50cy51bnNoaWZ0KGRlbGV0ZWRFbGVtZW50KTsgIC8vL1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnRzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGxldCBkZWxldGVkRWxlbWVudCA9IHVuZGVmaW5lZDsgLy8vXG5cbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBsZXQgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICBsZXQgaW5kZXggPSAtMTtcblxuICByZXR1cm4gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBwYXNzZWQgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHMuc2hpZnQoKTtcblxuICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IGluZGV4LCAgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudCA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLnBvcCgpOyAvLy9cblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBsZXQgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgaW5kZXgrKztcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgcGFzc2VkID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzLnNoaWZ0KCk7XG5cbiAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydCA9IGluZGV4LCAgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudCA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLnBvcCgpOyAvLy9cblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb25zdCBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaChhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCk7XG5cbiAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aCxcbiAgICAgICAgYXJyYXlCTGVuZ3RoID0gYXJyYXlCLmxlbmd0aDtcblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmluaXRpYWxBcmd1bWVudHMpO1xuICB9XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgbGV0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXlBLCAoZWxlbWVudEEsIG5leHQsIGRvbmUpID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgY29uc3QgZWxlbWVudEIgPSBhcnJheUJbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnRBLCBlbGVtZW50QiwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICBjYWxsYmFja0FyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgIC8vL1xuXG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIGZ1bmN0aW9uIG5leHRQYXNzKCkge1xuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoO1xuXG4gICAgaWYgKGFycmF5QUxlbmd0aCA9PT0gMCkge1xuICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGluZGV4ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICAgIGNvbnN0IGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheUZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlbGVtZW50QSA9IGFycmF5QVtpbmRleF07XG5cbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnRBLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhc3NlZCA9IGludGVybWVkaWF0ZUFyZ3VtZW50cy5zaGlmdCgpO1xuXG4gICAgICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7ICAvLy9cblxuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBuZXh0RWxlbWVudCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0RWxlbWVudCgpO1xuICB9XG5cbiAgbmV4dFBhc3MoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBvbmUsXG4gIHNvbWUsXG4gIGVhY2gsXG4gIGV2ZXJ5LFxuICByZWR1Y2UsXG4gIGZvckVhY2gsXG4gIGZvcndhcmRzRXZlcnksXG4gIGJhY2t3YXJkc0V2ZXJ5LFxuICBmb3J3YXJkc0ZvckVhY2gsXG4gIGJhY2t3YXJkc0ZvckVhY2gsXG4gIGZpbHRlcixcbiAgcHJ1bmUsXG4gIGV4dHJhY3QsXG4gIG1hdGNoLFxuICByZXNvbHZlXG59O1xuIl0sIm5hbWVzIjpbImJhY2t3YXJkc0V2ZXJ5IiwiYmFja3dhcmRzRm9yRWFjaCIsImVhY2giLCJldmVyeSIsImV4dHJhY3QiLCJmaWx0ZXIiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsImZvcndhcmRzRm9yRWFjaCIsIm1hdGNoIiwib25lIiwicHJ1bmUiLCJyZWR1Y2UiLCJyZXNvbHZlIiwic29tZSIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiYXN5bmNocm9ub3VzRm9yd2FyZHNGb3JFYWNoIiwiYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImFycmF5IiwiY2FsbGJhY2siLCJpbml0aWFsQXJndW1lbnRzIiwic3VjY2VzcyIsImNvbnRpbnVhdGlvbiIsInBvcCIsImNhbGxiYWNrQXJndW1lbnRzIiwiZWxlbWVudCIsIm5leHQiLCJkb25lIiwiaW50ZXJtZWRpYXRlQXJndW1lbnRzIiwicGFzc2VkIiwic2hpZnQiLCJmaW5hbEFyZ3VtZW50cyIsImluaXRpYWxWYWx1ZSIsInZhbHVlIiwiY3VycmVudFZhbHVlIiwiZGVsZXRlZEVsZW1lbnRzIiwiaW5kZXgiLCJsZW5ndGgiLCJzdGFydCIsImRlbGV0ZUNvdW50IiwiZGVsZXRlZEVsZW1lbnQiLCJzcGxpY2UiLCJ1bnNoaWZ0IiwidW5kZWZpbmVkIiwiYXJyYXlBIiwiYXJyYXlCIiwiYXJyYXlBTGVuZ3RoIiwiYXJyYXlCTGVuZ3RoIiwiZWxlbWVudEEiLCJlbGVtZW50QiIsIm5leHRQYXNzIiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUErTWdCQTtlQUFBQTs7UUFnREFDO2VBQUFBOztRQXFQaEI7ZUFBQTs7UUEzYWdCQztlQUFBQTs7UUFnQ0FDO2VBQUFBOztRQStPQUM7ZUFBQUE7O1FBdkVBQztlQUFBQTs7UUFsSEFDO2VBQUFBOztRQWtCQUM7ZUFBQUE7O1FBNERBQztlQUFBQTs7UUFnSkFDO2VBQUFBOztRQXBYQUM7ZUFBQUE7O1FBMFNBQztlQUFBQTs7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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-languages",
3
3
  "author": "James Smith",
4
- "version": "2.2.23",
4
+ "version": "2.2.25",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
@@ -40,8 +40,7 @@ export default class ContinuationZipPass {
40
40
  specificNodeTerminalNode = specificNode.isTerminalNode(),
41
41
  generalNodeNonTerminalNode = generalNode.isNonTerminalNode(),
42
42
  specificNodeNonTerminalNode = specificNode.isNonTerminalNode();
43
-
44
-
43
+
45
44
  if (generalNodeTerminalNode && specificNodeTerminalNode) {
46
45
  const generalTerminalNode = generalNode, ///
47
46
  specificTerminalNode = specificNode; ///
@@ -12,13 +12,13 @@ export function one(array, callback, ...initialArguments) {
12
12
 
13
13
  const continuation = initialArguments.pop();
14
14
 
15
- let intermediateArguments = initialArguments; ///
15
+ let callbackArguments = initialArguments; ///
16
16
 
17
17
  return asynchronousForEach(array, (element, next, done) => {
18
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
19
- const passed = callbackArguments.shift();
18
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
19
+ const passed = intermediateArguments.shift();
20
20
 
21
- intermediateArguments = callbackArguments; ///
21
+ callbackArguments = intermediateArguments; ///
22
22
 
23
23
  if (passed) {
24
24
  if (!success) {
@@ -35,7 +35,7 @@ export function one(array, callback, ...initialArguments) {
35
35
  next();
36
36
  });
37
37
  }, () => {
38
- const finalArguments = intermediateArguments; ///
38
+ const finalArguments = callbackArguments; ///
39
39
 
40
40
  return continuation(success, ...finalArguments);
41
41
  });
@@ -46,13 +46,13 @@ export function some(array, callback, ...initialArguments) {
46
46
 
47
47
  const continuation = initialArguments.pop();
48
48
 
49
- let intermediateArguments = initialArguments; ///
49
+ let callbackArguments = initialArguments; ///
50
50
 
51
51
  return asynchronousForEach(array, (element, next, done) => {
52
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
53
- const passed = callbackArguments.shift();
52
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
53
+ const passed = intermediateArguments.shift();
54
54
 
55
- intermediateArguments = callbackArguments; ///
55
+ callbackArguments = intermediateArguments; ///
56
56
 
57
57
  if (passed) {
58
58
  success = true;
@@ -65,7 +65,7 @@ export function some(array, callback, ...initialArguments) {
65
65
  next();
66
66
  });
67
67
  }, () => {
68
- const finalArguments = intermediateArguments; ///
68
+ const finalArguments = callbackArguments; ///
69
69
 
70
70
  return continuation(success, ...finalArguments);
71
71
  });
@@ -76,13 +76,13 @@ export function each(array, callback, ...initialArguments) {
76
76
 
77
77
  const continuation = initialArguments.pop();
78
78
 
79
- let intermediateArguments = initialArguments; ///
79
+ let callbackArguments = initialArguments; ///
80
80
 
81
81
  return asynchronousForEach(array, (element, next, done) => {
82
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
83
- const passed = callbackArguments.shift();
82
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
83
+ const passed = intermediateArguments.shift();
84
84
 
85
- intermediateArguments = callbackArguments; ///
85
+ callbackArguments = intermediateArguments; ///
86
86
 
87
87
  if (passed) {
88
88
  success = true;
@@ -97,7 +97,7 @@ export function each(array, callback, ...initialArguments) {
97
97
  next();
98
98
  });
99
99
  }, () => {
100
- const finalArguments = intermediateArguments; ///
100
+ const finalArguments = callbackArguments; ///
101
101
 
102
102
  return continuation(success, ...finalArguments);
103
103
  });
@@ -108,13 +108,13 @@ export function every(array, callback, ...initialArguments) {
108
108
 
109
109
  const continuation = initialArguments.pop();
110
110
 
111
- let intermediateArguments = initialArguments; ///
111
+ let callbackArguments = initialArguments; ///
112
112
 
113
113
  return asynchronousForEach(array, (element, next, done) => {
114
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
115
- const passed = callbackArguments.shift();
114
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
115
+ const passed = intermediateArguments.shift();
116
116
 
117
- intermediateArguments = callbackArguments; ///
117
+ callbackArguments = intermediateArguments; ///
118
118
 
119
119
  if (!passed) {
120
120
  success = false;
@@ -127,7 +127,7 @@ export function every(array, callback, ...initialArguments) {
127
127
  next();
128
128
  });
129
129
  }, () => {
130
- const finalArguments = intermediateArguments; ///
130
+ const finalArguments = callbackArguments; ///
131
131
 
132
132
  return continuation(success, ...finalArguments);
133
133
  });
@@ -138,20 +138,20 @@ export function reduce(array, initialValue, callback, ...initialArguments) {
138
138
 
139
139
  const continuation = initialArguments.pop();
140
140
 
141
- let intermediateArguments = initialArguments; ///
141
+ let callbackArguments = initialArguments; ///
142
142
 
143
143
  return asynchronousForEach(array, (element, next, done) => {
144
- return callback(value, element, ...intermediateArguments, (...callbackArguments) => {
145
- const currentValue = callbackArguments.shift();
144
+ return callback(value, element, ...callbackArguments, (...intermediateArguments) => {
145
+ const currentValue = intermediateArguments.shift();
146
146
 
147
- intermediateArguments = callbackArguments; ///
147
+ callbackArguments = intermediateArguments; ///
148
148
 
149
149
  value = currentValue; ///
150
150
 
151
151
  next();
152
152
  });
153
153
  }, () => {
154
- const finalArguments = intermediateArguments; ///
154
+ const finalArguments = callbackArguments; ///
155
155
 
156
156
  return continuation(value, ...finalArguments);
157
157
  });
@@ -160,16 +160,16 @@ export function reduce(array, initialValue, callback, ...initialArguments) {
160
160
  export function forEach(array, callback, ...initialArguments) {
161
161
  const continuation = initialArguments.pop();
162
162
 
163
- let intermediateArguments = initialArguments; ///
163
+ let callbackArguments = initialArguments; ///
164
164
 
165
165
  return asynchronousForEach(array, (element, next, done) => {
166
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
167
- intermediateArguments = callbackArguments; ///
166
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
167
+ callbackArguments = intermediateArguments; ///
168
168
 
169
169
  next();
170
170
  });
171
171
  }, () => {
172
- const finalArguments = intermediateArguments; ///
172
+ const finalArguments = callbackArguments; ///
173
173
 
174
174
  return continuation(...finalArguments);
175
175
  });
@@ -180,13 +180,13 @@ export function forwardsEvery(array, callback, ...initialArguments) {
180
180
 
181
181
  const continuation = initialArguments.pop();
182
182
 
183
- let intermediateArguments = initialArguments; ///
183
+ let callbackArguments = initialArguments; ///
184
184
 
185
185
  return asynchronousForwardsForEach(array, (element, next, done) => {
186
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
187
- const passed = callbackArguments.shift();
186
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
187
+ const passed = intermediateArguments.shift();
188
188
 
189
- intermediateArguments = callbackArguments; ///
189
+ callbackArguments = intermediateArguments; ///
190
190
 
191
191
  if (!passed) {
192
192
  success = false;
@@ -199,7 +199,7 @@ export function forwardsEvery(array, callback, ...initialArguments) {
199
199
  next();
200
200
  });
201
201
  }, () => {
202
- const finalArguments = intermediateArguments; ///
202
+ const finalArguments = callbackArguments; ///
203
203
 
204
204
  return continuation(success, ...finalArguments);
205
205
  });
@@ -210,13 +210,13 @@ export function backwardsEvery(array, callback, ...initialArguments) {
210
210
 
211
211
  const continuation = initialArguments.pop();
212
212
 
213
- let intermediateArguments = initialArguments; ///
213
+ let callbackArguments = initialArguments; ///
214
214
 
215
215
  return asynchronousBackwardsForEach(array, (element, next, done) => {
216
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
217
- const passed = callbackArguments.shift();
216
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
217
+ const passed = intermediateArguments.shift();
218
218
 
219
- intermediateArguments = callbackArguments; ///
219
+ callbackArguments = intermediateArguments; ///
220
220
 
221
221
  if (!passed) {
222
222
  success = false;
@@ -229,7 +229,7 @@ export function backwardsEvery(array, callback, ...initialArguments) {
229
229
  next();
230
230
  });
231
231
  }, () => {
232
- const finalArguments = intermediateArguments; ///
232
+ const finalArguments = callbackArguments; ///
233
233
 
234
234
  return continuation(success, ...finalArguments);
235
235
  });
@@ -238,16 +238,16 @@ export function backwardsEvery(array, callback, ...initialArguments) {
238
238
  export function forwardsForEach(array, callback, ...initialArguments) {
239
239
  const continuation = initialArguments.pop();
240
240
 
241
- let intermediateArguments = initialArguments; ///
241
+ let callbackArguments = initialArguments; ///
242
242
 
243
243
  return asynchronousForwardsForEach(array, (element, next, done) => {
244
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
245
- intermediateArguments = callbackArguments; ///
244
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
245
+ callbackArguments = intermediateArguments; ///
246
246
 
247
247
  next();
248
248
  });
249
249
  }, () => {
250
- const finalArguments = intermediateArguments; ///
250
+ const finalArguments = callbackArguments; ///
251
251
 
252
252
  return continuation(...finalArguments);
253
253
  });
@@ -256,16 +256,16 @@ export function forwardsForEach(array, callback, ...initialArguments) {
256
256
  export function backwardsForEach(array, callback, ...initialArguments) {
257
257
  const continuation = initialArguments.pop();
258
258
 
259
- let intermediateArguments = initialArguments; ///
259
+ let callbackArguments = initialArguments; ///
260
260
 
261
261
  return asynchronousBackwardsForEach(array, (element, next, done) => {
262
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
263
- intermediateArguments = callbackArguments; ///
262
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
263
+ callbackArguments = intermediateArguments; ///
264
264
 
265
265
  next();
266
266
  });
267
267
  }, () => {
268
- const finalArguments = intermediateArguments; ///
268
+ const finalArguments = callbackArguments; ///
269
269
 
270
270
  return continuation(...finalArguments);
271
271
  });
@@ -276,17 +276,17 @@ export function filter(array, callback, ...initialArguments) {
276
276
 
277
277
  const continuation = initialArguments.pop();
278
278
 
279
- let intermediateArguments = initialArguments; ///
279
+ let callbackArguments = initialArguments; ///
280
280
 
281
281
  let index = array.length;
282
282
 
283
283
  return asynchronousBackwardsForEach(array, (element, next, done) => {
284
284
  index--;
285
285
 
286
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
287
- const passed = callbackArguments.shift();
286
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
287
+ const passed = intermediateArguments.shift();
288
288
 
289
- intermediateArguments = callbackArguments; ///
289
+ callbackArguments = intermediateArguments; ///
290
290
 
291
291
  if (!passed) {
292
292
  const start = index, ///
@@ -299,7 +299,7 @@ export function filter(array, callback, ...initialArguments) {
299
299
  next();
300
300
  });
301
301
  }, () => {
302
- const finalArguments = intermediateArguments; ///
302
+ const finalArguments = callbackArguments; ///
303
303
 
304
304
  return continuation(deletedElements, ...finalArguments);
305
305
  });
@@ -310,17 +310,17 @@ export function prune(array, callback, ...initialArguments) {
310
310
 
311
311
  const continuation = initialArguments.pop();
312
312
 
313
- let intermediateArguments = initialArguments; ///
313
+ let callbackArguments = initialArguments; ///
314
314
 
315
315
  let index = -1;
316
316
 
317
317
  return asynchronousForEach(array, (element, next, done) => {
318
318
  index++;
319
319
 
320
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
321
- const passed = callbackArguments.shift();
320
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
321
+ const passed = intermediateArguments.shift();
322
322
 
323
- intermediateArguments = callbackArguments; ///
323
+ callbackArguments = intermediateArguments; ///
324
324
 
325
325
  if (!passed) {
326
326
  const start = index, ///
@@ -336,7 +336,7 @@ export function prune(array, callback, ...initialArguments) {
336
336
  next();
337
337
  });
338
338
  }, () => {
339
- const finalArguments = intermediateArguments; ///
339
+ const finalArguments = callbackArguments; ///
340
340
 
341
341
  return continuation(deletedElement, ...finalArguments);
342
342
  });
@@ -347,17 +347,17 @@ export function extract(array, callback, ...initialArguments) {
347
347
 
348
348
  const continuation = initialArguments.pop();
349
349
 
350
- let intermediateArguments = initialArguments; ///
350
+ let callbackArguments = initialArguments; ///
351
351
 
352
352
  let index = -1;
353
353
 
354
354
  return asynchronousForEach(array, (element, next, done) => {
355
355
  index++;
356
356
 
357
- return callback(element, ...intermediateArguments, (...callbackArguments) => {
358
- const passed = callbackArguments.shift();
357
+ return callback(element, ...callbackArguments, (...intermediateArguments) => {
358
+ const passed = intermediateArguments.shift();
359
359
 
360
- intermediateArguments = callbackArguments; ///
360
+ callbackArguments = intermediateArguments; ///
361
361
 
362
362
  if (passed) {
363
363
  const start = index, ///
@@ -373,7 +373,7 @@ export function extract(array, callback, ...initialArguments) {
373
373
  next();
374
374
  });
375
375
  }, () => {
376
- const finalArguments = intermediateArguments; ///
376
+ const finalArguments = callbackArguments; ///
377
377
 
378
378
  return continuation(deletedElement, ...finalArguments);
379
379
  });
@@ -395,17 +395,17 @@ export function match(arrayA, arrayB, callback, ...initialArguments) {
395
395
 
396
396
  let index = -1;
397
397
 
398
- let intermediateArguments = initialArguments; ///
398
+ let callbackArguments = initialArguments; ///
399
399
 
400
400
  return asynchronousForEach(arrayA, (elementA, next, done) => {
401
401
  index++;
402
402
 
403
403
  const elementB = arrayB[index];
404
404
 
405
- return callback(elementA, elementB, ...intermediateArguments, (...callbackArguments) => {
406
- const passed = callbackArguments.shift();
405
+ return callback(elementA, elementB, ...callbackArguments, (...intermediateArguments) => {
406
+ const passed = intermediateArguments.shift();
407
407
 
408
- intermediateArguments = callbackArguments; ///
408
+ callbackArguments = intermediateArguments; ///
409
409
 
410
410
  if (!passed) {
411
411
  success = false;
@@ -418,7 +418,7 @@ export function match(arrayA, arrayB, callback, ...initialArguments) {
418
418
  next();
419
419
  });
420
420
  }, () => {
421
- const finalArguments = intermediateArguments; ///
421
+ const finalArguments = callbackArguments; ///
422
422
 
423
423
  return continuation(success, ...finalArguments);
424
424
  });
@@ -431,7 +431,7 @@ export function resolve(arrayA, arrayB, callback, ...initialArguments) {
431
431
 
432
432
  const continuation = initialArguments.pop();
433
433
 
434
- let intermediateArguments = initialArguments; ///
434
+ let callbackArguments = initialArguments; ///
435
435
 
436
436
  function nextPass() {
437
437
  let success = false;
@@ -441,7 +441,7 @@ export function resolve(arrayA, arrayB, callback, ...initialArguments) {
441
441
  if (arrayALength === 0) {
442
442
  success = true;
443
443
 
444
- const finalArguments = intermediateArguments; ///
444
+ const finalArguments = callbackArguments; ///
445
445
 
446
446
  return continuation(success, ...finalArguments);
447
447
  }
@@ -457,7 +457,7 @@ export function resolve(arrayA, arrayB, callback, ...initialArguments) {
457
457
  if (!success) {
458
458
  success = false;
459
459
 
460
- const finalArguments = intermediateArguments; ///
460
+ const finalArguments = callbackArguments; ///
461
461
 
462
462
  return continuation(success, ...finalArguments);
463
463
  }
@@ -474,10 +474,10 @@ export function resolve(arrayA, arrayB, callback, ...initialArguments) {
474
474
  } else {
475
475
  const elementA = arrayA[index];
476
476
 
477
- return callback(elementA, ...intermediateArguments, (...callbackArguments) => {
478
- const passed = callbackArguments.shift();
477
+ return callback(elementA, ...callbackArguments, (...intermediateArguments) => {
478
+ const passed = intermediateArguments.shift();
479
479
 
480
- intermediateArguments = callbackArguments; ///
480
+ callbackArguments = intermediateArguments; ///
481
481
 
482
482
  if (passed) {
483
483
  const elementB = elementA; ///