Documentation
pub use verifier_2x_2_contract::*;
/// This module was auto-generated with ethers-rs Abigen.
/// More information at: <https://github.com/gakonst/ethers-rs>
#[allow(
    clippy::enum_variant_names,
    clippy::too_many_arguments,
    clippy::upper_case_acronyms,
    clippy::type_complexity,
    dead_code,
    non_camel_case_types
)]
pub mod verifier_2x_2_contract {
    #[allow(deprecated)]
    fn __abi() -> ::ethers::core::abi::Abi {
        ::ethers::core::abi::ethabi::Contract {
            constructor: ::core::option::Option::None,
            functions: ::core::convert::From::from([
                (
                    ::std::borrow::ToOwned::to_owned("verifyProof"),
                    ::std::vec![
                        ::ethers::core::abi::ethabi::Function {
                            name: ::std::borrow::ToOwned::to_owned("verifyProof"),
                            inputs: ::std::vec![
                                ::ethers::core::abi::ethabi::Param {
                                    name: ::std::borrow::ToOwned::to_owned("a"),
                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedArray(
                                        ::std::boxed::Box::new(
                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
                                        ),
                                        2usize,
                                    ),
                                    internal_type: ::core::option::Option::Some(
                                        ::std::borrow::ToOwned::to_owned("uint256[2]"),
                                    ),
                                },
                                ::ethers::core::abi::ethabi::Param {
                                    name: ::std::borrow::ToOwned::to_owned("b"),
                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedArray(
                                        ::std::boxed::Box::new(
                                            ::ethers::core::abi::ethabi::ParamType::FixedArray(
                                                ::std::boxed::Box::new(
                                                    ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
                                                ),
                                                2usize,
                                            ),
                                        ),
                                        2usize,
                                    ),
                                    internal_type: ::core::option::Option::Some(
                                        ::std::borrow::ToOwned::to_owned("uint256[2][2]"),
                                    ),
                                },
                                ::ethers::core::abi::ethabi::Param {
                                    name: ::std::borrow::ToOwned::to_owned("c"),
                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedArray(
                                        ::std::boxed::Box::new(
                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
                                        ),
                                        2usize,
                                    ),
                                    internal_type: ::core::option::Option::Some(
                                        ::std::borrow::ToOwned::to_owned("uint256[2]"),
                                    ),
                                },
                                ::ethers::core::abi::ethabi::Param {
                                    name: ::std::borrow::ToOwned::to_owned("input"),
                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedArray(
                                        ::std::boxed::Box::new(
                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
                                        ),
                                        9usize,
                                    ),
                                    internal_type: ::core::option::Option::Some(
                                        ::std::borrow::ToOwned::to_owned("uint256[9]"),
                                    ),
                                },
                            ],
                            outputs: ::std::vec![
                                ::ethers::core::abi::ethabi::Param {
                                    name: ::std::borrow::ToOwned::to_owned("r"),
                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
                                    internal_type: ::core::option::Option::Some(
                                        ::std::borrow::ToOwned::to_owned("bool"),
                                    ),
                                },
                            ],
                            constant: ::core::option::Option::None,
                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
                        },
                    ],
                ),
            ]),
            events: ::std::collections::BTreeMap::new(),
            errors: ::std::collections::BTreeMap::new(),
            receive: false,
            fallback: false,
        }
    }
    ///The parsed JSON ABI of the contract.
    pub static VERIFIER2X2CONTRACT_ABI: ::ethers::contract::Lazy<
        ::ethers::core::abi::Abi,
    > = ::ethers::contract::Lazy::new(__abi);
    #[rustfmt::skip]
    const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[Pa\x15\x10\x80a\0 `\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0+W`\x005`\xE0\x1C\x80c\xC5B\xC9;\x14a\x000W[`\0\x80\xFD[a\0Ca\0>6`\x04a\x13XV[a\0WV[`@Q\x90\x15\x15\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`\0a\0aa\x11kV[`@\x80Q\x80\x82\x01\x82R\x87Q\x81R` \x80\x89\x01Q\x81\x83\x01R\x90\x83R\x81Q`\x80\x81\x01\x83R\x87QQ\x81\x84\x01\x90\x81R\x88Q\x83\x01Q``\x83\x01R\x81R\x82Q\x80\x84\x01\x84R\x88\x83\x01\x80QQ\x82RQ\x83\x01Q\x81\x84\x01R\x81\x83\x01R\x83\x82\x01R\x81Q\x80\x83\x01\x83R\x86Q\x81R\x86\x82\x01Q\x81\x83\x01R\x83\x83\x01R\x81Q`\t\x80\x82Ra\x01@\x82\x01\x90\x93R`\0\x92\x90\x91\x82\x01a\x01 \x806\x837\x01\x90PP\x90P`\0[`\t\x81\x10\x15a\x01CW\x84\x81`\t\x81\x10a\x01\x0FWa\x01\x0Fa\x146V[` \x02\x01Q\x82\x82\x81Q\x81\x10a\x01&Wa\x01&a\x146V[` \x90\x81\x02\x91\x90\x91\x01\x01R\x80a\x01;\x81a\x14bV[\x91PPa\0\xF4V[Pa\x01N\x81\x83a\x01oV[`\0\x03a\x01`W`\x01\x92PPPa\x01gV[`\0\x92PPP[\x94\x93PPPPV[`\0\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\x81a\x01\x9Ba\x03fV[\x90P\x80`\x80\x01QQ\x85Q`\x01a\x01\xB1\x91\x90a\x14{V[\x14a\x01\xF8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x12`$\x82\x01Rq\x1D\x99\\\x9AY\x9AY\\\x8BX\x98Y\x0BZ[\x9C\x1D]`r\x1B`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01\x81\x90R[\x86Q\x81\x10\x15a\x02\xE9W\x83\x87\x82\x81Q\x81\x10a\x02+Wa\x02+a\x146V[` \x02` \x01\x01Q\x10a\x02\x80W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7Fverifier-gte-snark-scalar-field\0`D\x82\x01R`d\x01a\x01\xEFV[a\x02\xD5\x82a\x02\xD0\x85`\x80\x01Q\x84`\x01a\x02\x99\x91\x90a\x14{V[\x81Q\x81\x10a\x02\xA9Wa\x02\xA9a\x146V[` \x02` \x01\x01Q\x8A\x85\x81Q\x81\x10a\x02\xC3Wa\x02\xC3a\x146V[` \x02` \x01\x01Qa\n\xBAV[a\x0BPV[\x91P\x80a\x02\xE1\x81a\x14bV[\x91PPa\x02\x0FV[Pa\x03\x12\x81\x83`\x80\x01Q`\0\x81Q\x81\x10a\x03\x05Wa\x03\x05a\x146V[` \x02` \x01\x01Qa\x0BPV[\x90Pa\x03Ha\x03$\x86`\0\x01Qa\x0B\xE9V[\x86` \x01Q\x84`\0\x01Q\x85` \x01Q\x85\x87`@\x01Q\x8B`@\x01Q\x89``\x01Qa\x0C\x88V[a\x03XW`\x01\x93PPPPa\x03`V[`\0\x93PPPP[\x92\x91PPV[a\x03na\x11\xBCV[`@\x80Q\x80\x82\x01\x82R\x7F-M\x9A\xA7\xE3\x02\xD9\xDFAt\x9DU\x07\x94\x9D\x05\xDB\xEA3\xFB\xB1ld;\"\xF5\x99\xA2\xBEm\xF2\xE2\x81R\x7F\x14\xBE\xDDP<7\xCE\xB0a\xD8\xEC` \x9F\xE3E\xCE\x89\x83\n\x19#\x03\x01\xF0v\xCA\xFF\0M\x19&` \x80\x83\x01\x91\x90\x91R\x90\x83R\x81Q`\x80\x80\x82\x01\x84R\x7F\tg\x03/\xCB\xF7v\xD1\xAF\xC9\x85\xF8\x88w\xF1\x82\xD3\x84\x80\xA6S\xF2\xDE\xCA\xA9yL\xBC;\xF3\x06\x0C\x82\x85\x01\x90\x81R\x7F\x0E\x18xG\xADLy\x83t\xD0\xD6s+\xF5\x01\x84}\xD6\x8B\xC0\xE0q$\x1E\x02\x13\xBC\x7F\xC1=\xB7\xAB``\x80\x85\x01\x91\x90\x91R\x90\x83R\x84Q\x80\x86\x01\x86R\x7F0L\xFB\xD1\xE0\x8ApJ\x99\xF5\xE8G\xD9?\x8C<\xAA\xFD\xDE\xC4kz\r7\x9D\xA6\x9AM\x11#F\xA7\x81R\x7F\x179\xC1\xB1\xA4W\xA8\xC711#\xD2M/\x91\x92\xF8\x96\xB7\xC6>\xEA\x05\xA9\xD5\x7F\x06Tz\xD0\xCE\xC8\x81\x86\x01R\x83\x85\x01R\x85\x84\x01\x92\x90\x92R\x83Q\x80\x82\x01\x85R\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81\x86\x01\x90\x81R\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x82\x85\x01R\x81R\x84Q\x80\x86\x01\x86R\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81R\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81\x86\x01R\x81\x85\x01R\x85\x85\x01R\x83Q\x90\x81\x01\x84R\x7F\x0C\xC1\xFE\xF9\r\xC5\xEF\x1D\x15\x08y\xBE\xCB\x97\xB1{\xFCg\x87\xCC\xF7e \x1F\xD4\x1D~\xA4\xF8\xFD\x93\x0E\x81\x85\x01\x90\x81R\x7F\x07>\xC5M\xE5\xF3(\x8D\xD52\xECK\xBDs\xAB\x86y\xB37\x0F\x0C\x16\xEE\x02^,\xDB\x1Ei\xBA\xBD\xBC\x82\x84\x01R\x81R\x83Q\x80\x85\x01\x85R\x7F\x1D/\xE7\x0C\x81\xAC\xF8\x99\"UF\xE5\x16\xA0\xC6\x17W\0\xE2\x88\xC9\xEE-\xA6)'\xFAh4\xCB\xBF\x9D\x81R\x7F'[F\xAAVW\xF9\xBD4_\xB8C\xC2)\xFDx\x80\x83\xCF\x14\xE50\xB1Au\x9F\x07\xBDG\xC5\xB24\x81\x85\x01R\x81\x84\x01R\x90\x84\x01R\x81Q`\n\x80\x82Ra\x01`\x82\x01\x90\x93R\x91\x90\x82\x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x05\xEAWPP`\x80\x82\x01\x90\x81R`@\x80Q\x80\x82\x01\x90\x91R\x7F\x15\xD5\x11\xE4T\x0El<\xE6@\xAA\xCF\x91\xD9\x837]m\xDEMR.\xD8\xE9\xD5\x90\xF0\xD9u8\xF9\xA0\x81R\x7F!\x1B\xDEUo\xE7\x88\x9B\xE0\x81\xF2\x99-\x82\x0CE\xDE)\x08t3\x115\x0Fsw> \xBD\"\x8FB` \x82\x01R\x90Q\x80Q`\0\x90a\x06}Wa\x06}a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x07\xE4\x8A0Z_\xD6\xAB\x97@\xB7\xB1\xE1\xE4F\xB2&D\xED\x9D\x1D\r\xC3\xF6g\xA9\xBB\xAA\x02fn\xC0\x81R` \x01\x7F\x02\x1E\xB2u\x11\xE5\x88\x80\xCBd\xFE\xE4\xBF\xAF\xB6)~\xA50k\x9D\x01r*\x0B\x8B(\xD8\xC9T\xDD.\x81RP\x81`\x80\x01Q`\x01\x81Q\x81\x10a\x06\xF4Wa\x06\xF4a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x17R\x1D\x19\xD8\xCD\x07\xDA\xB5\xE8E\xFBL\x14>6\xF9\x91\xBA\xCFSs\xAD\x84]F\xE8\xA6B\xCF\"\xC7\x81R` \x01\x7F\x05\x8A\x89\x0C\xB1#K\x18$~A\xD0]U\xFC\xE1\x83\xFCL\x86\xDCd\xE5\xE0V\xF8\xD3]3\xD5l\x8A\x81RP\x81`\x80\x01Q`\x02\x81Q\x81\x10a\x07kWa\x07ka\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F&\xDC\xDF\x0E\xA3\x9Cq\xA5\x19\xFD\xFF\xB3?\x03\xEC\x90O\xFDx \xE2)\xC6\x1A\xB2\x87\xDE\xAF \x11\xFBx\x81R` \x01\x7F\x1Bs\x91\xF7\xE9\x0C*$\x08R@p\x17\xF7\xDB\x0F\\\xD8=a\xD5\xCDA\xB9\xF9\n\xD2k\xE3\x0B\xF7\xBC\x81RP\x81`\x80\x01Q`\x03\x81Q\x81\x10a\x07\xE2Wa\x07\xE2a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F#\xCD~Z'\x8F\x06\0\x92\x1A\x96<\x0BU\x95\xEF\x80t\xD7r\r'\xB2\xC1\xC2\xF6\x08g\xBE\x19\"u\x81R` \x01\x7F\x10\xAB\x8D\x8E\x94\x827\xF3s\xC0\x8A\xB9\xB7\xF7\xFF\xB1\xFD\xFA\xEC\x9E\xEFu\x01\x85\xF1\xDF\xCB\xB8<lJ\x85\x81RP\x81`\x80\x01Q`\x04\x81Q\x81\x10a\x08YWa\x08Ya\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x15MR\xE0BF_\xF3e\xB2\xEEN\xCC\xD4i\xB9\xC1>]nP\xF3\xF3\xD7\xEF\x8D\xB6\x93\x15\xE2'\x8E\x81R` \x01\x7F\x05'\xC8\x89]\xDF\x93\x7F\x12\xB2\xC4\x02<@\xCB\xA0\xE9V)O\xAD\x14\xA9\xC9\x87\xF9\x95\xB7<\xDB\x9F\x0E\x81RP\x81`\x80\x01Q`\x05\x81Q\x81\x10a\x08\xD0Wa\x08\xD0a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F#k\xD2\x1D\xEA\xDE\xF3Z\xA2\x1C\xC1\x14B\xAA\xD4\xB1^y\x93\xDB\x974\xA7\x88b\x17?\x19`\x99\x7F\x02\x81R` \x01\x7F }e.\xDB\x89\x89\xC5T\xA9\xA7>)\xEF\x17(\x13GD\x18\x1E\xA0qO\xF4:\x1B\x80\xFD~S\xB1\x81RP\x81`\x80\x01Q`\x06\x81Q\x81\x10a\tGWa\tGa\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x19m\xCF\xA3\x9A\x9E\"\x0E@\xD2\xFD?\xDD\xE7\x99B:\xC4\xE7\xD8\x08\xEB\x1D5\x95\xFA\x8FI\\/\xE7Q\x81R` \x01\x7F%S\xF9\xEF\x7FR{_=\xBA\x15T\x16?vlI\xF0\xC8\x9Amp[\x0F\x81f7\x8A#@=\xDD\x81RP\x81`\x80\x01Q`\x07\x81Q\x81\x10a\t\xBEWa\t\xBEa\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x1Ft)\xB1\0\x88\x0E4Q\xF1\xD4i\x0Fm\x18HR\x95\xCDd(\xB8\x89\xE3\xFA7g\x90\x1B\xAE[\xEF\x81R` \x01\x7F\t\xA8\xC2\xEAp\tY\x02\xEFh\xA0\xD3\xC7\xBF\x1BSv\x8D~\x85\xFD\xC6\xEC\x8BZ\xDF\xEC8l\x1A\xAF\xF8\x81RP\x81`\x80\x01Q`\x08\x81Q\x81\x10a\n5Wa\n5a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F/\xB8\x9C]B\x8F\xEB\x02\xDC\x1B\xAA\xBD\xDB_\xC4\xA2Ml\x069\xDFF#\xF5\xCE\x19\x0BN\xE6\xBC\xAC\xDA\x81R` \x01\x7F\x17\\\xE2n\x90~\xC1Y_\x1CI\xB5B\xF9f\x06|\xD3.[\xCB\xE2.K\x97\x1E\x89\x0B\xC6\xE8\xEB\xBD\x81RP\x81`\x80\x01Q`\t\x81Q\x81\x10a\n\xACWa\n\xACa\x146V[` \x02` \x01\x01\x81\x90RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01Ra\n\xD6a\x12\rV[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x81\x01\x83\x90R`\0``\x83`\x80\x84`\x07a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x0B\x05W\xFE[P\x80a\x0BHW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x12`$\x82\x01Rq\x1C\x18Z\\\x9A[\x99\xCB[][\x0BY\x98Z[\x19Y`r\x1B`D\x82\x01R`d\x01a\x01\xEFV[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01Ra\x0Bla\x12+V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x83\x01R\x83\x01Q``\x80\x83\x01\x91\x90\x91R`\0\x90\x83`\xC0\x84`\x06a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x0B\xA6W\xFE[P\x80a\x0BHW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x12`$\x82\x01Rq\x1C\x18Z\\\x9A[\x99\xCBXY\x19\x0BY\x98Z[\x19Y`r\x1B`D\x82\x01R`d\x01a\x01\xEFV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x90\x15\x80\x15a\x0C0WP` \x83\x01Q\x15[\x15a\x0CPWPP`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x91\x90PV[`@Q\x80`@\x01`@R\x80\x84`\0\x01Q\x81R` \x01\x82\x85` \x01Qa\x0Cu\x91\x90a\x14\x8EV[a\x0C\x7F\x90\x84a\x14\xB0V[\x90R\x93\x92PPPV[`@\x80Q`\x04\x80\x82R`\xA0\x82\x01\x90\x92R`\0\x91\x82\x91\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x0C\xA3WPP`@\x80Q`\x04\x80\x82R`\xA0\x82\x01\x90\x92R\x91\x92P`\0\x91\x90` \x82\x01[a\x0C\xEDa\x12IV[\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x0C\xE5W\x90PP\x90P\x8A\x82`\0\x81Q\x81\x10a\r\x16Wa\r\x16a\x146V[` \x02` \x01\x01\x81\x90RP\x88\x82`\x01\x81Q\x81\x10a\r5Wa\r5a\x146V[` \x02` \x01\x01\x81\x90RP\x86\x82`\x02\x81Q\x81\x10a\rTWa\rTa\x146V[` \x02` \x01\x01\x81\x90RP\x84\x82`\x03\x81Q\x81\x10a\rsWa\rsa\x146V[` \x02` \x01\x01\x81\x90RP\x89\x81`\0\x81Q\x81\x10a\r\x92Wa\r\x92a\x146V[` \x02` \x01\x01\x81\x90RP\x87\x81`\x01\x81Q\x81\x10a\r\xB1Wa\r\xB1a\x146V[` \x02` \x01\x01\x81\x90RP\x85\x81`\x02\x81Q\x81\x10a\r\xD0Wa\r\xD0a\x146V[` \x02` \x01\x01\x81\x90RP\x83\x81`\x03\x81Q\x81\x10a\r\xEFWa\r\xEFa\x146V[` \x02` \x01\x01\x81\x90RPa\x0E\x04\x82\x82a\x0E\x13V[\x9B\x9APPPPPPPPPPPV[`\0\x81Q\x83Q\x14a\x0E_W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x16`$\x82\x01Ru\x1C\x18Z\\\x9A[\x99\xCB[\x19[\x99\xDD\x1A\x1C\xCBY\x98Z[\x19Y`R\x1B`D\x82\x01R`d\x01a\x01\xEFV[\x82Q`\0a\x0En\x82`\x06a\x14\xC3V[\x90P`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E\x8BWa\x0E\x8Ba\x12\xA5V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0E\xB4W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x83\x81\x10\x15a\x10\xEFW\x86\x81\x81Q\x81\x10a\x0E\xD4Wa\x0E\xD4a\x146V[` \x02` \x01\x01Q`\0\x01Q\x82\x82`\x06a\x0E\xEE\x91\x90a\x14\xC3V[a\x0E\xF9\x90`\0a\x14{V[\x81Q\x81\x10a\x0F\tWa\x0F\ta\x146V[` \x02` \x01\x01\x81\x81RPP\x86\x81\x81Q\x81\x10a\x0F'Wa\x0F'a\x146V[` \x02` \x01\x01Q` \x01Q\x82\x82`\x06a\x0FA\x91\x90a\x14\xC3V[a\x0FL\x90`\x01a\x14{V[\x81Q\x81\x10a\x0F\\Wa\x0F\\a\x146V[` \x02` \x01\x01\x81\x81RPP\x85\x81\x81Q\x81\x10a\x0FzWa\x0Fza\x146V[` \x90\x81\x02\x91\x90\x91\x01\x01QQQ\x82a\x0F\x93\x83`\x06a\x14\xC3V[a\x0F\x9E\x90`\x02a\x14{V[\x81Q\x81\x10a\x0F\xAEWa\x0F\xAEa\x146V[` \x02` \x01\x01\x81\x81RPP\x85\x81\x81Q\x81\x10a\x0F\xCCWa\x0F\xCCa\x146V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01QQ\x01Q\x82a\x0F\xE7\x83`\x06a\x14\xC3V[a\x0F\xF2\x90`\x03a\x14{V[\x81Q\x81\x10a\x10\x02Wa\x10\x02a\x146V[` \x02` \x01\x01\x81\x81RPP\x85\x81\x81Q\x81\x10a\x10 Wa\x10 a\x146V[` \x02` \x01\x01Q` \x01Q`\0`\x02\x81\x10a\x10>Wa\x10>a\x146V[` \x02\x01Q\x82a\x10O\x83`\x06a\x14\xC3V[a\x10Z\x90`\x04a\x14{V[\x81Q\x81\x10a\x10jWa\x10ja\x146V[` \x02` \x01\x01\x81\x81RPP\x85\x81\x81Q\x81\x10a\x10\x88Wa\x10\x88a\x146V[` \x02` \x01\x01Q` \x01Q`\x01`\x02\x81\x10a\x10\xA6Wa\x10\xA6a\x146V[` \x02\x01Q\x82a\x10\xB7\x83`\x06a\x14\xC3V[a\x10\xC2\x90`\x05a\x14{V[\x81Q\x81\x10a\x10\xD2Wa\x10\xD2a\x146V[` \x90\x81\x02\x91\x90\x91\x01\x01R\x80a\x10\xE7\x81a\x14bV[\x91PPa\x0E\xBAV[Pa\x10\xF8a\x12iV[`\0` \x82` \x86\x02` \x86\x01`\x08a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x11\x17W\xFE[P\x80a\x11]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01Rt\x1C\x18Z\\\x9A[\x99\xCB[\xDC\x18\xDB\xD9\x19KY\x98Z[\x19Y`Z\x1B`D\x82\x01R`d\x01a\x01\xEFV[PQ\x15\x15\x96\x95PPPPPPV[`@\x80Q`\xA0\x81\x01\x90\x91R`\0``\x82\x01\x81\x81R`\x80\x83\x01\x91\x90\x91R\x81R` \x81\x01a\x11\x95a\x12IV[\x81R` \x01a\x11\xB7`@Q\x80`@\x01`@R\x80`\0\x81R` \x01`\0\x81RP\x90V[\x90R\x90V[`@\x80Q`\xE0\x81\x01\x90\x91R`\0`\xA0\x82\x01\x81\x81R`\xC0\x83\x01\x91\x90\x91R\x81R` \x81\x01a\x11\xE6a\x12IV[\x81R` \x01a\x11\xF3a\x12IV[\x81R` \x01a\x12\0a\x12IV[\x81R` \x01``\x81RP\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`@\x01`@R\x80a\x12\\a\x12\x87V[\x81R` \x01a\x11\xB7a\x12\x87V[`@Q\x80` \x01`@R\x80`\x01\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`@\x01`@R\x80`\x02\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x12\xDEWa\x12\xDEa\x12\xA5V[`@R\x90V[`@Qa\x01 \x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x12\xDEWa\x12\xDEa\x12\xA5V[`\0\x82`\x1F\x83\x01\x12a\x13\x19W`\0\x80\xFD[a\x13!a\x12\xBBV[\x80`@\x84\x01\x85\x81\x11\x15a\x133W`\0\x80\xFD[\x84[\x81\x81\x10\x15a\x13MW\x805\x84R` \x93\x84\x01\x93\x01a\x135V[P\x90\x95\x94PPPPPV[`\0\x80`\0\x80a\x02 \x80\x86\x88\x03\x12\x15a\x13pW`\0\x80\xFD[a\x13z\x87\x87a\x13\x08V[\x94P`@\x87`_\x88\x01\x12a\x13\x8DW`\0\x80\xFD[a\x13\x95a\x12\xBBV[\x80`\xC0\x89\x01\x8A\x81\x11\x15a\x13\xA7W`\0\x80\xFD[\x83\x8A\x01[\x81\x81\x10\x15a\x13\xCCWa\x13\xBD\x8C\x82a\x13\x08V[\x84R` \x90\x93\x01\x92\x84\x01a\x13\xABV[P\x81\x97Pa\x13\xDA\x8B\x82a\x13\x08V[\x96PPPPP\x86a\x01\x1F\x87\x01\x12a\x13\xF0W`\0\x80\xFD[a\x13\xF8a\x12\xE4V[\x90\x86\x01\x90\x80\x88\x83\x11\x15a\x14\nW`\0\x80\xFD[a\x01\0\x88\x01[\x83\x81\x10\x15a\x14(W\x805\x83R` \x92\x83\x01\x92\x01a\x14\x10V[P\x95\x98\x94\x97P\x92\x95PPPPV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a\x14tWa\x14ta\x14LV[P`\x01\x01\x90V[\x80\x82\x01\x80\x82\x11\x15a\x03`Wa\x03`a\x14LV[`\0\x82a\x14\xABWcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x06\x90V[\x81\x81\x03\x81\x81\x11\x15a\x03`Wa\x03`a\x14LV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x03`Wa\x03`a\x14LV\xFE\xA2dipfsX\"\x12 \xCD\xF4M\x83\xD7?\xD9\xF7C\xA2!\xCDN\xC0A\xD1Q9\xE9h\xD3\xFC{\xE9\x9B=\x1A\x01g$\x05\x8FdsolcC\0\x08\x12\x003";
    /// The bytecode of the contract.
    pub static VERIFIER2X2CONTRACT_BYTECODE: ::ethers::core::types::Bytes =
        ::ethers::core::types::Bytes::from_static(__BYTECODE);
    #[rustfmt::skip]
    const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\0+W`\x005`\xE0\x1C\x80c\xC5B\xC9;\x14a\x000W[`\0\x80\xFD[a\0Ca\0>6`\x04a\x13XV[a\0WV[`@Q\x90\x15\x15\x81R` \x01`@Q\x80\x91\x03\x90\xF3[`\0a\0aa\x11kV[`@\x80Q\x80\x82\x01\x82R\x87Q\x81R` \x80\x89\x01Q\x81\x83\x01R\x90\x83R\x81Q`\x80\x81\x01\x83R\x87QQ\x81\x84\x01\x90\x81R\x88Q\x83\x01Q``\x83\x01R\x81R\x82Q\x80\x84\x01\x84R\x88\x83\x01\x80QQ\x82RQ\x83\x01Q\x81\x84\x01R\x81\x83\x01R\x83\x82\x01R\x81Q\x80\x83\x01\x83R\x86Q\x81R\x86\x82\x01Q\x81\x83\x01R\x83\x83\x01R\x81Q`\t\x80\x82Ra\x01@\x82\x01\x90\x93R`\0\x92\x90\x91\x82\x01a\x01 \x806\x837\x01\x90PP\x90P`\0[`\t\x81\x10\x15a\x01CW\x84\x81`\t\x81\x10a\x01\x0FWa\x01\x0Fa\x146V[` \x02\x01Q\x82\x82\x81Q\x81\x10a\x01&Wa\x01&a\x146V[` \x90\x81\x02\x91\x90\x91\x01\x01R\x80a\x01;\x81a\x14bV[\x91PPa\0\xF4V[Pa\x01N\x81\x83a\x01oV[`\0\x03a\x01`W`\x01\x92PPPa\x01gV[`\0\x92PPP[\x94\x93PPPPV[`\0\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\x81a\x01\x9Ba\x03fV[\x90P\x80`\x80\x01QQ\x85Q`\x01a\x01\xB1\x91\x90a\x14{V[\x14a\x01\xF8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x12`$\x82\x01Rq\x1D\x99\\\x9AY\x9AY\\\x8BX\x98Y\x0BZ[\x9C\x1D]`r\x1B`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01\x81\x90R[\x86Q\x81\x10\x15a\x02\xE9W\x83\x87\x82\x81Q\x81\x10a\x02+Wa\x02+a\x146V[` \x02` \x01\x01Q\x10a\x02\x80W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7Fverifier-gte-snark-scalar-field\0`D\x82\x01R`d\x01a\x01\xEFV[a\x02\xD5\x82a\x02\xD0\x85`\x80\x01Q\x84`\x01a\x02\x99\x91\x90a\x14{V[\x81Q\x81\x10a\x02\xA9Wa\x02\xA9a\x146V[` \x02` \x01\x01Q\x8A\x85\x81Q\x81\x10a\x02\xC3Wa\x02\xC3a\x146V[` \x02` \x01\x01Qa\n\xBAV[a\x0BPV[\x91P\x80a\x02\xE1\x81a\x14bV[\x91PPa\x02\x0FV[Pa\x03\x12\x81\x83`\x80\x01Q`\0\x81Q\x81\x10a\x03\x05Wa\x03\x05a\x146V[` \x02` \x01\x01Qa\x0BPV[\x90Pa\x03Ha\x03$\x86`\0\x01Qa\x0B\xE9V[\x86` \x01Q\x84`\0\x01Q\x85` \x01Q\x85\x87`@\x01Q\x8B`@\x01Q\x89``\x01Qa\x0C\x88V[a\x03XW`\x01\x93PPPPa\x03`V[`\0\x93PPPP[\x92\x91PPV[a\x03na\x11\xBCV[`@\x80Q\x80\x82\x01\x82R\x7F-M\x9A\xA7\xE3\x02\xD9\xDFAt\x9DU\x07\x94\x9D\x05\xDB\xEA3\xFB\xB1ld;\"\xF5\x99\xA2\xBEm\xF2\xE2\x81R\x7F\x14\xBE\xDDP<7\xCE\xB0a\xD8\xEC` \x9F\xE3E\xCE\x89\x83\n\x19#\x03\x01\xF0v\xCA\xFF\0M\x19&` \x80\x83\x01\x91\x90\x91R\x90\x83R\x81Q`\x80\x80\x82\x01\x84R\x7F\tg\x03/\xCB\xF7v\xD1\xAF\xC9\x85\xF8\x88w\xF1\x82\xD3\x84\x80\xA6S\xF2\xDE\xCA\xA9yL\xBC;\xF3\x06\x0C\x82\x85\x01\x90\x81R\x7F\x0E\x18xG\xADLy\x83t\xD0\xD6s+\xF5\x01\x84}\xD6\x8B\xC0\xE0q$\x1E\x02\x13\xBC\x7F\xC1=\xB7\xAB``\x80\x85\x01\x91\x90\x91R\x90\x83R\x84Q\x80\x86\x01\x86R\x7F0L\xFB\xD1\xE0\x8ApJ\x99\xF5\xE8G\xD9?\x8C<\xAA\xFD\xDE\xC4kz\r7\x9D\xA6\x9AM\x11#F\xA7\x81R\x7F\x179\xC1\xB1\xA4W\xA8\xC711#\xD2M/\x91\x92\xF8\x96\xB7\xC6>\xEA\x05\xA9\xD5\x7F\x06Tz\xD0\xCE\xC8\x81\x86\x01R\x83\x85\x01R\x85\x84\x01\x92\x90\x92R\x83Q\x80\x82\x01\x85R\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81\x86\x01\x90\x81R\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x82\x85\x01R\x81R\x84Q\x80\x86\x01\x86R\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81R\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81\x86\x01R\x81\x85\x01R\x85\x85\x01R\x83Q\x90\x81\x01\x84R\x7F\x0C\xC1\xFE\xF9\r\xC5\xEF\x1D\x15\x08y\xBE\xCB\x97\xB1{\xFCg\x87\xCC\xF7e \x1F\xD4\x1D~\xA4\xF8\xFD\x93\x0E\x81\x85\x01\x90\x81R\x7F\x07>\xC5M\xE5\xF3(\x8D\xD52\xECK\xBDs\xAB\x86y\xB37\x0F\x0C\x16\xEE\x02^,\xDB\x1Ei\xBA\xBD\xBC\x82\x84\x01R\x81R\x83Q\x80\x85\x01\x85R\x7F\x1D/\xE7\x0C\x81\xAC\xF8\x99\"UF\xE5\x16\xA0\xC6\x17W\0\xE2\x88\xC9\xEE-\xA6)'\xFAh4\xCB\xBF\x9D\x81R\x7F'[F\xAAVW\xF9\xBD4_\xB8C\xC2)\xFDx\x80\x83\xCF\x14\xE50\xB1Au\x9F\x07\xBDG\xC5\xB24\x81\x85\x01R\x81\x84\x01R\x90\x84\x01R\x81Q`\n\x80\x82Ra\x01`\x82\x01\x90\x93R\x91\x90\x82\x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x05\xEAWPP`\x80\x82\x01\x90\x81R`@\x80Q\x80\x82\x01\x90\x91R\x7F\x15\xD5\x11\xE4T\x0El<\xE6@\xAA\xCF\x91\xD9\x837]m\xDEMR.\xD8\xE9\xD5\x90\xF0\xD9u8\xF9\xA0\x81R\x7F!\x1B\xDEUo\xE7\x88\x9B\xE0\x81\xF2\x99-\x82\x0CE\xDE)\x08t3\x115\x0Fsw> \xBD\"\x8FB` \x82\x01R\x90Q\x80Q`\0\x90a\x06}Wa\x06}a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x07\xE4\x8A0Z_\xD6\xAB\x97@\xB7\xB1\xE1\xE4F\xB2&D\xED\x9D\x1D\r\xC3\xF6g\xA9\xBB\xAA\x02fn\xC0\x81R` \x01\x7F\x02\x1E\xB2u\x11\xE5\x88\x80\xCBd\xFE\xE4\xBF\xAF\xB6)~\xA50k\x9D\x01r*\x0B\x8B(\xD8\xC9T\xDD.\x81RP\x81`\x80\x01Q`\x01\x81Q\x81\x10a\x06\xF4Wa\x06\xF4a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x17R\x1D\x19\xD8\xCD\x07\xDA\xB5\xE8E\xFBL\x14>6\xF9\x91\xBA\xCFSs\xAD\x84]F\xE8\xA6B\xCF\"\xC7\x81R` \x01\x7F\x05\x8A\x89\x0C\xB1#K\x18$~A\xD0]U\xFC\xE1\x83\xFCL\x86\xDCd\xE5\xE0V\xF8\xD3]3\xD5l\x8A\x81RP\x81`\x80\x01Q`\x02\x81Q\x81\x10a\x07kWa\x07ka\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F&\xDC\xDF\x0E\xA3\x9Cq\xA5\x19\xFD\xFF\xB3?\x03\xEC\x90O\xFDx \xE2)\xC6\x1A\xB2\x87\xDE\xAF \x11\xFBx\x81R` \x01\x7F\x1Bs\x91\xF7\xE9\x0C*$\x08R@p\x17\xF7\xDB\x0F\\\xD8=a\xD5\xCDA\xB9\xF9\n\xD2k\xE3\x0B\xF7\xBC\x81RP\x81`\x80\x01Q`\x03\x81Q\x81\x10a\x07\xE2Wa\x07\xE2a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F#\xCD~Z'\x8F\x06\0\x92\x1A\x96<\x0BU\x95\xEF\x80t\xD7r\r'\xB2\xC1\xC2\xF6\x08g\xBE\x19\"u\x81R` \x01\x7F\x10\xAB\x8D\x8E\x94\x827\xF3s\xC0\x8A\xB9\xB7\xF7\xFF\xB1\xFD\xFA\xEC\x9E\xEFu\x01\x85\xF1\xDF\xCB\xB8<lJ\x85\x81RP\x81`\x80\x01Q`\x04\x81Q\x81\x10a\x08YWa\x08Ya\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x15MR\xE0BF_\xF3e\xB2\xEEN\xCC\xD4i\xB9\xC1>]nP\xF3\xF3\xD7\xEF\x8D\xB6\x93\x15\xE2'\x8E\x81R` \x01\x7F\x05'\xC8\x89]\xDF\x93\x7F\x12\xB2\xC4\x02<@\xCB\xA0\xE9V)O\xAD\x14\xA9\xC9\x87\xF9\x95\xB7<\xDB\x9F\x0E\x81RP\x81`\x80\x01Q`\x05\x81Q\x81\x10a\x08\xD0Wa\x08\xD0a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F#k\xD2\x1D\xEA\xDE\xF3Z\xA2\x1C\xC1\x14B\xAA\xD4\xB1^y\x93\xDB\x974\xA7\x88b\x17?\x19`\x99\x7F\x02\x81R` \x01\x7F }e.\xDB\x89\x89\xC5T\xA9\xA7>)\xEF\x17(\x13GD\x18\x1E\xA0qO\xF4:\x1B\x80\xFD~S\xB1\x81RP\x81`\x80\x01Q`\x06\x81Q\x81\x10a\tGWa\tGa\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x19m\xCF\xA3\x9A\x9E\"\x0E@\xD2\xFD?\xDD\xE7\x99B:\xC4\xE7\xD8\x08\xEB\x1D5\x95\xFA\x8FI\\/\xE7Q\x81R` \x01\x7F%S\xF9\xEF\x7FR{_=\xBA\x15T\x16?vlI\xF0\xC8\x9Amp[\x0F\x81f7\x8A#@=\xDD\x81RP\x81`\x80\x01Q`\x07\x81Q\x81\x10a\t\xBEWa\t\xBEa\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F\x1Ft)\xB1\0\x88\x0E4Q\xF1\xD4i\x0Fm\x18HR\x95\xCDd(\xB8\x89\xE3\xFA7g\x90\x1B\xAE[\xEF\x81R` \x01\x7F\t\xA8\xC2\xEAp\tY\x02\xEFh\xA0\xD3\xC7\xBF\x1BSv\x8D~\x85\xFD\xC6\xEC\x8BZ\xDF\xEC8l\x1A\xAF\xF8\x81RP\x81`\x80\x01Q`\x08\x81Q\x81\x10a\n5Wa\n5a\x146V[` \x02` \x01\x01\x81\x90RP`@Q\x80`@\x01`@R\x80\x7F/\xB8\x9C]B\x8F\xEB\x02\xDC\x1B\xAA\xBD\xDB_\xC4\xA2Ml\x069\xDFF#\xF5\xCE\x19\x0BN\xE6\xBC\xAC\xDA\x81R` \x01\x7F\x17\\\xE2n\x90~\xC1Y_\x1CI\xB5B\xF9f\x06|\xD3.[\xCB\xE2.K\x97\x1E\x89\x0B\xC6\xE8\xEB\xBD\x81RP\x81`\x80\x01Q`\t\x81Q\x81\x10a\n\xACWa\n\xACa\x146V[` \x02` \x01\x01\x81\x90RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01Ra\n\xD6a\x12\rV[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x81\x01\x83\x90R`\0``\x83`\x80\x84`\x07a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x0B\x05W\xFE[P\x80a\x0BHW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x12`$\x82\x01Rq\x1C\x18Z\\\x9A[\x99\xCB[][\x0BY\x98Z[\x19Y`r\x1B`D\x82\x01R`d\x01a\x01\xEFV[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01Ra\x0Bla\x12+V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x83\x01R\x83\x01Q``\x80\x83\x01\x91\x90\x91R`\0\x90\x83`\xC0\x84`\x06a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x0B\xA6W\xFE[P\x80a\x0BHW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x12`$\x82\x01Rq\x1C\x18Z\\\x9A[\x99\xCBXY\x19\x0BY\x98Z[\x19Y`r\x1B`D\x82\x01R`d\x01a\x01\xEFV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81Q\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x90\x15\x80\x15a\x0C0WP` \x83\x01Q\x15[\x15a\x0CPWPP`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x91\x90PV[`@Q\x80`@\x01`@R\x80\x84`\0\x01Q\x81R` \x01\x82\x85` \x01Qa\x0Cu\x91\x90a\x14\x8EV[a\x0C\x7F\x90\x84a\x14\xB0V[\x90R\x93\x92PPPV[`@\x80Q`\x04\x80\x82R`\xA0\x82\x01\x90\x92R`\0\x91\x82\x91\x90\x81` \x01[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x0C\xA3WPP`@\x80Q`\x04\x80\x82R`\xA0\x82\x01\x90\x92R\x91\x92P`\0\x91\x90` \x82\x01[a\x0C\xEDa\x12IV[\x81R` \x01\x90`\x01\x90\x03\x90\x81a\x0C\xE5W\x90PP\x90P\x8A\x82`\0\x81Q\x81\x10a\r\x16Wa\r\x16a\x146V[` \x02` \x01\x01\x81\x90RP\x88\x82`\x01\x81Q\x81\x10a\r5Wa\r5a\x146V[` \x02` \x01\x01\x81\x90RP\x86\x82`\x02\x81Q\x81\x10a\rTWa\rTa\x146V[` \x02` \x01\x01\x81\x90RP\x84\x82`\x03\x81Q\x81\x10a\rsWa\rsa\x146V[` \x02` \x01\x01\x81\x90RP\x89\x81`\0\x81Q\x81\x10a\r\x92Wa\r\x92a\x146V[` \x02` \x01\x01\x81\x90RP\x87\x81`\x01\x81Q\x81\x10a\r\xB1Wa\r\xB1a\x146V[` \x02` \x01\x01\x81\x90RP\x85\x81`\x02\x81Q\x81\x10a\r\xD0Wa\r\xD0a\x146V[` \x02` \x01\x01\x81\x90RP\x83\x81`\x03\x81Q\x81\x10a\r\xEFWa\r\xEFa\x146V[` \x02` \x01\x01\x81\x90RPa\x0E\x04\x82\x82a\x0E\x13V[\x9B\x9APPPPPPPPPPPV[`\0\x81Q\x83Q\x14a\x0E_W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x16`$\x82\x01Ru\x1C\x18Z\\\x9A[\x99\xCB[\x19[\x99\xDD\x1A\x1C\xCBY\x98Z[\x19Y`R\x1B`D\x82\x01R`d\x01a\x01\xEFV[\x82Q`\0a\x0En\x82`\x06a\x14\xC3V[\x90P`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x0E\x8BWa\x0E\x8Ba\x12\xA5V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x0E\xB4W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x83\x81\x10\x15a\x10\xEFW\x86\x81\x81Q\x81\x10a\x0E\xD4Wa\x0E\xD4a\x146V[` \x02` \x01\x01Q`\0\x01Q\x82\x82`\x06a\x0E\xEE\x91\x90a\x14\xC3V[a\x0E\xF9\x90`\0a\x14{V[\x81Q\x81\x10a\x0F\tWa\x0F\ta\x146V[` \x02` \x01\x01\x81\x81RPP\x86\x81\x81Q\x81\x10a\x0F'Wa\x0F'a\x146V[` \x02` \x01\x01Q` \x01Q\x82\x82`\x06a\x0FA\x91\x90a\x14\xC3V[a\x0FL\x90`\x01a\x14{V[\x81Q\x81\x10a\x0F\\Wa\x0F\\a\x146V[` \x02` \x01\x01\x81\x81RPP\x85\x81\x81Q\x81\x10a\x0FzWa\x0Fza\x146V[` \x90\x81\x02\x91\x90\x91\x01\x01QQQ\x82a\x0F\x93\x83`\x06a\x14\xC3V[a\x0F\x9E\x90`\x02a\x14{V[\x81Q\x81\x10a\x0F\xAEWa\x0F\xAEa\x146V[` \x02` \x01\x01\x81\x81RPP\x85\x81\x81Q\x81\x10a\x0F\xCCWa\x0F\xCCa\x146V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01QQ\x01Q\x82a\x0F\xE7\x83`\x06a\x14\xC3V[a\x0F\xF2\x90`\x03a\x14{V[\x81Q\x81\x10a\x10\x02Wa\x10\x02a\x146V[` \x02` \x01\x01\x81\x81RPP\x85\x81\x81Q\x81\x10a\x10 Wa\x10 a\x146V[` \x02` \x01\x01Q` \x01Q`\0`\x02\x81\x10a\x10>Wa\x10>a\x146V[` \x02\x01Q\x82a\x10O\x83`\x06a\x14\xC3V[a\x10Z\x90`\x04a\x14{V[\x81Q\x81\x10a\x10jWa\x10ja\x146V[` \x02` \x01\x01\x81\x81RPP\x85\x81\x81Q\x81\x10a\x10\x88Wa\x10\x88a\x146V[` \x02` \x01\x01Q` \x01Q`\x01`\x02\x81\x10a\x10\xA6Wa\x10\xA6a\x146V[` \x02\x01Q\x82a\x10\xB7\x83`\x06a\x14\xC3V[a\x10\xC2\x90`\x05a\x14{V[\x81Q\x81\x10a\x10\xD2Wa\x10\xD2a\x146V[` \x90\x81\x02\x91\x90\x91\x01\x01R\x80a\x10\xE7\x81a\x14bV[\x91PPa\x0E\xBAV[Pa\x10\xF8a\x12iV[`\0` \x82` \x86\x02` \x86\x01`\x08a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x11\x17W\xFE[P\x80a\x11]W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01Rt\x1C\x18Z\\\x9A[\x99\xCB[\xDC\x18\xDB\xD9\x19KY\x98Z[\x19Y`Z\x1B`D\x82\x01R`d\x01a\x01\xEFV[PQ\x15\x15\x96\x95PPPPPPV[`@\x80Q`\xA0\x81\x01\x90\x91R`\0``\x82\x01\x81\x81R`\x80\x83\x01\x91\x90\x91R\x81R` \x81\x01a\x11\x95a\x12IV[\x81R` \x01a\x11\xB7`@Q\x80`@\x01`@R\x80`\0\x81R` \x01`\0\x81RP\x90V[\x90R\x90V[`@\x80Q`\xE0\x81\x01\x90\x91R`\0`\xA0\x82\x01\x81\x81R`\xC0\x83\x01\x91\x90\x91R\x81R` \x81\x01a\x11\xE6a\x12IV[\x81R` \x01a\x11\xF3a\x12IV[\x81R` \x01a\x12\0a\x12IV[\x81R` \x01``\x81RP\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`@\x01`@R\x80a\x12\\a\x12\x87V[\x81R` \x01a\x11\xB7a\x12\x87V[`@Q\x80` \x01`@R\x80`\x01\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`@\x01`@R\x80`\x02\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x12\xDEWa\x12\xDEa\x12\xA5V[`@R\x90V[`@Qa\x01 \x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x12\xDEWa\x12\xDEa\x12\xA5V[`\0\x82`\x1F\x83\x01\x12a\x13\x19W`\0\x80\xFD[a\x13!a\x12\xBBV[\x80`@\x84\x01\x85\x81\x11\x15a\x133W`\0\x80\xFD[\x84[\x81\x81\x10\x15a\x13MW\x805\x84R` \x93\x84\x01\x93\x01a\x135V[P\x90\x95\x94PPPPPV[`\0\x80`\0\x80a\x02 \x80\x86\x88\x03\x12\x15a\x13pW`\0\x80\xFD[a\x13z\x87\x87a\x13\x08V[\x94P`@\x87`_\x88\x01\x12a\x13\x8DW`\0\x80\xFD[a\x13\x95a\x12\xBBV[\x80`\xC0\x89\x01\x8A\x81\x11\x15a\x13\xA7W`\0\x80\xFD[\x83\x8A\x01[\x81\x81\x10\x15a\x13\xCCWa\x13\xBD\x8C\x82a\x13\x08V[\x84R` \x90\x93\x01\x92\x84\x01a\x13\xABV[P\x81\x97Pa\x13\xDA\x8B\x82a\x13\x08V[\x96PPPPP\x86a\x01\x1F\x87\x01\x12a\x13\xF0W`\0\x80\xFD[a\x13\xF8a\x12\xE4V[\x90\x86\x01\x90\x80\x88\x83\x11\x15a\x14\nW`\0\x80\xFD[a\x01\0\x88\x01[\x83\x81\x10\x15a\x14(W\x805\x83R` \x92\x83\x01\x92\x01a\x14\x10V[P\x95\x98\x94\x97P\x92\x95PPPPV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a\x14tWa\x14ta\x14LV[P`\x01\x01\x90V[\x80\x82\x01\x80\x82\x11\x15a\x03`Wa\x03`a\x14LV[`\0\x82a\x14\xABWcNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[P\x06\x90V[\x81\x81\x03\x81\x81\x11\x15a\x03`Wa\x03`a\x14LV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x03`Wa\x03`a\x14LV\xFE\xA2dipfsX\"\x12 \xCD\xF4M\x83\xD7?\xD9\xF7C\xA2!\xCDN\xC0A\xD1Q9\xE9h\xD3\xFC{\xE9\x9B=\x1A\x01g$\x05\x8FdsolcC\0\x08\x12\x003";
    /// The deployed bytecode of the contract.
    pub static VERIFIER2X2CONTRACT_DEPLOYED_BYTECODE:
        ::ethers::core::types::Bytes =
        ::ethers::core::types::Bytes::from_static(__DEPLOYED_BYTECODE);
    pub struct Verifier2x2Contract<M>(::ethers::contract::Contract<M>);
    impl<M> ::core::clone::Clone for Verifier2x2Contract<M> {
        fn clone(&self) -> Self {
            Self(::core::clone::Clone::clone(&self.0))
        }
    }
    impl<M> ::core::ops::Deref for Verifier2x2Contract<M> {
        type Target = ::ethers::contract::Contract<M>;
        fn deref(&self) -> &Self::Target {
            &self.0
        }
    }
    impl<M> ::core::ops::DerefMut for Verifier2x2Contract<M> {
        fn deref_mut(&mut self) -> &mut Self::Target {
            &mut self.0
        }
    }
    impl<M> ::core::fmt::Debug for Verifier2x2Contract<M> {
        fn fmt(
            &self,
            f: &mut ::core::fmt::Formatter<'_>,
        ) -> ::core::fmt::Result {
            f.debug_tuple(::core::stringify!(Verifier2x2Contract))
                .field(&self.address())
                .finish()
        }
    }
    impl<M: ::ethers::providers::Middleware> Verifier2x2Contract<M> {
        /// Creates a new contract instance with the specified `ethers` client at
        /// `address`. The contract derefs to a `ethers::Contract` object.
        pub fn new<T: Into<::ethers::core::types::Address>>(
            address: T,
            client: ::std::sync::Arc<M>,
        ) -> Self {
            Self(::ethers::contract::Contract::new(
                address.into(),
                VERIFIER2X2CONTRACT_ABI.clone(),
                client,
            ))
        }
        /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it.
        /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction
        ///
        /// Notes:
        /// - If there are no constructor arguments, you should pass `()` as the argument.
        /// - The default poll duration is 7 seconds.
        /// - The default number of confirmations is 1 block.
        ///
        ///
        /// # Example
        ///
        /// Generate contract bindings with `abigen!` and deploy a new contract instance.
        ///
        /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact.
        ///
        /// ```ignore
        /// # async fn deploy<M: ethers::providers::Middleware>(client: ::std::sync::Arc<M>) {
        ///     abigen!(Greeter, "../greeter.json");
        ///
        ///    let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap();
        ///    let msg = greeter_contract.greet().call().await.unwrap();
        /// # }
        /// ```
        pub fn deploy<T: ::ethers::core::abi::Tokenize>(
            client: ::std::sync::Arc<M>,
            constructor_args: T,
        ) -> ::core::result::Result<
            ::ethers::contract::builders::ContractDeployer<M, Self>,
            ::ethers::contract::ContractError<M>,
        > {
            let factory = ::ethers::contract::ContractFactory::new(
                VERIFIER2X2CONTRACT_ABI.clone(),
                VERIFIER2X2CONTRACT_BYTECODE.clone().into(),
                client,
            );
            let deployer = factory.deploy(constructor_args)?;
            let deployer = ::ethers::contract::ContractDeployer::new(deployer);
            Ok(deployer)
        }
        ///Calls the contract's `verifyProof` (0xc542c93b) function
        pub fn verify_proof(
            &self,
            a: [::ethers::core::types::U256; 2],
            b: [[::ethers::core::types::U256; 2]; 2],
            c: [::ethers::core::types::U256; 2],
            input: [::ethers::core::types::U256; 9],
        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
            self.0
                .method_hash([197, 66, 201, 59], (a, b, c, input))
                .expect("method not found (this should never happen)")
        }
    }
    impl<M: ::ethers::providers::Middleware>
        From<::ethers::contract::Contract<M>> for Verifier2x2Contract<M>
    {
        fn from(contract: ::ethers::contract::Contract<M>) -> Self {
            Self::new(contract.address(), contract.client())
        }
    }
    ///Container type for all input parameters for the `verifyProof` function with signature `verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[9])` and selector `0xc542c93b`
    #[derive(
        Clone,
        ::ethers::contract::EthCall,
        ::ethers::contract::EthDisplay,
        serde::Serialize,
        serde::Deserialize,
        Default,
        Debug,
        PartialEq,
        Eq,
        Hash,
    )]
    #[ethcall(
        name = "verifyProof",
        abi = "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[9])"
    )]
    pub struct VerifyProofCall {
        pub a: [::ethers::core::types::U256; 2],
        pub b: [[::ethers::core::types::U256; 2]; 2],
        pub c: [::ethers::core::types::U256; 2],
        pub input: [::ethers::core::types::U256; 9],
    }
    ///Container type for all return fields from the `verifyProof` function with signature `verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[9])` and selector `0xc542c93b`
    #[derive(
        Clone,
        ::ethers::contract::EthAbiType,
        ::ethers::contract::EthAbiCodec,
        serde::Serialize,
        serde::Deserialize,
        Default,
        Debug,
        PartialEq,
        Eq,
        Hash,
    )]
    pub struct VerifyProofReturn {
        pub r: bool,
    }
}