Files
zeekay 19f506b4b1 governance: node-side Proof-of-AI governance MCP (the operator-LLM sensory surface)
The missing "LLM of node operator" half of on-chain AI governance: a read-only
MCP server a node exposes so an operator-LLM can query its own chain mid-thought
before signing an AIGovernor verdict — chain_state, param_history, receipt_lookup,
quorum_status, etc. Read-only by construction (AST gate, no state-mutating verb),
bounded calls + per-call timeout, every read at a pinned block.

EthCaller is the read-only EVM seam; quorum tally mirrors AIGovernor.settle so the
LLM sees the same canonical view the chain will. cmd/aivm-gov-mcp serves it over
stdio (drop-in for hanzo-dev / Claude Desktop mcp-servers, like gym.distributed.mcp).

Verified: go test ./governance/ = ok (SDKROOT set; CGO secp256k1/gopsutil need the
macOS SDK path). Pairs with luxfi/standard ai/governance (AIGovernor/AIApproval/
AIExecute). Future: decomplect transport+evmread to module root as a Surface once a
2nd surface (mining/treasury) lands — held per YAGNI.
2026-06-24 19:08:04 -07:00

1 line
96 KiB
JSON

{"abi":[{"type":"constructor","inputs":[{"name":"governor_","type":"address","internalType":"contract IAIGovernor"},{"name":"treasury_","type":"address","internalType":"address"},{"name":"openFee_","type":"uint256","internalType":"uint256"},{"name":"proposalFee_","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"MIN_WINDOW","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"PROPOSAL_DOMAIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"committee","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"openBlock","type":"uint64","internalType":"uint64"},{"name":"population","type":"uint256","internalType":"uint256"},{"name":"seed","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getProposals","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct AIParams.Proposal[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"confidenceBucket","type":"uint16","internalType":"uint16"},{"name":"evidenceHash","type":"bytes32","internalType":"bytes32"},{"name":"submittedAt","type":"uint64","internalType":"uint64"}]}],"stateMutability":"view"},{"type":"function","name":"getRound","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct AIParams.Round","components":[{"name":"modelSpecHash","type":"bytes32","internalType":"bytes32"},{"name":"promptHash","type":"bytes32","internalType":"bytes32"},{"name":"knobKey","type":"string","internalType":"string"},{"name":"lo","type":"uint256","internalType":"uint256"},{"name":"hi","type":"uint256","internalType":"uint256"},{"name":"n","type":"uint8","internalType":"uint8"},{"name":"threshold","type":"uint8","internalType":"uint8"},{"name":"openedAt","type":"uint64","internalType":"uint64"},{"name":"deadline","type":"uint64","internalType":"uint64"},{"name":"opener","type":"address","internalType":"address"},{"name":"status","type":"uint8","internalType":"enum AIParams.Status"},{"name":"submissionCount","type":"uint8","internalType":"uint8"},{"name":"canonicalValue","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"governor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAIGovernor"}],"stateMutability":"view"},{"type":"function","name":"isSampled","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"},{"name":"who","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"open","inputs":[{"name":"modelSpecHash","type":"bytes32","internalType":"bytes32"},{"name":"promptHash","type":"bytes32","internalType":"bytes32"},{"name":"knobKey","type":"string","internalType":"string"},{"name":"lo","type":"uint256","internalType":"uint256"},{"name":"hi","type":"uint256","internalType":"uint256"},{"name":"n","type":"uint8","internalType":"uint8"},{"name":"threshold","type":"uint8","internalType":"uint8"},{"name":"window","type":"uint64","internalType":"uint64"}],"outputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"openFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalDigest","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"},{"name":"operator","type":"address","internalType":"address"},{"name":"modelSpecHash","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"confidenceBucket","type":"uint16","internalType":"uint16"},{"name":"evidenceHash","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"proposalFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"roundCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"settle","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"decided","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"submitProposal","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"confidenceBucket","type":"uint16","internalType":"uint16"},{"name":"evidenceHash","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"treasuryFees","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"valueOf","inputs":[{"name":"modelSpecHash","type":"bytes32","internalType":"bytes32"},{"name":"knobKey","type":"string","internalType":"string"}],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"decided","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"withdrawFees","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"FeesWithdrawn","inputs":[{"name":"treasury","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ParameterDecided","inputs":[{"name":"roundId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"modelSpecHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"knobKey","type":"string","indexed":false,"internalType":"string"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"proposals","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"ProposalSubmitted","inputs":[{"name":"roundId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"confidenceBucket","type":"uint16","indexed":false,"internalType":"uint16"},{"name":"evidenceHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoundFailed","inputs":[{"name":"roundId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"submissionCount","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"threshold","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"RoundOpened","inputs":[{"name":"roundId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"modelSpecHash","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"knobKey","type":"string","indexed":false,"internalType":"string"},{"name":"lo","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"hi","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"n","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"threshold","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"opener","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyProposed","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"},{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"BadCommittee","inputs":[{"name":"n","type":"uint8","internalType":"uint8"},{"name":"threshold","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"BadRange","inputs":[{"name":"lo","type":"uint256","internalType":"uint256"},{"name":"hi","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CommitteeFull","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"NotEligibleOperator","inputs":[{"name":"who","type":"address","internalType":"address"}]},{"type":"error","name":"NotRegisteredBeforeOpen","inputs":[{"name":"who","type":"address","internalType":"address"}]},{"type":"error","name":"NotSampled","inputs":[{"name":"who","type":"address","internalType":"address"}]},{"type":"error","name":"RoundNotOpen","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SeedNotReady","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignerMismatch","inputs":[{"name":"recovered","type":"address","internalType":"address"},{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"UnknownRound","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ValueOutOfRange","inputs":[{"name":"value","type":"uint256","internalType":"uint256"},{"name":"lo","type":"uint256","internalType":"uint256"},{"name":"hi","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"VotingOpen","inputs":[{"name":"roundId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"WindowTooShort","inputs":[{"name":"window","type":"uint64","internalType":"uint64"}]},{"type":"error","name":"WrongFee","inputs":[{"name":"sent","type":"uint256","internalType":"uint256"},{"name":"want","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6101003461013657601f611e9438819003918201601f19168301916001600160401b0383118484101761013a57808492608094604052833981010312610136578051906001600160a01b03821682036101365760208101516001600160a01b0381169283820361013657606060408401519301519315801590610125575b156100eb5760805260a05260c05260e052604051611d45908161014f82396080518181816101e001528181610e2601528181610f2c015261193c015260a051818181610ad00152610b39015260c05181818161016f0152610766015260e05181818161072c0152610ef00152f35b60405162461bcd60e51b815260206004820152601260248201527166656573206e65656420747265617375727960701b6044820152606490fd5b508215801561007d5750831561007d565b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806308d9a93a14610e555780630c340a2414610e11578063127f0b3f14610df45780631ef4b61014610d715780632c72fdfc14610c3e57806343b7200914610c04578063476343ee14610b1b57806352b65c4b14610aff57806361d027b314610abb5780638df8280014610a8d5780638f1327c0146108495780639a67430f1461082d578063afe7fcf4146107d3578063b14d317114610789578063b78450731461074f578063c27cabb514610715578063dc97971d146106e55763e9e429f4146100df575f80fd5b610100366003190112610625576044356001600160401b0381116106255761010b90369060040161144d565b60a4359060ff821682036106255760c43560ff811681036106255760e435906001600160401b03821680920361062557608435606435116106cb5760ff84161580156106c0575b80156106b1575b8015610694575b61067857610e108210610665577f000000000000000000000000000000000000000000000000000000000000000080340361064f578061063c575b506001545f81815260066020908152604091829020805467ffffffffffffffff1916436001600160401b03161790559051630f8de62b60e31b815291959190816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610631575f916105fb575b50855f52600760205260405f20556001600160401b0342169283016001600160401b0381116105e7576040519361024e856114f9565b60043585526001600160401b036020860192602435845261027036898c611551565b92604088019384526064356060890152608435608089015260ff861660a089015260ff871660c089015260e0880152166101008601523361012086015260016101408601525f6101608601525f610180860152600154600160401b8110156105c0578060016102e292016001556114ae565b9290926105d4578551835551600183015551938451946001600160401b0386116105c05761031360028401546115f5565b601f8111610578575b509160209893918895938a90601f89116001146104dc5761018060ff9695938a7f5443a6ccc751cd1f8be290fb431ff211353abc669d38be5c2538c33dcf7c76a59a9b8997956007955f926104d1575b50508160011b915f199060031b1c19161760028501555b6060810151600385015560808101516004850155600584018660a083015116815461ff0060c085015160081b1669ffffffffffffffff000060e086015160101b16916001600160401b0360501b61010087015160501b16936001600160401b0360501b199169ffffffffffffffffffff1916171617171790556104736006850160018060a01b0360018060a01b0361012085015116166001600160601b0360a01b8254161781556101408301516104398161147a565b6104428161147a565b815461016085015160ff60a81b908b1660a81b16918a1660a090811b908b901b199091161760ff60a81b1916179055565b0151910155876040519560c087528160c088015260e08701375f60e089870101526064358a86015260843560408601521660608401521660808201523360a082015260e08160043595601f80199101168101030190a3604051908152f35b015190505f8061036c565b9790600284015f52805f20985f5b601f198416811061055e575060ff9695936001847f5443a6ccc751cd1f8be290fb431ff211353abc669d38be5c2538c33dcf7c76a59b9c600795610180958c9a98601f19811610610546575b505050811b016002850155610383565b01515f1960f88460031b161c191690555f8080610536565b828201518b556001909a01998c9950918d01918d016104ea565b600284015f5260205f20601f880160051c810191602089106105b6575b601f0160051c01905b8181106105ab575061031c565b5f815560010161059e565b9091508190610595565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d602011610629575b8161061660209383611515565b8101031261062557515f610218565b5f80fd5b3d9150610609565b6040513d5f823e3d90fd5b610647905f546115a6565b5f555f61019b565b6323b18f5f60e01b5f523460045260245260445ffd5b506316a335ed60e31b5f5260045260245ffd5b60ff908185632d345d0f60e11b5f52166004521660245260445ffd5b5060ff6106a6607f8660011c166115cc565b1660ff821610610160565b5060ff841660ff821611610159565b5060ff811615610152565b623224ab60ea1b5f5260643560045260843560245260445ffd5b3461062557604036600319011261062557602061070b610703611498565b6004356118ff565b6040519015158152f35b34610625575f3660031901126106255760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610625575f3660031901126106255760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346106255760c0366003190112610625576107a2611498565b60843561ffff81168103610625576020916107cb9160a435916064359060443590600435611872565b604051908152f35b34610625576020366003190112610625576060600435805f5260066020526001600160401b0360405f20541690805f52600760205260405f2054905f52600860205260405f20549060405192835260208301526040820152f35b34610625575f3660031901126106255760205f54604051908152f35b34610625576020366003190112610625576004355f61018060405161086d816114f9565b828152826020820152606060408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201520152600154811015610a7b576108cc906114ae565b506040516108d9816114f9565b815481526001820154906020810191825260405192838060028301906108fe9161162d565b036109099085611515565b60408201938452600381015490606083019182526004810154906080840191825260058101549160a085019260ff8116845260c086018160081c60ff16815260e08701908260101c6001600160401b0316825261010088019260501c6001600160401b03168352600685015495610120890194600160a01b60019003881686528760a01c60ff16966101408b01976109a08161147a565b88526101608b019860a81c60ff16895260070154986101808b01998a526040519c8d9c8d809d602082525190602001525160408d01525160608c016101a0905280519b8c91826101c0830152602001906101e0015e5f6101e08d8d0101525160808c01525160a08b01525160ff90811660c08b015290511660e0890152516001600160401b03908116610100890152905116610120870152516001600160a01b031661014086015251610a528161147a565b6101608501525160ff16610180840152516101a0830152601f1990601f01168101036101e00190f35b63095ea0c760e31b5f5260045260245ffd5b3461062557602036600319011261062557610aa96004356116ae565b60408051928352901515602083015290f35b34610625575f366003190112610625576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610625575f366003190112610625576020604051610e108152f35b34610625575f366003190112610625575f545f805580610b3757005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905f80808084865af13d15610bff573d610b7a81611536565b90610b886040519283611515565b81525f60203d92013e5b15610bc45760207fc0819c13be868895eb93e40eaceb96de976442fa1d404e5c55f14bb65a8c489a91604051908152a2005b60405162461bcd60e51b8152602060048201526013602482015272199959481d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b610b92565b34610625575f3660031901126106255760206040517f0b098803bc9204786289eff66013ed9a6552c6f233881844f3b7d1fafecb2dd28152f35b34610625576020366003190112610625576004355f52600260205260405f20805490610c69826115de565b91610c776040519384611515565b8083526020830180925f5260205f205f915b838310610d12578486604051918291602083019060208452518091526040830191905f5b818110610cbb575050500390f35b91935091602060a06001926001600160401b03608088518680861b038151168452858101518685015261ffff6040820151166040850152606081015160608501520151166080820152019401910191849392610cad565b60056020600192604051610d25816114de565b848060a01b038654168152848601548382015261ffff6002870154166040820152600386015460608201526001600160401b036004870154166080820152815201920192019190610c89565b34610625576040366003190112610625576004356024356001600160401b03811161062557610da7610dae91369060040161144d565b3691611551565b80516020918201205f8381526004835260408082208383528452808220549482526005845280822092825291835281902054815193845260ff1615159183019190915290f35b34610625575f366003190112610625576020600154604051908152f35b34610625575f366003190112610625576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60a03660031901126106255760243560043560443561ffff811680820361062557606435916084356001600160401b03811161062557610e9990369060040161144d565b9190610ea4866114ae565b506006810193845492600160ff8560a01c16610ebf8161147a565b0361143a57600583019384546001600160401b038160501c1642116114275760ff8091169160a81c161015611414577f0000000000000000000000000000000000000000000000000000000000000000948534036113fd576040516336b87bd760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169490602081602481895afa908115610631575f916113c2575b5080611303575b156112f0575f8b815260036020908152604080832033845290915290205460ff166112d9578060038d92015480831080156112cc575b6112ae575092610fcb8b610fe29694610fd3948f610fd99854903390611872565b923691611551565b90611bd7565b90929192611c11565b6001600160a01b03163381036112985750865f526006602052602460206001600160401b0360405f205416926040519283809263b0b7619560e01b82523360048301525afa8015610631576001600160401b03915f91611269575b501681811591821561125f575b505061124c57865f52600860205260405f205490811561120e575b5061108491875f52600760205260ff60405f20549154169133906119f5565b156111fb57806111e8575b505f8481526003602090815260408083203384528252808320805460ff19166001179055868352600290915290819020905191906110cc836114de565b338352602083018781526040840190858252606085019487865260808101936001600160401b03421685528054600160401b8110156105c057611114916001820181556115b3565b9490946105d4576111b0966001600160401b0394600494869460018060a01b039060018060a01b03905116166001600160601b0360a01b89541617885551600188015561ffff6002880191511661ffff198254161790555160038601555116920191166001600160401b031982541617905561119660ff825460a81c166115cc565b815460ff60a81b191660a89190911b60ff60a81b16179055565b604051938452602084015260408301527f8b07da000cf483d253957ac428b5a4ecdd5da497abc0b3c073fb258ccbadc9c560603393a3005b6111f3905f546115a6565b5f558561108f565b6317ddcee960e31b5f523360045260245ffd5b8091504311156112395740908115611239579061108491875f5260086020528160405f205591611065565b8663018ad22360e01b5f5260045260245ffd5b6323195ef560e01b5f523360045260245ffd5b119050818a61104a565b61128b915060203d602011611291575b6112838183611515565b810190611587565b8a61103d565b503d611279565b6377f0734360e11b5f526004523360245260445ffd5b90600401549163347f1e9360e21b5f5260045260245260445260645ffd5b5060048201548311610faa565b8a63ea3745c960e01b5f526004523360245260445ffd5b63df93778160e01b5f523360045260245ffd5b506040516301cb4adb60e61b8152336004820152602081602481895afa908115610631575f91611390575b5060405163831518b760e01b8152906020826004818a5afa918215610631575f9261135c575b501015610f74565b9091506020813d602011611388575b8161137860209383611515565b810103126106255751908e611354565b3d915061136b565b90506020813d6020116113ba575b816113ab60209383611515565b8101031261062557518d61132e565b3d915061139e565b90506020813d6020116113f5575b816113dd60209383611515565b8101031261062557518015158103610625578d610f6d565b3d91506113d0565b856323b18f5f60e01b5f523460045260245260445ffd5b8863344e699760e21b5f5260045260245ffd5b8a63549fc36b60e11b5f5260045260245ffd5b8863549fc36b60e11b5f5260045260245ffd5b9181601f84011215610625578235916001600160401b038311610625576020838186019501011161062557565b6004111561148457565b634e487b7160e01b5f52602160045260245ffd5b602435906001600160a01b038216820361062557565b6001548110156114ca5760015f5260205f209060031b01905f90565b634e487b7160e01b5f52603260045260245ffd5b60a081019081106001600160401b038211176105c057604052565b6101a081019081106001600160401b038211176105c057604052565b90601f801991011681019081106001600160401b038211176105c057604052565b6001600160401b0381116105c057601f01601f191660200190565b92919261155d82611536565b9161156b6040519384611515565b829481845281830111610625578281602093845f960137010152565b9081602091031261062557516001600160401b03811681036106255790565b919082018092116105e757565b80548210156114ca575f52600560205f20910201905f90565b60ff60019116019060ff82116105e757565b6001600160401b0381116105c05760051b60200190565b90600182811c92168015611623575b602083101461160f57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611604565b5f929181549161163c836115f5565b8083529260018116908115611691575060011461165857505050565b5f9081526020812093945091925b838310611677575060209250010190565b600181602092949394548385870101520191019190611666565b915050602093945060ff929192191683830152151560051b010190565b6116b7816114ae565b509060068201908154600160ff8260a01c166116d28161147a565b0361185f5760058401546001600160401b038160501c164211158061184d575b61183a5760ff9060081c16908160ff8260a81c16106117e65750507f31a8f2f08081ce36626ee9d72f48959efa4d49345af99442faa4e473a05f139b6117d161173a83611a9c565b60078601819055845460ff60a01b1916600160a11b1785556040519095600281019160ff91906117758161176e818761162d565b0382611515565b6020815191012081545f52600460205260405f20815f526020528860405f205581545f52600560205260405f20905f5260205260405f206001831982541617905554955460a81c1660405192839260608452606084019061162d565b9087602084015260408301520390a390600190565b60ff60a01b1916600360a01b17928390556040805160a89490941c60ff16845260208401919091529092507f1c3fa889c748b1d21acab492d589db4cf546eb791e1057051153728f4ed4611e91a25f905f90565b82631bb9257b60e01b5f5260045260245ffd5b5060ff811660ff8360a81c16106116f2565b5063549fc36b60e11b5f5260045260245ffd5b94919390926040519460208601967f0b098803bc9204786289eff66013ed9a6552c6f233881844f3b7d1fafecb2dd288524660408801523060601b60608801526074870152609486015260b485015261ffff60f01b9060f01b1660d484015260d68301526001600160601b03199060601b1660f682015260ea81526118f961010a82611515565b51902090565b805f52600860205260405f20549081156119b05760405163b0b7619560e01b81526001600160a01b038481166004830152602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa8015610631576001600160401b03915f916119d6575b501680159081156119b7575b506119b0576119ad92815f52600760205260ff60056119a360405f2054946114ae565b50015416926119f5565b90565b5050505f90565b9050815f5260066020526001600160401b0360405f205416105f611980565b6119ef915060203d602011611291576112838183611515565b5f611974565b82159291838015611a80575b611a775782851015611a6d5760405190602082019283526001600160601b03199060601b16604082015260348152611a3a605482611515565b51902091611a59575f19048281029281159184041417156105e7571090565b634e487b7160e01b5f52601260045260245ffd5b5050505050600190565b50505050505f90565b508415611a01565b80518210156114ca5760209160051b010190565b5f52600260205260405f208054611ab2816115de565b91611ac06040519384611515565b818352601f19611acf836115de565b013660208501375f5b828110611bb557505060015b818110611b3c5750600180821614611b2a5760011c905f1982018281116105e757611b2492611b16611b1d9284611a88565b5192611a88565b51906115a6565b60011c90565b90611b389160011c90611a88565b5190565b90611b478284611a88565b5193825b80151580611b97575b15611b80575f198101908082116105e757611b7a611b728388611a88565b519187611a88565b52611b4b565b94611b9060019394929686611a88565b5201611ae4565b505f1981018181116105e757611bae879187611a88565b5111611b54565b806001611bc38193856115b3565b500154611bd08287611a88565b5201611ad8565b8151919060418303611c0757611c009250602082015190606060408401519301515f1a90611c8d565b9192909190565b50505f9160029190565b611c1a8161147a565b80611c23575050565b611c2c8161147a565b60018103611c435763f645eedf60e01b5f5260045ffd5b611c4c8161147a565b60028103611c67575063fce698f760e01b5f5260045260245ffd5b600390611c738161147a565b14611c7b5750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411611d04579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610631575f516001600160a01b03811615611cfa57905f905f90565b505f906001905f90565b5050505f916003919056fea2646970667358221220e4487bab52720c09877773c637ab695bcdf9f01259bef17da9f35bc2b3bf16af64736f6c634300081f0033","sourceMap":"2104:16405:12:-:0;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;;6875:23;;;;:63;;;-1:-1:-1;2104:16405:12;;;;6971:20;7001;;7031:18;;7059:26;;2104:16405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7001:20;2104:16405;;;;;;;;;;7031:18;2104:16405;;;;;;;;;;7059:26;2104:16405;;;;;;;;;;;;;;-1:-1:-1;;;2104:16405:12;;;;;;;;;;;;-1:-1:-1;;;2104:16405:12;;;;;;;6875:63;6903:13;;;:34;;6875:63;6903:34;6920:17;;;6875:63;;2104:16405;-1:-1:-1;2104:16405:12;;;;;;-1:-1:-1;2104:16405:12;;;;;-1:-1:-1;2104:16405:12","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806308d9a93a14610e555780630c340a2414610e11578063127f0b3f14610df45780631ef4b61014610d715780632c72fdfc14610c3e57806343b7200914610c04578063476343ee14610b1b57806352b65c4b14610aff57806361d027b314610abb5780638df8280014610a8d5780638f1327c0146108495780639a67430f1461082d578063afe7fcf4146107d3578063b14d317114610789578063b78450731461074f578063c27cabb514610715578063dc97971d146106e55763e9e429f4146100df575f80fd5b610100366003190112610625576044356001600160401b0381116106255761010b90369060040161144d565b60a4359060ff821682036106255760c43560ff811681036106255760e435906001600160401b03821680920361062557608435606435116106cb5760ff84161580156106c0575b80156106b1575b8015610694575b61067857610e108210610665577f000000000000000000000000000000000000000000000000000000000000000080340361064f578061063c575b506001545f81815260066020908152604091829020805467ffffffffffffffff1916436001600160401b03161790559051630f8de62b60e31b815291959190816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610631575f916105fb575b50855f52600760205260405f20556001600160401b0342169283016001600160401b0381116105e7576040519361024e856114f9565b60043585526001600160401b036020860192602435845261027036898c611551565b92604088019384526064356060890152608435608089015260ff861660a089015260ff871660c089015260e0880152166101008601523361012086015260016101408601525f6101608601525f610180860152600154600160401b8110156105c0578060016102e292016001556114ae565b9290926105d4578551835551600183015551938451946001600160401b0386116105c05761031360028401546115f5565b601f8111610578575b509160209893918895938a90601f89116001146104dc5761018060ff9695938a7f5443a6ccc751cd1f8be290fb431ff211353abc669d38be5c2538c33dcf7c76a59a9b8997956007955f926104d1575b50508160011b915f199060031b1c19161760028501555b6060810151600385015560808101516004850155600584018660a083015116815461ff0060c085015160081b1669ffffffffffffffff000060e086015160101b16916001600160401b0360501b61010087015160501b16936001600160401b0360501b199169ffffffffffffffffffff1916171617171790556104736006850160018060a01b0360018060a01b0361012085015116166001600160601b0360a01b8254161781556101408301516104398161147a565b6104428161147a565b815461016085015160ff60a81b908b1660a81b16918a1660a090811b908b901b199091161760ff60a81b1916179055565b0151910155876040519560c087528160c088015260e08701375f60e089870101526064358a86015260843560408601521660608401521660808201523360a082015260e08160043595601f80199101168101030190a3604051908152f35b015190505f8061036c565b9790600284015f52805f20985f5b601f198416811061055e575060ff9695936001847f5443a6ccc751cd1f8be290fb431ff211353abc669d38be5c2538c33dcf7c76a59b9c600795610180958c9a98601f19811610610546575b505050811b016002850155610383565b01515f1960f88460031b161c191690555f8080610536565b828201518b556001909a01998c9950918d01918d016104ea565b600284015f5260205f20601f880160051c810191602089106105b6575b601f0160051c01905b8181106105ab575061031c565b5f815560010161059e565b9091508190610595565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d602011610629575b8161061660209383611515565b8101031261062557515f610218565b5f80fd5b3d9150610609565b6040513d5f823e3d90fd5b610647905f546115a6565b5f555f61019b565b6323b18f5f60e01b5f523460045260245260445ffd5b506316a335ed60e31b5f5260045260245ffd5b60ff908185632d345d0f60e11b5f52166004521660245260445ffd5b5060ff6106a6607f8660011c166115cc565b1660ff821610610160565b5060ff841660ff821611610159565b5060ff811615610152565b623224ab60ea1b5f5260643560045260843560245260445ffd5b3461062557604036600319011261062557602061070b610703611498565b6004356118ff565b6040519015158152f35b34610625575f3660031901126106255760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610625575f3660031901126106255760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346106255760c0366003190112610625576107a2611498565b60843561ffff81168103610625576020916107cb9160a435916064359060443590600435611872565b604051908152f35b34610625576020366003190112610625576060600435805f5260066020526001600160401b0360405f20541690805f52600760205260405f2054905f52600860205260405f20549060405192835260208301526040820152f35b34610625575f3660031901126106255760205f54604051908152f35b34610625576020366003190112610625576004355f61018060405161086d816114f9565b828152826020820152606060408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201520152600154811015610a7b576108cc906114ae565b506040516108d9816114f9565b815481526001820154906020810191825260405192838060028301906108fe9161162d565b036109099085611515565b60408201938452600381015490606083019182526004810154906080840191825260058101549160a085019260ff8116845260c086018160081c60ff16815260e08701908260101c6001600160401b0316825261010088019260501c6001600160401b03168352600685015495610120890194600160a01b60019003881686528760a01c60ff16966101408b01976109a08161147a565b88526101608b019860a81c60ff16895260070154986101808b01998a526040519c8d9c8d809d602082525190602001525160408d01525160608c016101a0905280519b8c91826101c0830152602001906101e0015e5f6101e08d8d0101525160808c01525160a08b01525160ff90811660c08b015290511660e0890152516001600160401b03908116610100890152905116610120870152516001600160a01b031661014086015251610a528161147a565b6101608501525160ff16610180840152516101a0830152601f1990601f01168101036101e00190f35b63095ea0c760e31b5f5260045260245ffd5b3461062557602036600319011261062557610aa96004356116ae565b60408051928352901515602083015290f35b34610625575f366003190112610625576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610625575f366003190112610625576020604051610e108152f35b34610625575f366003190112610625575f545f805580610b3757005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905f80808084865af13d15610bff573d610b7a81611536565b90610b886040519283611515565b81525f60203d92013e5b15610bc45760207fc0819c13be868895eb93e40eaceb96de976442fa1d404e5c55f14bb65a8c489a91604051908152a2005b60405162461bcd60e51b8152602060048201526013602482015272199959481d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b610b92565b34610625575f3660031901126106255760206040517f0b098803bc9204786289eff66013ed9a6552c6f233881844f3b7d1fafecb2dd28152f35b34610625576020366003190112610625576004355f52600260205260405f20805490610c69826115de565b91610c776040519384611515565b8083526020830180925f5260205f205f915b838310610d12578486604051918291602083019060208452518091526040830191905f5b818110610cbb575050500390f35b91935091602060a06001926001600160401b03608088518680861b038151168452858101518685015261ffff6040820151166040850152606081015160608501520151166080820152019401910191849392610cad565b60056020600192604051610d25816114de565b848060a01b038654168152848601548382015261ffff6002870154166040820152600386015460608201526001600160401b036004870154166080820152815201920192019190610c89565b34610625576040366003190112610625576004356024356001600160401b03811161062557610da7610dae91369060040161144d565b3691611551565b80516020918201205f8381526004835260408082208383528452808220549482526005845280822092825291835281902054815193845260ff1615159183019190915290f35b34610625575f366003190112610625576020600154604051908152f35b34610625575f366003190112610625576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60a03660031901126106255760243560043560443561ffff811680820361062557606435916084356001600160401b03811161062557610e9990369060040161144d565b9190610ea4866114ae565b506006810193845492600160ff8560a01c16610ebf8161147a565b0361143a57600583019384546001600160401b038160501c1642116114275760ff8091169160a81c161015611414577f0000000000000000000000000000000000000000000000000000000000000000948534036113fd576040516336b87bd760e11b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169490602081602481895afa908115610631575f916113c2575b5080611303575b156112f0575f8b815260036020908152604080832033845290915290205460ff166112d9578060038d92015480831080156112cc575b6112ae575092610fcb8b610fe29694610fd3948f610fd99854903390611872565b923691611551565b90611bd7565b90929192611c11565b6001600160a01b03163381036112985750865f526006602052602460206001600160401b0360405f205416926040519283809263b0b7619560e01b82523360048301525afa8015610631576001600160401b03915f91611269575b501681811591821561125f575b505061124c57865f52600860205260405f205490811561120e575b5061108491875f52600760205260ff60405f20549154169133906119f5565b156111fb57806111e8575b505f8481526003602090815260408083203384528252808320805460ff19166001179055868352600290915290819020905191906110cc836114de565b338352602083018781526040840190858252606085019487865260808101936001600160401b03421685528054600160401b8110156105c057611114916001820181556115b3565b9490946105d4576111b0966001600160401b0394600494869460018060a01b039060018060a01b03905116166001600160601b0360a01b89541617885551600188015561ffff6002880191511661ffff198254161790555160038601555116920191166001600160401b031982541617905561119660ff825460a81c166115cc565b815460ff60a81b191660a89190911b60ff60a81b16179055565b604051938452602084015260408301527f8b07da000cf483d253957ac428b5a4ecdd5da497abc0b3c073fb258ccbadc9c560603393a3005b6111f3905f546115a6565b5f558561108f565b6317ddcee960e31b5f523360045260245ffd5b8091504311156112395740908115611239579061108491875f5260086020528160405f205591611065565b8663018ad22360e01b5f5260045260245ffd5b6323195ef560e01b5f523360045260245ffd5b119050818a61104a565b61128b915060203d602011611291575b6112838183611515565b810190611587565b8a61103d565b503d611279565b6377f0734360e11b5f526004523360245260445ffd5b90600401549163347f1e9360e21b5f5260045260245260445260645ffd5b5060048201548311610faa565b8a63ea3745c960e01b5f526004523360245260445ffd5b63df93778160e01b5f523360045260245ffd5b506040516301cb4adb60e61b8152336004820152602081602481895afa908115610631575f91611390575b5060405163831518b760e01b8152906020826004818a5afa918215610631575f9261135c575b501015610f74565b9091506020813d602011611388575b8161137860209383611515565b810103126106255751908e611354565b3d915061136b565b90506020813d6020116113ba575b816113ab60209383611515565b8101031261062557518d61132e565b3d915061139e565b90506020813d6020116113f5575b816113dd60209383611515565b8101031261062557518015158103610625578d610f6d565b3d91506113d0565b856323b18f5f60e01b5f523460045260245260445ffd5b8863344e699760e21b5f5260045260245ffd5b8a63549fc36b60e11b5f5260045260245ffd5b8863549fc36b60e11b5f5260045260245ffd5b9181601f84011215610625578235916001600160401b038311610625576020838186019501011161062557565b6004111561148457565b634e487b7160e01b5f52602160045260245ffd5b602435906001600160a01b038216820361062557565b6001548110156114ca5760015f5260205f209060031b01905f90565b634e487b7160e01b5f52603260045260245ffd5b60a081019081106001600160401b038211176105c057604052565b6101a081019081106001600160401b038211176105c057604052565b90601f801991011681019081106001600160401b038211176105c057604052565b6001600160401b0381116105c057601f01601f191660200190565b92919261155d82611536565b9161156b6040519384611515565b829481845281830111610625578281602093845f960137010152565b9081602091031261062557516001600160401b03811681036106255790565b919082018092116105e757565b80548210156114ca575f52600560205f20910201905f90565b60ff60019116019060ff82116105e757565b6001600160401b0381116105c05760051b60200190565b90600182811c92168015611623575b602083101461160f57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611604565b5f929181549161163c836115f5565b8083529260018116908115611691575060011461165857505050565b5f9081526020812093945091925b838310611677575060209250010190565b600181602092949394548385870101520191019190611666565b915050602093945060ff929192191683830152151560051b010190565b6116b7816114ae565b509060068201908154600160ff8260a01c166116d28161147a565b0361185f5760058401546001600160401b038160501c164211158061184d575b61183a5760ff9060081c16908160ff8260a81c16106117e65750507f31a8f2f08081ce36626ee9d72f48959efa4d49345af99442faa4e473a05f139b6117d161173a83611a9c565b60078601819055845460ff60a01b1916600160a11b1785556040519095600281019160ff91906117758161176e818761162d565b0382611515565b6020815191012081545f52600460205260405f20815f526020528860405f205581545f52600560205260405f20905f5260205260405f206001831982541617905554955460a81c1660405192839260608452606084019061162d565b9087602084015260408301520390a390600190565b60ff60a01b1916600360a01b17928390556040805160a89490941c60ff16845260208401919091529092507f1c3fa889c748b1d21acab492d589db4cf546eb791e1057051153728f4ed4611e91a25f905f90565b82631bb9257b60e01b5f5260045260245ffd5b5060ff811660ff8360a81c16106116f2565b5063549fc36b60e11b5f5260045260245ffd5b94919390926040519460208601967f0b098803bc9204786289eff66013ed9a6552c6f233881844f3b7d1fafecb2dd288524660408801523060601b60608801526074870152609486015260b485015261ffff60f01b9060f01b1660d484015260d68301526001600160601b03199060601b1660f682015260ea81526118f961010a82611515565b51902090565b805f52600860205260405f20549081156119b05760405163b0b7619560e01b81526001600160a01b038481166004830152602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa8015610631576001600160401b03915f916119d6575b501680159081156119b7575b506119b0576119ad92815f52600760205260ff60056119a360405f2054946114ae565b50015416926119f5565b90565b5050505f90565b9050815f5260066020526001600160401b0360405f205416105f611980565b6119ef915060203d602011611291576112838183611515565b5f611974565b82159291838015611a80575b611a775782851015611a6d5760405190602082019283526001600160601b03199060601b16604082015260348152611a3a605482611515565b51902091611a59575f19048281029281159184041417156105e7571090565b634e487b7160e01b5f52601260045260245ffd5b5050505050600190565b50505050505f90565b508415611a01565b80518210156114ca5760209160051b010190565b5f52600260205260405f208054611ab2816115de565b91611ac06040519384611515565b818352601f19611acf836115de565b013660208501375f5b828110611bb557505060015b818110611b3c5750600180821614611b2a5760011c905f1982018281116105e757611b2492611b16611b1d9284611a88565b5192611a88565b51906115a6565b60011c90565b90611b389160011c90611a88565b5190565b90611b478284611a88565b5193825b80151580611b97575b15611b80575f198101908082116105e757611b7a611b728388611a88565b519187611a88565b52611b4b565b94611b9060019394929686611a88565b5201611ae4565b505f1981018181116105e757611bae879187611a88565b5111611b54565b806001611bc38193856115b3565b500154611bd08287611a88565b5201611ad8565b8151919060418303611c0757611c009250602082015190606060408401519301515f1a90611c8d565b9192909190565b50505f9160029190565b611c1a8161147a565b80611c23575050565b611c2c8161147a565b60018103611c435763f645eedf60e01b5f5260045ffd5b611c4c8161147a565b60028103611c67575063fce698f760e01b5f5260045260245ffd5b600390611c738161147a565b14611c7b5750565b6335e2f38360e21b5f5260045260245ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411611d04579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610631575f516001600160a01b03811615611cfa57905f905f90565b505f906001905f90565b5050505f916003919056fea2646970667358221220e4487bab52720c09877773c637ab695bcdf9f01259bef17da9f35bc2b3bf16af64736f6c634300081f0033","sourceMap":"2104:16405:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;7929:7;7925:36;;2104:16405;;;7975:6;:24;;;;2104:16405;7975:41;;;;2104:16405;7975:66;;;;2104:16405;7971:105;;2533:7;8090:19;;8086:54;;8203:7;8190:9;;:20;8186:61;;8289:12;8285:41;;2104:16405;-1:-1:-1;2104:16405:12;;;;;;8623:10;2104:16405;;;;;;;;;;;-1:-1:-1;;2104:16405:12;8652:12;-1:-1:-1;;;;;2104:16405:12;;;;;;-1:-1:-1;;;8698:24:12;;2104:16405;;;;;;;8698:8;-1:-1:-1;;;;;2104:16405:12;8698:24;;;;;;;2104:16405;8698:24;;;2104:16405;;;;;8675:11;2104:16405;;;;;;-1:-1:-1;;;;;9027:15:12;2104:16405;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2104:16405:12;8758:504;;2104:16405;;;;;;;;;;:::i;:::-;8758:504;2104:16405;8758:504;;2104:16405;;;;;;8758:504;;2104:16405;;;;8758:504;;2104:16405;;;;;8758:504;;2104:16405;;;;;8758:504;;2104:16405;;8758:504;;2104:16405;;;8758:504;;2104:16405;9129:10;8758:504;;;2104:16405;;8758:504;;;2104:16405;;8758:504;;;2104:16405;;8758:504;;;2104:16405;;;-1:-1:-1;;;2104:16405:12;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;8758:504;2104:16405;;;;;9287:78;2104:16405;;;;;8675:11;2104:16405;;;;;;;;;;;;;;;;;;;;;;;;;;;8758:504;;2104:16405;;;;;;8758:504;;2104:16405;;;;;;;;8758:504;2104:16405;8758:504;;2104:16405;;;;;;8758:504;;2104:16405;;;;;;8758:504;;2104:16405;;;;;-1:-1:-1;;;;;2104:16405:12;;;8758:504;;2104:16405;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;8623:10;2104:16405;;;;;;;;;;;;8758:504;;;2104:16405;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;8758:504;;;2104:16405;;;;:::i;:::-;;;;:::i;:::-;;;8758:504;;;2104:16405;-1:-1:-1;;;2104:16405:12;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2104:16405:12;;;;;;8758:504;2104:16405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9129:10;2104:16405;;;;;;;;;;;;;;;;;9287:78;;;;2104:16405;;;;;;;;;;-1:-1:-1;2104:16405:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;;;;;;9287:78;2104:16405;;8675:11;2104:16405;8758:504;2104:16405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2104:16405:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2104:16405:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8698:24;;;2104:16405;8698:24;;2104:16405;8698:24;;;;;;2104:16405;8698:24;;;:::i;:::-;;;2104:16405;;;;;8698:24;;;2104:16405;;;;8698:24;;;-1:-1:-1;8698:24:12;;;2104:16405;;;;;;;;;8285:41;8303:23;2104:16405;;;8303:23;:::i;:::-;2104:16405;;8285:41;;;8186:61;11542:32;;;2104:16405;8219:28;8190:9;2104:16405;;;;;;8219:28;8086:54;8118:22;;;;2104:16405;8118:22;2104:16405;;;;8118:22;7971:105;2104:16405;8050:26;;;;;;2104:16405;8050:26;2104:16405;;;;;;;;8050:26;7975:66;2104:16405;;8032:9;2104:16405;;;;;8032:9;:::i;:::-;2104:16405;;;;8020:21;7975:66;;:41;2104:16405;;;;;;;8003:13;7975:41;;:24;2104:16405;;;;7985:14;7975:24;;7925:36;7945:16;;;2104:16405;7945:16;2104:16405;;;;;;;;;;7945:16;2104:16405;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;2813:36;2104:16405;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;2717:32;2104:16405;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;;;17740:10;2104:16405;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;17761:11;2104:16405;;;;;;;;;17783:5;2104:16405;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17012:25;;;17008:59;;17084:16;;;:::i;:::-;2104:16405;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17008:59;17046:21;;;2104:16405;17046:21;2104:16405;;;;17046:21;2104:16405;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;2627:33;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;2533:7;2104:16405;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;;9571:11;9567:194;;2104:16405;9567:194;9619:8;-1:-1:-1;;;;;2104:16405:12;;;;;;9611:41;2104:16405;9611:41;;2104:16405;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;9719:31;2104:16405;;;;;;9719:31;2104:16405;;;;-1:-1:-1;;;2104:16405:12;;;;;;;;;;;;-1:-1:-1;;;2104:16405:12;;;;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;2278:50;2104:16405;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;17211:10;2104:16405;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;17211:10;2104:16405;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;16814:25;2104:16405;;;;;;;;;;;;;;;;;;;;;;;16884:9;2104:16405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;17314:7;2104:16405;;;;;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;2547:37;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;:::i;:::-;11243:16;;;;;:::i;:::-;11273:8;;;;2104:16405;;;;;;;;;;;;;:::i;:::-;11273:23;11269:57;;11358:10;;;2104:16405;;;-1:-1:-1;;;;;2104:16405:12;;;;11340:15;:28;11336:62;;2104:16405;;;;;;;;11412:24;;11408:59;;11522:11;11509:9;;;:24;11505:69;;2104:16405;;-1:-1:-1;;;18430:24:12;;11633:10;2104:16405;18430:24;;2104:16405;18430:8;-1:-1:-1;;;;;2104:16405:12;;;;;;;;18430:24;;;;;;;2104:16405;18430:24;;;2104:16405;18430:70;;;;2104:16405;11622:22;11618:66;;2104:16405;;;;11698:9;2104:16405;;;;;;;;11633:10;2104:16405;;;;;;;;;;11694:79;;11795:4;11698:9;11795:4;;;2104:16405;11787:12;;;:28;;;;2104:16405;11783:75;;2104:16405;;12057:91;2104:16405;5489:8:59;2104:16405:12;;;;;5433:27:59;2104:16405:12;;11633:10;;12057:91;;:::i;:::-;2104:16405;;;;:::i;:::-;5433:27:59;;:::i;:::-;5489:8;;;;;:::i;:::-;-1:-1:-1;;;;;2104:16405:12;11633:10;12217:23;;12213:73;;2104:16405;;;;11273:8;2104:16405;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;12774:34;;11633:10;2104:16405;12774:34;;2104:16405;12774:34;;;;;;-1:-1:-1;;;;;12774:34:12;2104:16405;12774:34;;;2104:16405;;;12822:10;;;:24;;;;;2104:16405;12818:72;;;;2104:16405;;;12915:5;2104:16405;;;;;;12943:18;;;12939:435;;2104:16405;;13388:65;2104:16405;;;;13427:11;2104:16405;;;;;;;;;;11633:10;;13388:65;;:::i;:::-;13387:66;13383:101;;13499:16;13495:49;;2104:16405;-1:-1:-1;2104:16405:12;;;;11698:9;2104:16405;;;;;;;;11633:10;2104:16405;;;;;;;;;-1:-1:-1;;2104:16405:12;;;;;;;;13601:10;2104:16405;;;;;;;;;;;;;;:::i;:::-;11633:10;2104:16405;;;13639:148;;2104:16405;;;;13639:148;;2104:16405;;;;;13639:148;;2104:16405;;;;;13639:148;;11340:15;-1:-1:-1;;;;;11340:15:12;2104:16405;;;;;-1:-1:-1;;;2104:16405:12;;;;;;;;;;;;;:::i;:::-;;;;;;13807:22;2104:16405;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;13601:10;2104:16405;;;;;;;;;;;;;;11698:9;2104:16405;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;13807:22;2104:16405;;;;;;13807:22;:::i;:::-;2104:16405;;-1:-1:-1;;;;2104:16405:12;;;;;;-1:-1:-1;;;2104:16405:12;;;;;13807:22;2104:16405;;;;;;;;;;;;;13844:77;2104:16405;11633:10;13844:77;;2104:16405;13495:49;13517:27;2104:16405;;;13517:27;:::i;:::-;2104:16405;;13495:49;;;13383:101;13462:22;;;2104:16405;13462:22;11633:10;2104:16405;;;;13462:22;12939:435;13148:12;;;;:18;;13144:52;;13217:13;13248:18;;;13244:52;;2104:16405;13388:65;2104:16405;;;;12915:5;2104:16405;;;;;;;12939:435;;;13244:52;13175:21;;;;2104:16405;13275:21;2104:16405;;;;13275:21;12818:72;12855:35;;;2104:16405;12855:35;11633:10;2104:16405;;;;12855:35;12822:24;12836:10;;-1:-1:-1;12822:24:12;;;;12774:34;;;;2104:16405;12774:34;2104:16405;12774:34;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;12213:73;12249:37;;;2104:16405;12249:37;2104:16405;;11633:10;2104:16405;;;;12249:37;11783:75;11853:4;2104:16405;11853:4;2104:16405;11824:34;;;;2104:16405;11824:34;2104:16405;;;;;;;;11824:34;11787:28;11811:4;2104:16405;11811:4;;2104:16405;11803:12;;11787:28;;11694:79;11737:36;;;;2104:16405;11737:36;2104:16405;;11633:10;2104:16405;;;;11737:36;11618:66;11653:31;;;2104:16405;11653:31;11633:10;2104:16405;;;;11653:31;18430:70;-1:-1:-1;2104:16405:12;;-1:-1:-1;;;18458:20:12;;11633:10;2104:16405;18458:20;;2104:16405;;;;;18458:20;;;;;;;;2104:16405;18458:20;;;18430:70;-1:-1:-1;2104:16405:12;;-1:-1:-1;;;18482:18:12;;2104:16405;;;;;18482:18;;;;;;;;2104:16405;18482:18;;;18430:70;18458:42;;;18430:70;;18482:18;;;;2104:16405;18482:18;;2104:16405;18482:18;;;;;;2104:16405;18482:18;;;:::i;:::-;;;2104:16405;;;;;18482:18;;;;;;;-1:-1:-1;18482:18:12;;18458:20;;;2104:16405;18458:20;;2104:16405;18458:20;;;;;;2104:16405;18458:20;;;:::i;:::-;;;2104:16405;;;;;18458:20;;;;;;-1:-1:-1;18458:20:12;;18430:24;;;2104:16405;18430:24;;2104:16405;18430:24;;;;;;2104:16405;18430:24;;;:::i;:::-;;;2104:16405;;;;;;;;;;;;18430:24;;;;;;-1:-1:-1;18430:24:12;;11505:69;11542:32;;;;2104:16405;11542:32;11509:9;2104:16405;;;;;;11542:32;11408:59;11445:22;;;;2104:16405;11445:22;2104:16405;;;;11445:22;11336:62;11305:21;;;;2104:16405;11377:21;2104:16405;;;;11377:21;11269:57;11305:21;;;;2104:16405;11305:21;2104:16405;;;;11305:21;2104:16405;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;2104:16405:12;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;:::o;:::-;11243:7;2104:16405;;;;;;11243:7;-1:-1:-1;2104:16405:12;;-1:-1:-1;2104:16405:12;;;;;;-1:-1:-1;2104:16405:12;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;:::o;:::-;-1:-1:-1;;;;;2104:16405:12;;;;;;-1:-1:-1;;2104:16405:12;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2104:16405:12;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;2104:16405:12;;;-1:-1:-1;2104:16405:12;;;;;-1:-1:-1;2104:16405:12;:::o;:::-;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;2104:16405:12;;;;;;;;-1:-1:-1;2104:16405:12;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14489:864::-;14597:16;;;:::i;:::-;14627:8;;;;;2104:16405;;;14597:7;2104:16405;;;;;;;;:::i;:::-;14627:23;14623:57;;14713:10;;;2104:16405;-1:-1:-1;;;;;2104:16405:12;;;;14694:15;:29;;:56;;;14489:864;14690:88;;2104:16405;;;;;;;;;;;;14793:31;14789:188;;14995:16;;15237:79;2104:16405;14995:16;;;:::i;:::-;15021;;;2104:16405;;;;;-1:-1:-1;;;;2104:16405:12;-1:-1:-1;;;2104:16405:12;;;;;15021:16;;15066:14;15119:9;;;2104:16405;;15021:16;2104:16405;;;;15119:9;2104:16405;:::i;:::-;;;;:::i;:::-;;;;;;15103:27;2104:16405;;-1:-1:-1;2104:16405:12;;;;;-1:-1:-1;2104:16405:12;;-1:-1:-1;2104:16405:12;;;;;-1:-1:-1;2104:16405:12;;;;-1:-1:-1;2104:16405:12;14713:10;2104:16405;;;-1:-1:-1;2104:16405:12;;-1:-1:-1;2104:16405:12;;;;-1:-1:-1;2104:16405:12;14597:7;2104:16405;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;15237:79;;;15326:20;14597:7;14489:864;:::o;14789:188::-;-1:-1:-1;;;;2104:16405:12;-1:-1:-1;;;2104:16405:12;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14883:52:12;;;-1:-1:-1;14949:17:12;-1:-1:-1;14949:17:12;:::o;14690:88::-;14759:19;;;;-1:-1:-1;14759:19:12;2104:16405;;;-1:-1:-1;14759:19:12;14694:56;2104:16405;;;;;;;;;14727:23;14694:56;;14623:57;11305:21;;;;-1:-1:-1;14659:21:12;2104:16405;;;-1:-1:-1;14659:21:12;10226:451;;;;;;2104:16405;;10494:166;;;;2104:16405;2278:50;2104:16405;;10545:13;2104:16405;;;;10568:4;2104:16405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;10494:166;;;;;;;:::i;:::-;2104:16405;10471:199;;10226:451;:::o;17965:381::-;2104:16405;;;18068:5;2104:16405;;;;;;18096:18;;;18092:36;;2104:16405;;-1:-1:-1;;;18153:27:12;;-1:-1:-1;;;;;2104:16405:12;;;18153:27;;;2104:16405;;;;;18153:27;;2104:16405;;18153:8;2104:16405;18153:27;;;;;;-1:-1:-1;;;;;18153:27:12;2104:16405;18153:27;;;17965:381;2104:16405;;18194:10;;:41;;;;;17965:381;18190:59;;;18266:73;2104:16405;;;;18298:11;2104:16405;;;18320:18;:16;2104:16405;;;;18320:16;;:::i;:::-;:18;;2104:16405;;18266:73;;:::i;:::-;17965:381;:::o;18190:59::-;18237:12;;;2104:16405;18237:12;:::o;18194:41::-;2104:16405;;;;;18216:10;2104:16405;;-1:-1:-1;;;;;2104:16405:12;;;;;-1:-1:-1;18194:41:12;;;18153:27;;;;2104:16405;18153:27;2104:16405;18153:27;;;;;;;:::i;:::-;;;;1972:790:23;2129:15;;;1972:790;2129:15;:28;;;;1972:790;2125:46;;2185:18;;;;2181:35;;2104:16405:12;;2298:32:23;;;;2104:16405:12;;;-1:-1:-1;;;;;2104:16405:12;;;;;;;;;2298:32:23;;;;;;;:::i;:::-;2104:16405:12;2288:43:23;;2104:16405:12;;;-1:-1:-1;;2104:16405:12;;;;;;;;;;;;;;;2737:18:23;1972:790;:::o;2104:16405:12:-;;;;;;;;;;;;2181:35:23;2205:11;;;;;2212:4;2205:11;:::o;2125:46::-;2159:12;;;;;2104:16405:12;2159:12:23;:::o;2129:28::-;2148:9;;;2129:28;;2104:16405:12;;;;;;;;;;;;;;;:::o;15594:747::-;2104:16405;;15693:10;2104:16405;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2104:16405:12;;;:::i;:::-;;;;;;;;15820:5;;;;;;15865:13;;2104:16405;15880:5;;;;;;2104:16405;;;;;16163:10;16159:31;;2104:16405;;;-1:-1:-1;;2104:16405:12;;;;;;;16306:23;:12;;16321:8;16306:12;;;:::i;:::-;2104:16405;16321:8;;:::i;:::-;2104:16405;16306:23;;:::i;:::-;2104:16405;;15594:747;:::o;16159:31::-;2104:16405;16182:8;2104:16405;;;16182:8;;:::i;:::-;2104:16405;16175:15;:::o;15887:3::-;15920:4;;;;;:::i;:::-;2104:16405;15938:13;;15965:151;15972:5;;;:23;;;15965:151;15972:23;;;-1:-1:-1;;2104:16405:12;;;;;;;;16015:15;16022:8;;;;:::i;:::-;2104:16405;16015:15;;;:::i;:::-;2104:16405;15965:151;;15972:23;;16129:10;2104:16405;15972:23;;;;16129:10;;:::i;:::-;2104:16405;;15865:13;;15972:23;-1:-1:-1;;;2104:16405:12;;;;;;;15981:8;;;;;:::i;:::-;2104:16405;15981:14;15972:23;;15827:3;15839:5;2104:16405;15839:5;;;;;:::i;:::-;:11;;2104:16405;15832:18;;;;:::i;:::-;2104:16405;;15805:13;;2419:778:59;2104:16405:12;;;2419:778:59;2609:2;2589:22;;2609:2;;3041:25;2825:196;;;;;;;;;;;;;;;-1:-1:-1;2825:196:59;3041:25;;:::i;:::-;3034:32;;;;;:::o;2585:606::-;3097:83;;3113:1;3097:83;3117:35;3097:83;;:::o;11617:532::-;2104:16405:12;;;:::i;:::-;11703:29:59;;;11748:7;;:::o;11699:444::-;2104:16405:12;;;:::i;:::-;;11799:38:59;;2104:16405:12;;11860:23:59;;;11712:20;11860:23;2104:16405:12;11712:20:59;11860:23;11795:348;2104:16405:12;;;:::i;:::-;11913:35:59;11904:44;;11913:35;;11971:46;;;;11712:20;11971:46;2104:16405:12;;;11712:20:59;11971:46;11900:243;12047:30;2104:16405:12;;;;:::i;:::-;12038:39:59;12034:109;;11900:243;11617:532::o;12034:109::-;12100:32;;;11712:20;12100:32;2104:16405:12;;;11712:20:59;12100:32;7129:1551;;;8209:66;8196:79;;8192:164;;2104:16405:12;;;;;;-1:-1:-1;2104:16405:12;;;;;;;;;;;;;;;;;;;8467:24:59;;;;;;;;;-1:-1:-1;8467:24:59;-1:-1:-1;;;;;2104:16405:12;;8505:20:59;8501:113;;8624:49;-1:-1:-1;8624:49:59;-1:-1:-1;7129:1551:59;:::o;8501:113::-;8541:62;-1:-1:-1;8541:62:59;8467:24;8541:62;-1:-1:-1;8541:62:59;:::o;8192:164::-;8291:54;;;8307:1;8291:54;8311:30;8291:54;;:::o","linkReferences":{},"immutableReferences":{"6798":[{"start":480,"length":32},{"start":3622,"length":32},{"start":3884,"length":32},{"start":6460,"length":32}],"6800":[{"start":2768,"length":32},{"start":2873,"length":32}],"6802":[{"start":367,"length":32},{"start":1894,"length":32}],"6804":[{"start":1836,"length":32},{"start":3824,"length":32}]}},"methodIdentifiers":{"MIN_WINDOW()":"52b65c4b","PROPOSAL_DOMAIN()":"43b72009","committee(uint256)":"afe7fcf4","getProposals(uint256)":"2c72fdfc","getRound(uint256)":"8f1327c0","governor()":"0c340a24","isSampled(uint256,address)":"dc97971d","open(bytes32,bytes32,string,uint256,uint256,uint8,uint8,uint64)":"e9e429f4","openFee()":"b7845073","proposalDigest(uint256,address,bytes32,uint256,uint16,bytes32)":"b14d3171","proposalFee()":"c27cabb5","roundCount()":"127f0b3f","settle(uint256)":"8df82800","submitProposal(uint256,uint256,uint16,bytes32,bytes)":"08d9a93a","treasury()":"61d027b3","treasuryFees()":"9a67430f","valueOf(bytes32,string)":"1ef4b610","withdrawFees()":"476343ee"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.31+commit.fd3a2265\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IAIGovernor\",\"name\":\"governor_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"treasury_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"openFee_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalFee_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"AlreadyProposed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"threshold\",\"type\":\"uint8\"}],\"name\":\"BadCommittee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"lo\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hi\",\"type\":\"uint256\"}],\"name\":\"BadRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"CommitteeFull\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"NotEligibleOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"NotRegisteredBeforeOpen\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"NotSampled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"RoundNotOpen\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"SeedNotReady\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recovered\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SignerMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"UnknownRound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lo\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hi\",\"type\":\"uint256\"}],\"name\":\"ValueOutOfRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"VotingOpen\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"window\",\"type\":\"uint64\"}],\"name\":\"WindowTooShort\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"sent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"want\",\"type\":\"uint256\"}],\"name\":\"WrongFee\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FeesWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelSpecHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"knobKey\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"proposals\",\"type\":\"uint8\"}],\"name\":\"ParameterDecided\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"confidenceBucket\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"evidenceHash\",\"type\":\"bytes32\"}],\"name\":\"ProposalSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"submissionCount\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"threshold\",\"type\":\"uint8\"}],\"name\":\"RoundFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"modelSpecHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"knobKey\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lo\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"hi\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"threshold\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"opener\",\"type\":\"address\"}],\"name\":\"RoundOpened\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MIN_WINDOW\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_DOMAIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"committee\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"openBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"population\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"seed\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"getProposals\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"confidenceBucket\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidenceHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"submittedAt\",\"type\":\"uint64\"}],\"internalType\":\"struct AIParams.Proposal[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"getRound\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"modelSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"promptHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"knobKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"lo\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hi\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"threshold\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"openedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"deadline\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"opener\",\"type\":\"address\"},{\"internalType\":\"enum AIParams.Status\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"submissionCount\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"canonicalValue\",\"type\":\"uint256\"}],\"internalType\":\"struct AIParams.Round\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governor\",\"outputs\":[{\"internalType\":\"contract IAIGovernor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"}],\"name\":\"isSampled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"promptHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"knobKey\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"lo\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hi\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"threshold\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"window\",\"type\":\"uint64\"}],\"name\":\"open\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"modelSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"confidenceBucket\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidenceHash\",\"type\":\"bytes32\"}],\"name\":\"proposalDigest\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"roundCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"}],\"name\":\"settle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"decided\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roundId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"confidenceBucket\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"evidenceHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"submitProposal\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasuryFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"modelSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"knobKey\",\"type\":\"string\"}],\"name\":\"valueOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"decided\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Hanzo AI Inc / Zoo Labs Foundation\",\"details\":\"Orthogonal + composable (Rich Hickey): it holds no operator set of its own --- eligibility is READ from the canonical {AIGovernor} (one bonded operator set, two decision primitives). The aggregator is the \\\\emph{median}, deliberately UNWEIGHTED: one operator, one proposal. This is the equal-vote / equal-weight regime the soundness review identifies as the safe one (a stake/reputation-weighted statistic lets a sub-threshold whale capture the outcome; the median over equal proposals is Byzantine-robust to any minority < 50%). Each proposal is a \\\\emph{signed judgment} (the paper's Mode 2): the operator signs (roundId, spec, value, confidence, evidence) and the digest binds {block.chainid} + {address(this)} from day one (EIP-712-style domain separation), so a proposal can never be replayed across chains or contract instances. The rationale behind a value lives off-chain, committed by {evidenceHash}, so the dashboard can show not just WHAT each node proposed but the hash that pins WHY.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature is invalid.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"AIParams\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"MIN_WINDOW()\":{\"notice\":\"Minimum voting window so a round cannot be opened-and-settled in a flash, locking honest sampled operators out (permissionless liveness).\"},\"PROPOSAL_DOMAIN()\":{\"notice\":\"Domain tag separating this signature purpose from all others.\"},\"committee(uint256)\":{\"notice\":\"The sortition context of a round: the block it opened in, the operator population sampled from, and the committee seed (0 until the first proposal caches blockhash(openBlock)). Lets the dashboard show how the committee was drawn.\"},\"isSampled(uint256,address)\":{\"notice\":\"Whether `who` is in the sampled committee for `roundId` (once seeded). An operator self-checks this to know if it should propose.\"},\"open(bytes32,bytes32,string,uint256,uint256,uint8,uint8,uint64)\":{\"notice\":\"Open a value-decision round for `knobKey`: operators will propose a number in [lo, hi]. Permissionless to open (anyone may pose a question); only eligible operators may propose. `threshold` is the quorum of proposals needed to settle; a strict majority (>= n/2 + 1) is required so the median is taken over a true majority of the committee.\"},\"proposalDigest(uint256,address,bytes32,uint256,uint16,bytes32)\":{\"notice\":\"The digest an operator signs to propose `value`. Binds the chain and this contract instance (domain separation) so a proposal can never be replayed on another chain or another AIParams deployment.\"},\"settle(uint256)\":{\"notice\":\"Settle `roundId`: if at least `threshold` proposals are in, the live value of the knob becomes the MEDIAN of all submitted proposals (Byzantine- robust to any minority < 50%); otherwise the round Fails. Callable once the deadline passes, or earlier if the committee is full (submissionCount == n).\"},\"submitProposal(uint256,uint256,uint16,bytes32,bytes)\":{\"notice\":\"Submit the operator's LLM-chosen value for `roundId`. Caller must be a bonded, eligible operator (read from the canonical governor); the signature must recover to the caller; the value must lie in [lo, hi]; one proposal per operator. Reaching `n` proposals does not auto-settle (settle is explicit).\"},\"valueOf(bytes32,string)\":{\"notice\":\"The live, decided value of a knob (the loop-closing read), and whether it has been decided at least once.\"},\"withdrawFees()\":{\"notice\":\"Send accrued non-refundable fees to the treasury (pull-payment).\"}},\"notice\":\"Value-deciding governance: the chain THINKS a parameter into existence. Where {AIGovernor} decides a categorical POLICY (yes/no on a pre-baked change), this decides a continuous VALUE: each node operator's LLM reasons about a question and \\\\emph{proposes a number} within a declared range; the chain settles to the \\\\emph{median} of a quorum of proposals and makes it the live knob value. This is \\\"knobs/params based on the LLM of the node operator\\\" taken literally --- the model picks the value, the network aggregates cognition into a decision, and the decision takes effect (the loop closes: anything, including the next round or the governor, can read {valueOf}).\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ai/governance/AIParams.sol\":\"AIParams\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":\\\"ds-test/=lib/alchemix-v2/\\\"../lib/ds-test/src/\",\":\\\"forge-std/=lib/alchemix-v2/\\\"lib/forge-std/src/\",\":@account-abstraction/=lib/account-abstraction/contracts/\",\":@balancer-labs/=lib/balancer/../../node_modules/@balancer-labs/\",\":@balancer/=lib/balancer/pkg/\",\":@chainlink/contracts/=lib/chainlink/contracts/\",\":@comet-contracts/=lib/compound-v3/contracts/\",\":@compound-v3/=lib/compound-v3/contracts/\",\":@curve/=lib/curve/contracts/\",\":@forge-std/=lib/compound-v3/forge/lib/forge-std/\",\":@gnosis.pm/safe-contracts/=lib/safe-smart-account/contracts/\",\":@lido/=lib/lido/contracts/\",\":@lux/=contracts/\",\":@luxfi/contracts/=contracts/\",\":@luxfi/erc-3643/contracts/=contracts/securities/erc3643/\",\":@luxfi/lamport/=../lamport/contracts/\",\":@luxfi/markets/=contracts/markets/\",\":@luxfi/onchain-id/contracts/=contracts/securities/onchainid/\",\":@luxfi/oz-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@luxfi/oz/=lib/openzeppelin-contracts/contracts/\",\":@luxfi/standard/=contracts/\",\":@manifoldxyz/=lib/manifoldxyz/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@pendle/=lib/pendle/contracts/\",\":@prb/math/=lib/prb-math/src/\",\":@pyth-network/=lib/pyth/\",\":@rari-capital/solmate/=lib/solmate/\",\":@reservoir/=lib/core/packages/contracts/contracts/\",\":@safe-global/safe-modules/=lib/safe-modules/modules/\",\":@safe-global/safe-smart-account/=lib/safe-smart-account/contracts/\",\":@seaport/=lib/seaport/contracts/\",\":@solmate/=lib/solmate/src/\",\":@uniswap/lib/=lib/uni-lib/\",\":@uniswap/v2-core/=lib/uni-v2/\",\":@uniswap/v3-core/=lib/uni-v3/\",\":@uniswap/v3-periphery/=lib/uni-v3-periphery/\",\":aave-v3/=lib/aave-v3/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":alchemix-v2/=lib/alchemix-v2/src/\",\":alchemix-v3/=lib/alchemix-v3/\",\":balancer/=lib/balancer/\",\":base64-sol/=lib/base64/\",\":base64/=lib/base64/\",\":chainlink/=lib/chainlink/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":compound-v2/=lib/compound-v2/\",\":compound-v3/=lib/compound-v3/\",\":core/=lib/core/\",\":create2-helpers/=lib/manifoldxyz/lib/create2-helpers/\",\":create2-scripts/=lib/manifoldxyz/lib/create2-helpers/script/\",\":curve/=lib/curve/\",\":ds-test/=lib/clones-with-immutable-args/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":eth-gas-reporter/=lib/compound-v3/node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":gmx-v1/=lib/gmx-v1/contracts/\",\":gmx-v2/=lib/gmx-v2/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":hardhat/=lib/forge-std/src/\",\":layerzero-v2/=lib/layerzero-v2/\",\":libraries-solidity/=lib/manifoldxyz/lib/libraries-solidity/contracts/\",\":lido/=lib/lido/contracts/\",\":manifoldxyz/=lib/manifoldxyz/\",\":morpho-blue/=lib/morpho-blue/\",\":murky/=lib/seaport/lib/murky/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":pendle/=lib/pendle/contracts/\",\":prb-math/=lib/prb-math/src/\",\":pyth/=lib/pyth/\",\":safe-modules/=lib/safe-modules/\",\":safe-smart-account/=lib/safe-smart-account/contracts/\",\":seaport-core/=lib/seaport/lib/seaport-core/\",\":seaport-sol/=lib/seaport/lib/seaport-sol/\",\":seaport-types/=lib/seaport/lib/seaport-types/\",\":seaport/=lib/seaport/\",\":solady/=lib/seaport/lib/solady/\",\":solarray/=lib/seaport/lib/solarray/src/\",\":solmate/=lib/solmate/src/\",\":uni-lib/=lib/uni-lib/contracts/\",\":uni-v2/=lib/uni-v2/contracts/\",\":uni-v3-periphery/=lib/uni-v3-periphery/contracts/\",\":uni-v3/=lib/uni-v3/\"],\"viaIR\":true},\"sources\":{\"contracts/ai/governance/AIParams.sol\":{\"keccak256\":\"0xdc8b1741e1982644472dc61a0aabc9dc62540e562db4ac6dc4252d3f875c56c0\",\"license\":\"BSD-3-Clause\",\"urls\":[\"bzz-raw://24ea7e5ebcc4c2542ff92eab3273e361db34da805e3eecf322e86554f208815e\",\"dweb:/ipfs/QmNRTTUBwkGh7b1xHXW7tjecFkDfHBhkei24mpcxNzo8tJ\"]},\"contracts/ai/interfaces/IAIGovernor.sol\":{\"keccak256\":\"0x34b9b71a62aa6d49ad6ee546e8592b2f18d72afcfa12cd0ba295e636979dd3c0\",\"license\":\"BSD-3-Clause\",\"urls\":[\"bzz-raw://2a1efc9c383027e88ee1412df8a4943b2375c07a5b57bf32443820888bac0ab0\",\"dweb:/ipfs/QmcQQwkfJovG5YRjGWQtZ1kM4YPJRXuYLeoiHuBRrXAaGr\"]},\"contracts/ai/registry/Sortition.sol\":{\"keccak256\":\"0x49f36b5cd74fde6380eff2ed4388461677d8b04f34f945bcb72bf192c09440fa\",\"license\":\"BSD-3-Clause\",\"urls\":[\"bzz-raw://602f6f6eaa15055d8a4308dab04255754e92cef972fe29e4c9c4018e8bdef30f\",\"dweb:/ipfs/QmeNTaZU8RDYbg6zepNjx2Lxs6qiMYP2PCZKfTApQsH5VG\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a\",\"dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.31+commit.fd3a2265"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IAIGovernor","name":"governor_","type":"address"},{"internalType":"address","name":"treasury_","type":"address"},{"internalType":"uint256","name":"openFee_","type":"uint256"},{"internalType":"uint256","name":"proposalFee_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"},{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"AlreadyProposed"},{"inputs":[{"internalType":"uint8","name":"n","type":"uint8"},{"internalType":"uint8","name":"threshold","type":"uint8"}],"type":"error","name":"BadCommittee"},{"inputs":[{"internalType":"uint256","name":"lo","type":"uint256"},{"internalType":"uint256","name":"hi","type":"uint256"}],"type":"error","name":"BadRange"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"type":"error","name":"CommitteeFull"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"type":"error","name":"NotEligibleOperator"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"type":"error","name":"NotRegisteredBeforeOpen"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"type":"error","name":"NotSampled"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"type":"error","name":"RoundNotOpen"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"type":"error","name":"SeedNotReady"},{"inputs":[{"internalType":"address","name":"recovered","type":"address"},{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"SignerMismatch"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"type":"error","name":"UnknownRound"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"lo","type":"uint256"},{"internalType":"uint256","name":"hi","type":"uint256"}],"type":"error","name":"ValueOutOfRange"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"type":"error","name":"VotingOpen"},{"inputs":[{"internalType":"uint64","name":"window","type":"uint64"}],"type":"error","name":"WindowTooShort"},{"inputs":[{"internalType":"uint256","name":"sent","type":"uint256"},{"internalType":"uint256","name":"want","type":"uint256"}],"type":"error","name":"WrongFee"},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"FeesWithdrawn","anonymous":false},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256","indexed":true},{"internalType":"bytes32","name":"modelSpecHash","type":"bytes32","indexed":true},{"internalType":"string","name":"knobKey","type":"string","indexed":false},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"uint8","name":"proposals","type":"uint8","indexed":false}],"type":"event","name":"ParameterDecided","anonymous":false},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"uint16","name":"confidenceBucket","type":"uint16","indexed":false},{"internalType":"bytes32","name":"evidenceHash","type":"bytes32","indexed":false}],"type":"event","name":"ProposalSubmitted","anonymous":false},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256","indexed":true},{"internalType":"uint8","name":"submissionCount","type":"uint8","indexed":false},{"internalType":"uint8","name":"threshold","type":"uint8","indexed":false}],"type":"event","name":"RoundFailed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256","indexed":true},{"internalType":"bytes32","name":"modelSpecHash","type":"bytes32","indexed":true},{"internalType":"string","name":"knobKey","type":"string","indexed":false},{"internalType":"uint256","name":"lo","type":"uint256","indexed":false},{"internalType":"uint256","name":"hi","type":"uint256","indexed":false},{"internalType":"uint8","name":"n","type":"uint8","indexed":false},{"internalType":"uint8","name":"threshold","type":"uint8","indexed":false},{"internalType":"address","name":"opener","type":"address","indexed":false}],"type":"event","name":"RoundOpened","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_WINDOW","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROPOSAL_DOMAIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"stateMutability":"view","type":"function","name":"committee","outputs":[{"internalType":"uint64","name":"openBlock","type":"uint64"},{"internalType":"uint256","name":"population","type":"uint256"},{"internalType":"bytes32","name":"seed","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposals","outputs":[{"internalType":"struct AIParams.Proposal[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint16","name":"confidenceBucket","type":"uint16"},{"internalType":"bytes32","name":"evidenceHash","type":"bytes32"},{"internalType":"uint64","name":"submittedAt","type":"uint64"}]}]},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRound","outputs":[{"internalType":"struct AIParams.Round","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"modelSpecHash","type":"bytes32"},{"internalType":"bytes32","name":"promptHash","type":"bytes32"},{"internalType":"string","name":"knobKey","type":"string"},{"internalType":"uint256","name":"lo","type":"uint256"},{"internalType":"uint256","name":"hi","type":"uint256"},{"internalType":"uint8","name":"n","type":"uint8"},{"internalType":"uint8","name":"threshold","type":"uint8"},{"internalType":"uint64","name":"openedAt","type":"uint64"},{"internalType":"uint64","name":"deadline","type":"uint64"},{"internalType":"address","name":"opener","type":"address"},{"internalType":"enum AIParams.Status","name":"status","type":"uint8"},{"internalType":"uint8","name":"submissionCount","type":"uint8"},{"internalType":"uint256","name":"canonicalValue","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"governor","outputs":[{"internalType":"contract IAIGovernor","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"},{"internalType":"address","name":"who","type":"address"}],"stateMutability":"view","type":"function","name":"isSampled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"modelSpecHash","type":"bytes32"},{"internalType":"bytes32","name":"promptHash","type":"bytes32"},{"internalType":"string","name":"knobKey","type":"string"},{"internalType":"uint256","name":"lo","type":"uint256"},{"internalType":"uint256","name":"hi","type":"uint256"},{"internalType":"uint8","name":"n","type":"uint8"},{"internalType":"uint8","name":"threshold","type":"uint8"},{"internalType":"uint64","name":"window","type":"uint64"}],"stateMutability":"payable","type":"function","name":"open","outputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"openFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"bytes32","name":"modelSpecHash","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint16","name":"confidenceBucket","type":"uint16"},{"internalType":"bytes32","name":"evidenceHash","type":"bytes32"}],"stateMutability":"view","type":"function","name":"proposalDigest","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"roundCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"settle","outputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bool","name":"decided","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint16","name":"confidenceBucket","type":"uint16"},{"internalType":"bytes32","name":"evidenceHash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"payable","type":"function","name":"submitProposal"},{"inputs":[],"stateMutability":"view","type":"function","name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"treasuryFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"modelSpecHash","type":"bytes32"},{"internalType":"string","name":"knobKey","type":"string"}],"stateMutability":"view","type":"function","name":"valueOf","outputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bool","name":"decided","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdrawFees"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"MIN_WINDOW()":{"notice":"Minimum voting window so a round cannot be opened-and-settled in a flash, locking honest sampled operators out (permissionless liveness)."},"PROPOSAL_DOMAIN()":{"notice":"Domain tag separating this signature purpose from all others."},"committee(uint256)":{"notice":"The sortition context of a round: the block it opened in, the operator population sampled from, and the committee seed (0 until the first proposal caches blockhash(openBlock)). Lets the dashboard show how the committee was drawn."},"isSampled(uint256,address)":{"notice":"Whether `who` is in the sampled committee for `roundId` (once seeded). An operator self-checks this to know if it should propose."},"open(bytes32,bytes32,string,uint256,uint256,uint8,uint8,uint64)":{"notice":"Open a value-decision round for `knobKey`: operators will propose a number in [lo, hi]. Permissionless to open (anyone may pose a question); only eligible operators may propose. `threshold` is the quorum of proposals needed to settle; a strict majority (>= n/2 + 1) is required so the median is taken over a true majority of the committee."},"proposalDigest(uint256,address,bytes32,uint256,uint16,bytes32)":{"notice":"The digest an operator signs to propose `value`. Binds the chain and this contract instance (domain separation) so a proposal can never be replayed on another chain or another AIParams deployment."},"settle(uint256)":{"notice":"Settle `roundId`: if at least `threshold` proposals are in, the live value of the knob becomes the MEDIAN of all submitted proposals (Byzantine- robust to any minority < 50%); otherwise the round Fails. Callable once the deadline passes, or earlier if the committee is full (submissionCount == n)."},"submitProposal(uint256,uint256,uint16,bytes32,bytes)":{"notice":"Submit the operator's LLM-chosen value for `roundId`. Caller must be a bonded, eligible operator (read from the canonical governor); the signature must recover to the caller; the value must lie in [lo, hi]; one proposal per operator. Reaching `n` proposals does not auto-settle (settle is explicit)."},"valueOf(bytes32,string)":{"notice":"The live, decided value of a knob (the loop-closing read), and whether it has been decided at least once."},"withdrawFees()":{"notice":"Send accrued non-refundable fees to the treasury (pull-payment)."}},"version":1}},"settings":{"remappings":["\"ds-test/=lib/alchemix-v2/\"../lib/ds-test/src/","\"forge-std/=lib/alchemix-v2/\"lib/forge-std/src/","@account-abstraction/=lib/account-abstraction/contracts/","@balancer-labs/=lib/balancer/../../node_modules/@balancer-labs/","@balancer/=lib/balancer/pkg/","@chainlink/contracts/=lib/chainlink/contracts/","@comet-contracts/=lib/compound-v3/contracts/","@compound-v3/=lib/compound-v3/contracts/","@curve/=lib/curve/contracts/","@forge-std/=lib/compound-v3/forge/lib/forge-std/","@gnosis.pm/safe-contracts/=lib/safe-smart-account/contracts/","@lido/=lib/lido/contracts/","@lux/=contracts/","@luxfi/contracts/=contracts/","@luxfi/erc-3643/contracts/=contracts/securities/erc3643/","@luxfi/lamport/=../lamport/contracts/","@luxfi/markets/=contracts/markets/","@luxfi/onchain-id/contracts/=contracts/securities/onchainid/","@luxfi/oz-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@luxfi/oz/=lib/openzeppelin-contracts/contracts/","@luxfi/standard/=contracts/","@manifoldxyz/=lib/manifoldxyz/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@pendle/=lib/pendle/contracts/","@prb/math/=lib/prb-math/src/","@pyth-network/=lib/pyth/","@rari-capital/solmate/=lib/solmate/","@reservoir/=lib/core/packages/contracts/contracts/","@safe-global/safe-modules/=lib/safe-modules/modules/","@safe-global/safe-smart-account/=lib/safe-smart-account/contracts/","@seaport/=lib/seaport/contracts/","@solmate/=lib/solmate/src/","@uniswap/lib/=lib/uni-lib/","@uniswap/v2-core/=lib/uni-v2/","@uniswap/v3-core/=lib/uni-v3/","@uniswap/v3-periphery/=lib/uni-v3-periphery/","aave-v3/=lib/aave-v3/","account-abstraction/=lib/account-abstraction/contracts/","alchemix-v2/=lib/alchemix-v2/src/","alchemix-v3/=lib/alchemix-v3/","balancer/=lib/balancer/","base64-sol/=lib/base64/","base64/=lib/base64/","chainlink/=lib/chainlink/","clones-with-immutable-args/=lib/clones-with-immutable-args/src/","compound-v2/=lib/compound-v2/","compound-v3/=lib/compound-v3/","core/=lib/core/","create2-helpers/=lib/manifoldxyz/lib/create2-helpers/","create2-scripts/=lib/manifoldxyz/lib/create2-helpers/script/","curve/=lib/curve/","ds-test/=lib/clones-with-immutable-args/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","eth-gas-reporter/=lib/compound-v3/node_modules/eth-gas-reporter/","forge-std/=lib/forge-std/src/","gmx-v1/=lib/gmx-v1/contracts/","gmx-v2/=lib/gmx-v2/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","hardhat/=lib/forge-std/src/","layerzero-v2/=lib/layerzero-v2/","libraries-solidity/=lib/manifoldxyz/lib/libraries-solidity/contracts/","lido/=lib/lido/contracts/","manifoldxyz/=lib/manifoldxyz/","morpho-blue/=lib/morpho-blue/","murky/=lib/seaport/lib/murky/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","pendle/=lib/pendle/contracts/","prb-math/=lib/prb-math/src/","pyth/=lib/pyth/","safe-modules/=lib/safe-modules/","safe-smart-account/=lib/safe-smart-account/contracts/","seaport-core/=lib/seaport/lib/seaport-core/","seaport-sol/=lib/seaport/lib/seaport-sol/","seaport-types/=lib/seaport/lib/seaport-types/","seaport/=lib/seaport/","solady/=lib/seaport/lib/solady/","solarray/=lib/seaport/lib/solarray/src/","solmate/=lib/solmate/src/","uni-lib/=lib/uni-lib/contracts/","uni-v2/=lib/uni-v2/contracts/","uni-v3-periphery/=lib/uni-v3-periphery/contracts/","uni-v3/=lib/uni-v3/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/ai/governance/AIParams.sol":"AIParams"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/ai/governance/AIParams.sol":{"keccak256":"0xdc8b1741e1982644472dc61a0aabc9dc62540e562db4ac6dc4252d3f875c56c0","urls":["bzz-raw://24ea7e5ebcc4c2542ff92eab3273e361db34da805e3eecf322e86554f208815e","dweb:/ipfs/QmNRTTUBwkGh7b1xHXW7tjecFkDfHBhkei24mpcxNzo8tJ"],"license":"BSD-3-Clause"},"contracts/ai/interfaces/IAIGovernor.sol":{"keccak256":"0x34b9b71a62aa6d49ad6ee546e8592b2f18d72afcfa12cd0ba295e636979dd3c0","urls":["bzz-raw://2a1efc9c383027e88ee1412df8a4943b2375c07a5b57bf32443820888bac0ab0","dweb:/ipfs/QmcQQwkfJovG5YRjGWQtZ1kM4YPJRXuYLeoiHuBRrXAaGr"],"license":"BSD-3-Clause"},"contracts/ai/registry/Sortition.sol":{"keccak256":"0x49f36b5cd74fde6380eff2ed4388461677d8b04f34f945bcb72bf192c09440fa","urls":["bzz-raw://602f6f6eaa15055d8a4308dab04255754e92cef972fe29e4c9c4018e8bdef30f","dweb:/ipfs/QmeNTaZU8RDYbg6zepNjx2Lxs6qiMYP2PCZKfTApQsH5VG"],"license":"BSD-3-Clause"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xbeb5cad8aaabe0d35d2ec1a8414d91e81e5a8ca679add4cf57e2f33476861f40","urls":["bzz-raw://ebb272a5ee2da4e8bd5551334e0ce8dce4e9c56a04570d6bf046d260fab3116a","dweb:/ipfs/QmNw6RyM769qcqFocDq6HJMG2WiEnQbvizpRaUXsACHho2"],"license":"MIT"}},"version":1},"id":12}