contract DumperFactory {
  using ClonesWithImmutableArgs for address;
  address public implementation;

  constructor(address implementation_) {
    implementation = implementation_;
  }

  // abi.encodePacked(param1, param2, ...)
  function createClone(bytes calldata _data) external payable returns (address _clone) {
    _clone = implementation.clone(_data);
  }
}
function createClone(bytes calldata _data) external payable returns (address _clone) {
  _clone = implementation.clone(_data);
}

// abi.encodePacked(param1, param2, ...)