// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;
struct G1Point {
uint x;
uint y;
}
struct G2Point {
uint[2] x;
uint[2] y;
struct Groth16Proof {
G1Point a;
G2Point b;
G1Point c;