interface IEligibility {

//    function getGate(uint) external view returns (struct Gate)
//    function addGate(uint...) external

    function isEligible(uint, address, bytes32[] memory) external view returns (bool eligible);

    function passThruGate(uint, address, bytes32[] memory) external;
}
function isEligible(uint, address, bytes32[] memory) external view returns (bool eligible);

//    function getGate(uint) external view returns (struct Gate)
//    function addGate(uint...) external